Billing APIs

Introduction
Billing API is a RESTful API that allows setting up customers, collecting payments and maintaining balances for these customers, as well as creating recurring billing subscriptions.

Billing API documentation includes the following sections:

Objects - lists all recurring billing objects. The purpose of this section is to describe all object fields, their format and usage, provide the links to the corresponding database tables.

Type Enumerations – lists possible values that can be used in the respective fields within Billing API requests and responses. The purpose of this section is to provide an explanation of all enumerations used for API calls.

Actions - lists all actions that can be performed with key recurring billing objects. The purpose of this section is to describe the methods and format of API requests and the format of responses.

Integration Notes – lists integration notes associated with the Billing API objects and actions. The purpose of this section is to provide explicit information about the peculiarities of specific actions and object fields.

Code samples - provides examples of recurring billing use cases (creating billing plans, subscriptions, freeing or canceling subscriptions, reversing transactions, etc) and their implementation in JSON, XML formats. The purpose of this section is to provide examples that can be used for testing of the integration with the gateway.

To learn how to work with the Billing API, we recommend reviewing the integration notes first. Key recurring billing module terms are available here. For more detailed information about the recurring billing configurations and management, check the Recurring Billing Guide.

Base Resource URL:

https://[server-name]/api/v01/plans

Description:

Provides access to the pricing plans available within the system.

Supported sub-resources:

Resource URL Description
https://[server-name]/api/v01/plans/[plan-id] Provides access to configuration settings for the selected pricing plan.

Supported Actions:

~create (request)

Method:  PUT
Implicit:  Yes
Returns:  Plan
Consumes:  json,xml
Produces:  json,xml

Create payment plans to define recurring billing schedules for your customers' subscriptions.\n\r\n> **Note:** Payment plans determine how often and how much customers will be charged. They can be configured for perpetual billing or for a fixed number of billing periods.\n\r\n> **Warning:** Payment plans are foundational elements of the subscription billing system. Verify that the plan configuration aligns with your pricing structure before creating customer subscriptions.\n\r\n> **Tip:** Multiple customers can subscribe to a single payment plan, making it efficient for managing standard pricing tiers. Refer to the Billing Guide for complete implementation details.
Body Parameters:
# Name Type Pattern Format Mode Usage Description
1 billingCycleType Enum R Type of a billing cycle to be used.
For more information see Billing Cycle Classifier.
2 isActive Boolean R Status of the Plan.
Note: Values: true (active) or false (inactive).
3 taxAmount Integer O Tax amount (in cents) that will be associated with the transaction processing.
5 code String(60) CODE C O Unique Plan ID supplied by external/user's system.
Note: Optional secondary identifier. Typically this field is a reference to an ID in your own system to cross-reference it within our system. If not provided, the system will use the object 'id' generated at the time of object creation.
For more information see Reference Field Type.
6 accountId Integer C R Merchant account will be associated with Plan.
Note: If your API user is associated to more than one merchant account or group of merchant accounts, you can specify the merchant account ID for the ~find operation to reduce the data set in the API response.

Your API credentials may be associated with more than one accountId.
8 name String(255) NAME R Name of the Plan.
9 amount Integer R Amount (in cents) of the Plan.
Note: Amount charged every time billing occurs for this plan.
10 taxAmount Integer O Tax amount (in cents) that will be associated with the transaction processing.

~create (response)

Method:  PUT
Implicit:  Yes
Returns:  Plan
Consumes:  json,xml
Produces:  json,xml

