Recurring payments, also known as subscription payments are charged automatically to a customer at periodic intervals.
You can setup and charge recurring payments with by following 3 simple steps:
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 | 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 |
|
Securely store the credentials 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
| |
Direct Integration | Store either:
|
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"
.....
.....
}
}
} |