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 NEXI 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 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:
|
3. Subsequent transactions
Subsequent transactions for an unscheduled MIT should always be sent via the direct integration.
-
Pass the below data in
credentialOnFileobject 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
schemeReferenceIdreturned 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" ..... ..... } } }