Skip to main content

Manage Subscriptions


Response Status Codes

Responses include one of these HTTP status codes:

  • 200: Successful.
  • 201: Successful.
  • 202: Accepted.
  • 400: Invalid request.
  • 404: Not found.
  • 502: Unexpected system error or system timeout.

Create a Subscription with an Existing Plan

Creates a Recurring Billing subscription using an existing standard plan.

Before creating a subscription, a Token Management Service (TMS) customer token is required. The subscription request uses values from the TMS response. For prerequisites and field mapping, see Subscriptions.

The endpoint is POST /rbs/v1/subscriptions. A 200-level response code indicates success.

For information about response codes, see Transaction Response Codes.

For information about response codes, see Transaction Response Codes.

For information about response codes, see Transaction Response Codes.

For information about response codes, see Transaction Response Codes.

For information about response codes, see Transaction Response Codes.

Endpoint

POST /rbs/v1/subscriptions

POST /rbs/v1/subscriptions

Example

{    "subscriptionInformation": {        "planId": "1619212820",        "name": "Test subscription",        "startDate": "2026-01-15T10:00:00Z",        "originalTransactionId": "123456789012345"    },    "paymentInformation": {        "customer": {            "id": "AB1234EFGH56I78K9012LMNO"        }    },    "clientReferenceInformation": {        "code": "MerchantRef001"    }}
{    "_links": {        "self": {            "href": "/rbs/v1/subscriptions/1619212821",            "method": "GET"        }    },    "id": "1619212821",    "status": "PENDING"}
{    "status": "INVALID_REQUEST",    "reason": "INVALID_DATA",    "message": "One or more fields in the request contains invalid data.",    "details": [        {            "field": "subscriptionInformation.planId",            "reason": "NOT_FOUND"        }    ]}
FieldTypeDescription
paymentInformation.customer.idstringTMS customer token ID.
subscriptionInformation.namestringSubscription name.
subscriptionInformation.planIdstringThe ID of the existing plan to assign to the subscription.
subscriptionInformation.startDatestringStart date in UTC format: YYYY-MM-DDThh:mm:ssZ.
Optional Fields
FieldTypeDescription
subscriptionInformation.originalTransactionIdstringNetwork transaction ID from the payment that initializes the subscription. Providing this value improves authorization rates and Strong Customer Authentication (SCA) compliance. This value is returned in the Payments response as processorInformation.networkTransactionId. For EFTPOS cards, a network token is not generated. In this case, provide the transaction request ID or use 0.
subscriptionInformation.codestringSubscription code for reference.
clientReferenceInformation.codestringMerchant reference number.

For more details, see the Create a Subscription section of the interactive API Reference.

Create a Subscription with Plan Overrides

A subscription can be created with plan overrides. Plan overrides apply only to the individual subscription and do not change the standard plan used for other subscriptions.

Before creating a subscription, a Token Management Service (TMS) customer token is required. The subscription request uses values from the TMS response. For prerequisites and field mapping, see Subscriptions.

The endpoint is POST /rbs/v1/subscriptions. A 200-level response code indicates success.

For information about response codes, see Transaction Response Codes.

For information about response codes, see Transaction Response Codes.

For information about response codes, see Transaction Response Codes.

For information about response codes, see Transaction Response Codes.

For information about response codes, see Transaction Response Codes.

Endpoint

POST /rbs/v1/subscriptions

POST /rbs/v1/subscriptions

Example

