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]/[transactions]

Description:

Provides access to the transactions associated with the specified customer.

Supported sub-resources:

Resource URL Description
https://[server-name]/api/v01/customers/[customer-id]/transactions/[transaction-id] Provides access to management of the specified transaction.

Supported Actions:

~create (request)

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

Creates a transaction 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 taxAmount Integer O Tax amount in cents.
3 invoiceList String(250) NUMERIC O List of invoice references that are expected to be covered by this transaction.
5 accountId Integer O
6 customerId Long O
8 dueDate Date C O The date must be submitted in yyyy-MM-dd format.
9 type Enum R
10 amount Integer C R
12 note String(255) TEXT C O
13 accountType Enum O
14 accountNumber String(19) C O
15 creatorCode String(60) CODE C O
16.21 accountNumber String NUMERIC O Number of a payment card or bank account that will be used during the transaction processing.
17 code String(60) CODE C O
19 feeAmount Integer O Fee amount (in cents) that will be associated with the transaction processing.

~create (response)

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

Creates a transaction associated with the specified customer.
Body Parameters:
# Name Type Pattern Format Mode Usage Description
1 taxAmount Integer O Tax amount in cents.
2 adjustmentId Long R O Identifier of an Adjustment that a Transaction is associated with.
3 invoiceList String(250) NUMERIC O List of invoice references used for filtering records.
4 id Long R O Unique Transaction ID generated by the system.
5 accountId Integer O
6 customerId Long O
7 createDate Datetime R O Date when the Transaction was created.
Note: Date format: yyyy-MM-dd.
8 dueDate Date C O The date must be submitted in yyyy-MM-dd format.
9 type Enum R
10 amount Integer C R
11 balance Integer R O Current balance of the Transaction.
12 note String(255) TEXT C O
13 accountType Enum O
14 accountNumber String(19) C O
15 creatorCode String(60) CODE C O
16 processingInfo ProcessingInfo R O Information associated with a processing of the transaction.
Note: This field only is included in a transaction record if the transaction has been processed.
16.1 city String(50) R O City of the Customer.
16.2 createDate Datetime R O Date when the ProcessingInfo 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.
16.3 id Long R O Unique ProcesingInfo ID generated by the system.
16.4 createDate Datetime R O Date when the ProcessingInfo 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.
16.5 holderName String(150) R O Combined values fo the firsetName and lastName in the Customer.
16.6 accountNumber String R O Number of a payment card or bank account.
16.7 accountAccessory String R O
16.8 token String(512) R O Unique random characters generated by the system for identifying and securely transmitting sensitive data.
16.9 street String(128) STREET R O Street address of the Customer.
16.10 state String(3) R O State of the Customer.
Note: State value format is subject to the associated country code in the Customer object.
16.11 zipCode String(15) R O ZIP/postal code of the Customer.
Note: ZipCode value format is subject to the associated country code in the Customer object.
16.12 phone String(20) R O Phone number of the Customer.
16.13 email String(100) R O Email address of the Customer.
16.14 gatewayTransactionId String(20) R O Identifier of a Transaction (Processing) that the current transaction is associated with.
16.15 approvalCode String(60) R O Code of the approval status of the transaction provided by the payment provider.
16.16 responseDate Datetime R O Date when the response to the transaction was received.
16.17 responseCode String(3) R O Code providing an explanation of the outcome of the request.
For more information see UniPay Codes & Code Mapping.
16.18 responseMessage String(255) R O Response details associated with a processing request, generated by the gateway.
16.19 address String R O Combined address field of the Customer object.
Note: The value is a comma separated concatenation of the street1, street2, city, state, zipCode, countryCode field values.
16.20 accountAccessory String NUMERIC R O Card expiration date or bank routing number.
Note: This field is required even if it is used with a token.
16.21 accountNumber String NUMERIC O Number of a payment card or bank account used for filtering ProcessingInfo records.
16.22 approvalCode String(60) NUMERIC R O Code of the approval status of the transaction provided by the payment provider.
16.23 city String(50) ALPHANUMERIC_EXTENDED R O City of the Customer.
16.24 email String(100) EMAIL R O Email address of the Customer.
16.25 phone String(20) NUMERIC R O Phone number of the Customer.
16.26 responseCode String(3) CODE R O Code providing an explanation of the outcome of the request.
For more information see UniPay Codes & Code Mapping.
16.27 responseMessage String(255) ALPHANUMERIC_EXTENDED R O Response details associated with a processing request, generated by the gateway.
16.28 state String(3) ALPHA R O State of the Customer.
Note: State value format is subject to the associated country code in the Customer object.
16.29 token String(512) TOKEN R O Unique random characters generated by the system for identifying and securely transmitting sensitive data.
16.30 zipCode String(15) ALPHANUMERIC_EXTENDED R O ZIP/postal code of the Customer.
Note: ZipCode value format is subject to the associated country code in the Customer object.
17 code String(60) CODE C O
18 subscriptionId Long R O Identifier of a Subscription that a Transaction is associated with.
Used for transactions of type: RI - Invoice.
Note: when the Invoice transaction is created based on a subscription.
For more information see Account Activity Classifier.
19 feeAmount Integer O Fee amount used for filtering Transaction records.

