OneClick Payments
Introduction
The integration of this solution allows the end customer to save their card data, and use them later to make purchases faster.
OneClick payments are also identified with the term CIT (Customer Initiated Transaction).
The management of this solution is divided into 2 phases:
- First payment
- Subsequent payments
Both phases are subject to 3D Secure authentication.
Here is how to make first tokenization payments and subsequent payments in the integration modes:
- Hosted Payment Page
- Pay-by-Link
First payment
A first transaction must be generated, assigning a unique contract for each customer, an identifier that allows XPay to save the combination between the customer and the payment card used.
Hosted Payment Page
The payment flow does not vary with respect to the Hosted Payment Page solution, in fact it is necessary to call the same API:
Valuing the "recurrence" object with the parameters:
Name | Description |
---|---|
action | CONTRACT_CREATION |
contractId | Unique string |
contractType | CIT |
Pay-by-Link
The payment flow does not vary with respect to the solution Pay-by-Link, it is in fact necessary to call the same API:
Valuing the "recurrence" object with the parameters:
Name | Description |
---|---|
action | CONTRACT_CREATION |
contractId | Unique string |
contractType | CIT |
Subsequent payments
In the next payment, it is necessary to send a call to XPay with the contract registered in the first payment phase. This will allow the customer not to have to enter the card data on the checkout page, but to proceed with the 3D Secure authentication.
Hosted Payment Page
To proceed with the next payment, call the API:
Valuing the "recurrence" object with the parameters:
Name | Description |
---|---|
action | SUBSEQUENT_PAYMENT |
contractId | Unique string used in the first payment phase |
contractType | CIT |
Pay-by-Link
To proceed with the next payment, call the API:
Valuing the "recurrence" object with the parameters:
Name | Description |
---|---|
action | SUBSEQUENT_PAYMENT |
contractId | Unique string used in the first payment phase |
contractType | CIT |
Additional APIs
The following APIs are made available to be able to intervene on existing contracts:
- List of contracts associated with a customer (GET /contracts/customers/{customerId})
- Deactivation of an existing contract (POST /contracts/{contractId}/deactivation)