Last updated

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:

  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:

{
  ...
  "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 and schemeReferenceId 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

{
  ...
  "paymentMethods": {
    "type": "CARD",
    "card": {
      "cardholderName": "John Doe",
      "pseudoCardNumber": "01234567890124444",
      "first6Digits": 555555,
      "last4Digits": 4444,
      "expiryDate": "01.01.2028",
      "schemeReferenceId": "4234234234",
      ......
      ......
    }
  }
}
Direct IntegrationStore either:
  • Clear card data securely (highest compliance required) 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:

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