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/customers/[customer-id]/[payment-options]

Description:

Provides access to payment options associated with the specified customer.

Supported sub-resources:

Resource URL Description
https://[server-name]/api/v01/customers/[customer-id]/[payment-options]/[payment-option-id] Provides access to configuration settings for the specified payment option.

Supported Actions:

~create (request)

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

Creates a payment option.
Path Parameters:
# Name Type Pattern Format Mode Usage Description
1 customer-id Long O Unique Customer ID generated by the system.
For more information see term: Customer.
Body Parameters:
# Name Type Pattern Format Mode Usage Description
2 countryCode String(3) ALPHA O Country code of the customer's address.
3 token String(50) C O Unique random characters generated by the system for identifying and securely transmitting sensitive data.
4 accountAccessory String(80) NUMERIC R
5 holderName String(150) NAME R The value is a concatenation of the firstName and lastName field values separated by a space.
6 accountNumber String(80) C R
12 type Enum C O
13 isActive Boolean O
14 csc String NUMERIC O Card security code (CSC) of the customer's card.
15 street1 String(128) STREET O
16 street2 String(128) STREET O
17 city String(50) ALPHANUMERIC_EXTENDED O
18 state String(3) O
19 zipCode String(15) O
21 code String(60) CODE C O Code of Account to which instance of this object is attributed to. Depending on the context, Merchant Account Code field may contain either Merchant Code or Account Code. The field is primarily used for data partitioning and data management, to make it easy to determine the ownership of a record within the database.
22 accountId Integer O
24 token String C O Unique random characters (generated by the payment gateway) for identifying and securely transmitting sensitive data.

~create (response)

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

Creates a payment option.
Body Parameters:
# Name Type Pattern Format Mode Usage Description
1 cardType String R O Type of the card associated with payment option.
2 countryCode String(3) ALPHA O Country code of the customer's address.
3 token String(50) C O Unique random characters generated by the system used for filtering PaymentOption records.
4 accountAccessory String(80) NUMERIC R
5 holderName String(150) NAME R The value is a concatenation of the firstName and lastName field values separated by a space.
6 accountNumber String(80) C R
7 address String R O Combined address field of the customer.
Note: The value is a comma separated concatenation of the street1, street2, city, state, zipCode, countryCode field values.
8 createDate Datetime R O Date when the PaymentOption was created.
Note: In API request, the date must be submitted in yyyy-MM-dd format. In API response, the date is returned in yyyy-MM-dd HH:mm:ss format.
9 id Long R O Unique PaymentOption ID generated by the system.
For more information see term: Payment Option.
10 tokenCode String(512) R O
11 createDate Datetime R O Date when the record was created.

In API request, the date must be submitted in yyyy-MM-dd format.
In API response, the date is returned in yyyy-MM-dd HH:mm:ss format.
12 type Enum C O
13 isActive Boolean O
14 csc String NUMERIC O Card security code (CSC) of the customer's card.
15 street1 String(128) STREET O
16 street2 String(128) STREET O
17 city String(50) ALPHANUMERIC_EXTENDED O
18 state String(3) O
19 zipCode String(15) O
20 customerId Long R O Identifier of the customer within the gateway.
21 code String(60) CODE C O Code of Account to which instance of this object is attributed to. Depending on the context, Merchant Account Code field may contain either Merchant Code or Account Code. The field is primarily used for data partitioning and data management, to make it easy to determine the ownership of a record within the database.
22 accountId Integer O
23 address String R O Address associated with a payment card or bank account holder. The value is a concatenation of the street1, street2, city, state, zipCode, countryCode field values separated by commas (,).
24 token String C O Unique random characters (generated by the payment gateway) for identifying and securely transmitting sensitive data.

~find (request)

Method:  GET
Implicit:  Yes
Consumes:  xurl
Produces:  json,xml

Returns a list of available payment options associated with the specified customer.
Path Parameters:
# Name Type Pattern Format Mode Usage Description
1 customer-id Long O Unique Customer ID generated by the system.
For more information see term: Customer.
Body Parameters:
# Name Type Pattern Format Mode Usage Description
1 offset Integer O Index of the first record returned to the customer from the search result of a web search.
2 limit Integer O Maximum number of records to load per single search web call made by the customer.

~find (response)

Method:  GET
Implicit:  Yes
Consumes:  xurl
Produces:  json,xml

Returns a list of available payment options associated with the specified customer.
Body Parameters:
# Name Type Pattern Format Mode Usage Description
1 cardType String R O Type of the card associated with payment option.
2 countryCode String(3) ALPHA O Country code of the customer's address.
3 token String(50) C O Unique random characters generated by the system for identifying and securely transmitting sensitive data.
4 accountAccessory String(80) NUMERIC R
5 holderName String(150) NAME R The value is a concatenation of the firstName and lastName field values separated by a space.
6 accountNumber String(80) C R
7 address String R O Combined address field of the customer.
Note: The value is a comma separated concatenation of the street1, street2, city, state, zipCode, countryCode field values.
8 createDate Datetime R O Date when the PaymentOption was created.
Note: In API request, the date must be submitted in yyyy-MM-dd format. In API response, the date is returned in yyyy-MM-dd HH:mm:ss format.
9 id Long R O Unique PaymentOption ID generated by the system.
For more information see term: Payment Option.
10 tokenCode String(512) R O
11 createDate Datetime R O Date when the record was created.

In API request, the date must be submitted in yyyy-MM-dd format.
In API response, the date is returned in yyyy-MM-dd HH:mm:ss format.
12 type Enum C O
13 isActive Boolean O
14 csc String NUMERIC O Card security code (CSC) of the customer's card.
15 street1 String(128) STREET O
16 street2 String(128) STREET O
17 city String(50) ALPHANUMERIC_EXTENDED O
18 state String(3) O
19 zipCode String(15) O
20 customerId Long R O Identifier of the customer within the gateway.
21 code String(60) CODE C O Code of Account to which instance of this object is attributed to. Depending on the context, Merchant Account Code field may contain either Merchant Code or Account Code. The field is primarily used for data partitioning and data management, to make it easy to determine the ownership of a record within the database.
22 accountId Integer O
23 address String R O Address associated with a payment card or bank account holder. The value is a concatenation of the street1, street2, city, state, zipCode, countryCode field values separated by commas (,).
24 token String C O Unique random characters (generated by the payment gateway) for identifying and securely transmitting sensitive data.