Create payment plans to define recurring billing schedules for your customers' subscriptions.\n\r\n> **Note:** Payment plans determine how often and how much customers will be charged. They can be configured for perpetual billing or for a fixed number of billing periods.\n\r\n> **Warning:** Payment plans are foundational elements of the subscription billing system. Verify that the plan configuration aligns with your pricing structure before creating customer subscriptions.\n\r\n> **Tip:** Multiple customers can subscribe to a single payment plan, making it efficient for managing standard pricing tiers. Refer to the Billing Guide for complete implementation details.
Body Parameters:
# Name Type Pattern Format Mode Usage Description
1 billingCycleType Enum R Type of a billing cycle used for filtering Plan records.
2 isActive Boolean R Status of the Plan used as a search criteria to limit results.
3 taxAmount Integer O Tax amount (in cents) used for filtering Plan records.
4 createDate Datetime R O Date when the Plan was created.
5 code String(60) CODE C O Unique Plan ID used for filtering Plan records.
6 accountId Integer C R Merchant account associated with Plan used for filtering Plan records.
7 createDate Datetime R O Date when the Plan was created.
8 name String(255) NAME R Name of the Plan used for filtering Plan records.
9 amount Integer R Amount (in cents) used for filtering Plan records.
10 taxAmount Integer O Tax amount (in cents) used for filtering Plan records.
11 id Long R O Unique Plan ID generated by the system.

~find (request)

Method:  GET
Implicit:  Yes
Returns:  List<Plan>
Consumes:  xurl
Produces:  json,xml

Returns a list of available pricing plans based on specified search criteria.
Body Parameters:
# Name Type Pattern Format Mode Usage Description
1 offset Integer O Index of the first record returned from the search result.\n\r\n> **Note:** Default value is 0. Used with limit parameter for pagination.\n\r\n> **Tip:** Use this field for implementing paginated results. See Error Messages section for details on pagination issues.
2 limit Integer O Maximum number of records to load per search call.\n\r\n> **Note:** Default value is 100. Adjust based on performance requirements.\n\r\n> **Tip:** Use this field to balance response size and performance. See Webhooks Management Guide for details on handling large datasets.
3 createDate Date O Date used for filtering Plan records.
4 amount Integer O Amount used for filtering Plan records.
5 billingCycleType String O Type of a Billing Cycle used for filtering Plan records.
6 accountId Integer O Account ID used for filtering records.
7 name String O Name of the Plan used for filtering Plan records.
8 createDateFrom Date O Date when the pricing plan has been created.
9 createDateTo Date O The concluding date for filtering Plan records; only records up to and through this specified date are included.
10 amountFrom Integer O The starting date for filtering Plan records; only records dated from this specific day onwards are included.
11 amountTo Integer O The upper amount limit for filtering Plan records; only those with values up to and through this specified amount are included.

~find (response)

Method:  GET
Implicit:  Yes
Returns:  List<Plan>
Consumes:  xurl
Produces:  json,xml

Returns a list of available pricing plans based on specified search criteria.
Body Parameters:
# Name Type Pattern Format Mode Usage Description
1 billingCycleType Enum R Type of a billing cycle used.
For more information see Billing Cycle Classifier.
2 isActive Boolean R Status of the Plan.
Note: Values: true (active) or false (inactive).
3 taxAmount Integer O Tax amount (in cents) associated with the transaction processing.
4 createDate Datetime R O Date when the Plan was created.
5 code String(60) CODE C O Unique Plan ID supplied by external/user's system.
Note: Optional secondary identifier. Typically this field is a reference to an ID in your own system to cross-reference it within our system. If not provided, the system will use the object 'id' generated at the time of object creation.
For more information see Reference Field Type.
6 accountId Integer C R Merchant account associated with Plan.
Note: If your API user is associated to more than one merchant account or group of merchant accounts, you can specify the merchant account ID for the ~find operation to reduce the data set in the API response.

Your API credentials may be associated with more than one accountId.
7 createDate Datetime R O Date when the Plan was created.
8 name String(255) NAME R Name of the Plan.
9 amount Integer R Amount (in cents) of the Plan.
Note: Amount charged every time billing occurs for this plan.
10 taxAmount Integer O Tax amount (in cents) associated with the transaction processing.
11 id Long R O Unique Plan ID generated by the system.