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, XURL 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.


Billing APIs Code Samples

Create standard monthly and annual pricing Plans for service Subscriptions

A merchant has three-tiered pricing model and offers three different Plans for services packages with different features. The customers can choose to be billed either monthly or on an annual basis.


View Implementation:

1) Creating a Standard pricing Plan for $19.99 per month.
Method: PUT
Path: [version]/plans/~create
Value Name
code standard_monthly
accountId 2001
name Standard Monthly Plan
billingCycleType M
amount 1999
isActive true
{
"code":"standard_monthly",
"accountId":"2001",
"name":"Standard Monthly Plan",
"billingCycleType":"M",
"amount":"1999",
"isActive":"true"
}
2) Creating an Advanced pricing Plan for $49.99 per month.
Method: PUT
Path: [version]/plans/~create
Value Name
code advanced_monthly
accountId 2001
name Advanced Monthly Plan
billingCycleType M
amount 4999
isActive true
{
"code":"advanced_monthly",
"accountId":"2001",
"name":"Advanced Monthly Plan",
"billingCycleType":"M",
"amount":"4999",
"isActive":"true"
}
3) Creating an Enterprise pricing Plan for $99.99 per month.
Method: PUT
Path: [version]/plans/~create
Value Name
code enterprise_monthly
accountId 2001
name Enterprise Monthly Plan
billingCycleType M
amount 9999
isActive true
{
"code":"enterprise_monthly",
"accountId":"2001",
"name":"Enterprise Monthly Plan",
"billingCycleType":"M",
"amount":"9999",
"isActive":"true"
}
4) Creating a Standard pricing Plan for $190 per year.
Method: PUT
Path: [version]/plans/~create
Value Name
code standard_annual
accountId 2001
name Standard Annual Plan
billingCycleType A
amount 19000
isActive true
{
"code":"standard_annual",
"accountId":"2001",
"name":"Standard Annual Plan",
"billingCycleType":"A",
"amount":"19000",
"isActive":"true"
}
5) Creating an Advanced pricing Plan for $490 per year.
Method: PUT
Path: [version]/plans/~create
Value Name
code advanced_annual
accountId 2001
name Advanced Annual Plan
billingCycleType A
amount 49000
isActive true
{
"code":"advanced_annual",
"accountId":"2001",
"name":"Advanced Annual Plan",
"billingCycleType":"A",
"amount":"49000",
"isActive":"true"
}
6) Creating an Enterprise pricing Plan for $990 per year.
Method: PUT
Path: [version]/plans/~create
Value Name
code enterprise_annual
accountId 2001
name Enterprise Annual Plan
billingCycleType A
amount 99000
isActive true
{
"code":"enterprise_annual",
"accountId":"2001",
"name":"Enterprise Annual Plan",
"billingCycleType":"A",
"amount":"99000",
"isActive":"true"
}
1) Creating a Standard pricing Plan for $19.99 per month.
Method: PUT
Path: [version]/plans/~create
Value Name
code standard_monthly
accountId 2001
name Standard Monthly Plan
billingCycleType M
amount 1999
isActive true
<plan
    code = "standard_monthly" 
    accountId = "2001" 
    name = "Standard Monthly Plan" 
    billingCycleType = "M" 
    amount = "1999" 
    isActive = "true" 
/>
2) Creating an Advanced pricing Plan for $49.99 per month.
Method: PUT
Path: [version]/plans/~create
Value Name
code advanced_monthly
accountId 2001
name Advanced Monthly Plan
billingCycleType M
amount 4999
isActive true
<plan
    code = "advanced_monthly" 
    accountId = "2001" 
    name = "Advanced Monthly Plan" 
    billingCycleType = "M" 
    amount = "4999" 
    isActive = "true" 