{    "subscriptionInformation": {        "planId": "1619212820",        "name": "Test subscription with overrides",        "startDate": "2026-01-15T10:00:00Z"    },    "paymentInformation": {        "customer": {            "id": "AB1234EFGH56I78K9012LMNO"        }    },    "planInformation": {        "billingCycles": {            "total": "6"        }    },    "orderInformation": {        "amountDetails": {            "billingAmount": "12",            "setupFee": "5"        }    }}
{    "_links": {        "self": {            "href": "/rbs/v1/subscriptions/1619212822",            "method": "GET"        }    },    "id": "1619212822",    "status": "PENDING"}
{    "status": "INVALID_REQUEST",    "reason": "INVALID_DATA",    "message": "One or more fields in the request contains invalid data.",    "details": [        {            "field": "subscriptionInformation.code",            "reason": "DUPLICATE"        }    ]}
FieldTypeDescription
paymentInformation.customer.idstringTMS customer token ID.
subscriptionInformation.namestringSubscription name.
subscriptionInformation.planIdstringThe ID of the existing plan to assign to the subscription.
subscriptionInformation.startDatestringStart date in UTC format: YYYY-MM-DDThh:mm:ssZ.
Optional Fields
FieldTypeDescription
subscriptionInformation.originalTransactionIdstringNetwork transaction ID from the payment that initializes the subscription. Providing this value improves authorization rates and Strong Customer Authentication (SCA) compliance. This value is returned in the Payments response as processorInformation.networkTransactionId. For EFTPOS cards, a network token is not generated. In this case, provide the transaction request ID or use 0.
subscriptionInformation.codestringSubscription code for reference.
clientReferenceInformation.codestringMerchant reference number.

For more details, see the Create a Subscription section of the interactive API Reference.

Create a Fully Customized Subscription

Creates a Recurring Billing subscription with a one-time plan. The plan is embedded in the subscription at creation time and cannot be reused for other subscriptions. One-time plans do not include a plan code, plan name, or plan description.

The start date must be in UTC in this format: YYYY-MM-DDThh:mm:ssZ. The T separates the date and the time. The Z indicates UTC. For example, 2026-01-15T10:00:00Z indicates January 15, 2026, at 10:00:00 (10:00:00 a.m.) UTC. For subscriptions created on the start date, the time value must be the current time and day in the applicable time zone.

Before creating a subscription, a Token Management Service (TMS) customer token is required. The subscription request uses values from the TMS response. For prerequisites and field mapping, see Subscriptions.

The endpoint is POST /rbs/v1/subscriptions. A 200-level response code indicates success.

For information about response codes, see Transaction Response Codes.

For information about response codes, see Transaction Response Codes.

For information about response codes, see Transaction Response Codes.

For information about response codes, see Transaction Response Codes.

For information about response codes, see Transaction Response Codes.

Fields specific to this use case

These fields define the one-time plan embedded in the subscription:

  • orderInformation.amountDetails.billingAmount
  • orderInformation.amountDetails.currency
  • orderInformation.amountDetails.setupFee
  • planInformation.billingCycles.total
  • planInformation.billingPeriod.length
  • planInformation.billingPeriod.unit
  • subscriptionInformation.startDate

Endpoint

POST /rbs/v1/subscriptions

POST /rbs/v1/subscriptions

Example

{    "subscriptionInformation": {        "name": "Custom subscription",        "startDate": "2026-01-15T10:00:00Z"    },    "paymentInformation": {        "customer": {            "id": "AB1234EFGH56I78K9012LMNO"        }    },    "planInformation": {        "billingPeriod": {            "unit": "m",            "length": "1"        },        "billingCycles": {            "total": "12"        }    },    "orderInformation": {        "amountDetails": {            "billingAmount": "15",            "currency": "USD",            "setupFee": "0"        }    }}
{    "_links": {        "self": {            "href": "/rbs/v1/subscriptions/1619212823",            "method": "GET"        }    },    "id": "1619212823",    "status": "PENDING"}
{    "status": "INVALID_REQUEST",    "reason": "INVALID_DATA",    "message": "One or more fields in the request contains invalid data.",    "details": [        {            "field": "planInformation.billingPeriod.unit",            "reason": "MISSING_FIELD"        }    ]}
FieldTypeDescription
orderInformation.amountDetails.billingAmountstringBilling amount.
orderInformation.amountDetails.currencystringCurrency.
orderInformation.amountDetails.setupFeestringSetup fee.
paymentInformation.customer.idstringTMS customer token ID.
planInformation.billingPeriod.lengthstringLength.
planInformation.billingPeriod.unitstringUnit.
subscriptionInformation.namestringName.
subscriptionInformation.startDatestringStart date.
Optional Fields
FieldTypeDescription
subscriptionInformation.originalTransactionIdstringNetwork transaction ID from the payment that initializes the subscription. Providing this value improves authorization rates and Strong Customer Authentication (SCA) compliance. This value is returned in the Payments response as processorInformation.networkTransactionId. For EFTPOS cards, a network token is not generated. In this case, provide the transaction request ID or use 0.
subscriptionInformation.codestringSubscription code for reference.
clientReferenceInformation.codestringMerchant reference number.

