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?
paymentMethodStringMethod of payment. Only "CreditCard" is currently supported.Required
paymentTypeStringType of enabled card brand being used (Visa, MasterCard, Discover, AMEX, JCB, UnionPay, Debit, Interac). Depends on what is enabled for the merchant account.Required
transactionTypeStringCan 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
customerRedirectString (URL)Optional URL to redirect the customer after 3DS completion or transaction completion. Must be a valid HTTPS URL format.Optional
amountNumberTransaction amount. Must be a positive decimal with two decimal places maximum. (e.g. 199.99)Required
channelStringChannel used for the transaction: "ECommerce", "MOTO", or "InApp". Only one allowed. Depends on what is enabled for the merchant account.Required
currencyStringTransaction currency: "CAD", "USD", or "EUR". Only one currency allowed per transaction. Depends on what is enabled for the merchant account.Required
descriptionStringShort description of the transaction (optional text for reference or reporting).Optional
customerObjectCustomer details (name, contact, card data, billing address, optional shipping address).Required

Object: customer

Field Type Description Required?
firstNameStringCustomer’s first name.Required
lastNameStringCustomer’s last name.Required
emailStringCustomer’s email address.Required
phoneStringCustomer’s phone number.Required
ipAddressStringCustomer’s IP address. Must be a valid IPv4 or IPv6 format.Required
cardDataObjectCard information for the payment (number, expiry, CVV).Required
addressObjectBilling address.Required
shippingAddressObjectShipping address. Only needed if different from billing address. If not, can be empty.Optional

Sub-Object: cardData

Field Type Description Required?
cardNumberStringFull credit card number (PAN). No spaces or dashes.Required
expiryDateString (MMYY)Expiration date of the card in MMYY format (e.g., December 2030 = 1230 - no slashes).Required
cvvString3 or 4-digit security code found on the card.Required

Sub-Object: address

Field Type Description Required?
countryString2-letter country code (e.g., CA for Canada).Required
stateStringState or province abbreviation.Required
cityStringCity name.Required
zipStringPostal code or ZIP code.Required
addressStringStreet address line.Required

Sub-Object: shippingAddress

Field Type Description Required?
countryStringShipping 2-letter country code (e.g., CA for Canada).Optional
stateStringShipping State or province abbreviation.Optional
cityStringShipping City name.Optional
zipStringShipping Postal code or ZIP code.Optional
addressStringShipping 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
createdFromDate (YYYY-MM-DD)Show transactions created on this date or after.
createdToDate (YYYY-MM-DD)Show transactions created on this date or before.
paymentMethodStringMust be "CreditCard".
paymentTypeString"Visa", "MasterCard", "Discover", "AMEX", "JCB", "UnionPay", "Debit", "Interac".
transactionTypeString"Authorization" or "Sale".
channelString"ECommerce" or "MOTO".
currencyString"CAD", "USD", or "EUR".
transactionNumberIntegerShow only the transaction with the specified number.
transactionUuidString (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).