Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

Multiexcerpt include
SpaceWithExcerptEN
MultiExcerptNamePartner-Name
PageWithExcerptEN:Wording
by Axepta BNP Paribas by following 3 simple steps:

  1. Initial transaction with recurring intent
  2. Store credentials securely
  3. 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

ParameterValuesDescription
frequencyDAILY/MONTHLY/WEEKLY/YEARLYBilling cycle frequency
startDateYYYY-MMM-DDFirst charge date
expiryDateYYYY-MMM-DDCancellation date
useCaseFIXED/FLEXIBLE_AMOUNT/FLEXIBLE_FREQUENCY
  • FIXED: Same amount/interval. E.g: subscriptions for SaaS products
  • FLEXIBLE_AMOUNT: Varying charges. E.g: utility payments based on consumption
  • FLEXIBLE_FREQUENCY: Adjustable intervals. E.g: subscriptions with the possibility to change the billing cycles in the course of time.


2. Credential storage

Securely store the credentials based on the integration type upon receiving successful payment response to the initial transaction:

Integration typeAction

Hosted forms – Hosted Payment Page or card Hosted forms

Fetch the pseudoCardNumber by calling Retrieve payment details by payment ID and store it. 

Code Block
{
  ...
  "paymentMethods": {
    "type": "CARD",
    "card": {
      "cardholderName": "John Doe",
      "pseudoCardNumber": "01234567890124444",
      "first6Digits": 555555,
      "last4Digits": 4444,
      "expiryDate": "01.01.2028",
      "schemeReferenceId": "4234234234",
      ......
      ......
    }
  }
}


Direct Integration

Store either:

  • Clear card data securely that you already have during the payment process.
  • pseudoCardNumber received in payment response if you have the service enabled.

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"
          .....
          .....
        }
      }
    }