For more details, see the Create a Subscription section of the interactive API Reference.

Create a Follow-on Subscription

Creates a subscription from an existing payment transaction. The subscription uses the payment instrument and billing information from the existing transaction, so a customer token is not required.

The follow-on subscription can be assigned to an existing standard plan or to a one-time plan.

The start date must be in UTC in this format: YYYY-MM-DDThh:mm:ssZ. The T separates the date and the time. The Z indicates UTC. For example, 2026-01-15T10:00:00Z indicates January 15, 2026, at 10:00:00 (10:00:00 a.m.) UTC. For subscriptions created on the start date, the time value must be the current time and day in the applicable time zone.

For payment instrument and billing details, see the follow-on subscription endpoint in Manage Subscriptions.

Endpoint

POST /rbs/v1/subscriptions/follow-ons/{requestId}

POST /rbs/v1/subscriptions/follow-ons/{requestId}

Example

{    "subscriptionInformation": {        "planId": "1619212820",        "name": "Follow-on subscription",        "startDate": "2026-01-15T10:00:00Z"    }}
{    "_links": {        "self": {            "href": "/rbs/v1/subscriptions/1619212824",            "method": "GET"        }    },    "id": "1619212824",    "status": "PENDING"}
{    "status": "NOT_FOUND",    "reason": "TRANSACTION_NOT_FOUND",    "message": "The requested transaction was not found."}
FieldTypeDescription
subscriptionInformation.namestringSubscription name.
subscriptionInformation.startDatestringStart date in UTC format: YYYY-MM-DDThh:mm:ssZ.
Optional Fields
FieldTypeDescription
subscriptionInformation.codestringSubscription code for reference.
clientReferenceInformation.codestringMerchant reference number.

For more details, see the Create a Follow-on Subscription section of the interactive API Reference.

Amend a Subscription

Updates an existing Recurring Billing subscription. The subscription code, name, start date, TMS token, and plan assignment can be amended.

Endpoint

PATCH /rbs/v1/subscriptions/{id}

PATCH /rbs/v1/subscriptions/{id}

Example

{    "subscriptionInformation": {        "planId": "1619212825",        "name": "Updated subscription name"    }}
{    "_links": {        "self": {            "href": "/rbs/v1/subscriptions/1619212821",            "method": "GET"        }    },    "id": "1619212821",    "status": "COMPLETED"}
{    "status": "INVALID_REQUEST",    "reason": "INVALID_DATA",    "message": "One or more fields in the request contains invalid data.",    "details": [        {            "field": "subscriptionInformation.planId",            "reason": "NOT_FOUND"        }    ]}
Subscription StatusAmendable Fields
Delinquent, Suspended, Canceled, or CompletedOnly subscriptionInformation.code, subscriptionInformation.name, and clientReferenceInformation.code can be amended.
PendingAll fields can be amended except orderInformation.amountDetails.currency, paymentInformation.customer.id, planInformation.billingPeriod.length, and planInformation.billingPeriod.unit.
ActiveAll fields can be amended except orderInformation.amountDetails.currency, orderInformation.amountDetails.setupFee, paymentInformation.customer.id, planInformation.billingPeriod.length, and planInformation.billingPeriod.unit.

For more details, see the Amend a Subscription section of the interactive API Reference.

Cancel a Subscription

Cancels a Recurring Billing subscription. Subscriptions with a pending, active, suspended, or delinquent status can be canceled. A subscription cannot be canceled within 10 minutes of its next scheduled payment.

