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 plan to define recurring billing schedules. - Determines billing frequency and charge amount. - Can be configured for perpetual billing or fixed number of billing periods. - Foundational to subscription billing; ensure configuration matches pricing structure. - Multiple customers can subscribe to a single plan for standard pricing tiers.
Body Parameters:
# Name Type Pattern Format Mode Usage Description
1 billingCycleType Enum R Billing cycle type applied to the plan. This field is required.\n\r\n> **Note:** Default: `M` (Monthly). Determines how often customers are billed.
2 isActive Boolean R Indicates whether the plan is active within the system.\n\r\n> **Note:** Default: `true` (1). Inactive plans (false/0) cannot be subscribed to by customers but existing subscriptions remain unaffected.
3 taxAmount Integer O Tax amount (in cents) applied to the transaction.\n\r\n> **Note:** If you need to include taxes, specify the amount in cents separate from the base amount.
5 code String(60) CODE C O Unique plan ID provided by the external system or user.\n\r\n> **Note:** Optional secondary identifier that references an ID in your own system.
6 accountId Integer C R Specifies the merchant account to associate with the plan. This field is required for all plan operations.\n\r\n> **Note:** If your API user is associated with multiple merchant accounts, you must specify which account this plan belongs to.
8 name String(255) NAME R Name of the payment plan. This field is required.\n\r\n> **Note:** This name appears in reports and may be visible to customers depending on your implementation.
9 amount Integer R The amount charged on each billing cycle, specified in cents. This field is required.\n\r\n> **Note:** Specify amount in cents, not dollars. For example: $5.00 = 500 cents.
10 taxAmount Integer O Tax amount (in cents) applied to the transaction.\n\r\n> **Note:** If you need to include taxes, specify the amount in cents separate from the base amount.

~create (response)

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

Create payment plan to define recurring billing schedules. - Determines billing frequency and charge amount. - Can be configured for perpetual billing or fixed number of billing periods. - Foundational to subscription billing; ensure configuration matches pricing structure. - Multiple customers can subscribe to a single plan for standard pricing tiers.
Body Parameters:
# Name Type Pattern Format Mode Usage Description
1 billingCycleType Enum R Billing cycle type applied to the plan.\n\r\n> **Note:** Default: `M` (Monthly). This determines how often the customer is billed.
2 isActive Boolean R Indicates whether the plan is active within the system.\n\r\n> **Note:** Returned as true (1) or false (0). Default: `true`. Inactive plans cannot be subscribed to but existing subscriptions remain unaffected.
3 taxAmount Integer O Tax amount (in cents) applied to the transaction.\n\r\n> **Note:** This is the tax component specified separately from the base amount.
4 createDate Datetime R O Date when the plan was created.\n\r\n> **Note:** In the response, the date is returned with hour, minute, and second values, in the format yyyy-MM-dd HH:mm:ss.
5 code String(60) CODE C O Optional secondary identifier, typically referencing an ID in your external system.\n\r\n> **Note:** If not provided during creation, this value defaults to the plan's id returned in the response.
6 accountId Integer C R Specifies the merchant account associated with the plan. All customers under this merchant can access and subscribe to the plan. This field is required and cannot be changed after plan creation.
7 createDate Datetime R O Date when the plan was created.\n\r\n> **Note:** In the response, the date is returned with hour, minute, and second values, in the format yyyy-MM-dd HH:mm:ss.
8 name String(255) NAME R Name of the payment plan.\n\r\n> **Note:** This name appears in reports and may be visible to customers depending on your implementation.
9 amount Integer R The amount charged on each billing cycle, specified in cents.\n\r\n> **Note:** Amount is specified in cents, not dollars. For example: $5.00 = 500 cents.
10 taxAmount Integer O Tax amount (in cents) applied to the transaction.\n\r\n> **Note:** This is the tax component specified separately from the base amount.
11 id Long R O Unique identifier for the plan; auto-incremented integer value.\n\r\n> **Note:** This system-generated identifier can be used in subsequent API calls that reference this plan.

~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: `0`. Used with limit parameter for pagination.\n\r\n> **Tip:** Use this field for implementing paginated results.
2 limit Integer O Maximum number of records to load per search call.\n\r\n> **Note:** Default: `100`. Adjust based on performance requirements.\n\r\n> **Tip:** Use this field to balance response size and performance.
3 createDate Date O Date when the plan was created.\n\r\n> **Note:** Auto-generated by the system; do not include in the create request. Format: yyyy-MM-dd HH:mm:ss.
4 amount Integer O The amount charged on each billing cycle, specified in cents. This field is required.\n\r\n> **Note:** Specify amount in cents, not dollars. For example: $5.00 = 500 cents.
5 billingCycleType String O Billing cycle type applied to the plan. This field is required.\n\r\n> **Note:** Default: `M` (Monthly). Determines how often customers are billed.
6 accountId Integer O Specifies the merchant account to associate with the plan. This field is required for all plan operations.\n\r\n> **Note:** If your API user is associated with multiple merchant accounts, you must specify which account this plan belongs to.
7 name String O Name of the payment plan. This field is required.\n\r\n> **Note:** This name appears in reports and may be visible to customers depending on your implementation.
8 createDateFrom Date O Date when the plan was created.\n\r\n> **Note:** Auto-generated by the system; do not include in the create request. Format: yyyy-MM-dd HH:mm:ss.
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 amount charged on each billing cycle, specified in cents. This field is required.\n\r\n> **Note:** Specify amount in cents, not dollars. For example: $5.00 = 500 cents.
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 Billing cycle type applied to the plan.\n\r\n> **Note:** Default: `M` (Monthly). This determines how often the customer is billed.
2 isActive Boolean R Indicates whether the plan is active within the system.\n\r\n> **Note:** Returned as true (1) or false (0). Default: `true`. Inactive plans cannot be subscribed to but existing subscriptions remain unaffected.
3 taxAmount Integer O Tax amount (in cents) applied to the transaction.\n\r\n> **Note:** This is the tax component specified separately from the base amount.
4 createDate Datetime R O Date when the plan was created.\n\r\n> **Note:** In the response, the date is returned with hour, minute, and second values, in the format yyyy-MM-dd HH:mm:ss.
5 code String(60) CODE C O Optional secondary identifier, typically referencing an ID in your external system.\n\r\n> **Note:** If not provided during creation, this value defaults to the plan's id returned in the response.
6 accountId Integer C R Specifies the merchant account associated with the plan. All customers under this merchant can access and subscribe to the plan. This field is required and cannot be changed after plan creation.
7 createDate Datetime R O Date when the plan was created.\n\r\n> **Note:** In the response, the date is returned with hour, minute, and second values, in the format yyyy-MM-dd HH:mm:ss.
8 name String(255) NAME R Name of the payment plan.\n\r\n> **Note:** This name appears in reports and may be visible to customers depending on your implementation.
9 amount Integer R The amount charged on each billing cycle, specified in cents.\n\r\n> **Note:** Amount is specified in cents, not dollars. For example: $5.00 = 500 cents.
10 taxAmount Integer O Tax amount (in cents) applied to the transaction.\n\r\n> **Note:** This is the tax component specified separately from the base amount.
11 id Long R O Unique identifier for the plan; auto-incremented integer value.\n\r\n> **Note:** This system-generated identifier can be used in subsequent API calls that reference this plan.