~find (request)

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

Returns a list of the transactions 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.
3 createDateFrom Date O The starting date for filtering transaction records; only records dated from this specific day onwards are included.
4 createDateTo Date O The concluding date for filtering transaction records; only records up to and through this specified date are included.

~find (response)

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

Returns a list of the transactions associated with the specified customer.
Body Parameters:
# Name Type Pattern Format Mode Usage Description
1 taxAmount Integer O Tax amount in cents.
2 adjustmentId Long R O Identifier of an Adjustment that a Transaction is associated with.
3 invoiceList String(250) NUMERIC O List of invoice references that are expected to be covered by this transaction.
4 id Long R O Unique Transaction ID generated by the system.
5 accountId Integer O
6 customerId Long O
7 createDate Datetime R O Date when the Transaction was created.
Note: Date format: yyyy-MM-dd.
8 dueDate Date C O The date must be submitted in yyyy-MM-dd format.
9 type Enum R
10 amount Integer C R
11 balance Integer R O Current balance of the Transaction.
12 note String(255) TEXT C O
13 accountType Enum O
14 accountNumber String(19) C O
15 creatorCode String(60) CODE C O
16 processingInfo ProcessingInfo R O Information associated with a processing of the transaction.
Note: This field only is included in a transaction record if the transaction has been processed.
16.1 city String(50) R O City of the Customer.
16.2 createDate Datetime R O Date when the ProcessingInfo 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.
16.3 id Long R O Unique ProcesingInfo ID generated by the system.
16.4 createDate Datetime R O Date when the ProcessingInfo 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.
16.5 holderName String(150) R O Combined values fo the firsetName and lastName in the Customer.
16.6 accountNumber String R O Number of a payment card or bank account.
16.7 accountAccessory String R O
16.8 token String(512) R O Unique random characters generated by the system for identifying and securely transmitting sensitive data.
16.9 street String(128) STREET R O Street address of the Customer.
16.10 state String(3) R O State of the Customer.
Note: State value format is subject to the associated country code in the Customer object.
16.11 zipCode String(15) R O ZIP/postal code of the Customer.
Note: ZipCode value format is subject to the associated country code in the Customer object.
16.12 phone String(20) R O Phone number of the Customer.
16.13 email String(100) R O Email address of the Customer.
16.14 gatewayTransactionId String(20) R O Identifier of a Transaction (Processing) that the current transaction is associated with.
16.15 approvalCode String(60) R O Code of the approval status of the transaction provided by the payment provider.
16.16 responseDate Datetime R O Date when the response to the transaction was received.
16.17 responseCode String(3) R O Code providing an explanation of the outcome of the request.
For more information see UniPay Codes & Code Mapping.
16.18 responseMessage String(255) R O Response details associated with a processing request, generated by the gateway.
16.19 address String R O Combined address field of the Customer object.
Note: The value is a comma separated concatenation of the street1, street2, city, state, zipCode, countryCode field values.
16.20 accountAccessory String NUMERIC R O Card expiration date or bank routing number.
Note: This field is required even if it is used with a token.
16.21 accountNumber String NUMERIC O Number of a payment card or bank account.
16.22 approvalCode String(60) NUMERIC R O Code of the approval status of the transaction provided by the payment provider.
16.23 city String(50) ALPHANUMERIC_EXTENDED R O City of the Customer.
16.24 email String(100) EMAIL R O Email address of the Customer.
16.25 phone String(20) NUMERIC R O Phone number of the Customer.
16.26 responseCode String(3) CODE R O Code providing an explanation of the outcome of the request.
For more information see UniPay Codes & Code Mapping.
16.27 responseMessage String(255) ALPHANUMERIC_EXTENDED R O Response details associated with a processing request, generated by the gateway.
16.28 state String(3) ALPHA R O State of the Customer.
Note: State value format is subject to the associated country code in the Customer object.
16.29 token String(512) TOKEN R O Unique random characters generated by the system for identifying and securely transmitting sensitive data.
16.30 zipCode String(15) ALPHANUMERIC_EXTENDED R O ZIP/postal code of the Customer.
Note: ZipCode value format is subject to the associated country code in the Customer object.
17 code String(60) CODE C O
18 subscriptionId Long R O Identifier of a Subscription that a Transaction is associated with.
Used for transactions of type: RI - Invoice.
Note: when the Invoice transaction is created based on a subscription.
For more information see Account Activity Classifier.
19 feeAmount Integer O Fee amount (in cents) associated with the transaction processing.

