in reply to
How to organize Catalyst stash
For the URLS and textual descriptions of payment values I would create other objects which provide that information.
For instance, to translate payment type codes into human readable text, have an object available to the template which when given a payment code returns the associated textual description.
In fact, a payment type code is an example of an "enumeration type", and your application probably has several instances of enumerations. So this is an object you could generalize and use for all of your enumerations. Having a single object would also simplify making this service available to the template.
This would work very much like the way localization is implemented in templates.