For more details, see the Cancel a Subscription section of the interactive API Reference.

Endpoint

POST /rbs/v1/subscriptions/{id}/cancel

POST /rbs/v1/subscriptions/{id}/cancel

Example

{    "_links": {        "self": {            "href": "/rbs/v1/subscriptions/1619212821",            "method": "GET"        }    },    "id": "1619212821",    "status": "ACCEPTED"}
{    "status": "NOT_FOUND",    "reason": "SUBSCRIPTION_NOT_FOUND",    "message": "The requested subscription was not found."}

Reactivate a Subscription

Reactivates a suspended Recurring Billing subscription. Canceled or completed subscriptions cannot be reactivated.

The processMissedPayments query parameter controls whether missed payments are collected:

  • true: collects missed payments when the subscription is reactivated.
  • false: does not collect missed payments.

The processMissedPayments parameter is only effective when the Ask each time option is selected in the recurring billing settings. To check how many payments were missed and the total amount, retrieve the subscription — the response includes reactivationInformation.missedPaymentsCount and reactivationInformation.missedPaymentsTotalAmount.

For more details, see the Reactivate a Subscription section of the interactive API Reference.

Endpoint

POST /rbs/v1/subscriptions/{id}/activate?processMissedPayments={true|false}

POST /rbs/v1/subscriptions/{id}/activate?processMissedPayments={true|false}

Example

{    "_links": {        "self": {            "href": "/rbs/v1/subscriptions/1619212821",            "method": "GET"        }    },    "id": "1619212821",    "status": "COMPLETED",    "subscriptionInformation": {        "status": "ACTIVE"    }}
{    "status": "INVALID_REQUEST",    "reason": "INVALID_FOR_ACTIVATION",    "message": "The subscription cannot be activated."}

Suspend a Subscription

Suspends a Recurring Billing subscription. Subscriptions with a pending, active, or delinquent status can be suspended. A subscription cannot be suspended within 10 minutes of its next scheduled payment.

For more details, see the Suspend a Subscription section of the interactive API Reference.

Endpoint

POST /rbs/v1/subscriptions/{id}/suspend

POST /rbs/v1/subscriptions/{id}/suspend

Example

{    "_links": {        "self": {            "href": "/rbs/v1/subscriptions/1619212821",            "method": "GET"        }    },    "id": "1619212821",    "status": "ACCEPTED",    "subscriptionInformation": {        "status": "ACTIVE"    }}
{    "status": "NOT_FOUND",    "reason": "SUBSCRIPTION_NOT_FOUND",    "message": "The requested subscription was not found."}

Skip or Restore a Payment

Skips or restores scheduled payments in a Recurring Billing subscription. Provide the billingCyclesToSkip array with the billing cycle numbers to skip. To restore a previously skipped payment, send the same request without that cycle number in the array.

Endpoint

POST /rbs/v1/subscriptions/{id}/payments

POST /rbs/v1/subscriptions/{id}/payments

Example

{    "billingCyclesToSkip": [4, 5]}
{    "_links": {        "self": {            "href": "/rbs/v1/subscriptions/1619212821/payments",            "method": "GET"        }    },    "id": "1619212821",    "status": "COMPLETED"}
{    "status": "INVALID_REQUEST",    "reason": "UNMODIFIABLE_PAYMENT_SKIP_ATTEMPT_CYCLE",    "message": "One or more billing cycles cannot be modified because they are currently in processing."}
{    "status": "NOT_FOUND",    "reason": "SUBSCRIPTION_NOT_FOUND",    "message": "The requested subscription was not found."}
FieldTypeDescription
billingCyclesToSkipstringArray of billing cycle numbers to skip. Send an empty array to restore all previously skipped payments.

For more details, see the Skip or Restore a Payment section of the interactive API Reference.

Retrieve a Subscription

Retrieves details for a specific Recurring Billing subscription.

Response details

