CyberSource Subscriptions API

Create and manage Recurring Subscriptions. You have option to link subscription to plan or create independent subscriptions.

Operations 10

POST /rbs/v1/subscriptions Create a Subscription #
GET /rbs/v1/subscriptions Get a List of Subscriptions #
GET /rbs/v1/subscriptions/{id} Get a Subscription #
PATCH /rbs/v1/subscriptions/{id} Update a Subscription #
POST /rbs/v1/subscriptions/{id}/cancel Cancel a Subscription #
POST /rbs/v1/subscriptions/{id}/suspend Suspend a Subscription #
POST /rbs/v1/subscriptions/{id}/activate Reactivating a Suspended Subscription #
GET /rbs/v1/subscriptions/code Get a Subscription Code #
GET /rbs/v1/subscriptions/{id}/payments Get Payments for a Subscription #
PUT /rbs/v1/subscriptions/{id}/payments Update Payments for a subscription #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cybersource-subscriptions-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cybersource-subscriptions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html
  version: 0.0.1
  title: CyberSource Merged Spec bankAccountValidation Subscriptions API
servers:
- url: https://apitest.cybersource.com/
tags:
- name: Subscriptions
  description: 'Create and manage Recurring Subscriptions.


    You have option to link subscription to plan or create independent subscriptions.

    '
