Interaction Types

In the context of payment processing the involved entities are:

  • the User and the User's Web Browser.
  • the Merchant System (usually a custom web application offering some goods/services).
  • the PXP Financial Payment Service providing an API for unified access to different payment methods,
    and having the responsibility to process and keep track of all payments, and
  • the External Payment Providers – numerous external systems with their specific APIs.

This section lists the 3 standard interaction types between the involved parties above. Every payment method falls into one of these 3 interaction types:

  • Synchronous Execution
  • Redirection to External Payment Provider
  • Offline Execution.

Synchronous Execution

969
StepDescription
1The Merchant System calls the initiatePayment web service method.
2The Merchant System receives a synchronous initiatePaymentResponse with the last state of
the payment indicating if it was successfully executed or not.
3An asynchronous notification is sent in the background from the PaymentService
to the Merchant System with the payment status.

Redirection to External Payment Provider

Certain payment methods require redirecting the user to the External Payment Provider for authentication and transaction confirmation purposes. There are 2 variations of how PXP Financial receives the processing result from the External Payment Provider:

  • data is passed with a background notification from External Payment Provider to PXP Financial
  • data is passed as part of the browser redirect from External Payment Provider to the Merchant, and then with an API call from Merchant to PXP Financial.

Passing data with a background notification

The transaction status data gets passed back through a callback (system-to-system API call in the background) from the External Payment Provider to PaymentService. See the below diagram for more details:

817
StepDescription
1The Merchant System calls initiatePayment web service method and gets back a
RedirectionUrl.
2The Merchant System redirects the user to the RedirectionUrl / External
Payment Provider, where the user authenticates and authorizes the payment.
3The External Payment Provider processes the user request and redirects the user to SuccessPageUrl or ErrorPageUrl.
4In case of a successful payment, the Merchant System receives an asynchronous notification.

Passing data as part of the browser redirect

The transaction status gets passed together with the HTTPS redirection of the user from the External Payment Provider's website to the Merchant's website usually as HTTPS POST or GET data). See the below diagram for more details:

839
StepDescription
1The Merchant System calls the initiatePayment web service method and gets back a RedirectionUrl.
2The Merchant System redirects the user to the RedirectionUrl of the External Payment Provider.
3The External Payment Provider processes the user request and returns data with the redirect back to the Merchant's website.
4The Merchant System collects all data from the HttpRequest received from External Payment Provider and calls the handleProviderNotificationToMerchant web service method.
5The Merchant System receives back the handleProviderNotificationToMerchantResponse and depending on the state of the payment decides to take further action.
6In case of a successful payment the Merchant System receives an asynchronous notification.

Offline Execution

Other payment methods require that the user performs an offline transaction (e.g. by going to his bank, or to a terminal). In these cases only the destination payment data (e.g. destination bank account or Western Union account) is displayed and a reference is generated for the user’s offline transaction. In some cases a transaction is initiated/prepared as well. The following diagram visualizes the flow:

688
StepDescription
1Merchant System sends a getPaymentInputDataRequest (see getPaymentInputData) and receives a list of inputs that it will display to the user.
2PXP Financial notifies the merchant to process the payment (handlePaymentStateChangedNotificationRequest) after it has been notified by the External Payment Provider that the offline payment took place.