[RFC] add contexts to deal with different payment types

Related to https://github.com/immersivelabs/sapi/pull/441