Token payment upgrade to 3DS
Upgrading token payment implementation to use 3DS
Token payment is a solution that enables the merchant to charge the payer without requiring the presence of the payer. It is a powerful tool to conduct subscription-like or payer-not-present scenarios. This scenario required the merchant to create a token that would act as an identifier for the payer's funding source (may it be a credit card or a Barion e-money account). To acquire such a token the merchant had to do several things:
- Create an alphanumeric token
- Register this token in the Barion system by attaching it to an initial payment and having the payer fulfill that payment (either by card or form an e-money account)
- Refer to this token in a subsequent payment attempt
This meant that as far as this token referred to a valid and still available funding source the merchant could create payments without any limitations. Basically, this token symbolized the funding source. It was up to the merchant to decide what it is used for, neither Barion nor the card issuer was aware of the nature of the subsequent payments.
To make sure that the payer has more control over these scenarios and the card issuer knows more about the payment scenarios several things changed. First of all the merchant has to decide what kind of token payment scenario is needed. These scenarios are the following:
- One-click payment: The payer clicks on the "Purchase" button but does not gets redirected to Barion.
- Recurring payment: The payer authorizes the merchant to charge their card periodically.
- Merchant initiated payment: The payer authorizes the merchant to charge their card without restrictions.
These scenarios have different properties and requirements, this table below summarizes the key differences.
Scenario | Payer present? | Amount | Frequency | Liability |
---|---|---|---|---|
One-click payment | Yes | Various | Various | Card issuer |
Recurring payment | No | Various | Fixed | Card issuer |
Merchant initiated payment | No | Various | Various | Merchant |
Explanation:
Payer present: indicates whether the payer is present during the subsequent payments. During the first (initial) payment, the payer is always present in every scenario.
Amount: specifies whether the amount of the payments can change from payment to payment or must be the same.
Frequency: specifies whether it is mandatory to wait a fixed number of days between payments or the charges can happen ad-hoc.
Liability: describes the entity who is liable for the payment in case of fraud
This intended scenario must be specified in the new ReccurenceType property (located in the Payment/Start request)
- has to specify the nature of the transaction. This means that from now on the merchant has to categorize the transaction. It is not allowed to
- merchant has to maintain a new identifier for every new category of
3DS authentication requires another identifier. This new identifier is used to differentiate these payment scenarios. From now on there will be two IDs for every payer-not-present scenario:
RecurrenceId
for the funding source: this identifies the source of the money (could be card or wallet)TraceId
(new) for the nature of the charge: this identifies the type of transaction the merchant is conducting.
What happens if I don't change my implementation
TODO