The response returns this information:

  • Billing amount
  • Currency
  • Customer email
  • Customer first name
  • Customer ID
  • Customer last name
  • Next payment date
  • Number of billing cycles completed
  • Number of billing cycles remaining
  • Plan code
  • Plan ID
  • Plan name
  • Set-up fee
  • Start date
  • Subscription code
  • Subscription ID
  • Subscription name
  • Subscription status

For suspended subscriptions, the response also includes:

  • missedPaymentsCount: the number of payments missed during the suspension.
  • missedPaymentsTotalAmount: the total amount of payments missed during the suspension.

For more details, see the Retrieve a Subscription section of the interactive API Reference.

Endpoint

GET /rbs/v1/subscriptions/{id}

GET /rbs/v1/subscriptions/{id}

Example

{    "_links": {        "self": {            "href": "/rbs/v1/subscriptions/1619212821",            "method": "GET"        },        "update": {            "href": "/rbs/v1/subscriptions/1619212821",            "method": "PATCH"        },        "suspend": {            "href": "/rbs/v1/subscriptions/1619212821/suspend",            "method": "POST"        },        "cancel": {            "href": "/rbs/v1/subscriptions/1619212821/cancel",            "method": "POST"        }    },    "id": "1619212821",    "code": "SUB001",    "name": "Test subscription",    "status": "ACTIVE",    "planId": "1619212820",    "startDate": "2026-01-15T10:00:00Z",    "nextPaymentDate": "2023-08-18T22:47:57Z",    "billingAmount": "7",    "currency": "USD",    "setupFee": "0",    "billingCyclesCompleted": "2",    "billingCyclesRemaining": "2"}
{    "status": "NOT_FOUND",    "reason": "INVALID_DATA",    "details": []}

Retrieve a List of Subscriptions

Retrieves a list of Recurring Billing subscriptions. Results can be filtered, paginated, and sorted.

Query Parameters
  • planName: filter by plan name.
  • customerId: filter by TMS customer ID.
  • status: filter by subscription status.
  • customerFirstName: filter by customer first name.
  • customerLastName: filter by customer last name.
  • code: filter by subscription code.
  • plancode: filter by plan code.
  • offset: the number of records before the first record in the result set.
  • limit: the number of records in the result set. The default is 20. The maximum is 100.
Response details

The response returns this information for each subscription:

  • Billing amount
  • Currency
  • Customer email
  • Customer first name
  • Customer ID
  • Customer last name
  • Next payment date
  • Number of billing cycles completed
  • Number of billing cycles remaining
  • Plan code
  • Plan ID
  • Plan name
  • Set-up fee
  • Start date
  • Subscription code
  • Subscription ID
  • Subscription name
  • Subscription status

For more details, see the Retrieve a List of Subscriptions section of the interactive API Reference.

Endpoint

GET /rbs/v1/subscriptions

GET /rbs/v1/subscriptions

Example

{    "_links": {        "self": {            "href": "/rbs/v1/subscriptions?limit=20&offset=0",            "method": "GET"        },        "next": {            "href": "/rbs/v1/subscriptions?limit=20&offset=20",            "method": "GET"        }    },    "offset": 0,    "limit": 20,    "totalCount": 21,    "subscriptions": [        {            "id": "1619212821",            "code": "SUB001",            "name": "Test subscription",            "status": "ACTIVE",            "planId": "1619212820",            "startDate": "2026-01-15T10:00:00Z",            "nextPaymentDate": "2023-08-18T22:47:57Z",            "billingAmount": "7",            "currency": "USD",            "setupFee": "0"        }    ]}
{    "status": "NOT_FOUND",    "reason": "INVALID_DATA"}

Retrieve a List of Payments in a Subscription

Retrieves the list of payments in a Recurring Billing subscription, including past and scheduled payments.

Query Parameters
  • offset: the number of records before the first record in the result set.
  • limit: the number of records in the result set. The default is 20. The maximum is 100.
  • scheduledPaymentsCount: the number of future scheduled payments to include. The default is 5. The maximum is 9999.
Response details

