Recurring Payments
Recurring payments, also known as subscription payments are charged automatically to a customer at periodic intervals.
Implementation workflow
You can setup and charge recurring payments with Computop by following 3 simple steps:
- Initial transaction with recurring intent
- Store credentials securely
- Subsequent recurring transactions
1. Initial Transaction
Setup intent for a recurring payment by passing the below information in the credentialOnFile
Object:
{
...
"credentialOnFile": {
"type": "RECURRING",
"initialPayment": true,
"recurring": {
"frequency": "DAILY", // "WEEKLY"/"MONTHLY"/"YEARLY"
"startDate": "2025-01-01",
"expiryDate": "2025-12-01",
"useCase": "FIXED", // "FLEXIBLE_AMOUNT"/"FLEXIBLE_FREQUENCY"
}
}
}
Parameter Guide
Parameter | Values | Description |
---|---|---|
frequency | DAILY/MONTHLY/WEEKLY/YEARLY | Billing cycle frequency |
startDate | YYYY-MMM-DD | First charge date |
expiryDate | YYYY-MMM-DD | Cancellation date |
useCase | FIXED/FLEXIBLE_AMOUNT/FLEXIBLE_FREQUENCY |
|
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 {
...
"paymentMethods": {
"type": "CARD",
"card": {
"cardholderName": "John Doe",
"pseudoCardNumber": "01234567890124444",
"first6Digits": 555555,
"last4Digits": 4444,
"expiryDate": "01.01.2028",
"schemeReferenceId": "4234234234",
......
......
}
}
} |
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 subsequent recurring:{ ... "credentialOnFile": { "type": "RECURRING", "initialPayment": false, "recurring": { "frequency": "daily", // "weekly"/"monthly"/"yearly" "startDate": "2025-01-01", "expiryDate": "2025-12-01", "useCase": "FIXED", // "FLEXIBLE_AMOUNT"/"FLEXIBLE_FREQUENCY" } } }
In addition to the above pass the saved credentials and
schemeReferenceId
returned previously in the response of initial transaction{ ... "paymentMethods": { "type": "CARD", "card": { "expiryDate": "202506", "cardHolderName": "John Doe", "securityCode": "123", "number": "5555555555554444", // clear card number or pseudo card number "schemeReferenceId": "4234234234" ..... ..... } } }