paths:
  /rbs/v1/subscriptions:
    post:
      summary: Create a Subscription
      description: Create a Recurring Billing Subscription
      tags:
      - Subscriptions
      x-devcenter-metaData:
        categoryTag: Recurring_Billing_Subscriptions
        developerGuides: https://developer.cybersource.com/docs/cybs/en-us/recurring-billing/developer/all/rest/recurring-billing-dev/recur-bill-dev-intro.html
        disableProcessorDropDown: true
        mleForRequest: optional
        mleForResponse: optional
      operationId: createSubscription
      responses:
        '201':
          description: Successful response.
          content:
            application/json:
              schema:
                title: createSubscriptionResponse
                type: object
                properties:
                  _links:
                    type: object
                    properties:
                      self:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                      update:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                      cancel:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                      suspend:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                      activate:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                  id:
                    type: string
                    maxLength: 26
                    description: 'An unique identification number generated by Cybersource to identify the submitted request. Returned by all services.

                      It is also appended to the endpoint of the resource.

                      On incremental authorizations, this value with be the same as the identification number returned in the original authorization response.

                      '
                  submitTimeUtc:
                    type: string
                    description: 'Time of request in UTC. Format: `YYYY-MM-DDThh:mm:ssZ`

                      **Example** `2016-08-11T22:47:57Z` equals August 11, 2016, at 22:47:57 (10:47:57 p.m.).

                      The `T` separates the date and the time. The `Z` indicates UTC.


                      Returned by Cybersource for all services.

                      '
                  status:
                    type: string
                    description: "The status of the submitted transaction.\n\nPossible values:\n - COMPLETED\n - DECLINED\n"
                  subscriptionInformation:
                    type: object
                    properties:
                      code:
                        type: string
                        maxLength: 10
                        description: 'Subscription code.

                          '
                      status:
                        type: string
                        description: "Subscription Status:\n - `PENDING`\n - `ACTIVE`\n - `FAILED`\n"
                  clientReferenceInformation:
                    type: object
                    properties:
                      code:
                        description: '

                          Merchant-generated order reference or tracking number. It is recommended that you send a unique value for each

                          transaction so that you can perform meaningful searches for the transaction.


                          #### Used by

                          **Authorization**

                          Required field.


                          #### PIN Debit

                          Requests for PIN debit reversals need to use the same merchant reference number that was used in the transaction that is being

                          reversed.


                          Required field for all PIN Debit requests (purchase, credit, and reversal).


                          #### FDC Nashville Global

                          Certain circumstances can cause the processor to truncate this value to 15 or 17 characters for Level II and Level III processing, which can cause a discrepancy between the value you submit and the value included in some processor reports.

                          '
                        type: string
                        maxLength: 59
                example:
                  _links:
                    self:
                      href: /rbs/v1/subscriptions/4567000000000123456789
                      method: GET
                    update:
                      href: /rbs/v1/subscriptions/4567000000000123456789
                      method: PATCH
                    cancel:
                      href: /rbs/v1/subscriptions/4567000000000123456789/cancel
                      method: POST
                    suspend:
                      href: /rbs/v1/subscriptions/4567000000000123456789/suspend
                      method: POST
                    activate:
                      href: /rbs/v1/subscriptions/4567000000000123456789/activate
                      method: POST
                  id: '4567000000000123456789'
                  submitTimeUtc: 2020-11-01T071957Z
                  status: COMPLETED
                  subscriptionInformation:
                    code: SUB1
                    status: ACTIVE
            application/hal+json:
              schema:
                title: createSubscriptionResponse
                type: object
                properties:
                  _links:
                    type: object
                    properties:
                      self:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                      update:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                      cancel:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                      suspend:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                      activate:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                  id:
                    type: string
                    maxLength: 26
                    description: 'An unique identification number generated by Cybersource to identify the submitted request. Returned by all services.

                      It is also appended to the endpoint of the resource.

                      On incremental authorizations, this value with be the same as the identification number returned in the original authorization response.

                      '
                  submitTimeUtc:
                    type: string
                    description: 'Time of request in UTC. Format: `YYYY-MM-DDThh:mm:ssZ`

                      **Example** `2016-08-11T22:47:57Z` equals August 11, 2016, at 22:47:57 (10:47:57 p.m.).

                      The `T` separates the date and the time. The `Z` indicates UTC.


                      Returned by Cybersource for all services.

                      '
                  status:
                    type: string
                    description: "The status of the submitted transaction.\n\nPossible values:\n - COMPLETED\n - DECLINED\n"
                  subscriptionInformation:
                    type: object
                    properties:
                      code:
                        type: string
                        maxLength: 10
                        description: 'Subscription code.

                          '
                      status:
                        type: string
                        description: "Subscription Status:\n - `PENDING`\n - `ACTIVE`\n - `FAILED`\n"
                  clientReferenceInformation:
                    type: object
                    properties:
                      code:
                        description: '

                          Merchant-generated order reference or tracking number. It is recommended that you send a unique value for each

                          transaction so that you can perform meaningful searches for the transaction.


                          #### Used by

                          **Authorization**

                          Required field.


                          #### PIN Debit

                          Requests for PIN debit reversals need to use the same merchant reference number that was used in the transaction that is being

                          reversed.


                          Required field for all PIN Debit requests (purchase, credit, and reversal).


                          #### FDC Nashville Global

                          Certain circumstances can cause the processor to truncate this value to 15 or 17 characters for Level II and Level III processing, which can cause a discrepancy between the value you submit and the value included in some processor reports.

                          '
                        type: string
                        maxLength: 59
                example:
                  _links:
                    self:
                      href: /rbs/v1/subscriptions/4567000000000123456789
                      method: GET
                    update:
                      href: /rbs/v1/subscriptions/4567000000000123456789
                      method: PATCH
                    cancel:
                      href: /rbs/v1/subscriptions/4567000000000123456789/cancel
                      method: POST
                    suspend:
                      href: /rbs/v1/subscriptions/4567000000000123456789/suspend
                      method: POST
                    activate:
                      href: /rbs/v1/subscriptions/4567000000000123456789/activate
                      method: POST
                  id: '4567000000000123456789'
                  submitTimeUtc: 2020-11-01T071957Z
                  status: COMPLETED
                  subscriptionInformation:
                    code: SUB1
                    status: ACTIVE
            application/json;charset=utf-8:
              schema:
                title: createSubscriptionResponse
                type: object
                properties:
                  _links:
                    type: object
                    properties:
                      self:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                      update:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                      cancel:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                      suspend:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                      activate:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                  id:
                    type: string
                    maxLength: 26
                    description: 'An unique identification number generated by Cybersource to identify the submitted request. Returned by all services.

                      It is also appended to the endpoint of the resource.

                      On incremental authorizations, this value with be the same as the identification number returned in the original authorization response.

                      '
                  submitTimeUtc:
                    type: string
                    description: 'Time of request in UTC. Format: `YYYY-MM-DDThh:mm:ssZ`

                      **Example** `2016-08-11T22:47:57Z` equals August 11, 2016, at 22:47:57 (10:47:57 p.m.).

                      The `T` separates the date and the time. The `Z` indicates UTC.


                      Returned by Cybersource for all services.

                      '
                  status:
                    type: string
                    description: "The status of the submitted transaction.\n\nPossible values:\n - COMPLETED\n - DECLINED\n"
                  subscriptionInformation:
                    type: object
                    properties:
                      code:
                        type: string
                        maxLength: 10
                        description: 'Subscription code.

                          '
                      status:
                        type: string
                        description: "Subscription Status:\n - `PENDING`\n - `ACTIVE`\n - `FAILED`\n"
                  clientReferenceInformation:
                    type: object
                    properties:
                      code:
                        description: '

                          Merchant-generated order reference or tracking number. It is recommended that you send a unique value for each

                          transaction so that you can perform meaningful searches for the transaction.


                          #### Used by

                          **Authorization**

                          Required field.


                          #### PIN Debit

                          Requests for PIN debit reversals need to use the same merchant reference number that was used in the transaction that is being

                          reversed.


                          Required field for all PIN Debit requests (purchase, credit, and reversal).


                          #### FDC Nashville Global

                          Certain circumstances can cause the processor to truncate this value to 15 or 17 characters for Level II and Level III processing, which can cause a discrepancy between the value you submit and the value included in some processor reports.

                          '
                        type: string
                        maxLength: 59
                example:
                  _links:
                    self:
                      href: /rbs/v1/subscriptions/4567000000000123456789
                      method: GET
                    update:
                      href: /rbs/v1/subscriptions/4567000000000123456789
                      method: PATCH
                    cancel:
                      href: /rbs/v1/subscriptions/4567000000000123456789/cancel
                      method: POST
                    suspend:
                      href: /rbs/v1/subscriptions/4567000000000123456789/suspend
                      method: POST
                    activate:
                      href: /rbs/v1/subscriptions/4567000000000123456789/activate
                      method: POST
                  id: '4567000000000123456789'
                  submitTimeUtc: 2020-11-01T071957Z
                  status: COMPLETED
                  subscriptionInformation:
                    code: SUB1
                    status: ACTIVE
            application/hal+json;charset=utf-8:
              schema:
                title: createSubscriptionResponse
                type: object
                properties:
                  _links:
                    type: object
                    properties:
                      self:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                      update:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                      cancel:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                      suspend:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                      activate:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                  id:
                    type: string
                    maxLength: 26
                    description: 'An unique identification number generated by Cybersource to identify the submitted request. Returned by all services.

                      It is also appended to the endpoint of the resource.

                      On incremental authorizations, this value with be the same as the identification number returned in the original authorization response.

                      '
                  submitTimeUtc:
                    type: string
                    description: 'Time of request in UTC. Format: `YYYY-MM-DDThh:mm:ssZ`

                      **Example** `2016-08-11T22:47:57Z` equals August 11, 2016, at 22:47:57 (10:47:57 p.m.).

                      The `T` separates the date and the time. The `Z` indicates UTC.


                      Returned by Cybersource for all services.

                      '
                  status:
                    type: string
                    description: "The status of the submitted transaction.\n\nPossible values:\n - COMPLETED\n - DECLINED\n"
                  subscriptionInformation:
                    type: object
                    properties:
                      code:
                        type: string
                        maxLength: 10
                        description: 'Subscription code.

                          '
                      status:
                        type: string
                        description: "Subscription Status:\n - `PENDING`\n - `ACTIVE`\n - `FAILED`\n"
                  clientReferenceInformation:
                    type: object
                    properties:
                      code:
                        description: '

                          Merchant-generated order reference or tracking number. It is recommended that you send a unique value for each

                          transaction so that you can perform meaningful searches for the transaction.


                          #### Used by

                          **Authorization**

                          Required field.


                          #### PIN Debit

                          Requests for PIN debit reversals need to use the same merchant reference number that was used in the transaction that is being

                          reversed.


                          Required field for all PIN Debit requests (purchase, credit, and reversal).


                          #### FDC Nashville Global

                          Certain circumstances can cause the processor to truncate this value to 15 or 17 characters for Level II and Level III processing, which can cause a discrepancy between the value you submit and the value included in some processor reports.

                          '
                        type: string
                        maxLength: 59
                example:
                  _links:
                    self:
                      href: /rbs/v1/subscriptions/4567000000000123456789
                      method: GET
                    update:
                      href: /rbs/v1/subscriptions/4567000000000123456789
                      method: PATCH
                    cancel:
                      href: /rbs/v1/subscriptions/4567000000000123456789/cancel
                      method: POST
                    suspend:
                      href: /rbs/v1/subscriptions/4567000000000123456789/suspend
                      method: POST
                    activate:
                      href: /rbs/v1/subscriptions/4567000000000123456789/activate
                      method: POST
                  id: '4567000000000123456789'
                  submitTimeUtc: 2020-11-01T071957Z
                  status: COMPLETED
                  subscriptionInformation:
                    code: SUB1
                    status: ACTIVE
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  submitTimeUtc:
                    type: string
                    description: 'Time of request in UTC. Format: `YYYY-MM-DDThh:mm:ssZ`

                      **Example** `2016-08-11T22:47:57Z` equals August 11, 2016, at 22:47:57 (10:47:57 p.m.).

                      The `T` separates the date and the time. The `Z` indicates UTC.


                      Returned by Cybersource for all services.

                      '
                  status:
                    type: string
                    description: "The status of the submitted transaction.\n\nPossible values:\n - INVALID_REQUEST\n"
                  reason:
                    type: string
                    description: "The reason of the status.\n\nPossible values:\n - MISSING_FIELD\n - INVALID_DATA\n - DUPLICATE_REQUEST\n - INVALID_CARD\n - CARD_TYPE_NOT_ACCEPTED\n - INVALID_MERCHANT_CONFIGURATION\n - PROCESSOR_UNAVAILABLE\n - INVALID_CARD_TYPE\n"
                  message:
                    type: string
                    description: The detail message related to the status and reason listed above.
                  details:
                    type: array
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                          description: This is the flattened JSON object field name/path that is either missing or invalid.
                        reason:
                          type: string
                          description: "Possible reasons for the error.\n\nPossible values:\n - MISSING_FIELD\n - INVALID_DATA\n"
            application/hal+json:
              schema:
                type: object
                properties:
                  submitTimeUtc:
                    type: string
                    description: 'Time of request in UTC. Format: `YYYY-MM-DDThh:mm:ssZ`

                      **Example** `2016-08-11T22:47:57Z` equals August 11, 2016, at 22:47:57 (10:47:57 p.m.).

                      The `T` separates the date and the time. The `Z` indicates UTC.


                      Returned by Cybersource for all services.

                      '
                  status:
                    type: string
                    description: "The status of the submitted transaction.\n\nPossible values:\n - INVALID_REQUEST\n"
                  reason:
                    type: string
                    description: "The reason of the status.\n\nPossible values:\n - MISSING_FIELD\n - INVALID_DATA\n - DUPLICATE_REQUEST\n - INVALID_CARD\n - CARD_TYPE_NOT_ACCEPTED\n - INVALID_MERCHANT_CONFIGURATION\n - PROCESSOR_UNAVAILABLE\n - INVALID_CARD_TYPE\n"
                  message:
                    type: string
                    description: The detail message related to the status and reason listed above.
                  details:
                    type: array
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                          description: This is the flattened JSON object field name/path that is either missing or invalid.
                        reason:
                          type: string
                          description: "Possible reasons for the error.\n\nPossible values:\n - MISSING_FIELD\n - INVALID_DATA\n"
            application/json;charset=utf-8:
              schema:
                type: object
                properties:
                  submitTimeUtc:
                    type: string
                    description: 'Time of request in UTC. Format: `YYYY-MM-DDThh:mm:ssZ`

                      **Example** `2016-08-11T22:47:57Z` equals August 11, 2016, at 22:47:57 (10:47:57 p.m.).

                      The `T` separates the date and the time. The `Z` indicates UTC.


                      Returned by Cybersource for all services.

                      '
                  status:
                    type: string
                    description: "The status of the submitted transaction.\n\nPossible values:\n - INVALID_REQUEST\n"
                  reason

# --- truncated at 32 KB (354 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cybersource/refs/heads/main/openapi/cybersource-subscriptions-api-openapi.yml