In the simplest Paysafe Checkout scenario you would have a single merchant account handling a single currency. Once your merchant back-end server receives the single-use token from the client browser it passes it in a payment authorization request to the Card Payments API, Direct Debit API, or Alternate Payments API, depending on what the customer selected at the checkout.
If, however, you want to process transactions in multiple currencies or multiple payment methods, you require multiple merchant accounts, which Paysafe Integration Support will create for you on request. When you process a transaction you have to choose the correct account to use with the currency and payment method involved. This requires that you keep a record of the currency:accountId and payment method:accountid mappings, and create a means of retrieving the account information. For example, when your payment page sends the single-use token to the merchant back-end it could also send the currency and payment method; an API endpoint receiving the data could then perform an accountId lookup before making the payment authorization request. Such an endpoint would need to be made secure to prevent unauthorized access.
A table of example currency:accountId mappings is shown below.
If 3DS is involved in a card transaction a 3DS enrollment check takes place before the tokenization request. The enrollment check also requires the accountId be supplied, so you will need to access your currency:accountId mappings during this step as well. You will need to create a separate secure endpoint on your merchant server that takes a currency parameter and returns the appropriate accountIdfor that currency.
At present, Paysafe supports the following currencies:
- for Direct Debit: USD, CAD
- for Interac: CAD only