Payments API
The Payments API provides merchants and partners with a powerful set of tools to securely process and manage payment transactions in real time. It offers a streamlined way to handle the full transaction lifecycle — from initiating payments to post-transaction operations.
With the Payments API, users can:
- Create E-Commerce and MOTO Transactions
Submit secure payment transactions for online (e-commerce) and mail/telephone order (MOTO) environments.
- Capture Transactions
Capture authorized transactions when ready to complete the sale.
- Refund Transactions
Issue full or partial refunds for completed or settled transactions.
- Cancel Transactions
Cancel pending transactions before they are finalized.
- Get Transaction Reporting
Retrieve detailed transaction history and reporting for operational tracking, reconciliation, and analysis.
The Payments API is designed for flexibility, security, and efficiency — supporting a wide range of transaction types, payment methods, currencies, and operational needs.
Key Features:
- Support for Credit Card and Debit transactions
- Secure processing with real-time response
- Authorization, Sale, Capture, Refund, and Cancellation workflows
- Transaction search and filtering capabilities
- Designed for PCI-compliant integrations
Transactions
New Transaction
The New Transaction API allows merchants to process a card-not-present payment through an e-commerce, mail-order/telephone-order (MOTO), or in-app channel.
This API initiates either an Authorization or a Sale transaction, depending on the merchant's configuration.
It also supports 3D Secure (3DS) customer redirection if needed during the payment process.
Method and Endpoint
- Method: POST
- Endpoint:
/v1/payments/{accountUuid}/transactions
Request Body Schema: New Transaction (E-Commerce)
| Field |
Type |
Description |
Required? |
| paymentMethod | String | Method of payment. Only "CreditCard" is currently supported. | Required |
| paymentType | String | Type of enabled card brand being used (Visa, MasterCard, Discover, AMEX, JCB, UnionPay, Debit, Interac). Depends on what is enabled for the merchant account. | Required |
| transactionType | String | Can be "Authorization" or "Sale". An authorization will require to be captured for settlement. A sale will authorize and capture the amount in one transaction. Depends on what is enabled for the merchant account. | Required |
| customerRedirect | String (URL) | Optional URL to redirect the customer after 3DS completion or transaction completion. Must be a valid HTTPS URL format. | Optional |
| amount | Number | Transaction amount. Must be a positive decimal with two decimal places maximum. (e.g. 199.99) | Required |
| channel | String | Channel used for the transaction: "ECommerce", "MOTO", or "InApp". Only one allowed. Depends on what is enabled for the merchant account. | Required |
| currency | String | Transaction currency: "CAD", "USD", or "EUR". Only one currency allowed per transaction. Depends on what is enabled for the merchant account. | Required |
| description | String | Short description of the transaction (optional text for reference or reporting). | Optional |
| customer | Object | Customer details (name, contact, card data, billing address, optional shipping address). | Required |
Object: customer
| Field |
Type |
Description |
Required? |
| firstName | String | Customer’s first name. | Required |
| lastName | String | Customer’s last name. | Required |
| email | String | Customer’s email address. | Required |
| phone | String | Customer’s phone number. | Required |
| ipAddress | String | Customer’s IP address. Must be a valid IPv4 or IPv6 format. | Required |
| cardData | Object | Card information for the payment (number, expiry, CVV). | Required |
| address | Object | Billing address. | Required |
| shippingAddress | Object | Shipping address. Only needed if different from billing address. If not, can be empty. | Optional |
Sub-Object: cardData
| Field |
Type |
Description |
Required? |
| cardNumber | String | Full credit card number (PAN). No spaces or dashes. | Required |
| expiryDate | String (MMYY) | Expiration date of the card in MMYY format (e.g., December 2030 = 1230 - no slashes). | Required |
| cvv | String | 3 or 4-digit security code found on the card. | Required |
Sub-Object: address
| Field |
Type |
Description |
Required? |
| country | String | 2-letter country code (e.g., CA for Canada). | Required |
| state | String | State or province abbreviation. | Required |
| city | String | City name. | Required |
| zip | String | Postal code or ZIP code. | Required |
| address | String | Street address line. | Required |
Sub-Object: shippingAddress
| Field |
Type |
Description |
Required? |
| country | String | Shipping 2-letter country code (e.g., CA for Canada). | Optional |
| state | String | Shipping State or province abbreviation. | Optional |
| city | String | Shipping City name. | Optional |
| zip | String | Shipping Postal code or ZIP code. | Optional |
| address | String | Shipping Street address line. | Optional |
Notes:
- customerRedirect is strongly recommended if your account supports 3DS transactions.
- shippingAddress should be filled only if different from billing address; otherwise, can be left empty or omitted.
- amount should be a positive number with two decimal places maximum (e.g., 199.99).
Refund Transaction
The Refund Transaction API allows merchants to refund a completed or settled transaction.
Rules:
- Only transactions with a "Complete" or "Settled" status are eligible for refund.
- Once refunded, no further actions can be performed on the transaction.
- Refund is final.
Method and Endpoint
- Method: POST
- Endpoint:
/v1/payments/{accountUuid}/transactions/{transactionUuid}/refund
| Path Parameter |
Type |
Description |
| accountUuid |
String (UUID) |
Unique identifier of the merchant account associated with the transaction. |
| transactionUuid |
String (UUID) |
Unique identifier of the transaction to refund. |
Notes:
- Attempting to refund a transaction that is not "Complete" or "Settled" will return an error.
- If refund succeeds, transaction status changes to "Refunded".
- Refund reverses the original payment amount back to the customer.
Cancel Transaction
The Cancel Transaction API allows merchants to cancel a pending transaction before it is completed or processed.
Rules:
- Only transactions with a "Pending" status are eligible for cancellation.
- Once cancelled, no further actions (such as capture or completion) can be performed on that transaction.
- Cancellation is final.
Method and Endpoint
- Method: POST
- Endpoint:
/v1/payments/{accountUuid}/transactions/{transactionUuid}/cancel
| Path Parameter |
Type |
Description |
| accountUuid |
String (UUID) |
Unique identifier of the merchant account associated with the transaction. |
| transactionUuid |
String (UUID) |
Unique identifier of the transaction to cancel. |
Notes:
- Attempting to cancel a non-pending transaction will return an error.
- If cancellation succeeds, transaction status changes to "Cancelled".
- No refunds or reversals are necessary after cancellation since the transaction was never completed.
Reporting
Transactions
Overview - List Payments Transactions
These requests allow you to retrieve information about:
- All payments transactions associated with a payments account, or
- A specific payments transaction by UUID.
Rules:
- You can filter the list of transactions using optional query parameters payment method, type, date range, etc.
- Useful for transaction monitoring, reporting, reconciliation, and operational support.
Methods and Endpoints
List All Payments Transactions
- Method: GET
- Endpoint:
/v1/payments/{accountUuid}/transactions
Get Specific Payments Transaction
- Method: GET
- Endpoint:
/v1/payments/{accountUuid}/transactions/{transactionUuid}
Path Parameter
| Path Parameter |
Type |
Description |
| accountUuid |
String (UUID) |
Unique identifier of the payments account. |
| transactionUuid |
String (UUID) |
Unique identifier of the payments transaction (for single transaction retrieval). |
Query Parameters for Listing Transactions
| Parameter |
Type |
Description |
| createdFrom | Date (YYYY-MM-DD) | Show transactions created on this date or after. |
| createdTo | Date (YYYY-MM-DD) | Show transactions created on this date or before. |
| paymentMethod | String | Must be "CreditCard". |
| paymentType | String | "Visa", "MasterCard", "Discover", "AMEX", "JCB", "UnionPay", "Debit", "Interac". |
| transactionType | String | "Authorization" or "Sale". |
| channel | String | "ECommerce" or "MOTO". |
| currency | String | "CAD", "USD", or "EUR". |
| transactionNumber | Integer | Show only the transaction with the specified number. |
| transactionUuid | String (UUID) | Show only the transaction with the specified UUID. |
Notes:
- Filtering with query parameters is optional but recommended for better control.
- Without filters, all transactions associated with the account will be returned (subject to pagination if large volume).