/>
3) Creating an Enterprise pricing Plan for $99.99 per month.
Method: PUT
Path: [version]/plans/~create
Value Name
code enterprise_monthly
accountId 2001
name Enterprise Monthly Plan
billingCycleType M
amount 9999
isActive true
<plan
    code = "enterprise_monthly" 
    accountId = "2001" 
    name = "Enterprise Monthly Plan" 
    billingCycleType = "M" 
    amount = "9999" 
    isActive = "true" 
/>
4) Creating a Standard pricing Plan for $190 per year.
Method: PUT
Path: [version]/plans/~create
Value Name
code standard_annual
accountId 2001
name Standard Annual Plan
billingCycleType A
amount 19000
isActive true
<plan
    code = "standard_annual" 
    accountId = "2001" 
    name = "Standard Annual Plan" 
    billingCycleType = "A" 
    amount = "19000" 
    isActive = "true" 
/>
5) Creating an Advanced pricing Plan for $490 per year.
Method: PUT
Path: [version]/plans/~create
Value Name
code advanced_annual
accountId 2001
name Advanced Annual Plan
billingCycleType A
amount 49000
isActive true
<plan
    code = "advanced_annual" 
    accountId = "2001" 
    name = "Advanced Annual Plan" 
    billingCycleType = "A" 
    amount = "49000" 
    isActive = "true" 
/>
6) Creating an Enterprise pricing Plan for $990 per year.
Method: PUT
Path: [version]/plans/~create
Value Name
code enterprise_annual
accountId 2001
name Enterprise Annual Plan
billingCycleType A
amount 99000
isActive true
<plan
    code = "enterprise_annual" 
    accountId = "2001" 
    name = "Enterprise Annual Plan" 
    billingCycleType = "A" 
    amount = "99000" 
    isActive = "true" 
/>
1) Creating a Standard pricing Plan for $19.99 per month.
Method: PUT
Path: [version]/plans/~create
Parameters: code=standard_monthly&accountId=2001&name=Standard+Monthly+Plan&billingCycleType=M&amount=1999&isActive=true
Value Name
code standard_monthly
accountId 2001
name Standard Monthly Plan
billingCycleType M
amount 1999
isActive true
2) Creating an Advanced pricing Plan for $49.99 per month.
Method: PUT
Path: [version]/plans/~create
Parameters: code=advanced_monthly&accountId=2001&name=Advanced+Monthly+Plan&billingCycleType=M&amount=4999&isActive=true
Value Name
code advanced_monthly
accountId 2001
name Advanced Monthly Plan
billingCycleType M
amount 4999
isActive true
3) Creating an Enterprise pricing Plan for $99.99 per month.
Method: PUT
Path: [version]/plans/~create
Parameters: code=enterprise_monthly&accountId=2001&name=Enterprise+Monthly+Plan&billingCycleType=M&amount=9999&isActive=true
Value Name
code enterprise_monthly
accountId 2001
name Enterprise Monthly Plan
billingCycleType M
amount 9999
isActive true
4) Creating a Standard pricing Plan for $190 per year.
Method: PUT
Path: [version]/plans/~create
Parameters: code=standard_annual&accountId=2001&name=Standard+Annual+Plan&billingCycleType=A&amount=19000&isActive=true
Value Name
code standard_annual
accountId 2001
name Standard Annual Plan
billingCycleType A
amount 19000
isActive true
5) Creating an Advanced pricing Plan for $490 per year.
Method: PUT
Path: [version]/plans/~create
Parameters: code=advanced_annual&accountId=2001&name=Advanced+Annual+Plan&billingCycleType=A&amount=49000&isActive=true
Value Name
code advanced_annual
accountId 2001
name Advanced Annual Plan
billingCycleType A
amount 49000
isActive true
6) Creating an Enterprise pricing Plan for $990 per year.
Method: PUT
Path: [version]/plans/~create
Parameters: code=enterprise_annual&accountId=2001&name=Enterprise+Annual+Plan&billingCycleType=A&amount=99000&isActive=true
Value Name
code enterprise_annual
accountId 2001
name Enterprise Annual Plan
billingCycleType A
amount 99000
isActive true