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/[transaction-id]

Description:

Provides access to management of the specified transaction.

Supported sub-resources:

Resource URL Description
https://[server-name]/api/v01/customers/[customer-id]/transactions/[transaction-id]/allocations Represents allocations of funds across transactions (for example between payments and invoices).
https://[server-name]/api/v01/customers/[customer-id]/transactions/[transaction-id]/[allocations] Represents allocations of funds across transactions (for example between payments and invoices).

Supported Actions:

~load (request)

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

Returns data associated with the specified transaction.
Path Parameters:
# Name Type Pattern Format Mode Usage Description
1 customer-id Long O System-generated unique identifier for the customer.\n\r\n> **Note:** Automatically generated by the system. This field must not be provided in your request.
2 transaction-id Long O Unique Transaction ID generated by the system.

~load (response)

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

Returns data associated with the specified transaction.
Body Parameters:
# Name Type Pattern Format Mode Usage Description
1 taxAmount Integer O Tax amount in cents.\n\r\n> **Note:** Specified in cents, not dollars. For example, $5.00 = 500 cents.\n\r\n> **Tip:** This value supports tax reporting and reconciliation requirements.
2 adjustmentId Long R O Identifier of an Adjustment that the transaction is associated with.\n\r\n> **Note:** This field links the transaction to a specific adjustment record in the system.\n\r\n> **Tip:** This value enables monitoring adjustments that affected this transaction.
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.\n\r\n> **Note:** This identifier is used for referencing the transaction in subsequent API calls.\n\r\n> **Tip:** Store this value to maintain the relationship between your records and the payment platform.
5 accountId Integer O Specifies which merchant account was used with this API call.\n\r\n> **Note:** Your API credentials may be associated with more than one accountId.\n\r\n> **Tip:** Ensure this value reflects the correct merchant account to confirm proper transaction routing.
6 customerId Long O The ID of the Customer in the system.\n\r\n> **Note:** This field identifies the customer to whom the invoice was issued.\n\r\n> **Tip:** Reference this identifier for subsequent API calls related to this customer.
7 createDate Datetime R O Date when the transaction was created.\n\r\n> **Note:** In the response, the date is returned in yyyy-MM-dd HH:mm:ss format, which includes time components not required in the request.\n\r\n> **Tip:** This timestamp supports reconciliation and auditing processes.
8 dueDate Date C O Date when the transaction is due.\n\r\n> **Note:** Returned in yyyy-MM-dd format. If not provided in the request, defaults to the transaction creation date.\n\r\n> **Tip:** This date supports accounts receivable aging reports and collection activities.
9 type Enum R Type of the Transaction that was created.\n\r\n> **Note:** This field indicates how the transaction is categorized in the system.\n\r\n> **Tip:** Confirm this value matches the expected transaction type for validation.
10 amount Integer C R Total amount of the transaction in cents.\n\r\n> **Note:** Specified in cents, not dollars. For example, $5.00 = 500 cents.\n\r\n> **Tip:** Verify this value matches your expected amount to ensure transaction accuracy.
11 balance Integer R O Current outstanding balance on this transaction, in cents.\n\r\n> **Note:** For newly created invoices, this will typically match the amount field until payments are applied.\n\r\n> **Tip:** Monitor this value to track the remaining amount due on the invoice.
12 note String(255) TEXT C O Any notes related to the transaction.\n\r\n> **Note:** This field returns any notes that were included in the request. Limited to 255 characters.\n\r\n> **Tip:** This information provides context for the transaction that may be helpful for future reference.
13 accountType Enum O Type of account associated with the transaction.\n\r\n> **Note:** This field indicates how the transaction is categorized in the system.\n\r\n> **Tip:** Verify this value to ensure proper transaction categorization.
14 accountNumber String(19) C O Account number associated with the transaction. Contains sensitive payment information that should be properly secured.\n\r\n> **Note:** This field is used for reference purposes when linking transactions to specific accounts.\n\r\n> **Tip:** Consider using tokenization instead of raw account numbers for enhanced security.
15 creatorCode String(60) CODE C O Code of the user that created the transaction.\n\r\n> **Note:** If not provided in the request, defaults to the API user's username. Limited to 60 characters.\n\r\n> **Tip:** This information supports auditing which user or system created each transaction.
16 processingInfo ProcessingInfo R O Information associated with transaction processing within internal and external systems.\n\r\n> **Note:** This object contains details about how the transaction was processed.\n\r\n> **Tip:** This object provides the complete processing context of the transaction.
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 Optional secondary identifier that references your system's transaction ID.\n\r\n> **Note:** If not provided in the request, this field will contain the same value as the id field.\n\r\n> **Tip:** This value simplifies matching transactions with your internal records.
18 subscriptionId Long R O Identifier of a Subscription that the transaction is associated with.\n\r\n> **Note:** This field is relevant for transactions of type 'RI' (Invoice) that were created based on a subscription.\n\r\n> **Tip:** This value helps track which subscription generated this invoice.
19 feeAmount Integer O Fee amount (in cents) associated with the transaction processing.\n\r\n> **Note:** Specified in cents, not dollars. For example, $5.00 = 500 cents.\n\r\n> **Tip:** This value allows tracking processing fees separately from the main transaction amount.