The response returns:

  • totalCount: total number of payments in the subscription.
  • cyclesCompletedCount: number of billing cycles completed.
  • billingCyclesToSkip: array of billing cycle numbers currently set to skip.
  • subscriptionPayment: array of payment objects, each containing:
  • Authorization code (for processed payments)
  • Billing cycle number
  • Currency
  • Payment amount
  • Payment ID
  • Payment method type
  • Payment status
  • Processor transaction ID (for processed payments)
  • Request ID (for processed payments)
  • Response code (for processed payments)
  • Response reason code (for processed payments)
  • Scheduled payment date
  • Skip flag
  • Transaction ID (for processed payments)

For more details, see the Retrieve a List of Payments in a Subscription section of the interactive API Reference.

Endpoint

GET /rbs/v1/subscriptions/{id}/payments

GET /rbs/v1/subscriptions/{id}/payments

Example

{    "totalCount": 12,    "cyclesCompletedCount": 6,    "billingCyclesToSkip": [],    "subscriptionPayment": [        {            "paymentId": "1619212830",            "billingCycle": "1",            "scheduledPaymentDate": "2026-01-15T10:00:00Z",            "paymentAmount": "7",            "currency": "USD",            "status": "PROCESSED",            "transactionId": "1234567890",            "requestId": "ABC123"        },        {            "paymentId": "1619212831",            "billingCycle": "2",            "scheduledPaymentDate": "2023-08-18T22:47:57Z",            "paymentAmount": "7",            "currency": "USD",            "status": "PROCESSED"        },        {            "paymentId": "1619212832",            "billingCycle": "7",            "scheduledPaymentDate": "2023-09-22T22:47:57Z",            "paymentAmount": "7",            "currency": "USD",            "status": "SCHEDULED"        },        {            "paymentId": "1619212833",            "billingCycle": "8",            "scheduledPaymentDate": "2023-09-29T22:47:57Z",            "paymentAmount": "7",            "currency": "USD",            "status": "SCHEDULED"        },        {            "paymentId": "1619212834",            "billingCycle": "9",            "scheduledPaymentDate": "2023-10-06T22:47:57Z",            "paymentAmount": "7",            "currency": "USD",            "status": "SCHEDULED_SKIPPED"        },        {            "paymentId": "1619212835",            "billingCycle": "10",            "scheduledPaymentDate": "2023-10-13T22:47:57Z",            "paymentAmount": "7",            "currency": "USD",            "status": "SCHEDULED"        }    ]}
{    "status": "NOT_FOUND",    "reason": "INVALID_DATA"}

Retrieve Details for Follow-on Subscription Creation

Retrieves the payment instrument, billing, and shipping details from an existing transaction. Use this to verify the information before creating a follow-on subscription.

For more details, see the Retrieve Details for Follow-on Subscription Creation section of the interactive API Reference.

Endpoint

GET /rbs/v1/subscriptions/follow-ons/{requestId}

GET /rbs/v1/subscriptions/follow-ons/{requestId}

Example

{    "buyerInformation": {        "email": "[email protected]",        "firstName": "John",        "lastName": "Doe"    },    "paymentInstrument": {        "type": "CREDIT_CARD",        "card": {            "expirationMonth": "12",            "expirationYear": "2025",            "number": "411111XXXXXX1111",            "type": "001"        }    },    "shippingAddress": {        "firstName": "John",        "lastName": "Doe",        "address1": "1 Main Street",        "locality": "Mountain View",        "administrativeArea": "CA",        "postalCode": "94043",        "country": "US"    }}
{    "status": "NOT_FOUND",    "reason": "INVALID_DATA"}

Retrieve the Next Subscription Code

Retrieves the next consecutive subscription code that the system automatically assigns. Use this to preview the next code before creating a subscription.

For more details, see the Retrieve the Next Subscription Code section of the interactive API Reference.

Endpoint

GET /rbs/v1/subscriptions/code

GET /rbs/v1/subscriptions/code

Example

{    "code": "AWC-50"}
{    "status": "INVALID_REQUEST",    "reason": "INVALID_DATA",    "message": "One or more fields in the request contains invalid data."}

Last published: September 29, 2026