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
by Axepta BNP Paribas by following 3 simple steps: Multiexcerpt include SpaceWithExcerpt EN MultiExcerptName Partner-Name PageWithExcerpt EN:Wording
- 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:
Code Block |
---|
{ ... "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
credentialOnFile
object for subsequent recurring:Code Block { ... "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:Code Block { ... "paymentMethods": { "type": "CARD", "card": { "expiryDate": "202506", "cardHolderName": "John Doe", "securityCode": "123", "number": "5555555555554444", // clear card number or pseudo card number "schemeReferenceId": "4234234234" ..... ..... } } }