~reverse (request)

Method:  GET
Implicit:  No
Returns:  Transaction
Consumes:  xurl
Produces:  json,xml,xurl

Reverses/voids the specified transaction.
Path Parameters:
# Name Type Pattern Format Mode Usage Description
1 customer-id Long O System-generated unique identifier for the customer.\n\r\n> **Note:** Automatically generated by the system. This field must not be provided in your request.
2 transaction-id Long O Unique Transaction ID generated by the system.

~reverse (response)

Method:  GET
Implicit:  No
Returns:  Transaction
Consumes:  xurl
Produces:  json,xml,xurl

Reverses/voids the specified transaction.
Body Parameters:
# Name Type Pattern Format Mode Usage Description
1 taxAmount Integer O Tax amount in cents.\n\r\n> **Note:** Specified in cents, not dollars. For example, $5.00 = 500 cents.\n\r\n> **Tip:** This value supports tax reporting and reconciliation requirements.
2 adjustmentId Long R O Identifier of an Adjustment that the transaction is associated with.\n\r\n> **Note:** This field links the transaction to a specific adjustment record in the system.\n\r\n> **Tip:** This value enables monitoring adjustments that affected this transaction.
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.\n\r\n> **Note:** This identifier is used for referencing the transaction in subsequent API calls.\n\r\n> **Tip:** Store this value to maintain the relationship between your records and the payment platform.
5 accountId Integer O Specifies which merchant account was used with this API call.\n\r\n> **Note:** Your API credentials may be associated with more than one accountId.\n\r\n> **Tip:** Ensure this value reflects the correct merchant account to confirm proper transaction routing.
6 customerId Long O The ID of the Customer in the system.\n\r\n> **Note:** This field identifies the customer to whom the invoice was issued.\n\r\n> **Tip:** Reference this identifier for subsequent API calls related to this customer.
7 createDate Datetime R O Date when the transaction was created.\n\r\n> **Note:** In the response, the date is returned in yyyy-MM-dd HH:mm:ss format, which includes time components not required in the request.\n\r\n> **Tip:** This timestamp supports reconciliation and auditing processes.
8 dueDate Date C O Date when the transaction is due.\n\r\n> **Note:** Returned in yyyy-MM-dd format. If not provided in the request, defaults to the transaction creation date.\n\r\n> **Tip:** This date supports accounts receivable aging reports and collection activities.
9 type Enum R Type of the Transaction that was created.\n\r\n> **Note:** This field indicates how the transaction is categorized in the system.\n\r\n> **Tip:** Confirm this value matches the expected transaction type for validation.
10 amount Integer C R Total amount of the transaction in cents.\n\r\n> **Note:** Specified in cents, not dollars. For example, $5.00 = 500 cents.\n\r\n> **Tip:** Verify this value matches your expected amount to ensure transaction accuracy.
11 balance Integer R O Current outstanding balance on this transaction, in cents.\n\r\n> **Note:** For newly created invoices, this will typically match the amount field until payments are applied.\n\r\n> **Tip:** Monitor this value to track the remaining amount due on the invoice.
12 note String(255) TEXT C O Any notes related to the transaction.\n\r\n> **Note:** This field returns any notes that were included in the request. Limited to 255 characters.\n\r\n> **Tip:** This information provides context for the transaction that may be helpful for future reference.
13 accountType Enum O Type of account associated with the transaction.\n\r\n> **Note:** This field indicates how the transaction is categorized in the system.\n\r\n> **Tip:** Verify this value to ensure proper transaction categorization.
14 accountNumber String(19) C O Account number associated with the transaction. Contains sensitive payment information that should be properly secured.\n\r\n> **Note:** This field is used for reference purposes when linking transactions to specific accounts.\n\r\n> **Tip:** Consider using tokenization instead of raw account numbers for enhanced security.
15 creatorCode String(60) CODE C O Code of the user that created the transaction.\n\r\n> **Note:** If not provided in the request, defaults to the API user's username. Limited to 60 characters.\n\r\n> **Tip:** This information supports auditing which user or system created each transaction.
16 processingInfo ProcessingInfo R O Information associated with transaction processing within internal and external systems.\n\r\n> **Note:** This object contains details about how the transaction was processed.\n\r\n> **Tip:** This object provides the complete processing context of the transaction.
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 Optional secondary identifier that references your system's transaction ID.\n\r\n> **Note:** If not provided in the request, this field will contain the same value as the id field.\n\r\n> **Tip:** This value simplifies matching transactions with your internal records.
18 subscriptionId Long R O Identifier of a Subscription that the transaction is associated with.\n\r\n> **Note:** This field is relevant for transactions of type 'RI' (Invoice) that were created based on a subscription.\n\r\n> **Tip:** This value helps track which subscription generated this invoice.
19 feeAmount Integer O Fee amount (in cents) associated with the transaction processing.\n\r\n> **Note:** Specified in cents, not dollars. For example, $5.00 = 500 cents.\n\r\n> **Tip:** This value allows tracking processing fees separately from the main transaction amount.