~process (request)

Method:  POST
Implicit:  No
Returns:  Transaction
Consumes:  json,xml
Produces:  json,xml

Creates and processes a transaction 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 code String CODE C O Unique ProcessingRequest 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.
3 feeAmount Integer O Fee amount (in cents) that will be associated with the transaction processing.
4 holderName String(150) NAME C O Name of a payment card or bank account holder. The value is a concatenation of the firstName and lastName field values separated by a space.
5 taxAmount Integer O
6 dueDate Date C O Date when the ProcessingRequest is expected to be completed.
7 invoiceList String(250) NUMERIC O List of invoice references that are expected to be covered by this transaction.
8 accountData String C O The date must be submitted in yyyy-MM-dd format.
9 accountAccessory String NUMERIC C O
10 accountNumber String C O
11 token String(512) TOKEN C O
12 csc String NUMERIC C O
13 street String(128) STREET C O
14 city String(50) ALPHANUMERIC_EXTENDED C O
15 state String(3) C O
16 zipCode String(15) C O
17 phone String(20) NUMERIC C O
18 email String(100) EMAIL C O
19 dueDate Date C O The date must be submitted in yyyy-MM-dd format.
20 type Enum C O
21 accountType Enum C O
22 creatorCode String(60) CODE C O
23 amount Integer R
24 note String(255) TEXT C O
25 accountId Integer O
26 countryCode String(3) ALPHA C O
27 code String CODE C O
28 feeAmount Integer O
29 accountData String ALPHANUMERIC_EXTENDED C O Track/EMV data or manually keyed number of a payment card.
30 accountNumber String NUMERIC C O Number of a payment card or bank account that will be used during the transaction processing.
For more information see Conditions determined by account data.
31 state String(3) ALPHA C O State of the Customer.
Note: State value format is subject to the associated country code in the Customer object.
32 zipCode String(15) ALPHANUMERIC_EXTENDED C O ZIP/postal code of the Customer.
Note: ZipCode value format is subject to the associated country code in the Customer object.

~process (response)

Method:  POST
Implicit:  No
Returns:  Transaction
Consumes:  json,xml
Produces:  json,xml

