The Payment Gateway Manager (PGM) is a microservice responsible to encapsulate the payment processing logic across different Payment Providers.
The payment processing logic includes:
- Request a payment on a payment provider
- Request a refund on a payment provider
- Transaction Status Verification:
- M2M Callback: handling of payment transactions' M2M callbacks from a payment provider
- On-Demand: on-demand transaction status check on the payment provider
- Both may end in a result notification push towards an external service
- Manage a transaction session on a payment provider (e.g. to perform 3D-Secure authentication)
The PGM interfaces aim to be Payment Provider agnostic. This way an eventual Payment Provider's change does not involve huge modifications for the services leveraging the PGM. Some providers may require additional fields, in which case they will be wrapped in a single, optional object field.
- Payment Request:
- Recurrent Payment Request:
- Payment with Authorization Confirmation Request:
- Refund Request:
- M2M Callback Transaction Status Verification:
- On-Demand Transaction Status Verification:
- Get status of a Transaction:
- Open a Session
- Settle a session transaction:
- Void a session transaction:
- Refund (totally or partially) a session transaction:
- Check the status of the session:
Supported Providers and Payment Methods
When possible, the PGM will expose utility APIs for some providers. These APIs abstract contour operations to the developer and allow focusing on the payment process itself, rather than setup processes. The BrainTree helper suite is a clear example of this concept.
Flow Manager APIs
The PGM is able to communicate with Flow Manager service via REST APIs. In particular it can send some events and it can process some commands using dedicated APIs.
You can view the Swagger compatible OpenAPI documentation by calling the
You can also use
/documentation/openapi.json as the documentation endpoint in the microservice configuration to add it
to the API Portal.
At the moment the currency used for payments is not configurable and is set to be Euros by default, except for session operations.