Payment With Stored Credentials
The solution allows merchants to retain customer's card payment information (with consent) for future transactions, reducing checkout friction and improving conversion rates.
There are 2 use cases that require storing of credentials
- Unscheduled Customer Initiated Transactions (CITs): CITs occur when customers actively authorize a card payment during checkout. To streamline the process for returning customers, you can securely store payment credentials (with consent), enabling faster "one-click" transactions for future purchases.
- Unscheduled Merchant Initiated Transactions (MITs): MITs occur when you initiate a card payment without direct participation of the customer. You can initiate an unscheduled MIT based on an explicit prior authorization from the customer to store and use their credentials
Implementation workflow
You can setup Unscheduled CITs and MITs with Computop by following 3 simple steps:
- Initial transaction with CIT/MIT intent
- Store credentials securely
- Subsequent transactions
Unscheduled CITs
1. Initial Transaction
Setup intent for an unscheduled CIT by passing the below information in the credentialOnFile
object in the payment request:
{
...
"credentialOnFile": {
"type": "UNSCHEDULED",
"initialPayment": true,
"unscheduled": {
"subType": "CIT"
}
}
}
2. Credential Storage
Securely store the card details and schemeReferenceId
based on the integration type upon receiving successful payment response to the initial transaction:
Integration Type | Action |
---|---|
Hosted forms - Hosted Payment Page or cards Hosted forms | Fetch the pseudoCardNumber by calling Retrieve payment details by payment ID and store it{
...
"paymentMethods": {
"type": "CARD",
"card": {
"cardholderName": "John Doe",
"pseudoCardNumber": "01234567890124444",
"first6Digits": 555555,
"last4Digits": 4444,
"expiryDate": "01.01.2028",
"schemeReferenceId": "534525242342",
......
......
}
}
} |
Direct Integration | Store either:
|
3. Subsequent Transactions
Submit the subsequent payment request with request parameters depending on the type of your integration
Integration Type Payment Parameters Hosted forms - Hosted Payment Page or card hosted forms - Submit the
credentialOnFile
object as below:{ ... "credentialOnFile": { "type": "UNSCHEDULED", "initialPayment": false, "unscheduled": { "subType": "CIT" } } }
- Pass the Pseudo card number in
prefillInfo
object andschemeReferenceId
returned previously in the response of initial transaction, for a faster checkout{ ... "paymentMethods": { "type": "CARD", "card": { "prefillInfo": { "number": "01234567890124444", "cardholderName": "John Doe", "expiryDate": "01.01.2028", ..... ..... }, "schemeReferenceId": "534525242342" } } }
Direct Integration - Submit the
credentialOnFile
object as below:{ ... "credentialOnFile": { "type": "UNSCHEDULED", "initialPayment": false, "unscheduled": { "subType": "CIT" } } }
- Pass the saved credentials or pseudo card number in
paymentMethods.card
object andschemeReferenceId
returned previously in the response of initial transaction{ ... "paymentMethods": { "type": "CARD", "card": { "number": "5555555555554444", "cardholderName": "John Doe", "expiryDate": "01.01.2028", "securityCode": "123", "schemeReferenceId": "534525242342" ..... ..... } } }
- Submit the
Use Computop Customer Vault instead of prefillInfo, if you are integrated using hosted forms for a better customer experience and reduced integration efforts.
Unscheduled MITs
1. Initial Transaction
Setup intent for an unscheduled MIT by passing the below information in the credentialOnFile
object:
{
...
"credentialOnFile": {
"type": "UNSCHEDULED",
"initialPayment": true,
"unscheduled": {
"subType": "MIT"
}
}
}
2. Credential Storage
Securely store the credentials and schemeReferenceId
based on the integration type upon receiving successful payment response to the initial transaction:
Integration Type | Action |
---|---|
Hosted forms - Hosted Payment Page or card Hosted forms | Fetch the pseudoCardNumber by calling Retrieve payment details by payment ID and store it{
...
"paymentMethods": {
"type": "CARD",
"card": {
"cardholderName": "John Doe",
"pseudoCardNumber": "01234567890124444",
"first6Digits": 555555,
"last4Digits": 4444,
"expiryDate": "01.01.2028",
"schemeReferenceId": "534525242342",
......
......
}
}
} |
Direct Integration | Store either:
|
3. Subsequent Transactions
Subsequent transactions for an unscheduled MIT should always be sent via the direct integration.
Pass the below data in
credentialOnFile
object for susbequent MITs:{ ... "credentialOnFile": { "type": "UNSCHEDULED", "initialPayment": false, "unscheduled": { "subType": "MIT" } } }
In addition to the above pass the saved credentials and
schemeReferenceId
returned previously in the response of initial transaction{ ... "paymentMethods": { "type": "CARD", "card": { "number": "5555555555554444", // clear card number or pseudo card number "cardHolderName": "John Doe", "expiryDate": "202506", "securityCode": "123", "schemeReferenceId": "534525242342" ..... ..... } } }