Creates and processes a transaction associated with the specified customer.
Body Parameters:
# Name Type Pattern Format Mode Usage Description
1 taxAmount Integer O Tax amount in cents.
2 adjustmentId Long R O Identifier of an Adjustment that a Transaction is associated with.
3 invoiceList String(250) NUMERIC O List of invoice references used for filtering records.
4 id Long R O Unique Transaction ID generated by the system.
5 accountId Integer O
6 customerId Long O
7 createDate Datetime R O Date when the Transaction was created.
Note: Date format: yyyy-MM-dd.
8 dueDate Date C O The date must be submitted in yyyy-MM-dd format.
9 type Enum R
10 amount Integer C R
11 balance Integer R O Current balance of the Transaction.
12 note String(255) TEXT C O
13 accountType Enum O
14 accountNumber String(19) C O
15 creatorCode String(60) CODE C O
16 processingInfo ProcessingInfo R O Information associated with a processing of the transaction.
Note: This field only is included in a transaction record if the transaction has been processed.
16.1 city String(50) R O City of the Customer.
16.2 createDate Datetime R O Date when the ProcessingInfo 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.
16.3 id Long R O Unique ProcesingInfo ID generated by the system.
16.4 createDate Datetime R O Date when the ProcessingInfo 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.
16.5 holderName String(150) R O Combined values fo the firsetName and lastName in the Customer.
16.6 accountNumber String R O Number of a payment card or bank account.
16.7 accountAccessory String R O
16.8 token String(512) R O Unique random characters generated by the system for identifying and securely transmitting sensitive data.
16.9 street String(128) STREET R O Street address of the Customer.
16.10 state String(3) R O State of the Customer.
Note: State value format is subject to the associated country code in the Customer object.
16.11 zipCode String(15) R O ZIP/postal code of the Customer.
Note: ZipCode value format is subject to the associated country code in the Customer object.
16.12 phone String(20) R O Phone number of the Customer.
16.13 email String(100) R O Email address of the Customer.
16.14 gatewayTransactionId String(20) R O Identifier of a Transaction (Processing) that the current transaction is associated with.
16.15 approvalCode String(60) R O Code of the approval status of the transaction provided by the payment provider.
16.16 responseDate Datetime R O Date when the response to the transaction was received.
16.17 responseCode String(3) R O Code providing an explanation of the outcome of the request.
For more information see UniPay Codes & Code Mapping.
16.18 responseMessage String(255) R O Response details associated with a processing request, generated by the gateway.
16.19 address String R O Combined address field of the Customer object.
Note: The value is a comma separated concatenation of the street1, street2, city, state, zipCode, countryCode field values.
16.20 accountAccessory String NUMERIC R O Card expiration date or bank routing number.
Note: This field is required even if it is used with a token.
16.21 accountNumber String NUMERIC O Number of a payment card or bank account used for filtering ProcessingInfo records.
16.22 approvalCode String(60) NUMERIC R O Code of the approval status of the transaction provided by the payment provider.
16.23 city String(50) ALPHANUMERIC_EXTENDED R O City of the Customer.
16.24 email String(100) EMAIL R O Email address of the Customer.
16.25 phone String(20) NUMERIC R O Phone number of the Customer.
16.26 responseCode String(3) CODE R O Code providing an explanation of the outcome of the request.
For more information see UniPay Codes & Code Mapping.
16.27 responseMessage String(255) ALPHANUMERIC_EXTENDED R O Response details associated with a processing request, generated by the gateway.
16.28 state String(3) ALPHA R O State of the Customer.
Note: State value format is subject to the associated country code in the Customer object.
16.29 token String(512) TOKEN R O Unique random characters generated by the system for identifying and securely transmitting sensitive data.
16.30 zipCode String(15) ALPHANUMERIC_EXTENDED R O ZIP/postal code of the Customer.
Note: ZipCode value format is subject to the associated country code in the Customer object.
17 code String(60) CODE C O
18 subscriptionId Long R O Identifier of a Subscription that a Transaction is associated with.
Used for transactions of type: RI - Invoice.
Note: when the Invoice transaction is created based on a subscription.
For more information see Account Activity Classifier.
19 feeAmount Integer O Fee amount used for filtering Transaction records.