Models
ResponseCode
The outcome of the payment, and the field that tells you whether the transaction succeeded. The HTTP status, resultCode, and status do not. A transaction succeeded only when status is Completed and a transaction response has responseCode 1 or 2.
Outcomes:
- Approved -
1,2. For2, onlyamountApprovedwas approved. On aChargebacktransaction, approved means the chargeback took effect: the money went back to the payer. - Declined -
10to18. The issuer or bank refused the payment. Do not retry with the same payment details. - Canceled -
54,55. No money moved. - Pending -
57. The outcome is not final. Wait for the webhook or query the transaction again. - Unknown -
0. No specific code was reported. Whilestatusis notCompleted, the outcome is not final. On aCompletedtransaction it is not an approval: readresultCodeandresultTextfor the reason, for example2014,6901, or6902. - Error - every other code. Processing failed for a technical or request reason.
See Transaction response codes.
Response codes:
0- UNKNOWN1- APPROVED - Transaction was approved2- PARTIAL_APPROVED - Transaction was partially approved, but not for the full requested amount.10- DECLINED - Transaction was declined by the issuer or bank. For Card-Present, the transaction can also be declined offline by the terminal.11- INSUFFICIENT_FUNDS - Rejected due to insufficient funds in the account.12- CARD_EXPIRED - The card used for the transaction has expired.13- FRAUD_SUSPECTED - The transaction was flagged for potential fraud.14- INVALID_PAYMENT_INFO - The provided information is invalid (e.g.: card number).15- LIMIT_EXCEEDED - Rejected due to reaching a limit (e.g.: credit limit).16- VERIFICATION_REQUIRED - Additional customer verification is required for the transaction to proceed (e.g.: 3D Secure).17- AUTHENTICATION_FAILED - Rejected due to incorrect PIN or authentication failure.18- POLICY_VIOLATION - Rejected due to a violation of the payment gateway's terms of service or policies.19- BATCH_EMPTY - Indicates that the batch for processing is empty.20- RECORD_NOT_FOUND - Indicates that the requested record for a transaction was not found (e.g.: to VOID a reference).21- ALREADY_VOIDED - Indicates that the transaction has already been voided and cannot be processed again.50- NETWORK_ERROR - Rejected due to network or communication issues with the payment gateway.51- INVALID_ECR_PARAMETER - Payment Terminal or system-specific errors.52- NOT_SUPPORTED - Rejected because the requested operation is not supported.53- BUSY_OR_UNAVAILABLE - The Payment Terminal, Payment App or system is busy or unavailable.54- CANCELLED - Cancelled by the user or merchant.55- USER_CANCELLED - Specific to scenarios where the user cancels the transaction.56- TIMED_OUT_ON_USER_INPUT - Failed to complete the transaction in time.57- PENDING - The transaction is awaiting an asynchronous outcome.
Type: integer
Allowed: 0, 1, 2, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 50, 51, 52, 53, 54, 55, 56, 57
CardType
The type of card used for this transaction:
UNKNOWN- The card type is unknownDEBIT- Debit CardVISA- Visa Credit CardMASTERCARD- MasterCard Credit CardAMEX- American Express Credit CardDINERS- Diners Club Credit CardDISCOVER- Discover Credit CardJCB- JCB Credit CardUNIONPAY- UnionPay Credit CardMAESTRO- Maestro Debit CardGIFT- Gift CardCASH- All-cash TransactionEBT- Electronic Benefits Transfer CardINTERAC- Interac (Canadian PIN-debit network), Card Present onlyOTHER- Other tender types
Type: string
Allowed: UNKNOWN, DEBIT, VISA, MASTERCARD, AMEX, DINERS, DISCOVER, JCB, UNIONPAY, MAESTRO, GIFT, CASH, EBT, INTERAC, OTHER
CVVResult
The CVV verification result. Typically returned on Card Not Present transactions.
M- CVV MatchN- CVV No MatchP- Not ProcessedS- CVV should be on the card but the merchant indicates it is not.U- User is unregistered
NOTE: Transactions can still be authorized if the CVV responses are no match or failure. CVV responses are for merchant information only, and usually do not influence the overall Authorization result. This can vary based on the Issuing Bank.
Type: string
Allowed: M, N, P, S, U
AVSResult
The AVS (Address Verification Service) result. Typically returned on Card Not Present transactions.
A- Address matches, ZIP does not. The first five numerical characters contained in the address match those stored at the VIC or issuer's center. However, the ZIP code does not match.E- Ineligible transaction.N- Neither address nor ZIP matches. Neither the first five numerical characters contained in the address match with those stored at the VIC nor issuer's center nor the ZIP code match.R- Retry (system unavailable or timed out).S- Card type not supported. The card type for this transaction is not supported by AVS. AVS can verify addresses for Visa cards, MasterCard, proprietary cards, and private label transactions.U- Address information unavailable.G- Address information unavailable, International - Visa only, The address information was not available at the VIC or issuer's center.W- Nine-digit ZIP match, address does not. The nine-digit Postal ZIP code matches that stored at the VIC or card issuer's centre. However, the first five numerical characters contained in the address do not match.X- Exact match (nine digit ZIP and address). Both the nine-digit Postal ZIP code as well as the first five numerical characters contained in the address match.Y- Address and five-digit ZIP match. Both the five-digit Postal ZIP code as well as the first five numerical characters contained in the address match.Z- Five-digit ZIP matches, address does not. The five-digit Postal ZIP code matches that stored at the VIC or card issuer's centre.
NOTE: Transactions can still be authorized if the AVS responses are no match or failure. AVS responses are for merchant information only, and usually do not influence the overall Authorization result. This can vary based on the Issuing Bank.
Type: string
Allowed: A, E, N, R, S, U, G, W, X, Y, Z
BillingInfoCaptureLevel
Controls how much billing information is collected in the hosted payment form.
Minimal- Collects country and ZIP/postal code in a compact layout below the card fields. Not supported for ACH payment methods.Full- (Fallback when no payment method default is configured) Collects complete billing address (street, city, state, country, ZIP). Required for ACH payment methods.
Type: string
Allowed: Minimal, Full
FormConfig
Optional form configuration. If omitted, the payment method defaults apply. With no configured default, billing capture is Full and 3D Secure is disabled. When you send this object, include billingInfoCaptureLevel; omitted optional fields inherit the payment method defaults.
Type: object
billingInfoCaptureLevel string requiredRequired when formConfig is supplied. Choose Full or Minimal.
Allowed: Minimal, Full
enable3DSecure booleanOptional. When true, the hosted payment form performs 3D Secure (3DS2) cardholder authentication during card tokenization. The issuer decides whether the transaction is authenticated frictionlessly or requires a cardholder challenge; when a challenge is required, it is rendered in an overlay on the hosted payment form and the SDK resumes automatically on completion.
When false, 3DS is skipped and liability for fraudulent chargebacks remains with the merchant.
The resulting transaction exposes the authentication outcome in threeDs.status and additional authentication data in threeDs when available.
Card payment methods only. 3DS is a card-network protocol and is not supported for ACH or EFT payment methods - setting enable3DSecure: true on a non-card payment method is rejected with a validation error.
When omitted, this field inherits the payment method default.
Recommended: Combine with billingInfoCaptureLevel: Full (the default) to maximize the likelihood of a frictionless flow. Full billing is not required for 3DS to function, but the risk engine uses address, email, and phone to score the transaction.
piiFields array of stringOptional additional contact fields to collect. Omitted values inherit the payment method defaults; an empty array requests neither field.
Allowed: Email, Phone
ErrorDetail
Represents a validation error that occurred during the request.
Type: object
code integerError code
Example: 2000
field stringThe field with the error
Example: "Amount"
message stringError message
Example: "Request validation failed"
details stringAdditional details about the error
Example: "The Amount field must be a positive number between 1 and 999,999,999."
Receipt
Receipt lines for this transaction response. Card-present responses can contain printable receipt lines; other responses can return an empty lines array.
Type: object
lines array of string requiredThe receipt lines.
ApprovedAmountBreakdown
A breakdown of approvedAmount, where each amounts approved on the payment terminal are returned separately. Only returned on Sale, Auth and Capture transactions.
Type: object
amountGoodsAndServices integerThe approved amount for goods and services.
Example: 900
tax integerThe approved tax amount.
Example: 100
cashback integerThe approved cashback amount.
Example: 0
tip integerThe approved tip amount.
Example: 0
ReferenceIdForTransactions
An optional custom reference ID for this transaction. Include this if you want to use your own reference system for linking transactions together (for example, when processing captures and refunds). Use a unique value per merchant. This field is not an idempotency key and reusing it does not replay the prior response. The reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions. If not provided, a unique reference ID will be generated automatically by the system.
Type: string
ReferenceIdForVoid
An optional custom reference ID for this void transaction. Include this if you want to use your own reference system for linking transactions together. Use a unique value per merchant. This field is not an idempotency key and reusing it does not replay the prior response. If not provided, a unique reference ID will be generated automatically by the system.
Type: string
ReferenceIdForTokens
An optional custom reference ID to tag and track this token operation. Use a unique value per merchant. This field is not an idempotency key and reusing it does not replay the prior response. If not provided, a unique reference ID will be generated automatically by the system.
Type: string
ReferenceIdForResponse
The reference ID for this transaction. This will either be the reference ID provided in the transaction request or, if no value was provided, a value generated automatically by the system. This reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions.
Type: string
OriginalTransactionId
The transaction ID (trx_) of the original authorization to capture, or sale/capture to refund. Supply exactly one of originalTransactionId and originalReferenceId.
Type: string
OriginalTransactionIdForVoid
The unique transaction ID of the original transaction to be voided. This is the 'id' value returned from a previous sale, authorization, or capture transaction. Use this parameter if you prefer to rely on system-generated transaction IDs rather than managing your own reference system. Either originalTransactionId or originalReferenceId must be provided.
The original transaction must belong to the merchant that owns the API key used for this request. A transaction belonging to a different merchant is rejected as not found, exactly as if the ID did not exist.
Type: string
OriginalReferenceId
The reference ID of the original transaction to be captured or refunded. This should match the referenceId from a previous sale, authorization, or capture transaction (either a custom reference ID you provided or one that was generated automatically by the system). Use this parameter if you want to link transactions using reference IDs rather than system transaction IDs. Either originalTransactionId or originalReferenceId must be provided.
Type: string
OriginalReferenceIdForVoid
The reference ID of the original transaction to be voided. This should match the referenceId from a previous sale, authorization, or capture transaction (either a custom reference ID you provided or one that was generated automatically by the system). Use this parameter if you want to link transactions using reference IDs rather than system transaction IDs. Either originalTransactionId or originalReferenceId must be provided.
Type: string
InvoiceNumber
An optional alphanumeric invoice number for this transaction. If provided in the request, the same value will be populated in the response.
Type: string
InvoiceNumberCardPresent
An optional alphanumeric invoice number for this transaction. If provided in the request, the same value will be populated in the response and will appear on the receipt.
Card Present Limit: Maximum length is 20 characters. If this limit is exceeded, the API will return a validation error.
Type: string
OrderNumber
An optional alphanumeric order number for this transaction. If provided, the same value will be populated in the response.
Type: string
Amount
The total transaction amount. This is the full amount that will be processed in the transaction. Transaction amounts are positive integers representing the amount in its smallest denomination of the configured currency (e.g. cents for USD or CAD).
Type: integer (uint32)
AmountBreakdown
Optional fields to specify the portion of the total transaction amount that represents goods/services, tax, cashback and/or tip. These values are for reporting purposes only and will not be added to the Amount field. These amount are represented as a positive integer in the smallest denomination of the configured currency (e.g. cents for USD or CAD). If supplied, the component sum must equal amount; components are not added to amount.
Type: object
amountGoodsAndServices integerThe amount for goods and services.
min 0 · max 999999999
Example: 900
tax integerThe tax amount.
min 0 · max 999999999
Example: 100
cashback integerThe cashback amount.
min 0 · max 999999999
Example: 0
tip integerThe tip amount.
min 0 · max 999999999
Example: 0
AmountToCapture
The amount to capture. Must be less than or equal to the original authorization amount. If not specified, the full authorized amount will be captured. If you have already performed partial captures on this authorization, you must provide an explicit amount or an error will be returned.
Type: integer (uint32)
AmountToRefund
The requested amount to refund or void. If not specified, the full transaction amount will be refunded or voided. For partial refunds, must be less than the original transaction amount. If you have already performed partial refunds on this transaction, you must provide an explicit amount or an error will be returned.
Type: integer (uint32)
AmountToRefundUnreferenced
The requested amount to refund.
Type: integer (uint32)
ResultCode
Result codes:
0- Successful transaction request. (Check each transactionResponse's responseCode to determine if a transaction was approved or declined, card was tokenized, etc.)1003- The payment terminal is busy or unavailable. (If this error persists, the user may need to close and re-open the Payment Application on the terminal or restart the terminal)1005- The specified terminal could not be found.1010- The transaction request is pending to become transaction.2014- The payment method or card brand is not enabled for the merchant.resultTextcarries the message, such asACH payments are not enabled for this merchant.orVisa cards are not enabled for this merchant.The transaction isCompletedand failed; do not retry it with the same payment method.3000- An unexpected error occurred. Please try again.3002- The transaction could not be completed because the payment terminal could not find the related transaction.3005- To resolve this error, power off your payment terminal, wait one minute and retry the transaction. If the error persists, please contact support.3006- The transaction could not be completed because the payment terminal is low on battery.3009- The transaction could not be completed because of network connectivity issues with the payment terminal. Please restore connectivity and try again.3010- The transaction took too long and was cancelled by the application.3011- Invalid transaction request. Please consult the documentation for valid transaction requests.3012- Invalid transaction request. paymentMethodId is invalid.3013- Invalid transaction request. The specified amount appears to be incorrect. Please retry with a smaller amount.3014- Invalid amount. Please try your transaction again with an amount greater than $0.3020- An unsupported transaction result was received.4001- The transaction is being processed. This is returned for asynchronous bank transfer payment methods (e.g. ACH) while awaiting a final outcome.6800- 3D Secure authentication was rejected by the issuer's ACS (card auth failed, security failure, stolen card, suspected fraud, etc.). Surfaced on declined CNP transactions whenformConfig.enable3DSecure: trueand the gateway reports a 3D Secure reason; other failures in a 3D Secure session use6900-6902. See SDK Error Codes for guidance.6801- 3D Secure authentication could not be completed because of an upstream technical issue (ACS timeout, directory server unreachable). Retry later or, if merchant policy allows, retry with 3DS disabled.6802- The card is not enrolled in 3D Secure. Retry without 3DS only if merchant policy allows; approval is not guaranteed.6900- The issuer declined the card on the hosted payment form or Payment SDK path. The specific reason is ontransactionResponses[0].responseCode(10-18) and inresultText. See SDK Error Codes for guidance.6901- The gateway rejected or failed the hosted payment form payment because of validation or a gateway failure rather than an issuer decision. See SDK Error Codes for guidance.6902- The gateway reported no failure but returned no payment token. See SDK Error Codes for guidance.9998- The system is not ready to process a transaction.9999- An unknown error has occurred. If available, an auxiliary error code will be provided in the message.1010- The transaction request is pending customer interaction.4100- Cardholder verification is required. FollowthreeDsChallenge.redirectUrland reconcile the final transaction outcome before retrying.55- The customer cancelled the hosted payment attempt.
Type: integer
Allowed: 0, 55, 1003, 1005, 1010, 2014, 3000, 3002, 3005, 3006, 3009, 3010, 3011, 3012, 3013, 3014, 3020, 4001, 4100, 6800, 6801, 6802, 6900, 6901, 6902, 9998, 9999
ResultText
A message describing the result code in more detail. On a stored transaction it is uppercase, such as APPROVED, DECLINED, or the gateway's reason, except for resultCode 2014, where it is the message in sentence case. Use it for display, not for branching.
Type: string
PaymentMethodDetails
The payment method used for this transaction.
Type: object
id string requiredThe unique identifier of the payment method. This ID has a prefix that makes it human-readable (pmt_trm_ for physical terminals, pmt_vrt_ for virtual card terminals, pmt_ach_ for virtual ACH terminals, pmt_tkn_ for tokens, which store a card or an ACH bank account), but applications should always use the type field to determine the payment method type rather than parsing this ID.
Example: "pmt_tkn_01JRZPRGFF4J2SZC3HMDBYEN2J"
dateDeleted string (date-time)The date and time (UTC) when this payment method token was removed from the system using the Remove Token endpoint. This parameter will only be returned if the token was removed/deleted from the system.
This field will be present in three scenarios:
- As part of a successful Remove Token endpoint response
- In token.removed webhook notifications
- In List Transactions responses for transactions where the associated token was later removed
When this field is present, sensitive card details (maskedCardNumber, cardExpDate) will be removed for security purposes, but all other transaction data remains intact.
Example: "2025-07-14T14:05:48.869225Z"
type string requiredThe type of payment method:
Physical- A physical payment terminal for Card Present transactionsVirtual- A hosted payment form/iframe for Card Not Present transactionsVirtualAch- A hosted payment form/iframe for ACH (US) bank transfer transactionsToken- A stored payment method (a card or an ACH bank account) for card-on-file and recurring transactionsVirtualEft- A virtual Canadian bank-transfer payment method, when configured.Unknown- The payment method type is not known.
Allowed: Unknown, Physical, Virtual, VirtualAch, VirtualEft, Token
Example: "Token"
currency string requiredThe currency of the payment method.
Allowed: USD, CAD
Example: "USD"
description stringA human-readable name for the payment method.
Example: "Token for John Doe's Visa"
billingContact objectBilling contact information associated with the payment method. Not returned on card present transactions or on refunds, captures, etc. of card present transactions.
Child attributes
name stringExample: "John Doe"
countryCode stringExample: "US"
zipCode stringExample: "12345"
address stringExample: "123 Main St"
state stringExample: "NY"
city stringExample: "Anytown"
address2 stringAdditional address information, when supplied.
Example: "Suite 200"
cardType stringThe type of card used for this transaction:
UNKNOWN- The card type is unknownDEBIT- Debit CardVISA- Visa Credit CardMASTERCARD- MasterCard Credit CardAMEX- American Express Credit CardDINERS- Diners Club Credit CardDISCOVER- Discover Credit CardJCB- JCB Credit CardUNIONPAY- UnionPay Credit CardMAESTRO- Maestro Debit CardGIFT- Gift CardCASH- All-cash TransactionEBT- Electronic Benefits Transfer CardINTERAC- Interac (Canadian PIN-debit network), Card Present onlyOTHER- Other tender types
Allowed: UNKNOWN, DEBIT, VISA, MASTERCARD, AMEX, DINERS, DISCOVER, JCB, UNIONPAY, MAESTRO, GIFT, CASH, EBT, INTERAC, OTHER
Example: "VISA"
maskedCardNumber stringThe masked card number. The format may vary (e.g. **0011, 4**0011, etc.)
Example: "************0011"
cardExpDate stringThe expiration date of the card in MMYY format.
Example: "1225"
accountType stringFunding-source classification of this token-type payment method.
- For card tokens:
CreditorDebit. - For ACH tokens:
CheckingorSavings. May be omitted for older tokens that pre-date this field, for non-token payment methods, or when the source did not provide a classification.
Allowed: Credit, Debit, Checking, Savings
Example: "Debit"
accountNumber stringMasked bank account number, when available for a bank-account token.
Example: "*****6789"
TransactionResponse
A single Sale Transaction may result in multiple Responses.
Type: object
responseCode ResponseCodeThe outcome of the payment, and the field that tells you whether the transaction succeeded. The HTTP status, resultCode, and status do not. A transaction succeeded only when status is Completed and a transaction response has responseCode 1 or 2.
Outcomes:
- Approved -
1,2. For2, onlyamountApprovedwas approved. On aChargebacktransaction, approved means the chargeback took effect: the money went back to the payer. - Declined -
10to18. The issuer or bank refused the payment. Do not retry with the same payment details. - Canceled -
54,55. No money moved. - Pending -
57. The outcome is not final. Wait for the webhook or query the transaction again. - Unknown -
0. No specific code was reported. Whilestatusis notCompleted, the outcome is not final. On aCompletedtransaction it is not an approval: readresultCodeandresultTextfor the reason, for example2014,6901, or6902. - Error - every other code. Processing failed for a technical or request reason.
See Transaction response codes.
Response codes:
0- UNKNOWN1- APPROVED - Transaction was approved2- PARTIAL_APPROVED - Transaction was partially approved, but not for the full requested amount.10- DECLINED - Transaction was declined by the issuer or bank. For Card-Present, the transaction can also be declined offline by the terminal.11- INSUFFICIENT_FUNDS - Rejected due to insufficient funds in the account.12- CARD_EXPIRED - The card used for the transaction has expired.13- FRAUD_SUSPECTED - The transaction was flagged for potential fraud.14- INVALID_PAYMENT_INFO - The provided information is invalid (e.g.: card number).15- LIMIT_EXCEEDED - Rejected due to reaching a limit (e.g.: credit limit).16- VERIFICATION_REQUIRED - Additional customer verification is required for the transaction to proceed (e.g.: 3D Secure).17- AUTHENTICATION_FAILED - Rejected due to incorrect PIN or authentication failure.18- POLICY_VIOLATION - Rejected due to a violation of the payment gateway's terms of service or policies.19- BATCH_EMPTY - Indicates that the batch for processing is empty.20- RECORD_NOT_FOUND - Indicates that the requested record for a transaction was not found (e.g.: to VOID a reference).21- ALREADY_VOIDED - Indicates that the transaction has already been voided and cannot be processed again.50- NETWORK_ERROR - Rejected due to network or communication issues with the payment gateway.51- INVALID_ECR_PARAMETER - Payment Terminal or system-specific errors.52- NOT_SUPPORTED - Rejected because the requested operation is not supported.53- BUSY_OR_UNAVAILABLE - The Payment Terminal, Payment App or system is busy or unavailable.54- CANCELLED - Cancelled by the user or merchant.55- USER_CANCELLED - Specific to scenarios where the user cancels the transaction.56- TIMED_OUT_ON_USER_INPUT - Failed to complete the transaction in time.57- PENDING - The transaction is awaiting an asynchronous outcome.
Allowed: 0, 1, 2, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 50, 51, 52, 53, 54, 55, 56, 57
authCode stringThe authorization code provided by the card issuer, confirming transaction approval.
Example: "123456"
amountApproved integerThe amount approved for this transaction response.
Example: 1000
approvedAmountBreakdown ApprovedAmountBreakdownA breakdown of approvedAmount, where each amounts approved on the payment terminal are returned separately. Only returned on Sale, Auth and Capture transactions.
Child attributes
amountGoodsAndServices integerThe approved amount for goods and services.
Example: 900
tax integerThe approved tax amount.
Example: 100
cashback integerThe approved cashback amount.
Example: 0
tip integerThe approved tip amount.
Example: 0
paymentMethod objectThe payment method used for this transaction.
Child attributes
id string requiredThe unique identifier of the payment method. This ID has a prefix that makes it human-readable (pmt_trm_ for physical terminals, pmt_vrt_ for virtual card terminals, pmt_ach_ for virtual ACH terminals, pmt_tkn_ for tokens, which store a card or an ACH bank account), but applications should always use the type field to determine the payment method type rather than parsing this ID.
Example: "pmt_tkn_01JRZPRGFF4J2SZC3HMDBYEN2J"
dateDeleted string (date-time)The date and time (UTC) when this payment method token was removed from the system using the Remove Token endpoint. This parameter will only be returned if the token was removed/deleted from the system.
This field will be present in three scenarios:
- As part of a successful Remove Token endpoint response
- In token.removed webhook notifications
- In List Transactions responses for transactions where the associated token was later removed
When this field is present, sensitive card details (maskedCardNumber, cardExpDate) will be removed for security purposes, but all other transaction data remains intact.
Example: "2025-07-14T14:05:48.869225Z"
type string requiredThe type of payment method:
Physical- A physical payment terminal for Card Present transactionsVirtual- A hosted payment form/iframe for Card Not Present transactionsVirtualAch- A hosted payment form/iframe for ACH (US) bank transfer transactionsToken- A stored payment method (a card or an ACH bank account) for card-on-file and recurring transactionsVirtualEft- A virtual Canadian bank-transfer payment method, when configured.Unknown- The payment method type is not known.
Allowed: Unknown, Physical, Virtual, VirtualAch, VirtualEft, Token
Example: "Token"
currency string requiredThe currency of the payment method.
Allowed: USD, CAD
Example: "USD"
description stringA human-readable name for the payment method.
Example: "Token for John Doe's Visa"
billingContact objectBilling contact information associated with the payment method. Not returned on card present transactions or on refunds, captures, etc. of card present transactions.
cardType stringThe type of card used for this transaction:
UNKNOWN- The card type is unknownDEBIT- Debit CardVISA- Visa Credit CardMASTERCARD- MasterCard Credit CardAMEX- American Express Credit CardDINERS- Diners Club Credit CardDISCOVER- Discover Credit CardJCB- JCB Credit CardUNIONPAY- UnionPay Credit CardMAESTRO- Maestro Debit CardGIFT- Gift CardCASH- All-cash TransactionEBT- Electronic Benefits Transfer CardINTERAC- Interac (Canadian PIN-debit network), Card Present onlyOTHER- Other tender types
Allowed: UNKNOWN, DEBIT, VISA, MASTERCARD, AMEX, DINERS, DISCOVER, JCB, UNIONPAY, MAESTRO, GIFT, CASH, EBT, INTERAC, OTHER
Example: "VISA"
maskedCardNumber stringThe masked card number. The format may vary (e.g. **0011, 4**0011, etc.)
Example: "************0011"
cardExpDate stringThe expiration date of the card in MMYY format.
Example: "1225"
accountType stringFunding-source classification of this token-type payment method.
- For card tokens:
CreditorDebit. - For ACH tokens:
CheckingorSavings. May be omitted for older tokens that pre-date this field, for non-token payment methods, or when the source did not provide a classification.
Allowed: Credit, Debit, Checking, Savings
Example: "Debit"
accountNumber stringMasked bank account number, when available for a bank-account token.
Example: "*****6789"
cardType CardTypeThe type of card used for this transaction:
UNKNOWN- The card type is unknownDEBIT- Debit CardVISA- Visa Credit CardMASTERCARD- MasterCard Credit CardAMEX- American Express Credit CardDINERS- Diners Club Credit CardDISCOVER- Discover Credit CardJCB- JCB Credit CardUNIONPAY- UnionPay Credit CardMAESTRO- Maestro Debit CardGIFT- Gift CardCASH- All-cash TransactionEBT- Electronic Benefits Transfer CardINTERAC- Interac (Canadian PIN-debit network), Card Present onlyOTHER- Other tender types
Allowed: UNKNOWN, DEBIT, VISA, MASTERCARD, AMEX, DINERS, DISCOVER, JCB, UNIONPAY, MAESTRO, GIFT, CASH, EBT, INTERAC, OTHER
avsResult AVSResultThe AVS (Address Verification Service) result. Typically returned on Card Not Present transactions.
A- Address matches, ZIP does not. The first five numerical characters contained in the address match those stored at the VIC or issuer's center. However, the ZIP code does not match.E- Ineligible transaction.N- Neither address nor ZIP matches. Neither the first five numerical characters contained in the address match with those stored at the VIC nor issuer's center nor the ZIP code match.R- Retry (system unavailable or timed out).S- Card type not supported. The card type for this transaction is not supported by AVS. AVS can verify addresses for Visa cards, MasterCard, proprietary cards, and private label transactions.U- Address information unavailable.G- Address information unavailable, International - Visa only, The address information was not available at the VIC or issuer's center.W- Nine-digit ZIP match, address does not. The nine-digit Postal ZIP code matches that stored at the VIC or card issuer's centre. However, the first five numerical characters contained in the address do not match.X- Exact match (nine digit ZIP and address). Both the nine-digit Postal ZIP code as well as the first five numerical characters contained in the address match.Y- Address and five-digit ZIP match. Both the five-digit Postal ZIP code as well as the first five numerical characters contained in the address match.Z- Five-digit ZIP matches, address does not. The five-digit Postal ZIP code matches that stored at the VIC or card issuer's centre.
NOTE: Transactions can still be authorized if the AVS responses are no match or failure. AVS responses are for merchant information only, and usually do not influence the overall Authorization result. This can vary based on the Issuing Bank.
Allowed: A, E, N, R, S, U, G, W, X, Y, Z
cvvResult CVVResultThe CVV verification result. Typically returned on Card Not Present transactions.
M- CVV MatchN- CVV No MatchP- Not ProcessedS- CVV should be on the card but the merchant indicates it is not.U- User is unregistered
NOTE: Transactions can still be authorized if the CVV responses are no match or failure. CVV responses are for merchant information only, and usually do not influence the overall Authorization result. This can vary based on the Issuing Bank.
Allowed: M, N, P, S, U
accountType stringThe funding-source classification associated with the payment method used in this transaction.
- For credit/debit cards:
CreditorDebit. May be null when the classification is unavailable, including on older transactions. - For ACH/EFT bank accounts:
CheckingorSavings.
The immediate hosted ACH response uses lowercase checking or savings. Retrieved transaction responses normally use Checking or Savings.
Allowed: Credit, Debit, Checking, Savings, checking, savings
Example: "Credit"
hostResponseText stringA meaningful text explaining the response code from the host.
Example: "APPROVED 00"
receipt ReceiptReceipt lines for this transaction response. Card-present responses can contain printable receipt lines; other responses can return an empty lines array.
Child attributes
lines array of string requiredThe receipt lines.
ThreeDsStatus
Outcome classification of the 3D Secure check performed on a card transaction. Only present on transactions initiated with formConfig.enable3DSecure: true. Use this status to handle the authentication outcome; the other threeDs fields provide supporting authentication data.
Authenticated- Issuer fully authenticated the cardholder (ECI02/05). Full liability shift to the issuer for fraud chargebacks. Covers both frictionless and challenge-completed flows.Attempted- Issuer attempted authentication but did not fully authenticate the cardholder (ECI01/06). Partial liability shift, scheme-dependent.NotAuthenticated- 3DS completed but the issuer did not authenticate the cardholder (ECI00/07). No liability shift.Failed- Issuer's ACS rejected the cardholder authentication. Transaction was declined. SeethreeDReasonIdfor the issuer's reason.Unavailable- A technical issue prevented 3DS authentication from completing.NotEnrolled- The card is not enrolled in 3DS.
Type: string
Allowed: Authenticated, Attempted, NotAuthenticated, Failed, Unavailable, NotEnrolled
ThreeDsAuthentication
3D Secure (EMV 3DS2) authentication outcome. Populated on transactions initiated with formConfig.enable3DSecure: true. All fields (other than status) are optional - what the issuer returns depends on whether the transaction was frictionless, challenged, or declined.
Type: object
status stringThe authentication outcome to use in your integration. The other threeDs fields provide supporting authentication data.
Allowed: Authenticated, Attempted, NotAuthenticated, Failed, Unavailable, NotEnrolled
Example: "Authenticated"
cavv stringCardholder Authentication Verification Value. Cryptographic proof that 3DS authentication was performed. Present on frictionless and challenge-completed transactions.
Example: "AAABBkgwVoRhY2tcYlZGAAAAAAA="
eci stringE-commerce Indicator. Indicates 3DS liability-shift status per card scheme:
02/05- Fully authenticated (liability shift to issuer).01/06- Attempted authentication (partial liability shift).00/07- Not authenticated (no liability shift).
Example: "05"
xid string3DS1 transaction identifier. Some issuers still return this under 3DS2 for backward compatibility.
Example: "MDAwMDAwMDAwMDAwMDAwMTM3MDI="
dsTransId stringDirectory Server transaction ID (3DS2). Identifies the authentication associated with this card transaction.
Example: "b71a7d5d-cc38-4ce9-80c3-50a7d53271f7"
threeDReasonId stringIssuer-provided reason code when 3DS authentication failed. Populated only on declines. Use status to handle the outcome and threeDReason for the explanation.
Example: "10"
threeDReason stringHuman-readable description matching threeDReasonId.
Example: "Stolen Card"
Error
Represents an error that occurred during the request.
Type: object
code integerNumeric error code. These are grouped into ranges for easier identification and troubleshooting.
0- Unknown1000- AuthenticationGenericError1001- MerchantNotAuthorizedForResource2000- RequestValidationGenericError2010- InvalidPaymentMethodType - The payment method type is not supported for this operation. This includes: ACH tokens cannot be used for auth, void, or subscription transactions.2011- InvalidTransactionType2012- InvalidAmount2013- PaymentMethodUsageRestricted2014- PaymentMethodNotEnabled - The payment method or card brand is not enabled for the merchant. Returned with HTTP400byPOST /transactions/token-saleandPOST /transactions/token-auth. The message names what is not enabled:ACH payments are not enabled for this merchant.,Card payments are not enabled for this merchant.,{Brand} cards are not enabled for this merchant.(Visa, Mastercard, American Express, Discover, JCB, Diners Club, UnionPay, or Maestro), orThis card brand is not enabled for this merchant.2020- InvalidPaymentMethodOwner2021- InvalidAccountHolderOwner2100- InvalidAccountHolderInformation2101- InvalidCountryCode2102- InvalidZipCode2103- MissingCountryCodeOrZipCode2105- InvalidEmailAddress2201- MissingUniqueToken2202- TransactionDeclinedError2900- RequestValidationUnsupportedPayload2901- RequestValidationWebhookMissingTypeAndDmnType2902- RequestValidationUnsupportedWebhookTokenization2903- RequestValidationUnsupportedWebhookType3000- UnknownServerGenericError3201- InvalidOrExpiredSession3202- FailedToCreateSessionInAdapter3203- ErrorWhileTokenizingCard3204- FailedToLoadThirdPartySdk3205- SessionExpired3299- JavaScriptError3400- ResourceNotReadyError3401- TransactionNotCompleteYet3501- CouldNotCreateBillingSubscription3502- CouldNotCancelBillingSubscription3503- BillingSubscriptionInvalidStatus4000- ResourceNotFound4001- TokenizedCardNotFound4002- PaymentMethodNotFound4003- AccountHolderNotFound4004- BillingSubscriptionNotFound6000- SdkGenericError6001- SdkJavaScriptError6100- SdkSessionLoadFailed6101- SdkSessionExpired6102- SdkSessionNotInitialized6103- SdkEnvironmentMismatch6200- SdkCardFieldsInvalid6201- SdkCardTokenizationFailed6202- SdkCardInitFailed6203- SdkCardProcessingFailed6300- SdkAchFieldsInvalid6301- SdkAchProcessingFailed6400- SdkEftProcessingFailed6500- SdkWalletError6501- SdkWalletProcessingFailed6600- SdkThirdPartySdkLoadFailed6700- SdkFormValidationFailed6701- SdkBillingValidationFailed6800- Sdk3dsAuthenticationFailed - Issuer ACS rejected the 3DS authentication. Only emitted whenformConfig.enable3DSecure: true.6801- Sdk3dsAuthenticationUnavailable - 3DS authentication could not be completed due to an upstream technical issue.6802- Sdk3dsNotEnrolled - The card is not enrolled in 3DS.6900- SdkCardDeclined - The issuer declined the card on the hosted payment form or Payment SDK path. The specific reason is ontransactionResponses[0].responseCode(10-18) and inresultText.6901- SdkCardGatewayError - The gateway rejected or failed the hosted payment form payment because of validation or a gateway failure rather than an issuer decision.6902- SdkCardTokenMissing - The gateway reported no failure but returned no payment token.9000- UnhandledGenericError9999- MaxErrorCode
Allowed: 0, 1000, 1001, 2000, 2010, 2011, 2012, 2013, 2014, 2020, 2021, 2100, 2101, 2102, 2103, 2105, 2201, 2202, 2900, 2901, 2902, 2903, 3000, 3201, 3202, 3203, 3204, 3205, 3299, 3400, 3401, 3501, 3502, 3503, 4000, 4001, 4002, 4003, 4004, 6000, 6001, 6100, 6101, 6102, 6103, 6200, 6201, 6202, 6203, 6300, 6301, 6400, 6500, 6501, 6600, 6700, 6701, 6800, 6801, 6802, 6900, 6901, 6902, 9000, 9999
Example: 2000
status stringExecution status of the request sent to the payment gateway.
- Completed - The request completed successfully.
- Rejected - The request was rejected by the payment gateway. No action or side effects occurred. The transaction can safely be retried.
- Interrupted - The request was interrupted, and the final status is unknown. Possible side effects may have occurred (e.g., a Sale (Token) that returns Interrupted might still charge the customer, even if an error is returned). Additional checks are required before retrying the transaction.
- Unknown
Allowed: Completed, Rejected, Interrupted, Unknown
Example: "Rejected"
message stringDeveloper-facing error message.
Example: "One or more validation errors occurred."
traceId stringUnique trace identifier for tracking and debugging this request.
Example: "1-6838bcce-5c0074e82ac7170d4f990d87"
timestamp string (date-time)The timestamp when the error occurred (UTC).
Example: "2025-05-29T20:00:15.5752808Z"
errorDetails array of ErrorDetailChild attributes
code integerError code
Example: 2000
field stringThe field with the error
Example: "Amount"
message stringError message
Example: "Request validation failed"
details stringAdditional details about the error
Example: "The Amount field must be a positive number between 1 and 999,999,999."
CardPresentRequest
Represents the request to process a Card Present transaction using a physical payment terminal.
Type: object
The total transaction amount. This is the full amount that will be processed in the transaction. Transaction amounts are positive integers representing the amount in its smallest denomination of the configured currency (e.g. cents for USD or CAD).
min 1 · max 999999999
Example: 1000
amountBreakdown AmountBreakdownOptional fields to specify the portion of the total transaction amount that represents goods/services, tax, cashback and/or tip. These values are for reporting purposes only and will not be added to the Amount field. These amount are represented as a positive integer in the smallest denomination of the configured currency (e.g. cents for USD or CAD). If supplied, the component sum must equal amount; components are not added to amount.
Child attributes
amountGoodsAndServices integerThe amount for goods and services.
min 0 · max 999999999
Example: 900
tax integerThe tax amount.
min 0 · max 999999999
Example: 100
cashback integerThe cashback amount.
min 0 · max 999999999
Example: 0
tip integerThe tip amount.
min 0 · max 999999999
Example: 0
paymentMethodId stringThe ID of the physical payment terminal that will process this Card Present transaction.
- Example format:
pmt_trm_01JRZPTMTBN41PC3VPQNZ5T3HF - Omit only when the merchant has a configured default for this operation or a single resolvable payment method.
- Otherwise, provide an explicit payment method ID.
You can retrieve all available physical payment terminal IDs for your account using the GET /payment-methods endpoint.
max length 35
Example: "pmt_trm_01JRZPTMTBN41PC3VPQNZ5T3HF"
invoiceNumber InvoiceNumberCardPresentAn optional alphanumeric invoice number for this transaction. If provided in the request, the same value will be populated in the response and will appear on the receipt.
Card Present Limit: Maximum length is 20 characters. If this limit is exceeded, the API will return a validation error.
max length 20
Example: "inv_1234567890123456"
orderNumber OrderNumberAn optional alphanumeric order number for this transaction. If provided, the same value will be populated in the response.
max length 100
Example: "order_number_1234"
referenceId ReferenceIdForTransactionsAn optional custom reference ID for this transaction. Include this if you want to use your own reference system for linking transactions together (for example, when processing captures and refunds). Use a unique value per merchant. This field is not an idempotency key and reusing it does not replay the prior response. The reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions. If not provided, a unique reference ID will be generated automatically by the system.
max length 100
Example: "ref_s192i49i"
CardNotPresentRequest
Represents the request to process a Card Not Present transaction using a hosted payment form/iframe.
Type: object
The total transaction amount. This is the full amount that will be processed in the transaction. Transaction amounts are positive integers representing the amount in its smallest denomination of the configured currency (e.g. cents for USD or CAD).
min 1 · max 999999999
Example: 1000
amountBreakdown AmountBreakdownOptional fields to specify the portion of the total transaction amount that represents goods/services, tax, cashback and/or tip. These values are for reporting purposes only and will not be added to the Amount field. These amount are represented as a positive integer in the smallest denomination of the configured currency (e.g. cents for USD or CAD). If supplied, the component sum must equal amount; components are not added to amount.
Child attributes
amountGoodsAndServices integerThe amount for goods and services.
min 0 · max 999999999
Example: 900
tax integerThe tax amount.
min 0 · max 999999999
Example: 100
cashback integerThe cashback amount.
min 0 · max 999999999
Example: 0
tip integerThe tip amount.
min 0 · max 999999999
Example: 0
paymentMethodId stringThe ID of the hosted payment form / iframe that will collect card information for this Card Not Present transaction.
- Example format:
pmt_vrt_01JRZPTWS99Z7RB57Q1CVWSWDS - Omit only when the merchant has a configured default for this operation or a single resolvable payment method.
- Otherwise, provide an explicit payment method ID.
You can retrieve all available hosted payment form IDs for your account using the GET /payment-methods endpoint.
max length 35
Example: "pmt_vrt_01JRZPTWS99Z7RB57Q1CVWSWDS"
invoiceNumber InvoiceNumberAn optional alphanumeric invoice number for this transaction. If provided in the request, the same value will be populated in the response.
max length 100
Example: "inv_1234567890123456"
orderNumber OrderNumberAn optional alphanumeric order number for this transaction. If provided, the same value will be populated in the response.
max length 100
Example: "order_number_1234"
referenceId ReferenceIdForTransactionsAn optional custom reference ID for this transaction. Include this if you want to use your own reference system for linking transactions together (for example, when processing captures and refunds). Use a unique value per merchant. This field is not an idempotency key and reusing it does not replay the prior response. The reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions. If not provided, a unique reference ID will be generated automatically by the system.
max length 100
Example: "ref_s192i49i"
returnUrl stringWill be used to redirect user back to merchant's site after iframe completed or canceled if provided. The URL will include various parameters that are detailed in "Transaction Result Parameters" section of the Hosted Payment Form section. If you do not provide a returnUrl, the customer will see either a "Payment Processed Successfully" or "Payment Processing Issue" screen.
max length 1000
Example: "https://merchant.example.com/payment-complete"
useJavaScriptCallback booleanAt the end of the transaction flow, the user is always redirected to either the returnUrl (if provided), or a default success or issue page. In addition, if useJavaScriptCallback is set to true, the iframe will use JavaScript to post a message to the parent window to notify the merchant's site when the iframe completed. This allows for more control over the user experience on the merchant's site.
Example: true
formConfig objectOptional form configuration. Omit to use payment method defaults. If supplied, billingInfoCaptureLevel is required.
Child attributes
billingInfoCaptureLevel string requiredRequired when formConfig is supplied. Choose Full or Minimal.
Allowed: Minimal, Full
enable3DSecure booleanOptional. When true, the hosted payment form performs 3D Secure (3DS2) cardholder authentication during card tokenization. The issuer decides whether the transaction is authenticated frictionlessly or requires a cardholder challenge; when a challenge is required, it is rendered in an overlay on the hosted payment form and the SDK resumes automatically on completion.
When false, 3DS is skipped and liability for fraudulent chargebacks remains with the merchant.
The resulting transaction exposes the authentication outcome in threeDs.status and additional authentication data in threeDs when available.
Card payment methods only. 3DS is a card-network protocol and is not supported for ACH or EFT payment methods - setting enable3DSecure: true on a non-card payment method is rejected with a validation error.
When omitted, this field inherits the payment method default.
Recommended: Combine with billingInfoCaptureLevel: Full (the default) to maximize the likelihood of a frictionless flow. Full billing is not required for 3DS to function, but the risk engine uses address, email, and phone to score the transaction.
piiFields array of stringOptional additional contact fields to collect. Omitted values inherit the payment method defaults; an empty array requests neither field.
Allowed: Email, Phone
accountHolder objectOptional external customer identifier. Supported by virtual sale and virtual tokenization; ignored by virtual authorization.
Child attributes
externalId stringYour external identifier for this customer. This can be any unique identifier from your system.
If an account holder with this external ID already exists for the merchant identified by your API key, it will be used. Otherwise, a new account holder will be created with this external ID.
max length 255
Example: "customer_abc123xyz"
CardOnFileRequest
Represents the request to process a Card On File transaction using a token. The token may hold a card or an ACH bank account; an ACH token is accepted for sales only.
Type: object
The total transaction amount. This is the full amount that will be processed in the transaction. Transaction amounts are positive integers representing the amount in its smallest denomination of the configured currency (e.g. cents for USD or CAD).
min 1 · max 999999999
Example: 1000
amountBreakdown AmountBreakdownOptional fields to specify the portion of the total transaction amount that represents goods/services, tax, cashback and/or tip. These values are for reporting purposes only and will not be added to the Amount field. These amount are represented as a positive integer in the smallest denomination of the configured currency (e.g. cents for USD or CAD). If supplied, the component sum must equal amount; components are not added to amount.
Child attributes
amountGoodsAndServices integerThe amount for goods and services.
min 0 · max 999999999
Example: 900
tax integerThe tax amount.
min 0 · max 999999999
Example: 100
cashback integerThe cashback amount.
min 0 · max 999999999
Example: 0
tip integerThe tip amount.
min 0 · max 999999999
Example: 0
paymentMethodId string requiredThe ID of the token that will be used for this Card On File transaction.
- Example format:
pmt_tkn_01JRZPRGFF4J2SZC3HMDBYEN2J - ALWAYS REQUIRED when using a token
max length 35
Example: "pmt_tkn_01JRZPRGFF4J2SZC3HMDBYEN2J"
invoiceNumber InvoiceNumberAn optional alphanumeric invoice number for this transaction. If provided in the request, the same value will be populated in the response.
max length 100
Example: "inv_1234567890123456"
orderNumber OrderNumberAn optional alphanumeric order number for this transaction. If provided, the same value will be populated in the response.
max length 100
Example: "order_number_1234"
referenceId ReferenceIdForTransactionsAn optional custom reference ID for this transaction. Include this if you want to use your own reference system for linking transactions together (for example, when processing captures and refunds). Use a unique value per merchant. This field is not an idempotency key and reusing it does not replay the prior response. The reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions. If not provided, a unique reference ID will be generated automatically by the system.
max length 100
Example: "ref_s192i49i"
CaptureRequest
Represents the request to capture a previously authorized transaction.
Type: object | object
originalTransactionId OriginalTransactionIdThe transaction ID (trx_) of the original authorization to capture, or sale/capture to refund. Supply exactly one of originalTransactionId and originalReferenceId.
min length 1 · max length 30
Example: "trx_01J2F0EKHC7HY2R93C8ENBD1FG"
originalReferenceId OriginalReferenceIdThe reference ID of the original transaction to be captured or refunded. This should match the referenceId from a previous sale, authorization, or capture transaction (either a custom reference ID you provided or one that was generated automatically by the system). Use this parameter if you want to link transactions using reference IDs rather than system transaction IDs. Either originalTransactionId or originalReferenceId must be provided.
min length 1 · max length 100
Example: "ref_s192i49i"
referenceId ReferenceIdForTransactionsAn optional custom reference ID for this transaction. Include this if you want to use your own reference system for linking transactions together (for example, when processing captures and refunds). Use a unique value per merchant. This field is not an idempotency key and reusing it does not replay the prior response. The reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions. If not provided, a unique reference ID will be generated automatically by the system.
max length 100
Example: "ref_s192i49i"
amount AmountToCaptureThe amount to capture. Must be less than or equal to the original authorization amount. If not specified, the full authorized amount will be captured. If you have already performed partial captures on this authorization, you must provide an explicit amount or an error will be returned.
min 1 · max 999999999
Example: 1000
invoiceNumber InvoiceNumberAn optional alphanumeric invoice number for this transaction. If provided in the request, the same value will be populated in the response.
max length 100
Example: "inv_1234567890123456"
orderNumber OrderNumberAn optional alphanumeric order number for this transaction. If provided, the same value will be populated in the response.
max length 100
Example: "order_number_1234"
RefundRequest
Represents the request to refund or void a previously completed transaction.
Type: object | object
originalTransactionId OriginalTransactionIdThe transaction ID (trx_) of the original authorization to capture, or sale/capture to refund. Supply exactly one of originalTransactionId and originalReferenceId.
min length 1 · max length 30
Example: "trx_01J2F0EKHC7HY2R93C8ENBD1FG"
originalReferenceId OriginalReferenceIdThe reference ID of the original transaction to be captured or refunded. This should match the referenceId from a previous sale, authorization, or capture transaction (either a custom reference ID you provided or one that was generated automatically by the system). Use this parameter if you want to link transactions using reference IDs rather than system transaction IDs. Either originalTransactionId or originalReferenceId must be provided.
min length 1 · max length 100
Example: "ref_s192i49i"
referenceId ReferenceIdForTransactionsAn optional custom reference ID for this transaction. Include this if you want to use your own reference system for linking transactions together (for example, when processing captures and refunds). Use a unique value per merchant. This field is not an idempotency key and reusing it does not replay the prior response. The reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions. If not provided, a unique reference ID will be generated automatically by the system.
max length 100
Example: "ref_s192i49i"
amount AmountToRefundThe requested amount to refund or void. If not specified, the full transaction amount will be refunded or voided. For partial refunds, must be less than the original transaction amount. If you have already performed partial refunds on this transaction, you must provide an explicit amount or an error will be returned.
min 1 · max 999999999
Example: 1000
invoiceNumber InvoiceNumberAn optional alphanumeric invoice number for this transaction. If provided in the request, the same value will be populated in the response.
max length 100
Example: "inv_1234567890123456"
orderNumber OrderNumberAn optional alphanumeric order number for this transaction. If provided, the same value will be populated in the response.
max length 100
Example: "order_number_1234"
VoidRequest
Represents the request to void a previously completed transaction. The amount is always the full original transaction amount; an amount supplied in this request is ignored.
Type: object | object
originalTransactionId OriginalTransactionIdForVoidThe unique transaction ID of the original transaction to be voided. This is the 'id' value returned from a previous sale, authorization, or capture transaction. Use this parameter if you prefer to rely on system-generated transaction IDs rather than managing your own reference system. Either originalTransactionId or originalReferenceId must be provided.
The original transaction must belong to the merchant that owns the API key used for this request. A transaction belonging to a different merchant is rejected as not found, exactly as if the ID did not exist.
min length 1 · max length 30
Example: "trx_01J2F0EKHC7HY2R93C8ENBD1FG"
originalReferenceId OriginalReferenceIdForVoidThe reference ID of the original transaction to be voided. This should match the referenceId from a previous sale, authorization, or capture transaction (either a custom reference ID you provided or one that was generated automatically by the system). Use this parameter if you want to link transactions using reference IDs rather than system transaction IDs. Either originalTransactionId or originalReferenceId must be provided.
min length 1 · max length 100
Example: "ref_s192i49i"
referenceId ReferenceIdForVoidAn optional custom reference ID for this void transaction. Include this if you want to use your own reference system for linking transactions together. Use a unique value per merchant. This field is not an idempotency key and reusing it does not replay the prior response. If not provided, a unique reference ID will be generated automatically by the system.
max length 100
Example: "ref_void_12345"
invoiceNumber InvoiceNumberAn optional alphanumeric invoice number for this transaction. If provided in the request, the same value will be populated in the response.
max length 100
Example: "inv_1234567890123456"
orderNumber OrderNumberAn optional alphanumeric order number for this transaction. If provided, the same value will be populated in the response.
max length 100
Example: "order_number_1234"
UnreferencedPhysicalRefundRequest
Represents the request to process a Card Present unreferenced refund without a matching completed sale or capture transaction.
Type: object
The requested amount to refund.
min 1 · max 999999999
Example: 1000
paymentMethodId stringThe ID of the physical payment terminal that will process this Card Present unreferenced refund.
- Example format:
pmt_trm_01JRZPTMTBN41PC3VPQNZ5T3HF - Omit only when the merchant has a configured default for this operation or a single resolvable payment method.
- Otherwise, provide an explicit payment method ID.
You can retrieve all available physical payment terminal IDs for your account using the GET /payment-methods endpoint.
max length 35
Example: "pmt_trm_01JRZPTMTBN41PC3VPQNZ5T3HF"
invoiceNumber InvoiceNumberCardPresentAn optional alphanumeric invoice number for this transaction. If provided in the request, the same value will be populated in the response and will appear on the receipt.
Card Present Limit: Maximum length is 20 characters. If this limit is exceeded, the API will return a validation error.
max length 20
Example: "inv_1234567890123456"
orderNumber OrderNumberAn optional alphanumeric order number for this transaction. If provided, the same value will be populated in the response.
max length 100
Example: "order_number_1234"
referenceId ReferenceIdForTransactionsAn optional custom reference ID for this transaction. Include this if you want to use your own reference system for linking transactions together (for example, when processing captures and refunds). Use a unique value per merchant. This field is not an idempotency key and reusing it does not replay the prior response. The reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions. If not provided, a unique reference ID will be generated automatically by the system.
max length 100
Example: "ref_s192i49i"
UnreferencedVirtualRefundRequest
Represents the request to process a Card Not Present unreferenced refund without a matching completed sale or capture transaction.
Type: object
The requested amount to refund.
min 1 · max 999999999
Example: 1000
paymentMethodId stringThe ID of the hosted payment form / iframe that will collect card information for this Card Not Present unreferenced refund.
- Example format:
pmt_vrt_01JRZPTWS99Z7RB57Q1CVWSWDS - Omit only when the merchant has a configured default for this operation or a single resolvable payment method.
- Otherwise, provide an explicit payment method ID.
You can retrieve all available hosted payment form IDs for your account using the GET /payment-methods endpoint.
max length 35
Example: "pmt_vrt_01JRZPTWS99Z7RB57Q1CVWSWDS"
invoiceNumber InvoiceNumberAn optional alphanumeric invoice number for this transaction. If provided in the request, the same value will be populated in the response.
max length 100
Example: "inv_1234567890123456"
orderNumber OrderNumberAn optional alphanumeric order number for this transaction. If provided, the same value will be populated in the response.
max length 100
Example: "order_number_1234"
referenceId ReferenceIdForTransactionsAn optional custom reference ID for this transaction. Include this if you want to use your own reference system for linking transactions together (for example, when processing captures and refunds). Use a unique value per merchant. This field is not an idempotency key and reusing it does not replay the prior response. The reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions. If not provided, a unique reference ID will be generated automatically by the system.
max length 100
Example: "ref_s192i49i"
returnUrl stringWill be used to redirect user back to merchant's site after iframe completed or canceled if provided. The URL will include various parameters that are detailed in "Transaction Result Parameters" section of the Hosted Payment Form section. If you do not provide a returnUrl, the customer will see either a "Payment Processed Successfully" or "Payment Processing Issue" screen.
max length 1000
Example: "https://merchant.example.com/refund-complete"
useJavaScriptCallback booleanAt the end of the transaction flow, the user is always redirected to either the returnUrl (if provided), or a default success or issue page. In addition, if useJavaScriptCallback is set to true, the iframe will use JavaScript to post a message to the parent window to notify the merchant's site when the iframe completed. This allows for more control over the user experience on the merchant's site.
Example: true
CardOnFileAddRequest
Represents the request to tokenize a card using a physical terminal.
Type: object
paymentMethodId stringThe ID of the payment method (physical terminal) to use for adding a card.
- Example format:
pmt_trm_01JRZPTMTBN41PC3VPQNZ5T3HF - Omit only when the merchant has a configured default for this operation or a single resolvable payment method.
- Otherwise, provide an explicit payment method ID.
You can retrieve all available physical payment terminal IDs for your account using the GET /payment-methods endpoint.
max length 35
Example: "pmt_trm_01JRZPTMTBN41PC3VPQNZ5T3HF"
referenceId ReferenceIdForTokensAn optional custom reference ID to tag and track this token operation. Use a unique value per merchant. This field is not an idempotency key and reusing it does not replay the prior response. If not provided, a unique reference ID will be generated automatically by the system.
max length 100
Example: "ref_add_card_12345"
CardOnFileVirtualAddRequest
Represents the request to tokenize a card using a hosted payment form / iframe.
Type: object
paymentMethodId stringThe ID of the payment method (hosted payment form/iframe) to use for adding a card.
- Example format:
pmt_vrt_01JRZPTWS99Z7RB57Q1CVWSWDS - Omit only when the merchant has a configured default for this operation or a single resolvable payment method.
- Otherwise, provide an explicit payment method ID.
You can retrieve all available payment method IDs for your account using the GET /payment-methods endpoint.
max length 35
Example: "pmt_vrt_01JRZPTWS99Z7RB57Q1CVWSWDS"
referenceId ReferenceIdForTokensAn optional custom reference ID to tag and track this token operation. Use a unique value per merchant. This field is not an idempotency key and reusing it does not replay the prior response. If not provided, a unique reference ID will be generated automatically by the system.
max length 100
Example: "ref_add_card_12345"
returnUrl stringWill be used to redirect user back to merchant's site after iframe completed or canceled if provided. The URL will include various parameters that are detailed in "Transaction Result Parameters" section of the Hosted Payment Form section. If you do not provide a returnUrl, the customer will see either a "Payment Processed Successfully" or "Payment Processing Issue" screen.
max length 1000
Example: "https://merchant.example.com/payment-complete"
useJavaScriptCallback booleanAt the end of the transaction flow, the user is always redirected to either the returnUrl (if provided), or a default success or issue page. In addition, if useJavaScriptCallback is set to true, the iframe will use JavaScript to post a message to the parent window to notify the merchant's site when the iframe completed. This allows for more control over the user experience on the merchant's site.
Example: true
formConfig objectOptional form configuration. Omit to use payment method defaults. If supplied, billingInfoCaptureLevel is required.
Child attributes
billingInfoCaptureLevel string requiredRequired when formConfig is supplied. Choose Full or Minimal.
Allowed: Minimal, Full
enable3DSecure booleanOptional. When true, the hosted payment form performs 3D Secure (3DS2) cardholder authentication during card tokenization. The issuer decides whether the transaction is authenticated frictionlessly or requires a cardholder challenge; when a challenge is required, it is rendered in an overlay on the hosted payment form and the SDK resumes automatically on completion.
When false, 3DS is skipped and liability for fraudulent chargebacks remains with the merchant.
The resulting transaction exposes the authentication outcome in threeDs.status and additional authentication data in threeDs when available.
Card payment methods only. 3DS is a card-network protocol and is not supported for ACH or EFT payment methods - setting enable3DSecure: true on a non-card payment method is rejected with a validation error.
When omitted, this field inherits the payment method default.
Recommended: Combine with billingInfoCaptureLevel: Full (the default) to maximize the likelihood of a frictionless flow. Full billing is not required for 3DS to function, but the risk engine uses address, email, and phone to score the transaction.
piiFields array of stringOptional additional contact fields to collect. Omitted values inherit the payment method defaults; an empty array requests neither field.
Allowed: Email, Phone
accountHolder objectOptional external customer identifier. Supported by virtual sale and virtual tokenization; ignored by virtual authorization.
Child attributes
externalId stringYour external identifier for this customer. This can be any unique identifier from your system.
If an account holder with this external ID already exists for the merchant identified by your API key, it will be used. Otherwise, a new account holder will be created with this external ID.
max length 255
Example: "customer_abc123xyz"
CNPVirtualResponse
Represents the response to a Card Not Present sale or authorization using a hosted payment form / iframe.
Type: object
id stringIdentifier of the hosted session request (ifr_ prefix). This is not a transaction ID.
Example: "ifr_01J2F0ZJ2JW5B63CJFPXRGAB1S"
paymentMethod objectThe payment method used for this transaction.
Child attributes
id string requiredThe unique identifier of the payment method. This ID has a prefix that makes it human-readable (pmt_trm_ for physical terminals, pmt_vrt_ for virtual card terminals, pmt_ach_ for virtual ACH terminals, pmt_tkn_ for tokens, which store a card or an ACH bank account), but applications should always use the type field to determine the payment method type rather than parsing this ID.
Example: "pmt_tkn_01JRZPRGFF4J2SZC3HMDBYEN2J"
dateDeleted string (date-time)The date and time (UTC) when this payment method token was removed from the system using the Remove Token endpoint. This parameter will only be returned if the token was removed/deleted from the system.
This field will be present in three scenarios:
- As part of a successful Remove Token endpoint response
- In token.removed webhook notifications
- In List Transactions responses for transactions where the associated token was later removed
When this field is present, sensitive card details (maskedCardNumber, cardExpDate) will be removed for security purposes, but all other transaction data remains intact.
Example: "2025-07-14T14:05:48.869225Z"
type string requiredThe type of payment method:
Physical- A physical payment terminal for Card Present transactionsVirtual- A hosted payment form/iframe for Card Not Present transactionsVirtualAch- A hosted payment form/iframe for ACH (US) bank transfer transactionsToken- A stored payment method (a card or an ACH bank account) for card-on-file and recurring transactionsVirtualEft- A virtual Canadian bank-transfer payment method, when configured.Unknown- The payment method type is not known.
Allowed: Unknown, Physical, Virtual, VirtualAch, VirtualEft, Token
Example: "Token"
currency string requiredThe currency of the payment method.
Allowed: USD, CAD
Example: "USD"
description stringA human-readable name for the payment method.
Example: "Token for John Doe's Visa"
billingContact objectBilling contact information associated with the payment method. Not returned on card present transactions or on refunds, captures, etc. of card present transactions.
cardType stringThe type of card used for this transaction:
UNKNOWN- The card type is unknownDEBIT- Debit CardVISA- Visa Credit CardMASTERCARD- MasterCard Credit CardAMEX- American Express Credit CardDINERS- Diners Club Credit CardDISCOVER- Discover Credit CardJCB- JCB Credit CardUNIONPAY- UnionPay Credit CardMAESTRO- Maestro Debit CardGIFT- Gift CardCASH- All-cash TransactionEBT- Electronic Benefits Transfer CardINTERAC- Interac (Canadian PIN-debit network), Card Present onlyOTHER- Other tender types
Allowed: UNKNOWN, DEBIT, VISA, MASTERCARD, AMEX, DINERS, DISCOVER, JCB, UNIONPAY, MAESTRO, GIFT, CASH, EBT, INTERAC, OTHER
Example: "VISA"
maskedCardNumber stringThe masked card number. The format may vary (e.g. **0011, 4**0011, etc.)
Example: "************0011"
cardExpDate stringThe expiration date of the card in MMYY format.
Example: "1225"
accountType stringFunding-source classification of this token-type payment method.
- For card tokens:
CreditorDebit. - For ACH tokens:
CheckingorSavings. May be omitted for older tokens that pre-date this field, for non-token payment methods, or when the source did not provide a classification.
Allowed: Credit, Debit, Checking, Savings
Example: "Debit"
accountNumber stringMasked bank account number, when available for a bank-account token.
Example: "*****6789"
invoiceNumber InvoiceNumberAn optional alphanumeric invoice number for this transaction. If provided in the request, the same value will be populated in the response.
max length 100
Example: "inv_1234567890123456"
orderNumber OrderNumberAn optional alphanumeric order number for this transaction. If provided, the same value will be populated in the response.
max length 100
Example: "order_number_1234"
referenceId ReferenceIdForResponseThe reference ID for this transaction. This will either be the reference ID provided in the transaction request or, if no value was provided, a value generated automatically by the system. This reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions.
max length 100
Example: "ref_s192i49i"
requestedAmount integerThe amount sent in the transaction request. The amount is always a non-null positive integer in the smallest denomination of the currency (e.g. cents for USD or CAD).
Example: 1000
sessionId stringOpaque session token. Pass this exact unprefixed value to the SDK.
Example: "01JSFAMY0AGW27QKP30C727512"
iframeUrl stringURL for the iframe to collect payment information, or null if iframe could not be created due to invalid credentials, etc.
Example: "https://hpf.integratedcommerce.io/session/01JSFAMY0AGW27QKP30C727512"
expirationTimestamp string (date-time)Absolute session expiry in UTC, 10 minutes after creation.
Example: "2025-04-17T14:19:03Z"
status stringStatus of the iframe session. When created, this will always be pending. The status values will be updated as the customer goes through the iframe process.
Allowed: Pending, Completed, Expired, Error
Example: "Pending"
PaymentMethodsListResponse
Paginated response containing payment methods
Type: object
totalCount integer requiredTotal number of payment methods that match the filter criteria
Example: 2
page integer requiredThe current page number (starts at 1)
Example: 1
pageSize integer requiredNumber of items per page
Example: 10
totalPages integer requiredTotal number of pages available
Example: 1
hasNextPage boolean requiredTrue if there are more pages of results available
Example: false
hasPreviousPage boolean requiredTrue if there are previous pages of results available
Example: false
items array of object requiredArray of payment methods for the current page
Child attributes
id string requiredThe unique identifier of the payment method. This ID has a prefix that makes it human-readable (pmt_trm_ for physical terminals, pmt_vrt_ for virtual card terminals, pmt_ach_ for virtual ACH terminals, pmt_tkn_ for tokens, which store a card or an ACH bank account), but applications should always use the type field to determine the payment method type rather than parsing this ID.
Example: "pmt_tkn_01JRZPRGFF4J2SZC3HMDBYEN2J"
dateDeleted string (date-time)The date and time (UTC) when this payment method token was removed from the system using the Remove Token endpoint. This parameter will only be returned if the token was removed/deleted from the system.
This field will be present in three scenarios:
- As part of a successful Remove Token endpoint response
- In token.removed webhook notifications
- In List Transactions responses for transactions where the associated token was later removed
When this field is present, sensitive card details (maskedCardNumber, cardExpDate) will be removed for security purposes, but all other transaction data remains intact.
Example: "2025-07-14T14:05:48.869225Z"
type string requiredThe type of payment method:
Physical- A physical payment terminal for Card Present transactionsVirtual- A hosted payment form/iframe for Card Not Present transactionsVirtualAch- A hosted payment form/iframe for ACH (US) bank transfer transactionsToken- A stored payment method (a card or an ACH bank account) for card-on-file and recurring transactionsVirtualEft- A virtual Canadian bank-transfer payment method, when configured.Unknown- The payment method type is not known.
Allowed: Unknown, Physical, Virtual, VirtualAch, VirtualEft, Token
Example: "Token"
currency string requiredThe currency of the payment method.
Allowed: USD, CAD
Example: "USD"
description stringA human-readable name for the payment method.
Example: "Token for John Doe's Visa"
billingContact objectBilling contact information associated with the payment method. Not returned on card present transactions or on refunds, captures, etc. of card present transactions.
cardType stringThe type of card used for this transaction:
UNKNOWN- The card type is unknownDEBIT- Debit CardVISA- Visa Credit CardMASTERCARD- MasterCard Credit CardAMEX- American Express Credit CardDINERS- Diners Club Credit CardDISCOVER- Discover Credit CardJCB- JCB Credit CardUNIONPAY- UnionPay Credit CardMAESTRO- Maestro Debit CardGIFT- Gift CardCASH- All-cash TransactionEBT- Electronic Benefits Transfer CardINTERAC- Interac (Canadian PIN-debit network), Card Present onlyOTHER- Other tender types
Allowed: UNKNOWN, DEBIT, VISA, MASTERCARD, AMEX, DINERS, DISCOVER, JCB, UNIONPAY, MAESTRO, GIFT, CASH, EBT, INTERAC, OTHER
Example: "VISA"
maskedCardNumber stringThe masked card number. The format may vary (e.g. **0011, 4**0011, etc.)
Example: "************0011"
cardExpDate stringThe expiration date of the card in MMYY format.
Example: "1225"
accountType stringFunding-source classification of this token-type payment method.
- For card tokens:
CreditorDebit. - For ACH tokens:
CheckingorSavings. May be omitted for older tokens that pre-date this field, for non-token payment methods, or when the source did not provide a classification.
Allowed: Credit, Debit, Checking, Savings
Example: "Debit"
accountNumber stringMasked bank account number, when available for a bank-account token.
Example: "*****6789"
AccountHolderPaymentMethodsListResponse
Paginated response containing account holder payment methods
Type: object
totalCount integer requiredTotal number of payment methods that match the filter criteria
Example: 2
page integer requiredThe current page number (starts at 1)
Example: 1
pageSize integer requiredNumber of items per page
Example: 10
totalPages integer requiredTotal number of pages available
Example: 1
hasNextPage boolean requiredTrue if there are more pages of results available
Example: false
hasPreviousPage boolean requiredTrue if there are previous pages of results available
Example: false
items array of object requiredList of tokenized payment methods for the account holder
Child attributes
id string requiredThe unique identifier of the payment method. This ID has a prefix that makes it human-readable (pmt_trm_ for physical terminals, pmt_vrt_ for virtual card terminals, pmt_ach_ for virtual ACH terminals, pmt_tkn_ for tokens, which store a card or an ACH bank account), but applications should always use the type field to determine the payment method type rather than parsing this ID.
Example: "pmt_tkn_01JRZPRGFF4J2SZC3HMDBYEN2J"
dateDeleted string (date-time)The date and time (UTC) when this payment method token was removed from the system using the Remove Token endpoint. This parameter will only be returned if the token was removed/deleted from the system.
This field will be present in three scenarios:
- As part of a successful Remove Token endpoint response
- In token.removed webhook notifications
- In List Transactions responses for transactions where the associated token was later removed
When this field is present, sensitive card details (maskedCardNumber, cardExpDate) will be removed for security purposes, but all other transaction data remains intact.
Example: "2025-07-14T14:05:48.869225Z"
type string requiredThe type of payment method:
Physical- A physical payment terminal for Card Present transactionsVirtual- A hosted payment form/iframe for Card Not Present transactionsVirtualAch- A hosted payment form/iframe for ACH (US) bank transfer transactionsToken- A stored payment method (a card or an ACH bank account) for card-on-file and recurring transactionsVirtualEft- A virtual Canadian bank-transfer payment method, when configured.Unknown- The payment method type is not known.
Allowed: Unknown, Physical, Virtual, VirtualAch, VirtualEft, Token
Example: "Token"
currency string requiredThe currency of the payment method.
Allowed: USD, CAD
Example: "USD"
description stringA human-readable name for the payment method.
Example: "Token for John Doe's Visa"
billingContact objectBilling contact information associated with the payment method. Not returned on card present transactions or on refunds, captures, etc. of card present transactions.
cardType stringThe type of card used for this transaction:
UNKNOWN- The card type is unknownDEBIT- Debit CardVISA- Visa Credit CardMASTERCARD- MasterCard Credit CardAMEX- American Express Credit CardDINERS- Diners Club Credit CardDISCOVER- Discover Credit CardJCB- JCB Credit CardUNIONPAY- UnionPay Credit CardMAESTRO- Maestro Debit CardGIFT- Gift CardCASH- All-cash TransactionEBT- Electronic Benefits Transfer CardINTERAC- Interac (Canadian PIN-debit network), Card Present onlyOTHER- Other tender types
Allowed: UNKNOWN, DEBIT, VISA, MASTERCARD, AMEX, DINERS, DISCOVER, JCB, UNIONPAY, MAESTRO, GIFT, CASH, EBT, INTERAC, OTHER
Example: "VISA"
maskedCardNumber stringThe masked card number. The format may vary (e.g. **0011, 4**0011, etc.)
Example: "************0011"
cardExpDate stringThe expiration date of the card in MMYY format.
Example: "1225"
accountType stringFunding-source classification of this token-type payment method.
- For card tokens:
CreditorDebit. - For ACH tokens:
CheckingorSavings. May be omitted for older tokens that pre-date this field, for non-token payment methods, or when the source did not provide a classification.
Allowed: Credit, Debit, Checking, Savings
Example: "Debit"
accountNumber stringMasked bank account number, when available for a bank-account token.
Example: "*****6789"
AccountHolder
Account holder information associated with the transaction
Type: object
id string requiredAccount holder ID assigned by the API.
Example: "aho_01JRZPRGFF4J2SZC3HMDBYEN2J"
externalId string requiredExternal account holder ID assigned by your application.
Example: "usr_1234567890123"
contact objectContact information for the account holder. Only returned for Card Not Present transactions.
Child attributes
name stringExample: "John Doe"
countryCode stringExample: "US"
zipCode stringExample: "60606"
address stringExample: "300 S Wacker Dr"
state stringExample: "IL"
city stringExample: "Chicago"
address2 stringAdditional address information, when supplied.
Example: "Suite 200"
AccountHolderRequest
Account holder information for associating a transaction or tokenized payment method with a customer.
When you provide an externalId, the system will either find an existing account holder with that ID or create a new one. This allows you to link payment methods and transactions to your own customer identifiers (e.g., CRM contact IDs, user IDs from your system).
Type: object
externalId stringYour external identifier for this customer. This can be any unique identifier from your system.
If an account holder with this external ID already exists for the merchant identified by your API key, it will be used. Otherwise, a new account holder will be created with this external ID.
max length 255
Example: "customer_abc123xyz"
BillingContact
Billing contact information associated with the payment method. Not returned on card present transactions or on refunds, captures, etc. of card present transactions.
Type: object
name stringExample: "John Doe"
countryCode stringExample: "US"
zipCode stringExample: "12345"
address stringExample: "123 Main St"
state stringExample: "NY"
city stringExample: "Anytown"
address2 stringAdditional address information, when supplied.
Example: "Suite 200"
TransactionsListResponse
Paginated response containing transactions
Type: object
totalCount integer requiredTotal number of transactions that match the filter criteria
Example: 5
page integer requiredThe current page number (starts at 1)
Example: 1
pageSize integer requiredNumber of items per page
Example: 10
totalPages integer requiredTotal number of pages available
Example: 1
hasNextPage boolean requiredTrue if there are more pages of results available
Example: false
hasPreviousPage boolean requiredTrue if there are previous pages of results available
Example: false
Array of transactions for the current page
Child attributes
id stringUnique ID for this transaction.
Example: "trx_01J2F0EKHC7HY2R93C8ENBD1FG"
timestamp string (date-time)Transaction timestamp in UTC
Example: "2025-05-27T18:49:31Z"
type stringType of transaction.
Chargeback records an ACH payment that the payer's bank returned after the funds reached the merchant. It is a separate transaction: the original sale is not changed and stays approved. originalTransactionId holds the sale's ID, and the amount is the returned amount. Its approved outcome (resultCode 0, responseCode 1) means the chargeback took effect and the money went back to the payer. See Chargebacks.
Treat this list as open: ignore a value your integration does not recognize instead of rejecting the transaction.
Allowed: Sale, Auth, Capture, Refund, Void, Chargeback
Example: "Sale"
status TransactionStatusThe processing lifecycle, separate from approval or decline. Pending waits for customer input; Submitted, Acknowledged, and Processing are in flight; AwaitingSettlement waits for a bank transfer outcome. Completed can be approved or declined: inspect resultCode and transactionResponses[].responseCode. Failed means processing stopped because of a technical issue. Abandoned means the customer did not complete the flow before submission. Both states close the request.
Allowed: Unknown, Created, Pending, Submitted, Acknowledged, Processing, AwaitingSettlement, Completed, Failed, Abandoned
Example: "Completed"
accountHolder objectAccount holder information associated with the transaction
paymentMethod objectThe payment method used for this transaction.
invoiceNumber InvoiceNumberAn optional alphanumeric invoice number for this transaction. If provided in the request, the same value will be populated in the response.
max length 100
Example: "inv_1234567890123456"
orderNumber OrderNumberAn optional alphanumeric order number for this transaction. If provided, the same value will be populated in the response.
max length 100
Example: "order_number_1234"
referenceId ReferenceIdForResponseThe reference ID for this transaction. This will either be the reference ID provided in the transaction request or, if no value was provided, a value generated automatically by the system. This reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions.
max length 100
Example: "ref_s192i49i"
originalTransactionId stringThe trx_ ID of the earlier transaction this one belongs to, when the link has been verified. Set on card-present captures and voids, card-present Interac refunds, ACH refunds once the gateway confirms the original sale, ACH chargebacks (the charged-back sale), and ACH resubmissions (the original sale).
Absent when there is no verified link. That includes card-not-present captures, refunds, and voids, other card-present refunds, and older transactions recorded before the link was stored. Do not treat an absent value as proof that the transaction has no original.
Example: "trx_01JWBPE27KHY2K4J7A13ATQ786"
resultCode ResultCodeResult codes:
0- Successful transaction request. (Check each transactionResponse's responseCode to determine if a transaction was approved or declined, card was tokenized, etc.)1003- The payment terminal is busy or unavailable. (If this error persists, the user may need to close and re-open the Payment Application on the terminal or restart the terminal)1005- The specified terminal could not be found.1010- The transaction request is pending to become transaction.2014- The payment method or card brand is not enabled for the merchant.resultTextcarries the message, such asACH payments are not enabled for this merchant.orVisa cards are not enabled for this merchant.The transaction isCompletedand failed; do not retry it with the same payment method.3000- An unexpected error occurred. Please try again.3002- The transaction could not be completed because the payment terminal could not find the related transaction.3005- To resolve this error, power off your payment terminal, wait one minute and retry the transaction. If the error persists, please contact support.3006- The transaction could not be completed because the payment terminal is low on battery.3009- The transaction could not be completed because of network connectivity issues with the payment terminal. Please restore connectivity and try again.3010- The transaction took too long and was cancelled by the application.3011- Invalid transaction request. Please consult the documentation for valid transaction requests.3012- Invalid transaction request. paymentMethodId is invalid.3013- Invalid transaction request. The specified amount appears to be incorrect. Please retry with a smaller amount.3014- Invalid amount. Please try your transaction again with an amount greater than $0.3020- An unsupported transaction result was received.4001- The transaction is being processed. This is returned for asynchronous bank transfer payment methods (e.g. ACH) while awaiting a final outcome.6800- 3D Secure authentication was rejected by the issuer's ACS (card auth failed, security failure, stolen card, suspected fraud, etc.). Surfaced on declined CNP transactions whenformConfig.enable3DSecure: trueand the gateway reports a 3D Secure reason; other failures in a 3D Secure session use6900-6902. See SDK Error Codes for guidance.6801- 3D Secure authentication could not be completed because of an upstream technical issue (ACS timeout, directory server unreachable). Retry later or, if merchant policy allows, retry with 3DS disabled.6802- The card is not enrolled in 3D Secure. Retry without 3DS only if merchant policy allows; approval is not guaranteed.6900- The issuer declined the card on the hosted payment form or Payment SDK path. The specific reason is ontransactionResponses[0].responseCode(10-18) and inresultText. See SDK Error Codes for guidance.6901- The gateway rejected or failed the hosted payment form payment because of validation or a gateway failure rather than an issuer decision. See SDK Error Codes for guidance.6902- The gateway reported no failure but returned no payment token. See SDK Error Codes for guidance.9998- The system is not ready to process a transaction.9999- An unknown error has occurred. If available, an auxiliary error code will be provided in the message.1010- The transaction request is pending customer interaction.4100- Cardholder verification is required. FollowthreeDsChallenge.redirectUrland reconcile the final transaction outcome before retrying.55- The customer cancelled the hosted payment attempt.
Allowed: 0, 55, 1003, 1005, 1010, 2014, 3000, 3002, 3005, 3006, 3009, 3010, 3011, 3012, 3013, 3014, 3020, 4001, 4100, 6800, 6801, 6802, 6900, 6901, 6902, 9998, 9999
Example: 0
resultText ResultTextA message describing the result code in more detail. On a stored transaction it is uppercase, such as APPROVED, DECLINED, or the gateway's reason, except for resultCode 2014, where it is the message in sentence case. Use it for display, not for branching.
Example: "APPROVED"
requestedAmount integerThe requested amount in minor units. Virtual tokenization uses 0; physical tokenization uses a 1-unit authorization.
Example: 1000
approvedAmount integerThe approved amount in minor units. This is 0 for a decline or an outcome that is still in flight. A terminal may adjust the amount, for example by adding a tip.
Example: 1000
balanceAmount integerThe balance that remains to be paid on the transaction. This amount is always an integer in the smallest denomination of the currency (e.g. cents for USD or CAD).
Example: 0
refundableAmount integerThe amount that can still be refunded against this sale or capture, in the smallest denomination of the currency. Normally available within seconds of approval. Absent for authorizations, refunds, voids, and declined transactions; it can also be absent briefly after a sale or capture is approved. Absence does not mean unlimited; it means this value is not yet available or not applicable. An ACH chargeback reduces it like a refund. 0 means fully refunded, voided, or charged back.
Example: 1000
transactionResponses array of objectIndividual gateway responses, with receipts under each entry. The array can be empty while processing is incomplete.
sourceId stringIdentifier of the session or other source that initiated the transaction. For an ACH chargeback, it is the chargeback's own trx_ ID, or the billing subscription ID when the charged-back sale was a subscription payment.
threeDs ThreeDsAuthentication3D Secure (EMV 3DS2) authentication outcome. Populated on transactions initiated with formConfig.enable3DSecure: true. All fields (other than status) are optional - what the issuer returns depends on whether the transaction was frictionless, challenged, or declined.
threeDsChallenge ThreeDsChallengePresent when a token payment requires a cardholder challenge (resultCode: 4100).
TransactionResponseObject
Represents the response to a sale or authorization transaction.
Type: object
id stringUnique ID for this transaction.
Example: "trx_01J2F0EKHC7HY2R93C8ENBD1FG"
timestamp string (date-time)Transaction timestamp in UTC
Example: "2025-05-27T18:49:31Z"
type stringType of transaction.
Chargeback records an ACH payment that the payer's bank returned after the funds reached the merchant. It is a separate transaction: the original sale is not changed and stays approved. originalTransactionId holds the sale's ID, and the amount is the returned amount. Its approved outcome (resultCode 0, responseCode 1) means the chargeback took effect and the money went back to the payer. See Chargebacks.
Treat this list as open: ignore a value your integration does not recognize instead of rejecting the transaction.
Allowed: Sale, Auth, Capture, Refund, Void, Chargeback
Example: "Sale"
status TransactionStatusThe processing lifecycle, separate from approval or decline. Pending waits for customer input; Submitted, Acknowledged, and Processing are in flight; AwaitingSettlement waits for a bank transfer outcome. Completed can be approved or declined: inspect resultCode and transactionResponses[].responseCode. Failed means processing stopped because of a technical issue. Abandoned means the customer did not complete the flow before submission. Both states close the request.
Allowed: Unknown, Created, Pending, Submitted, Acknowledged, Processing, AwaitingSettlement, Completed, Failed, Abandoned
Example: "Completed"
accountHolder objectAccount holder information associated with the transaction
Child attributes
id string requiredAccount holder ID assigned by the API.
Example: "aho_01JRZPRGFF4J2SZC3HMDBYEN2J"
externalId string requiredExternal account holder ID assigned by your application.
Example: "usr_1234567890123"
contact objectContact information for the account holder. Only returned for Card Not Present transactions.
paymentMethod objectThe payment method used for this transaction.
Child attributes
id string requiredThe unique identifier of the payment method. This ID has a prefix that makes it human-readable (pmt_trm_ for physical terminals, pmt_vrt_ for virtual card terminals, pmt_ach_ for virtual ACH terminals, pmt_tkn_ for tokens, which store a card or an ACH bank account), but applications should always use the type field to determine the payment method type rather than parsing this ID.
Example: "pmt_tkn_01JRZPRGFF4J2SZC3HMDBYEN2J"
dateDeleted string (date-time)The date and time (UTC) when this payment method token was removed from the system using the Remove Token endpoint. This parameter will only be returned if the token was removed/deleted from the system.
This field will be present in three scenarios:
- As part of a successful Remove Token endpoint response
- In token.removed webhook notifications
- In List Transactions responses for transactions where the associated token was later removed
When this field is present, sensitive card details (maskedCardNumber, cardExpDate) will be removed for security purposes, but all other transaction data remains intact.
Example: "2025-07-14T14:05:48.869225Z"
type string requiredThe type of payment method:
Physical- A physical payment terminal for Card Present transactionsVirtual- A hosted payment form/iframe for Card Not Present transactionsVirtualAch- A hosted payment form/iframe for ACH (US) bank transfer transactionsToken- A stored payment method (a card or an ACH bank account) for card-on-file and recurring transactionsVirtualEft- A virtual Canadian bank-transfer payment method, when configured.Unknown- The payment method type is not known.
Allowed: Unknown, Physical, Virtual, VirtualAch, VirtualEft, Token
Example: "Token"
currency string requiredThe currency of the payment method.
Allowed: USD, CAD
Example: "USD"
description stringA human-readable name for the payment method.
Example: "Token for John Doe's Visa"
billingContact objectBilling contact information associated with the payment method. Not returned on card present transactions or on refunds, captures, etc. of card present transactions.
cardType stringThe type of card used for this transaction:
UNKNOWN- The card type is unknownDEBIT- Debit CardVISA- Visa Credit CardMASTERCARD- MasterCard Credit CardAMEX- American Express Credit CardDINERS- Diners Club Credit CardDISCOVER- Discover Credit CardJCB- JCB Credit CardUNIONPAY- UnionPay Credit CardMAESTRO- Maestro Debit CardGIFT- Gift CardCASH- All-cash TransactionEBT- Electronic Benefits Transfer CardINTERAC- Interac (Canadian PIN-debit network), Card Present onlyOTHER- Other tender types
Allowed: UNKNOWN, DEBIT, VISA, MASTERCARD, AMEX, DINERS, DISCOVER, JCB, UNIONPAY, MAESTRO, GIFT, CASH, EBT, INTERAC, OTHER
Example: "VISA"
maskedCardNumber stringThe masked card number. The format may vary (e.g. **0011, 4**0011, etc.)
Example: "************0011"
cardExpDate stringThe expiration date of the card in MMYY format.
Example: "1225"
accountType stringFunding-source classification of this token-type payment method.
- For card tokens:
CreditorDebit. - For ACH tokens:
CheckingorSavings. May be omitted for older tokens that pre-date this field, for non-token payment methods, or when the source did not provide a classification.
Allowed: Credit, Debit, Checking, Savings
Example: "Debit"
accountNumber stringMasked bank account number, when available for a bank-account token.
Example: "*****6789"
invoiceNumber InvoiceNumberAn optional alphanumeric invoice number for this transaction. If provided in the request, the same value will be populated in the response.
max length 100
Example: "inv_1234567890123456"
orderNumber OrderNumberAn optional alphanumeric order number for this transaction. If provided, the same value will be populated in the response.
max length 100
Example: "order_number_1234"
referenceId ReferenceIdForResponseThe reference ID for this transaction. This will either be the reference ID provided in the transaction request or, if no value was provided, a value generated automatically by the system. This reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions.
max length 100
Example: "ref_s192i49i"
originalTransactionId stringThe trx_ ID of the earlier transaction this one belongs to, when the link has been verified. Set on card-present captures and voids, card-present Interac refunds, ACH refunds once the gateway confirms the original sale, ACH chargebacks (the charged-back sale), and ACH resubmissions (the original sale).
Absent when there is no verified link. That includes card-not-present captures, refunds, and voids, other card-present refunds, and older transactions recorded before the link was stored. Do not treat an absent value as proof that the transaction has no original.
Example: "trx_01JWBPE27KHY2K4J7A13ATQ786"
resultCode ResultCodeResult codes:
0- Successful transaction request. (Check each transactionResponse's responseCode to determine if a transaction was approved or declined, card was tokenized, etc.)1003- The payment terminal is busy or unavailable. (If this error persists, the user may need to close and re-open the Payment Application on the terminal or restart the terminal)1005- The specified terminal could not be found.1010- The transaction request is pending to become transaction.2014- The payment method or card brand is not enabled for the merchant.resultTextcarries the message, such asACH payments are not enabled for this merchant.orVisa cards are not enabled for this merchant.The transaction isCompletedand failed; do not retry it with the same payment method.3000- An unexpected error occurred. Please try again.3002- The transaction could not be completed because the payment terminal could not find the related transaction.3005- To resolve this error, power off your payment terminal, wait one minute and retry the transaction. If the error persists, please contact support.3006- The transaction could not be completed because the payment terminal is low on battery.3009- The transaction could not be completed because of network connectivity issues with the payment terminal. Please restore connectivity and try again.3010- The transaction took too long and was cancelled by the application.3011- Invalid transaction request. Please consult the documentation for valid transaction requests.3012- Invalid transaction request. paymentMethodId is invalid.3013- Invalid transaction request. The specified amount appears to be incorrect. Please retry with a smaller amount.3014- Invalid amount. Please try your transaction again with an amount greater than $0.3020- An unsupported transaction result was received.4001- The transaction is being processed. This is returned for asynchronous bank transfer payment methods (e.g. ACH) while awaiting a final outcome.6800- 3D Secure authentication was rejected by the issuer's ACS (card auth failed, security failure, stolen card, suspected fraud, etc.). Surfaced on declined CNP transactions whenformConfig.enable3DSecure: trueand the gateway reports a 3D Secure reason; other failures in a 3D Secure session use6900-6902. See SDK Error Codes for guidance.6801- 3D Secure authentication could not be completed because of an upstream technical issue (ACS timeout, directory server unreachable). Retry later or, if merchant policy allows, retry with 3DS disabled.6802- The card is not enrolled in 3D Secure. Retry without 3DS only if merchant policy allows; approval is not guaranteed.6900- The issuer declined the card on the hosted payment form or Payment SDK path. The specific reason is ontransactionResponses[0].responseCode(10-18) and inresultText. See SDK Error Codes for guidance.6901- The gateway rejected or failed the hosted payment form payment because of validation or a gateway failure rather than an issuer decision. See SDK Error Codes for guidance.6902- The gateway reported no failure but returned no payment token. See SDK Error Codes for guidance.9998- The system is not ready to process a transaction.9999- An unknown error has occurred. If available, an auxiliary error code will be provided in the message.1010- The transaction request is pending customer interaction.4100- Cardholder verification is required. FollowthreeDsChallenge.redirectUrland reconcile the final transaction outcome before retrying.55- The customer cancelled the hosted payment attempt.
Allowed: 0, 55, 1003, 1005, 1010, 2014, 3000, 3002, 3005, 3006, 3009, 3010, 3011, 3012, 3013, 3014, 3020, 4001, 4100, 6800, 6801, 6802, 6900, 6901, 6902, 9998, 9999
Example: 0
resultText ResultTextA message describing the result code in more detail. On a stored transaction it is uppercase, such as APPROVED, DECLINED, or the gateway's reason, except for resultCode 2014, where it is the message in sentence case. Use it for display, not for branching.
Example: "APPROVED"
requestedAmount integerThe requested amount in minor units. Virtual tokenization uses 0; physical tokenization uses a 1-unit authorization.
Example: 1000
approvedAmount integerThe approved amount in minor units. This is 0 for a decline or an outcome that is still in flight. A terminal may adjust the amount, for example by adding a tip.
Example: 1000
balanceAmount integerThe balance that remains to be paid on the transaction. This amount is always an integer in the smallest denomination of the currency (e.g. cents for USD or CAD).
Example: 0
refundableAmount integerThe amount that can still be refunded against this sale or capture, in the smallest denomination of the currency. Normally available within seconds of approval. Absent for authorizations, refunds, voids, and declined transactions; it can also be absent briefly after a sale or capture is approved. Absence does not mean unlimited; it means this value is not yet available or not applicable. An ACH chargeback reduces it like a refund. 0 means fully refunded, voided, or charged back.
Example: 1000
transactionResponses array of objectIndividual gateway responses, with receipts under each entry. The array can be empty while processing is incomplete.
Child attributes
responseCode ResponseCodeThe outcome of the payment, and the field that tells you whether the transaction succeeded. The HTTP status, resultCode, and status do not. A transaction succeeded only when status is Completed and a transaction response has responseCode 1 or 2.
Outcomes:
- Approved -
1,2. For2, onlyamountApprovedwas approved. On aChargebacktransaction, approved means the chargeback took effect: the money went back to the payer. - Declined -
10to18. The issuer or bank refused the payment. Do not retry with the same payment details. - Canceled -
54,55. No money moved. - Pending -
57. The outcome is not final. Wait for the webhook or query the transaction again. - Unknown -
0. No specific code was reported. Whilestatusis notCompleted, the outcome is not final. On aCompletedtransaction it is not an approval: readresultCodeandresultTextfor the reason, for example2014,6901, or6902. - Error - every other code. Processing failed for a technical or request reason.
See Transaction response codes.
Response codes:
0- UNKNOWN1- APPROVED - Transaction was approved2- PARTIAL_APPROVED - Transaction was partially approved, but not for the full requested amount.10- DECLINED - Transaction was declined by the issuer or bank. For Card-Present, the transaction can also be declined offline by the terminal.11- INSUFFICIENT_FUNDS - Rejected due to insufficient funds in the account.12- CARD_EXPIRED - The card used for the transaction has expired.13- FRAUD_SUSPECTED - The transaction was flagged for potential fraud.14- INVALID_PAYMENT_INFO - The provided information is invalid (e.g.: card number).15- LIMIT_EXCEEDED - Rejected due to reaching a limit (e.g.: credit limit).16- VERIFICATION_REQUIRED - Additional customer verification is required for the transaction to proceed (e.g.: 3D Secure).17- AUTHENTICATION_FAILED - Rejected due to incorrect PIN or authentication failure.18- POLICY_VIOLATION - Rejected due to a violation of the payment gateway's terms of service or policies.19- BATCH_EMPTY - Indicates that the batch for processing is empty.20- RECORD_NOT_FOUND - Indicates that the requested record for a transaction was not found (e.g.: to VOID a reference).21- ALREADY_VOIDED - Indicates that the transaction has already been voided and cannot be processed again.50- NETWORK_ERROR - Rejected due to network or communication issues with the payment gateway.51- INVALID_ECR_PARAMETER - Payment Terminal or system-specific errors.52- NOT_SUPPORTED - Rejected because the requested operation is not supported.53- BUSY_OR_UNAVAILABLE - The Payment Terminal, Payment App or system is busy or unavailable.54- CANCELLED - Cancelled by the user or merchant.55- USER_CANCELLED - Specific to scenarios where the user cancels the transaction.56- TIMED_OUT_ON_USER_INPUT - Failed to complete the transaction in time.57- PENDING - The transaction is awaiting an asynchronous outcome.
Allowed: 0, 1, 2, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 50, 51, 52, 53, 54, 55, 56, 57
authCode stringThe authorization code provided by the card issuer, confirming transaction approval.
Example: "123456"
amountApproved integerThe amount approved for this transaction response.
Example: 1000
approvedAmountBreakdown ApprovedAmountBreakdownA breakdown of approvedAmount, where each amounts approved on the payment terminal are returned separately. Only returned on Sale, Auth and Capture transactions.
paymentMethod objectThe payment method used for this transaction.
cardType CardTypeThe type of card used for this transaction:
UNKNOWN- The card type is unknownDEBIT- Debit CardVISA- Visa Credit CardMASTERCARD- MasterCard Credit CardAMEX- American Express Credit CardDINERS- Diners Club Credit CardDISCOVER- Discover Credit CardJCB- JCB Credit CardUNIONPAY- UnionPay Credit CardMAESTRO- Maestro Debit CardGIFT- Gift CardCASH- All-cash TransactionEBT- Electronic Benefits Transfer CardINTERAC- Interac (Canadian PIN-debit network), Card Present onlyOTHER- Other tender types
Allowed: UNKNOWN, DEBIT, VISA, MASTERCARD, AMEX, DINERS, DISCOVER, JCB, UNIONPAY, MAESTRO, GIFT, CASH, EBT, INTERAC, OTHER
avsResult AVSResultThe AVS (Address Verification Service) result. Typically returned on Card Not Present transactions.
A- Address matches, ZIP does not. The first five numerical characters contained in the address match those stored at the VIC or issuer's center. However, the ZIP code does not match.E- Ineligible transaction.N- Neither address nor ZIP matches. Neither the first five numerical characters contained in the address match with those stored at the VIC nor issuer's center nor the ZIP code match.R- Retry (system unavailable or timed out).S- Card type not supported. The card type for this transaction is not supported by AVS. AVS can verify addresses for Visa cards, MasterCard, proprietary cards, and private label transactions.U- Address information unavailable.G- Address information unavailable, International - Visa only, The address information was not available at the VIC or issuer's center.W- Nine-digit ZIP match, address does not. The nine-digit Postal ZIP code matches that stored at the VIC or card issuer's centre. However, the first five numerical characters contained in the address do not match.X- Exact match (nine digit ZIP and address). Both the nine-digit Postal ZIP code as well as the first five numerical characters contained in the address match.Y- Address and five-digit ZIP match. Both the five-digit Postal ZIP code as well as the first five numerical characters contained in the address match.Z- Five-digit ZIP matches, address does not. The five-digit Postal ZIP code matches that stored at the VIC or card issuer's centre.
NOTE: Transactions can still be authorized if the AVS responses are no match or failure. AVS responses are for merchant information only, and usually do not influence the overall Authorization result. This can vary based on the Issuing Bank.
Allowed: A, E, N, R, S, U, G, W, X, Y, Z
cvvResult CVVResultThe CVV verification result. Typically returned on Card Not Present transactions.
M- CVV MatchN- CVV No MatchP- Not ProcessedS- CVV should be on the card but the merchant indicates it is not.U- User is unregistered
NOTE: Transactions can still be authorized if the CVV responses are no match or failure. CVV responses are for merchant information only, and usually do not influence the overall Authorization result. This can vary based on the Issuing Bank.
Allowed: M, N, P, S, U
accountType stringThe funding-source classification associated with the payment method used in this transaction.
- For credit/debit cards:
CreditorDebit. May be null when the classification is unavailable, including on older transactions. - For ACH/EFT bank accounts:
CheckingorSavings.
The immediate hosted ACH response uses lowercase checking or savings. Retrieved transaction responses normally use Checking or Savings.
Allowed: Credit, Debit, Checking, Savings, checking, savings
Example: "Credit"
hostResponseText stringA meaningful text explaining the response code from the host.
Example: "APPROVED 00"
receipt ReceiptReceipt lines for this transaction response. Card-present responses can contain printable receipt lines; other responses can return an empty lines array.
sourceId stringIdentifier of the session or other source that initiated the transaction. For an ACH chargeback, it is the chargeback's own trx_ ID, or the billing subscription ID when the charged-back sale was a subscription payment.
threeDs ThreeDsAuthentication3D Secure (EMV 3DS2) authentication outcome. Populated on transactions initiated with formConfig.enable3DSecure: true. All fields (other than status) are optional - what the issuer returns depends on whether the transaction was frictionless, challenged, or declined.
Child attributes
status stringThe authentication outcome to use in your integration. The other threeDs fields provide supporting authentication data.
Allowed: Authenticated, Attempted, NotAuthenticated, Failed, Unavailable, NotEnrolled
Example: "Authenticated"
cavv stringCardholder Authentication Verification Value. Cryptographic proof that 3DS authentication was performed. Present on frictionless and challenge-completed transactions.
Example: "AAABBkgwVoRhY2tcYlZGAAAAAAA="
eci stringE-commerce Indicator. Indicates 3DS liability-shift status per card scheme:
02/05- Fully authenticated (liability shift to issuer).01/06- Attempted authentication (partial liability shift).00/07- Not authenticated (no liability shift).
Example: "05"
xid string3DS1 transaction identifier. Some issuers still return this under 3DS2 for backward compatibility.
Example: "MDAwMDAwMDAwMDAwMDAwMTM3MDI="
dsTransId stringDirectory Server transaction ID (3DS2). Identifies the authentication associated with this card transaction.
Example: "b71a7d5d-cc38-4ce9-80c3-50a7d53271f7"
threeDReasonId stringIssuer-provided reason code when 3DS authentication failed. Populated only on declines. Use status to handle the outcome and threeDReason for the explanation.
Example: "10"
threeDReason stringHuman-readable description matching threeDReasonId.
Example: "Stolen Card"
threeDsChallenge ThreeDsChallengePresent when a token payment requires a cardholder challenge (resultCode: 4100).
Child attributes
redirectUrl string (uri) requiredHosted URL where the cardholder completes the challenge.
followUpToken string requiredOpaque token identifying the pending challenge.
CNPTransactionResponse
Represents the response to a Card Not Present sale or authorization using a previously tokenized card.
Type: object
id stringUnique ID for this transaction.
Example: "trx_01J2F0EKHC7HY2R93C8ENBD1FG"
sourceId stringThe source ID of the transaction.
Example: "trx_01J2F0EKHC7HY2R93C8ENBD1FG"
timestamp string (date-time)Transaction timestamp in UTC
Example: "2025-05-27T18:49:31Z"
type stringType of transaction
Allowed: Sale, Auth, Capture, Refund, Void
Example: "Sale"
status TransactionStatusThe processing lifecycle, separate from approval or decline. Pending waits for customer input; Submitted, Acknowledged, and Processing are in flight; AwaitingSettlement waits for a bank transfer outcome. Completed can be approved or declined: inspect resultCode and transactionResponses[].responseCode. Failed means processing stopped because of a technical issue. Abandoned means the customer did not complete the flow before submission. Both states close the request.
Allowed: Unknown, Created, Pending, Submitted, Acknowledged, Processing, AwaitingSettlement, Completed, Failed, Abandoned
Example: "Completed"
accountHolder objectAccount holder information associated with the transaction
Child attributes
id string requiredAccount holder ID assigned by the API.
Example: "aho_01JRZPRGFF4J2SZC3HMDBYEN2J"
externalId string requiredExternal account holder ID assigned by your application.
Example: "usr_1234567890123"
contact objectContact information for the account holder. Only returned for Card Not Present transactions.
paymentMethod objectThe payment method used for this transaction.
Child attributes
id string requiredThe unique identifier of the payment method. This ID has a prefix that makes it human-readable (pmt_trm_ for physical terminals, pmt_vrt_ for virtual card terminals, pmt_ach_ for virtual ACH terminals, pmt_tkn_ for tokens, which store a card or an ACH bank account), but applications should always use the type field to determine the payment method type rather than parsing this ID.
Example: "pmt_tkn_01JRZPRGFF4J2SZC3HMDBYEN2J"
dateDeleted string (date-time)The date and time (UTC) when this payment method token was removed from the system using the Remove Token endpoint. This parameter will only be returned if the token was removed/deleted from the system.
This field will be present in three scenarios:
- As part of a successful Remove Token endpoint response
- In token.removed webhook notifications
- In List Transactions responses for transactions where the associated token was later removed
When this field is present, sensitive card details (maskedCardNumber, cardExpDate) will be removed for security purposes, but all other transaction data remains intact.
Example: "2025-07-14T14:05:48.869225Z"
type string requiredThe type of payment method:
Physical- A physical payment terminal for Card Present transactionsVirtual- A hosted payment form/iframe for Card Not Present transactionsVirtualAch- A hosted payment form/iframe for ACH (US) bank transfer transactionsToken- A stored payment method (a card or an ACH bank account) for card-on-file and recurring transactionsVirtualEft- A virtual Canadian bank-transfer payment method, when configured.Unknown- The payment method type is not known.
Allowed: Unknown, Physical, Virtual, VirtualAch, VirtualEft, Token
Example: "Token"
currency string requiredThe currency of the payment method.
Allowed: USD, CAD
Example: "USD"
description stringA human-readable name for the payment method.
Example: "Token for John Doe's Visa"
billingContact objectBilling contact information associated with the payment method. Not returned on card present transactions or on refunds, captures, etc. of card present transactions.
cardType stringThe type of card used for this transaction:
UNKNOWN- The card type is unknownDEBIT- Debit CardVISA- Visa Credit CardMASTERCARD- MasterCard Credit CardAMEX- American Express Credit CardDINERS- Diners Club Credit CardDISCOVER- Discover Credit CardJCB- JCB Credit CardUNIONPAY- UnionPay Credit CardMAESTRO- Maestro Debit CardGIFT- Gift CardCASH- All-cash TransactionEBT- Electronic Benefits Transfer CardINTERAC- Interac (Canadian PIN-debit network), Card Present onlyOTHER- Other tender types
Allowed: UNKNOWN, DEBIT, VISA, MASTERCARD, AMEX, DINERS, DISCOVER, JCB, UNIONPAY, MAESTRO, GIFT, CASH, EBT, INTERAC, OTHER
Example: "VISA"
maskedCardNumber stringThe masked card number. The format may vary (e.g. **0011, 4**0011, etc.)
Example: "************0011"
cardExpDate stringThe expiration date of the card in MMYY format.
Example: "1225"
accountType stringFunding-source classification of this token-type payment method.
- For card tokens:
CreditorDebit. - For ACH tokens:
CheckingorSavings. May be omitted for older tokens that pre-date this field, for non-token payment methods, or when the source did not provide a classification.
Allowed: Credit, Debit, Checking, Savings
Example: "Debit"
accountNumber stringMasked bank account number, when available for a bank-account token.
Example: "*****6789"
invoiceNumber InvoiceNumberAn optional alphanumeric invoice number for this transaction. If provided in the request, the same value will be populated in the response.
max length 100
Example: "inv_1234567890123456"
orderNumber OrderNumberAn optional alphanumeric order number for this transaction. If provided, the same value will be populated in the response.
max length 100
Example: "order_number_1234"
referenceId ReferenceIdForResponseThe reference ID for this transaction. This will either be the reference ID provided in the transaction request or, if no value was provided, a value generated automatically by the system. This reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions.
max length 100
Example: "ref_s192i49i"
resultCode ResultCodeResult codes:
0- Successful transaction request. (Check each transactionResponse's responseCode to determine if a transaction was approved or declined, card was tokenized, etc.)1003- The payment terminal is busy or unavailable. (If this error persists, the user may need to close and re-open the Payment Application on the terminal or restart the terminal)1005- The specified terminal could not be found.1010- The transaction request is pending to become transaction.2014- The payment method or card brand is not enabled for the merchant.resultTextcarries the message, such asACH payments are not enabled for this merchant.orVisa cards are not enabled for this merchant.The transaction isCompletedand failed; do not retry it with the same payment method.3000- An unexpected error occurred. Please try again.3002- The transaction could not be completed because the payment terminal could not find the related transaction.3005- To resolve this error, power off your payment terminal, wait one minute and retry the transaction. If the error persists, please contact support.3006- The transaction could not be completed because the payment terminal is low on battery.3009- The transaction could not be completed because of network connectivity issues with the payment terminal. Please restore connectivity and try again.3010- The transaction took too long and was cancelled by the application.3011- Invalid transaction request. Please consult the documentation for valid transaction requests.3012- Invalid transaction request. paymentMethodId is invalid.3013- Invalid transaction request. The specified amount appears to be incorrect. Please retry with a smaller amount.3014- Invalid amount. Please try your transaction again with an amount greater than $0.3020- An unsupported transaction result was received.4001- The transaction is being processed. This is returned for asynchronous bank transfer payment methods (e.g. ACH) while awaiting a final outcome.6800- 3D Secure authentication was rejected by the issuer's ACS (card auth failed, security failure, stolen card, suspected fraud, etc.). Surfaced on declined CNP transactions whenformConfig.enable3DSecure: trueand the gateway reports a 3D Secure reason; other failures in a 3D Secure session use6900-6902. See SDK Error Codes for guidance.6801- 3D Secure authentication could not be completed because of an upstream technical issue (ACS timeout, directory server unreachable). Retry later or, if merchant policy allows, retry with 3DS disabled.6802- The card is not enrolled in 3D Secure. Retry without 3DS only if merchant policy allows; approval is not guaranteed.6900- The issuer declined the card on the hosted payment form or Payment SDK path. The specific reason is ontransactionResponses[0].responseCode(10-18) and inresultText. See SDK Error Codes for guidance.6901- The gateway rejected or failed the hosted payment form payment because of validation or a gateway failure rather than an issuer decision. See SDK Error Codes for guidance.6902- The gateway reported no failure but returned no payment token. See SDK Error Codes for guidance.9998- The system is not ready to process a transaction.9999- An unknown error has occurred. If available, an auxiliary error code will be provided in the message.1010- The transaction request is pending customer interaction.4100- Cardholder verification is required. FollowthreeDsChallenge.redirectUrland reconcile the final transaction outcome before retrying.55- The customer cancelled the hosted payment attempt.
Allowed: 0, 55, 1003, 1005, 1010, 2014, 3000, 3002, 3005, 3006, 3009, 3010, 3011, 3012, 3013, 3014, 3020, 4001, 4100, 6800, 6801, 6802, 6900, 6901, 6902, 9998, 9999
Example: 0
resultText ResultTextA message describing the result code in more detail. On a stored transaction it is uppercase, such as APPROVED, DECLINED, or the gateway's reason, except for resultCode 2014, where it is the message in sentence case. Use it for display, not for branching.
Example: "APPROVED"
requestedAmount integerThe requested amount in minor units. Virtual tokenization uses 0; physical tokenization uses a 1-unit authorization.
Example: 1000
approvedAmount integerThe approved amount in minor units. This is 0 for a decline or an outcome that is still in flight. A terminal may adjust the amount, for example by adding a tip.
Example: 1000
balanceAmount integerThe balance that remains to be paid on the transaction. This amount is always an integer in the smallest denomination of the currency (e.g. cents for USD or CAD).
Example: 0
refundableAmount integerThe amount that can still be refunded against this sale or capture, in the smallest denomination of the currency. Normally available within seconds of approval. Absent for authorizations, refunds, voids, and declined transactions; it can also be absent briefly after a sale or capture is approved. Absence does not mean unlimited; it means this value is not yet available or not applicable. 0 means fully refunded or voided.
Example: 1000
transactionResponses array of TransactionResponseIndividual gateway responses, with receipts under each entry. The array can be empty while processing is incomplete.
Child attributes
responseCode ResponseCodeThe outcome of the payment, and the field that tells you whether the transaction succeeded. The HTTP status, resultCode, and status do not. A transaction succeeded only when status is Completed and a transaction response has responseCode 1 or 2.
Outcomes:
- Approved -
1,2. For2, onlyamountApprovedwas approved. On aChargebacktransaction, approved means the chargeback took effect: the money went back to the payer. - Declined -
10to18. The issuer or bank refused the payment. Do not retry with the same payment details. - Canceled -
54,55. No money moved. - Pending -
57. The outcome is not final. Wait for the webhook or query the transaction again. - Unknown -
0. No specific code was reported. Whilestatusis notCompleted, the outcome is not final. On aCompletedtransaction it is not an approval: readresultCodeandresultTextfor the reason, for example2014,6901, or6902. - Error - every other code. Processing failed for a technical or request reason.
See Transaction response codes.
Response codes:
0- UNKNOWN1- APPROVED - Transaction was approved2- PARTIAL_APPROVED - Transaction was partially approved, but not for the full requested amount.10- DECLINED - Transaction was declined by the issuer or bank. For Card-Present, the transaction can also be declined offline by the terminal.11- INSUFFICIENT_FUNDS - Rejected due to insufficient funds in the account.12- CARD_EXPIRED - The card used for the transaction has expired.13- FRAUD_SUSPECTED - The transaction was flagged for potential fraud.14- INVALID_PAYMENT_INFO - The provided information is invalid (e.g.: card number).15- LIMIT_EXCEEDED - Rejected due to reaching a limit (e.g.: credit limit).16- VERIFICATION_REQUIRED - Additional customer verification is required for the transaction to proceed (e.g.: 3D Secure).17- AUTHENTICATION_FAILED - Rejected due to incorrect PIN or authentication failure.18- POLICY_VIOLATION - Rejected due to a violation of the payment gateway's terms of service or policies.19- BATCH_EMPTY - Indicates that the batch for processing is empty.20- RECORD_NOT_FOUND - Indicates that the requested record for a transaction was not found (e.g.: to VOID a reference).21- ALREADY_VOIDED - Indicates that the transaction has already been voided and cannot be processed again.50- NETWORK_ERROR - Rejected due to network or communication issues with the payment gateway.51- INVALID_ECR_PARAMETER - Payment Terminal or system-specific errors.52- NOT_SUPPORTED - Rejected because the requested operation is not supported.53- BUSY_OR_UNAVAILABLE - The Payment Terminal, Payment App or system is busy or unavailable.54- CANCELLED - Cancelled by the user or merchant.55- USER_CANCELLED - Specific to scenarios where the user cancels the transaction.56- TIMED_OUT_ON_USER_INPUT - Failed to complete the transaction in time.57- PENDING - The transaction is awaiting an asynchronous outcome.
Allowed: 0, 1, 2, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 50, 51, 52, 53, 54, 55, 56, 57
authCode stringThe authorization code provided by the card issuer, confirming transaction approval.
Example: "123456"
amountApproved integerThe amount approved for this transaction response.
Example: 1000
approvedAmountBreakdown ApprovedAmountBreakdownA breakdown of approvedAmount, where each amounts approved on the payment terminal are returned separately. Only returned on Sale, Auth and Capture transactions.
paymentMethod objectThe payment method used for this transaction.
cardType CardTypeThe type of card used for this transaction:
UNKNOWN- The card type is unknownDEBIT- Debit CardVISA- Visa Credit CardMASTERCARD- MasterCard Credit CardAMEX- American Express Credit CardDINERS- Diners Club Credit CardDISCOVER- Discover Credit CardJCB- JCB Credit CardUNIONPAY- UnionPay Credit CardMAESTRO- Maestro Debit CardGIFT- Gift CardCASH- All-cash TransactionEBT- Electronic Benefits Transfer CardINTERAC- Interac (Canadian PIN-debit network), Card Present onlyOTHER- Other tender types
Allowed: UNKNOWN, DEBIT, VISA, MASTERCARD, AMEX, DINERS, DISCOVER, JCB, UNIONPAY, MAESTRO, GIFT, CASH, EBT, INTERAC, OTHER
avsResult AVSResultThe AVS (Address Verification Service) result. Typically returned on Card Not Present transactions.
A- Address matches, ZIP does not. The first five numerical characters contained in the address match those stored at the VIC or issuer's center. However, the ZIP code does not match.E- Ineligible transaction.N- Neither address nor ZIP matches. Neither the first five numerical characters contained in the address match with those stored at the VIC nor issuer's center nor the ZIP code match.R- Retry (system unavailable or timed out).S- Card type not supported. The card type for this transaction is not supported by AVS. AVS can verify addresses for Visa cards, MasterCard, proprietary cards, and private label transactions.U- Address information unavailable.G- Address information unavailable, International - Visa only, The address information was not available at the VIC or issuer's center.W- Nine-digit ZIP match, address does not. The nine-digit Postal ZIP code matches that stored at the VIC or card issuer's centre. However, the first five numerical characters contained in the address do not match.X- Exact match (nine digit ZIP and address). Both the nine-digit Postal ZIP code as well as the first five numerical characters contained in the address match.Y- Address and five-digit ZIP match. Both the five-digit Postal ZIP code as well as the first five numerical characters contained in the address match.Z- Five-digit ZIP matches, address does not. The five-digit Postal ZIP code matches that stored at the VIC or card issuer's centre.
NOTE: Transactions can still be authorized if the AVS responses are no match or failure. AVS responses are for merchant information only, and usually do not influence the overall Authorization result. This can vary based on the Issuing Bank.
Allowed: A, E, N, R, S, U, G, W, X, Y, Z
cvvResult CVVResultThe CVV verification result. Typically returned on Card Not Present transactions.
M- CVV MatchN- CVV No MatchP- Not ProcessedS- CVV should be on the card but the merchant indicates it is not.U- User is unregistered
NOTE: Transactions can still be authorized if the CVV responses are no match or failure. CVV responses are for merchant information only, and usually do not influence the overall Authorization result. This can vary based on the Issuing Bank.
Allowed: M, N, P, S, U
accountType stringThe funding-source classification associated with the payment method used in this transaction.
- For credit/debit cards:
CreditorDebit. May be null when the classification is unavailable, including on older transactions. - For ACH/EFT bank accounts:
CheckingorSavings.
The immediate hosted ACH response uses lowercase checking or savings. Retrieved transaction responses normally use Checking or Savings.
Allowed: Credit, Debit, Checking, Savings, checking, savings
Example: "Credit"
hostResponseText stringA meaningful text explaining the response code from the host.
Example: "APPROVED 00"
receipt ReceiptReceipt lines for this transaction response. Card-present responses can contain printable receipt lines; other responses can return an empty lines array.
threeDs object3D Secure authentication data returned by the issuer. Populated when the transaction was initiated with formConfig.enable3DSecure: true. Null on non-3DS transactions or when no authentication data is available.
Child attributes
status stringThe authentication outcome to use in your integration. The other threeDs fields provide supporting authentication data.
Allowed: Authenticated, Attempted, NotAuthenticated, Failed, Unavailable, NotEnrolled
Example: "Authenticated"
cavv stringCardholder Authentication Verification Value. Cryptographic proof that 3DS authentication was performed. Present on frictionless and challenge-completed transactions.
Example: "AAABBkgwVoRhY2tcYlZGAAAAAAA="
eci stringE-commerce Indicator. Indicates 3DS liability-shift status per card scheme:
02/05- Fully authenticated (liability shift to issuer).01/06- Attempted authentication (partial liability shift).00/07- Not authenticated (no liability shift).
Example: "05"
xid string3DS1 transaction identifier. Some issuers still return this under 3DS2 for backward compatibility.
Example: "MDAwMDAwMDAwMDAwMDAwMTM3MDI="
dsTransId stringDirectory Server transaction ID (3DS2). Identifies the authentication associated with this card transaction.
Example: "b71a7d5d-cc38-4ce9-80c3-50a7d53271f7"
threeDReasonId stringIssuer-provided reason code when 3DS authentication failed. Populated only on declines. Use status to handle the outcome and threeDReason for the explanation.
Example: "10"
threeDReason stringHuman-readable description matching threeDReasonId.
Example: "Stolen Card"
threeDsChallenge ThreeDsChallengePresent when a token payment requires a cardholder challenge (resultCode: 4100).
Child attributes
redirectUrl string (uri) requiredHosted URL where the cardholder completes the challenge.
followUpToken string requiredOpaque token identifying the pending challenge.
CaptureResponse
Represents the response to a capture request.
Type: object
id stringUnique ID for this capture transaction.
Example: "trx_01J2F0ZJ2JW5B63CJFPXRGAB1S"
timestamp string (date-time)Transaction timestamp in UTC
Example: "2025-05-27T18:49:31Z"
type stringType of transaction
Allowed: Sale, Auth, Capture, Refund, Void
Example: "Capture"
status TransactionStatusThe processing lifecycle, separate from approval or decline. Pending waits for customer input; Submitted, Acknowledged, and Processing are in flight; AwaitingSettlement waits for a bank transfer outcome. Completed can be approved or declined: inspect resultCode and transactionResponses[].responseCode. Failed means processing stopped because of a technical issue. Abandoned means the customer did not complete the flow before submission. Both states close the request.
Allowed: Unknown, Created, Pending, Submitted, Acknowledged, Processing, AwaitingSettlement, Completed, Failed, Abandoned
Example: "Completed"
accountHolder objectAccount holder information associated with the transaction
Child attributes
id string requiredAccount holder ID assigned by the API.
Example: "aho_01JRZPRGFF4J2SZC3HMDBYEN2J"
externalId string requiredExternal account holder ID assigned by your application.
Example: "usr_1234567890123"
contact objectContact information for the account holder. Only returned for Card Not Present transactions.
paymentMethod objectThe payment method used for this transaction.
Child attributes
id string requiredThe unique identifier of the payment method. This ID has a prefix that makes it human-readable (pmt_trm_ for physical terminals, pmt_vrt_ for virtual card terminals, pmt_ach_ for virtual ACH terminals, pmt_tkn_ for tokens, which store a card or an ACH bank account), but applications should always use the type field to determine the payment method type rather than parsing this ID.
Example: "pmt_tkn_01JRZPRGFF4J2SZC3HMDBYEN2J"
dateDeleted string (date-time)The date and time (UTC) when this payment method token was removed from the system using the Remove Token endpoint. This parameter will only be returned if the token was removed/deleted from the system.
This field will be present in three scenarios:
- As part of a successful Remove Token endpoint response
- In token.removed webhook notifications
- In List Transactions responses for transactions where the associated token was later removed
When this field is present, sensitive card details (maskedCardNumber, cardExpDate) will be removed for security purposes, but all other transaction data remains intact.
Example: "2025-07-14T14:05:48.869225Z"
type string requiredThe type of payment method:
Physical- A physical payment terminal for Card Present transactionsVirtual- A hosted payment form/iframe for Card Not Present transactionsVirtualAch- A hosted payment form/iframe for ACH (US) bank transfer transactionsToken- A stored payment method (a card or an ACH bank account) for card-on-file and recurring transactionsVirtualEft- A virtual Canadian bank-transfer payment method, when configured.Unknown- The payment method type is not known.
Allowed: Unknown, Physical, Virtual, VirtualAch, VirtualEft, Token
Example: "Token"
currency string requiredThe currency of the payment method.
Allowed: USD, CAD
Example: "USD"
description stringA human-readable name for the payment method.
Example: "Token for John Doe's Visa"
billingContact objectBilling contact information associated with the payment method. Not returned on card present transactions or on refunds, captures, etc. of card present transactions.
cardType stringThe type of card used for this transaction:
UNKNOWN- The card type is unknownDEBIT- Debit CardVISA- Visa Credit CardMASTERCARD- MasterCard Credit CardAMEX- American Express Credit CardDINERS- Diners Club Credit CardDISCOVER- Discover Credit CardJCB- JCB Credit CardUNIONPAY- UnionPay Credit CardMAESTRO- Maestro Debit CardGIFT- Gift CardCASH- All-cash TransactionEBT- Electronic Benefits Transfer CardINTERAC- Interac (Canadian PIN-debit network), Card Present onlyOTHER- Other tender types
Allowed: UNKNOWN, DEBIT, VISA, MASTERCARD, AMEX, DINERS, DISCOVER, JCB, UNIONPAY, MAESTRO, GIFT, CASH, EBT, INTERAC, OTHER
Example: "VISA"
maskedCardNumber stringThe masked card number. The format may vary (e.g. **0011, 4**0011, etc.)
Example: "************0011"
cardExpDate stringThe expiration date of the card in MMYY format.
Example: "1225"
accountType stringFunding-source classification of this token-type payment method.
- For card tokens:
CreditorDebit. - For ACH tokens:
CheckingorSavings. May be omitted for older tokens that pre-date this field, for non-token payment methods, or when the source did not provide a classification.
Allowed: Credit, Debit, Checking, Savings
Example: "Debit"
accountNumber stringMasked bank account number, when available for a bank-account token.
Example: "*****6789"
invoiceNumber InvoiceNumberAn optional alphanumeric invoice number for this transaction. If provided in the request, the same value will be populated in the response.
max length 100
Example: "inv_1234567890123456"
orderNumber OrderNumberAn optional alphanumeric order number for this transaction. If provided, the same value will be populated in the response.
max length 100
Example: "order_number_1234"
referenceId ReferenceIdForResponseThe reference ID for this transaction. This will either be the reference ID provided in the transaction request or, if no value was provided, a value generated automatically by the system. This reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions.
max length 100
Example: "ref_s192i49i"
originalTransactionId stringThe trx_ ID of the earlier transaction this one belongs to, when the link has been verified. Set on card-present captures and voids, card-present Interac refunds, ACH refunds once the gateway confirms the original sale, ACH chargebacks (the charged-back sale), and ACH resubmissions (the original sale).
Absent when there is no verified link. That includes card-not-present captures, refunds, and voids, other card-present refunds, and older transactions recorded before the link was stored. Do not treat an absent value as proof that the transaction has no original.
Example: "trx_01JWBPE27KHY2K4J7A13ATQ786"
resultCode ResultCodeResult codes:
0- Successful transaction request. (Check each transactionResponse's responseCode to determine if a transaction was approved or declined, card was tokenized, etc.)1003- The payment terminal is busy or unavailable. (If this error persists, the user may need to close and re-open the Payment Application on the terminal or restart the terminal)1005- The specified terminal could not be found.1010- The transaction request is pending to become transaction.2014- The payment method or card brand is not enabled for the merchant.resultTextcarries the message, such asACH payments are not enabled for this merchant.orVisa cards are not enabled for this merchant.The transaction isCompletedand failed; do not retry it with the same payment method.3000- An unexpected error occurred. Please try again.3002- The transaction could not be completed because the payment terminal could not find the related transaction.3005- To resolve this error, power off your payment terminal, wait one minute and retry the transaction. If the error persists, please contact support.3006- The transaction could not be completed because the payment terminal is low on battery.3009- The transaction could not be completed because of network connectivity issues with the payment terminal. Please restore connectivity and try again.3010- The transaction took too long and was cancelled by the application.3011- Invalid transaction request. Please consult the documentation for valid transaction requests.3012- Invalid transaction request. paymentMethodId is invalid.3013- Invalid transaction request. The specified amount appears to be incorrect. Please retry with a smaller amount.3014- Invalid amount. Please try your transaction again with an amount greater than $0.3020- An unsupported transaction result was received.4001- The transaction is being processed. This is returned for asynchronous bank transfer payment methods (e.g. ACH) while awaiting a final outcome.6800- 3D Secure authentication was rejected by the issuer's ACS (card auth failed, security failure, stolen card, suspected fraud, etc.). Surfaced on declined CNP transactions whenformConfig.enable3DSecure: trueand the gateway reports a 3D Secure reason; other failures in a 3D Secure session use6900-6902. See SDK Error Codes for guidance.6801- 3D Secure authentication could not be completed because of an upstream technical issue (ACS timeout, directory server unreachable). Retry later or, if merchant policy allows, retry with 3DS disabled.6802- The card is not enrolled in 3D Secure. Retry without 3DS only if merchant policy allows; approval is not guaranteed.6900- The issuer declined the card on the hosted payment form or Payment SDK path. The specific reason is ontransactionResponses[0].responseCode(10-18) and inresultText. See SDK Error Codes for guidance.6901- The gateway rejected or failed the hosted payment form payment because of validation or a gateway failure rather than an issuer decision. See SDK Error Codes for guidance.6902- The gateway reported no failure but returned no payment token. See SDK Error Codes for guidance.9998- The system is not ready to process a transaction.9999- An unknown error has occurred. If available, an auxiliary error code will be provided in the message.1010- The transaction request is pending customer interaction.4100- Cardholder verification is required. FollowthreeDsChallenge.redirectUrland reconcile the final transaction outcome before retrying.55- The customer cancelled the hosted payment attempt.
Allowed: 0, 55, 1003, 1005, 1010, 2014, 3000, 3002, 3005, 3006, 3009, 3010, 3011, 3012, 3013, 3014, 3020, 4001, 4100, 6800, 6801, 6802, 6900, 6901, 6902, 9998, 9999
Example: 0
resultText ResultTextA message describing the result code in more detail. On a stored transaction it is uppercase, such as APPROVED, DECLINED, or the gateway's reason, except for resultCode 2014, where it is the message in sentence case. Use it for display, not for branching.
Example: "APPROVED"
requestedAmount integerThe requested amount in minor units. Virtual tokenization uses 0; physical tokenization uses a 1-unit authorization.
Example: 1000
approvedAmount integerThe approved amount in minor units. This is 0 for a decline or an outcome that is still in flight. A terminal may adjust the amount, for example by adding a tip.
Example: 1000
transactionResponses array of TransactionResponseIndividual gateway responses, with receipts under each entry. The array can be empty while processing is incomplete.
Child attributes
responseCode ResponseCodeThe outcome of the payment, and the field that tells you whether the transaction succeeded. The HTTP status, resultCode, and status do not. A transaction succeeded only when status is Completed and a transaction response has responseCode 1 or 2.
Outcomes:
- Approved -
1,2. For2, onlyamountApprovedwas approved. On aChargebacktransaction, approved means the chargeback took effect: the money went back to the payer. - Declined -
10to18. The issuer or bank refused the payment. Do not retry with the same payment details. - Canceled -
54,55. No money moved. - Pending -
57. The outcome is not final. Wait for the webhook or query the transaction again. - Unknown -
0. No specific code was reported. Whilestatusis notCompleted, the outcome is not final. On aCompletedtransaction it is not an approval: readresultCodeandresultTextfor the reason, for example2014,6901, or6902. - Error - every other code. Processing failed for a technical or request reason.
See Transaction response codes.
Response codes:
0- UNKNOWN1- APPROVED - Transaction was approved2- PARTIAL_APPROVED - Transaction was partially approved, but not for the full requested amount.10- DECLINED - Transaction was declined by the issuer or bank. For Card-Present, the transaction can also be declined offline by the terminal.11- INSUFFICIENT_FUNDS - Rejected due to insufficient funds in the account.12- CARD_EXPIRED - The card used for the transaction has expired.13- FRAUD_SUSPECTED - The transaction was flagged for potential fraud.14- INVALID_PAYMENT_INFO - The provided information is invalid (e.g.: card number).15- LIMIT_EXCEEDED - Rejected due to reaching a limit (e.g.: credit limit).16- VERIFICATION_REQUIRED - Additional customer verification is required for the transaction to proceed (e.g.: 3D Secure).17- AUTHENTICATION_FAILED - Rejected due to incorrect PIN or authentication failure.18- POLICY_VIOLATION - Rejected due to a violation of the payment gateway's terms of service or policies.19- BATCH_EMPTY - Indicates that the batch for processing is empty.20- RECORD_NOT_FOUND - Indicates that the requested record for a transaction was not found (e.g.: to VOID a reference).21- ALREADY_VOIDED - Indicates that the transaction has already been voided and cannot be processed again.50- NETWORK_ERROR - Rejected due to network or communication issues with the payment gateway.51- INVALID_ECR_PARAMETER - Payment Terminal or system-specific errors.52- NOT_SUPPORTED - Rejected because the requested operation is not supported.53- BUSY_OR_UNAVAILABLE - The Payment Terminal, Payment App or system is busy or unavailable.54- CANCELLED - Cancelled by the user or merchant.55- USER_CANCELLED - Specific to scenarios where the user cancels the transaction.56- TIMED_OUT_ON_USER_INPUT - Failed to complete the transaction in time.57- PENDING - The transaction is awaiting an asynchronous outcome.
Allowed: 0, 1, 2, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 50, 51, 52, 53, 54, 55, 56, 57
authCode stringThe authorization code provided by the card issuer, confirming transaction approval.
Example: "123456"
amountApproved integerThe amount approved for this transaction response.
Example: 1000
approvedAmountBreakdown ApprovedAmountBreakdownA breakdown of approvedAmount, where each amounts approved on the payment terminal are returned separately. Only returned on Sale, Auth and Capture transactions.
paymentMethod objectThe payment method used for this transaction.
cardType CardTypeThe type of card used for this transaction:
UNKNOWN- The card type is unknownDEBIT- Debit CardVISA- Visa Credit CardMASTERCARD- MasterCard Credit CardAMEX- American Express Credit CardDINERS- Diners Club Credit CardDISCOVER- Discover Credit CardJCB- JCB Credit CardUNIONPAY- UnionPay Credit CardMAESTRO- Maestro Debit CardGIFT- Gift CardCASH- All-cash TransactionEBT- Electronic Benefits Transfer CardINTERAC- Interac (Canadian PIN-debit network), Card Present onlyOTHER- Other tender types
Allowed: UNKNOWN, DEBIT, VISA, MASTERCARD, AMEX, DINERS, DISCOVER, JCB, UNIONPAY, MAESTRO, GIFT, CASH, EBT, INTERAC, OTHER
avsResult AVSResultThe AVS (Address Verification Service) result. Typically returned on Card Not Present transactions.
A- Address matches, ZIP does not. The first five numerical characters contained in the address match those stored at the VIC or issuer's center. However, the ZIP code does not match.E- Ineligible transaction.N- Neither address nor ZIP matches. Neither the first five numerical characters contained in the address match with those stored at the VIC nor issuer's center nor the ZIP code match.R- Retry (system unavailable or timed out).S- Card type not supported. The card type for this transaction is not supported by AVS. AVS can verify addresses for Visa cards, MasterCard, proprietary cards, and private label transactions.U- Address information unavailable.G- Address information unavailable, International - Visa only, The address information was not available at the VIC or issuer's center.W- Nine-digit ZIP match, address does not. The nine-digit Postal ZIP code matches that stored at the VIC or card issuer's centre. However, the first five numerical characters contained in the address do not match.X- Exact match (nine digit ZIP and address). Both the nine-digit Postal ZIP code as well as the first five numerical characters contained in the address match.Y- Address and five-digit ZIP match. Both the five-digit Postal ZIP code as well as the first five numerical characters contained in the address match.Z- Five-digit ZIP matches, address does not. The five-digit Postal ZIP code matches that stored at the VIC or card issuer's centre.
NOTE: Transactions can still be authorized if the AVS responses are no match or failure. AVS responses are for merchant information only, and usually do not influence the overall Authorization result. This can vary based on the Issuing Bank.
Allowed: A, E, N, R, S, U, G, W, X, Y, Z
cvvResult CVVResultThe CVV verification result. Typically returned on Card Not Present transactions.
M- CVV MatchN- CVV No MatchP- Not ProcessedS- CVV should be on the card but the merchant indicates it is not.U- User is unregistered
NOTE: Transactions can still be authorized if the CVV responses are no match or failure. CVV responses are for merchant information only, and usually do not influence the overall Authorization result. This can vary based on the Issuing Bank.
Allowed: M, N, P, S, U
accountType stringThe funding-source classification associated with the payment method used in this transaction.
- For credit/debit cards:
CreditorDebit. May be null when the classification is unavailable, including on older transactions. - For ACH/EFT bank accounts:
CheckingorSavings.
The immediate hosted ACH response uses lowercase checking or savings. Retrieved transaction responses normally use Checking or Savings.
Allowed: Credit, Debit, Checking, Savings, checking, savings
Example: "Credit"
hostResponseText stringA meaningful text explaining the response code from the host.
Example: "APPROVED 00"
receipt ReceiptReceipt lines for this transaction response. Card-present responses can contain printable receipt lines; other responses can return an empty lines array.
sourceId stringIdentifier of the session or other source that initiated the transaction.
threeDs ThreeDsAuthentication3D Secure (EMV 3DS2) authentication outcome. Populated on transactions initiated with formConfig.enable3DSecure: true. All fields (other than status) are optional - what the issuer returns depends on whether the transaction was frictionless, challenged, or declined.
Child attributes
status stringThe authentication outcome to use in your integration. The other threeDs fields provide supporting authentication data.
Allowed: Authenticated, Attempted, NotAuthenticated, Failed, Unavailable, NotEnrolled
Example: "Authenticated"
cavv stringCardholder Authentication Verification Value. Cryptographic proof that 3DS authentication was performed. Present on frictionless and challenge-completed transactions.
Example: "AAABBkgwVoRhY2tcYlZGAAAAAAA="
eci stringE-commerce Indicator. Indicates 3DS liability-shift status per card scheme:
02/05- Fully authenticated (liability shift to issuer).01/06- Attempted authentication (partial liability shift).00/07- Not authenticated (no liability shift).
Example: "05"
xid string3DS1 transaction identifier. Some issuers still return this under 3DS2 for backward compatibility.
Example: "MDAwMDAwMDAwMDAwMDAwMTM3MDI="
dsTransId stringDirectory Server transaction ID (3DS2). Identifies the authentication associated with this card transaction.
Example: "b71a7d5d-cc38-4ce9-80c3-50a7d53271f7"
threeDReasonId stringIssuer-provided reason code when 3DS authentication failed. Populated only on declines. Use status to handle the outcome and threeDReason for the explanation.
Example: "10"
threeDReason stringHuman-readable description matching threeDReasonId.
Example: "Stolen Card"
threeDsChallenge ThreeDsChallengePresent when a token payment requires a cardholder challenge (resultCode: 4100).
Child attributes
redirectUrl string (uri) requiredHosted URL where the cardholder completes the challenge.
followUpToken string requiredOpaque token identifying the pending challenge.
balanceAmount integerThe balance that remains to be paid on the transaction. This amount is always an integer in the smallest denomination of the currency (e.g. cents for USD or CAD).
Example: 0
refundableAmount integerThe amount that can still be refunded against this sale or capture, in the smallest denomination of the currency. Normally available within seconds of approval. Absent for authorizations, refunds, voids, and declined transactions; it can also be absent briefly after a sale or capture is approved. Absence does not mean unlimited; it means this value is not yet available or not applicable. 0 means fully refunded or voided.
Example: 1000
RefundResponse
Represents the response to a refund request.
Type: object
id stringUnique ID for this refund transaction.
Example: "trx_01J2F0ZJ2JW5B63CJFPXRGAB1S"
timestamp string (date-time)Transaction timestamp in UTC
Example: "2025-05-27T18:49:31Z"
type stringType of transaction
Allowed: Sale, Auth, Capture, Refund, Void
Example: "Refund"
status TransactionStatusThe processing lifecycle, separate from approval or decline. Pending waits for customer input; Submitted, Acknowledged, and Processing are in flight; AwaitingSettlement waits for a bank transfer outcome. Completed can be approved or declined: inspect resultCode and transactionResponses[].responseCode. Failed means processing stopped because of a technical issue. Abandoned means the customer did not complete the flow before submission. Both states close the request.
Allowed: Unknown, Created, Pending, Submitted, Acknowledged, Processing, AwaitingSettlement, Completed, Failed, Abandoned
Example: "Completed"
accountHolder objectAccount holder information associated with the transaction
Child attributes
id string requiredAccount holder ID assigned by the API.
Example: "aho_01JRZPRGFF4J2SZC3HMDBYEN2J"
externalId string requiredExternal account holder ID assigned by your application.
Example: "usr_1234567890123"
contact objectContact information for the account holder. Only returned for Card Not Present transactions.
paymentMethod objectThe payment method used for this transaction.
Child attributes
id string requiredThe unique identifier of the payment method. This ID has a prefix that makes it human-readable (pmt_trm_ for physical terminals, pmt_vrt_ for virtual card terminals, pmt_ach_ for virtual ACH terminals, pmt_tkn_ for tokens, which store a card or an ACH bank account), but applications should always use the type field to determine the payment method type rather than parsing this ID.
Example: "pmt_tkn_01JRZPRGFF4J2SZC3HMDBYEN2J"
dateDeleted string (date-time)The date and time (UTC) when this payment method token was removed from the system using the Remove Token endpoint. This parameter will only be returned if the token was removed/deleted from the system.
This field will be present in three scenarios:
- As part of a successful Remove Token endpoint response
- In token.removed webhook notifications
- In List Transactions responses for transactions where the associated token was later removed
When this field is present, sensitive card details (maskedCardNumber, cardExpDate) will be removed for security purposes, but all other transaction data remains intact.
Example: "2025-07-14T14:05:48.869225Z"
type string requiredThe type of payment method:
Physical- A physical payment terminal for Card Present transactionsVirtual- A hosted payment form/iframe for Card Not Present transactionsVirtualAch- A hosted payment form/iframe for ACH (US) bank transfer transactionsToken- A stored payment method (a card or an ACH bank account) for card-on-file and recurring transactionsVirtualEft- A virtual Canadian bank-transfer payment method, when configured.Unknown- The payment method type is not known.
Allowed: Unknown, Physical, Virtual, VirtualAch, VirtualEft, Token
Example: "Token"
currency string requiredThe currency of the payment method.
Allowed: USD, CAD
Example: "USD"
description stringA human-readable name for the payment method.
Example: "Token for John Doe's Visa"
billingContact objectBilling contact information associated with the payment method. Not returned on card present transactions or on refunds, captures, etc. of card present transactions.
cardType stringThe type of card used for this transaction:
UNKNOWN- The card type is unknownDEBIT- Debit CardVISA- Visa Credit CardMASTERCARD- MasterCard Credit CardAMEX- American Express Credit CardDINERS- Diners Club Credit CardDISCOVER- Discover Credit CardJCB- JCB Credit CardUNIONPAY- UnionPay Credit CardMAESTRO- Maestro Debit CardGIFT- Gift CardCASH- All-cash TransactionEBT- Electronic Benefits Transfer CardINTERAC- Interac (Canadian PIN-debit network), Card Present onlyOTHER- Other tender types
Allowed: UNKNOWN, DEBIT, VISA, MASTERCARD, AMEX, DINERS, DISCOVER, JCB, UNIONPAY, MAESTRO, GIFT, CASH, EBT, INTERAC, OTHER
Example: "VISA"
maskedCardNumber stringThe masked card number. The format may vary (e.g. **0011, 4**0011, etc.)
Example: "************0011"
cardExpDate stringThe expiration date of the card in MMYY format.
Example: "1225"
accountType stringFunding-source classification of this token-type payment method.
- For card tokens:
CreditorDebit. - For ACH tokens:
CheckingorSavings. May be omitted for older tokens that pre-date this field, for non-token payment methods, or when the source did not provide a classification.
Allowed: Credit, Debit, Checking, Savings
Example: "Debit"
accountNumber stringMasked bank account number, when available for a bank-account token.
Example: "*****6789"
invoiceNumber InvoiceNumberAn optional alphanumeric invoice number for this transaction. If provided in the request, the same value will be populated in the response.
max length 100
Example: "inv_1234567890123456"
orderNumber OrderNumberAn optional alphanumeric order number for this transaction. If provided, the same value will be populated in the response.
max length 100
Example: "order_number_1234"
referenceId ReferenceIdForResponseThe reference ID for this transaction. This will either be the reference ID provided in the transaction request or, if no value was provided, a value generated automatically by the system. This reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions.
max length 100
Example: "ref_s192i49i"
originalTransactionId stringThe trx_ ID of the earlier transaction this one belongs to, when the link has been verified. Set on card-present captures and voids, card-present Interac refunds, ACH refunds once the gateway confirms the original sale, ACH chargebacks (the charged-back sale), and ACH resubmissions (the original sale).
Absent when there is no verified link. That includes card-not-present captures, refunds, and voids, other card-present refunds, and older transactions recorded before the link was stored. Do not treat an absent value as proof that the transaction has no original.
Example: "trx_01JWBPE27KHY2K4J7A13ATQ786"
resultCode ResultCodeResult codes:
0- Successful transaction request. (Check each transactionResponse's responseCode to determine if a transaction was approved or declined, card was tokenized, etc.)1003- The payment terminal is busy or unavailable. (If this error persists, the user may need to close and re-open the Payment Application on the terminal or restart the terminal)1005- The specified terminal could not be found.1010- The transaction request is pending to become transaction.2014- The payment method or card brand is not enabled for the merchant.resultTextcarries the message, such asACH payments are not enabled for this merchant.orVisa cards are not enabled for this merchant.The transaction isCompletedand failed; do not retry it with the same payment method.3000- An unexpected error occurred. Please try again.3002- The transaction could not be completed because the payment terminal could not find the related transaction.3005- To resolve this error, power off your payment terminal, wait one minute and retry the transaction. If the error persists, please contact support.3006- The transaction could not be completed because the payment terminal is low on battery.3009- The transaction could not be completed because of network connectivity issues with the payment terminal. Please restore connectivity and try again.3010- The transaction took too long and was cancelled by the application.3011- Invalid transaction request. Please consult the documentation for valid transaction requests.3012- Invalid transaction request. paymentMethodId is invalid.3013- Invalid transaction request. The specified amount appears to be incorrect. Please retry with a smaller amount.3014- Invalid amount. Please try your transaction again with an amount greater than $0.3020- An unsupported transaction result was received.4001- The transaction is being processed. This is returned for asynchronous bank transfer payment methods (e.g. ACH) while awaiting a final outcome.6800- 3D Secure authentication was rejected by the issuer's ACS (card auth failed, security failure, stolen card, suspected fraud, etc.). Surfaced on declined CNP transactions whenformConfig.enable3DSecure: trueand the gateway reports a 3D Secure reason; other failures in a 3D Secure session use6900-6902. See SDK Error Codes for guidance.6801- 3D Secure authentication could not be completed because of an upstream technical issue (ACS timeout, directory server unreachable). Retry later or, if merchant policy allows, retry with 3DS disabled.6802- The card is not enrolled in 3D Secure. Retry without 3DS only if merchant policy allows; approval is not guaranteed.6900- The issuer declined the card on the hosted payment form or Payment SDK path. The specific reason is ontransactionResponses[0].responseCode(10-18) and inresultText. See SDK Error Codes for guidance.6901- The gateway rejected or failed the hosted payment form payment because of validation or a gateway failure rather than an issuer decision. See SDK Error Codes for guidance.6902- The gateway reported no failure but returned no payment token. See SDK Error Codes for guidance.9998- The system is not ready to process a transaction.9999- An unknown error has occurred. If available, an auxiliary error code will be provided in the message.1010- The transaction request is pending customer interaction.4100- Cardholder verification is required. FollowthreeDsChallenge.redirectUrland reconcile the final transaction outcome before retrying.55- The customer cancelled the hosted payment attempt.
Allowed: 0, 55, 1003, 1005, 1010, 2014, 3000, 3002, 3005, 3006, 3009, 3010, 3011, 3012, 3013, 3014, 3020, 4001, 4100, 6800, 6801, 6802, 6900, 6901, 6902, 9998, 9999
Example: 0
resultText ResultTextA message describing the result code in more detail. On a stored transaction it is uppercase, such as APPROVED, DECLINED, or the gateway's reason, except for resultCode 2014, where it is the message in sentence case. Use it for display, not for branching.
Example: "APPROVED"
requestedAmount integerThe requested amount in minor units. Virtual tokenization uses 0; physical tokenization uses a 1-unit authorization.
Example: 1000
approvedAmount integerThe approved amount in minor units. This is 0 for a decline or an outcome that is still in flight. A terminal may adjust the amount, for example by adding a tip.
Example: 1000
refundableAmount integerThe amount that remains refundable on the original transaction after this refund, in the smallest denomination of the currency. The balance reflects this refund attempt. When the gateway declines the refund, this equals the balance before the attempt.
Example: 0
transactionResponses array of TransactionResponseIndividual gateway responses, with receipts under each entry. The array can be empty while processing is incomplete.
Child attributes
responseCode ResponseCodeThe outcome of the payment, and the field that tells you whether the transaction succeeded. The HTTP status, resultCode, and status do not. A transaction succeeded only when status is Completed and a transaction response has responseCode 1 or 2.
Outcomes:
- Approved -
1,2. For2, onlyamountApprovedwas approved. On aChargebacktransaction, approved means the chargeback took effect: the money went back to the payer. - Declined -
10to18. The issuer or bank refused the payment. Do not retry with the same payment details. - Canceled -
54,55. No money moved. - Pending -
57. The outcome is not final. Wait for the webhook or query the transaction again. - Unknown -
0. No specific code was reported. Whilestatusis notCompleted, the outcome is not final. On aCompletedtransaction it is not an approval: readresultCodeandresultTextfor the reason, for example2014,6901, or6902. - Error - every other code. Processing failed for a technical or request reason.
See Transaction response codes.
Response codes:
0- UNKNOWN1- APPROVED - Transaction was approved2- PARTIAL_APPROVED - Transaction was partially approved, but not for the full requested amount.10- DECLINED - Transaction was declined by the issuer or bank. For Card-Present, the transaction can also be declined offline by the terminal.11- INSUFFICIENT_FUNDS - Rejected due to insufficient funds in the account.12- CARD_EXPIRED - The card used for the transaction has expired.13- FRAUD_SUSPECTED - The transaction was flagged for potential fraud.14- INVALID_PAYMENT_INFO - The provided information is invalid (e.g.: card number).15- LIMIT_EXCEEDED - Rejected due to reaching a limit (e.g.: credit limit).16- VERIFICATION_REQUIRED - Additional customer verification is required for the transaction to proceed (e.g.: 3D Secure).17- AUTHENTICATION_FAILED - Rejected due to incorrect PIN or authentication failure.18- POLICY_VIOLATION - Rejected due to a violation of the payment gateway's terms of service or policies.19- BATCH_EMPTY - Indicates that the batch for processing is empty.20- RECORD_NOT_FOUND - Indicates that the requested record for a transaction was not found (e.g.: to VOID a reference).21- ALREADY_VOIDED - Indicates that the transaction has already been voided and cannot be processed again.50- NETWORK_ERROR - Rejected due to network or communication issues with the payment gateway.51- INVALID_ECR_PARAMETER - Payment Terminal or system-specific errors.52- NOT_SUPPORTED - Rejected because the requested operation is not supported.53- BUSY_OR_UNAVAILABLE - The Payment Terminal, Payment App or system is busy or unavailable.54- CANCELLED - Cancelled by the user or merchant.55- USER_CANCELLED - Specific to scenarios where the user cancels the transaction.56- TIMED_OUT_ON_USER_INPUT - Failed to complete the transaction in time.57- PENDING - The transaction is awaiting an asynchronous outcome.
Allowed: 0, 1, 2, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 50, 51, 52, 53, 54, 55, 56, 57
authCode stringThe authorization code provided by the card issuer, confirming transaction approval.
Example: "123456"
amountApproved integerThe amount approved for this transaction response.
Example: 1000
approvedAmountBreakdown ApprovedAmountBreakdownA breakdown of approvedAmount, where each amounts approved on the payment terminal are returned separately. Only returned on Sale, Auth and Capture transactions.
paymentMethod objectThe payment method used for this transaction.
cardType CardTypeThe type of card used for this transaction:
UNKNOWN- The card type is unknownDEBIT- Debit CardVISA- Visa Credit CardMASTERCARD- MasterCard Credit CardAMEX- American Express Credit CardDINERS- Diners Club Credit CardDISCOVER- Discover Credit CardJCB- JCB Credit CardUNIONPAY- UnionPay Credit CardMAESTRO- Maestro Debit CardGIFT- Gift CardCASH- All-cash TransactionEBT- Electronic Benefits Transfer CardINTERAC- Interac (Canadian PIN-debit network), Card Present onlyOTHER- Other tender types
Allowed: UNKNOWN, DEBIT, VISA, MASTERCARD, AMEX, DINERS, DISCOVER, JCB, UNIONPAY, MAESTRO, GIFT, CASH, EBT, INTERAC, OTHER
avsResult AVSResultThe AVS (Address Verification Service) result. Typically returned on Card Not Present transactions.
A- Address matches, ZIP does not. The first five numerical characters contained in the address match those stored at the VIC or issuer's center. However, the ZIP code does not match.E- Ineligible transaction.N- Neither address nor ZIP matches. Neither the first five numerical characters contained in the address match with those stored at the VIC nor issuer's center nor the ZIP code match.R- Retry (system unavailable or timed out).S- Card type not supported. The card type for this transaction is not supported by AVS. AVS can verify addresses for Visa cards, MasterCard, proprietary cards, and private label transactions.U- Address information unavailable.G- Address information unavailable, International - Visa only, The address information was not available at the VIC or issuer's center.W- Nine-digit ZIP match, address does not. The nine-digit Postal ZIP code matches that stored at the VIC or card issuer's centre. However, the first five numerical characters contained in the address do not match.X- Exact match (nine digit ZIP and address). Both the nine-digit Postal ZIP code as well as the first five numerical characters contained in the address match.Y- Address and five-digit ZIP match. Both the five-digit Postal ZIP code as well as the first five numerical characters contained in the address match.Z- Five-digit ZIP matches, address does not. The five-digit Postal ZIP code matches that stored at the VIC or card issuer's centre.
NOTE: Transactions can still be authorized if the AVS responses are no match or failure. AVS responses are for merchant information only, and usually do not influence the overall Authorization result. This can vary based on the Issuing Bank.
Allowed: A, E, N, R, S, U, G, W, X, Y, Z
cvvResult CVVResultThe CVV verification result. Typically returned on Card Not Present transactions.
M- CVV MatchN- CVV No MatchP- Not ProcessedS- CVV should be on the card but the merchant indicates it is not.U- User is unregistered
NOTE: Transactions can still be authorized if the CVV responses are no match or failure. CVV responses are for merchant information only, and usually do not influence the overall Authorization result. This can vary based on the Issuing Bank.
Allowed: M, N, P, S, U
accountType stringThe funding-source classification associated with the payment method used in this transaction.
- For credit/debit cards:
CreditorDebit. May be null when the classification is unavailable, including on older transactions. - For ACH/EFT bank accounts:
CheckingorSavings.
The immediate hosted ACH response uses lowercase checking or savings. Retrieved transaction responses normally use Checking or Savings.
Allowed: Credit, Debit, Checking, Savings, checking, savings
Example: "Credit"
hostResponseText stringA meaningful text explaining the response code from the host.
Example: "APPROVED 00"
receipt ReceiptReceipt lines for this transaction response. Card-present responses can contain printable receipt lines; other responses can return an empty lines array.
sourceId stringIdentifier of the session or other source that initiated the transaction.
threeDs ThreeDsAuthentication3D Secure (EMV 3DS2) authentication outcome. Populated on transactions initiated with formConfig.enable3DSecure: true. All fields (other than status) are optional - what the issuer returns depends on whether the transaction was frictionless, challenged, or declined.
Child attributes
status stringThe authentication outcome to use in your integration. The other threeDs fields provide supporting authentication data.
Allowed: Authenticated, Attempted, NotAuthenticated, Failed, Unavailable, NotEnrolled
Example: "Authenticated"
cavv stringCardholder Authentication Verification Value. Cryptographic proof that 3DS authentication was performed. Present on frictionless and challenge-completed transactions.
Example: "AAABBkgwVoRhY2tcYlZGAAAAAAA="
eci stringE-commerce Indicator. Indicates 3DS liability-shift status per card scheme:
02/05- Fully authenticated (liability shift to issuer).01/06- Attempted authentication (partial liability shift).00/07- Not authenticated (no liability shift).
Example: "05"
xid string3DS1 transaction identifier. Some issuers still return this under 3DS2 for backward compatibility.
Example: "MDAwMDAwMDAwMDAwMDAwMTM3MDI="
dsTransId stringDirectory Server transaction ID (3DS2). Identifies the authentication associated with this card transaction.
Example: "b71a7d5d-cc38-4ce9-80c3-50a7d53271f7"
threeDReasonId stringIssuer-provided reason code when 3DS authentication failed. Populated only on declines. Use status to handle the outcome and threeDReason for the explanation.
Example: "10"
threeDReason stringHuman-readable description matching threeDReasonId.
Example: "Stolen Card"
threeDsChallenge ThreeDsChallengePresent when a token payment requires a cardholder challenge (resultCode: 4100).
Child attributes
redirectUrl string (uri) requiredHosted URL where the cardholder completes the challenge.
followUpToken string requiredOpaque token identifying the pending challenge.
balanceAmount integerThe balance that remains to be paid on the transaction. This amount is always an integer in the smallest denomination of the currency (e.g. cents for USD or CAD).
Example: 0
VoidResponse
Represents the response to a void request.
Type: object
id stringUnique ID for this void transaction.
Example: "trx_01J2F0ZJ2JW5B63CJFPXRGAB1S"
timestamp string (date-time)Transaction timestamp in UTC
Example: "2025-05-27T18:49:31Z"
type stringType of transaction
Allowed: Sale, Auth, Capture, Refund, Void
Example: "Void"
status TransactionStatusThe processing lifecycle, separate from approval or decline. Pending waits for customer input; Submitted, Acknowledged, and Processing are in flight; AwaitingSettlement waits for a bank transfer outcome. Completed can be approved or declined: inspect resultCode and transactionResponses[].responseCode. Failed means processing stopped because of a technical issue. Abandoned means the customer did not complete the flow before submission. Both states close the request.
Allowed: Unknown, Created, Pending, Submitted, Acknowledged, Processing, AwaitingSettlement, Completed, Failed, Abandoned
Example: "Completed"
accountHolder objectAccount holder information associated with the transaction
Child attributes
id string requiredAccount holder ID assigned by the API.
Example: "aho_01JRZPRGFF4J2SZC3HMDBYEN2J"
externalId string requiredExternal account holder ID assigned by your application.
Example: "usr_1234567890123"
contact objectContact information for the account holder. Only returned for Card Not Present transactions.
paymentMethod objectThe payment method used for this transaction.
Child attributes
id string requiredThe unique identifier of the payment method. This ID has a prefix that makes it human-readable (pmt_trm_ for physical terminals, pmt_vrt_ for virtual card terminals, pmt_ach_ for virtual ACH terminals, pmt_tkn_ for tokens, which store a card or an ACH bank account), but applications should always use the type field to determine the payment method type rather than parsing this ID.
Example: "pmt_tkn_01JRZPRGFF4J2SZC3HMDBYEN2J"
dateDeleted string (date-time)The date and time (UTC) when this payment method token was removed from the system using the Remove Token endpoint. This parameter will only be returned if the token was removed/deleted from the system.
This field will be present in three scenarios:
- As part of a successful Remove Token endpoint response
- In token.removed webhook notifications
- In List Transactions responses for transactions where the associated token was later removed
When this field is present, sensitive card details (maskedCardNumber, cardExpDate) will be removed for security purposes, but all other transaction data remains intact.
Example: "2025-07-14T14:05:48.869225Z"
type string requiredThe type of payment method:
Physical- A physical payment terminal for Card Present transactionsVirtual- A hosted payment form/iframe for Card Not Present transactionsVirtualAch- A hosted payment form/iframe for ACH (US) bank transfer transactionsToken- A stored payment method (a card or an ACH bank account) for card-on-file and recurring transactionsVirtualEft- A virtual Canadian bank-transfer payment method, when configured.Unknown- The payment method type is not known.
Allowed: Unknown, Physical, Virtual, VirtualAch, VirtualEft, Token
Example: "Token"
currency string requiredThe currency of the payment method.
Allowed: USD, CAD
Example: "USD"
description stringA human-readable name for the payment method.
Example: "Token for John Doe's Visa"
billingContact objectBilling contact information associated with the payment method. Not returned on card present transactions or on refunds, captures, etc. of card present transactions.
cardType stringThe type of card used for this transaction:
UNKNOWN- The card type is unknownDEBIT- Debit CardVISA- Visa Credit CardMASTERCARD- MasterCard Credit CardAMEX- American Express Credit CardDINERS- Diners Club Credit CardDISCOVER- Discover Credit CardJCB- JCB Credit CardUNIONPAY- UnionPay Credit CardMAESTRO- Maestro Debit CardGIFT- Gift CardCASH- All-cash TransactionEBT- Electronic Benefits Transfer CardINTERAC- Interac (Canadian PIN-debit network), Card Present onlyOTHER- Other tender types
Allowed: UNKNOWN, DEBIT, VISA, MASTERCARD, AMEX, DINERS, DISCOVER, JCB, UNIONPAY, MAESTRO, GIFT, CASH, EBT, INTERAC, OTHER
Example: "VISA"
maskedCardNumber stringThe masked card number. The format may vary (e.g. **0011, 4**0011, etc.)
Example: "************0011"
cardExpDate stringThe expiration date of the card in MMYY format.
Example: "1225"
accountType stringFunding-source classification of this token-type payment method.
- For card tokens:
CreditorDebit. - For ACH tokens:
CheckingorSavings. May be omitted for older tokens that pre-date this field, for non-token payment methods, or when the source did not provide a classification.
Allowed: Credit, Debit, Checking, Savings
Example: "Debit"
accountNumber stringMasked bank account number, when available for a bank-account token.
Example: "*****6789"
invoiceNumber InvoiceNumberAn optional alphanumeric invoice number for this transaction. If provided in the request, the same value will be populated in the response.
max length 100
Example: "inv_1234567890123456"
orderNumber OrderNumberAn optional alphanumeric order number for this transaction. If provided, the same value will be populated in the response.
max length 100
Example: "order_number_1234"
referenceId ReferenceIdForResponseThe reference ID for this transaction. This will either be the reference ID provided in the transaction request or, if no value was provided, a value generated automatically by the system. This reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions.
max length 100
Example: "ref_s192i49i"
originalTransactionId stringThe trx_ ID of the earlier transaction this one belongs to, when the link has been verified. Set on card-present captures and voids, card-present Interac refunds, ACH refunds once the gateway confirms the original sale, ACH chargebacks (the charged-back sale), and ACH resubmissions (the original sale).
Absent when there is no verified link. That includes card-not-present captures, refunds, and voids, other card-present refunds, and older transactions recorded before the link was stored. Do not treat an absent value as proof that the transaction has no original.
Example: "trx_01JWBPE27KHY2K4J7A13ATQ786"
resultCode ResultCodeResult codes:
0- Successful transaction request. (Check each transactionResponse's responseCode to determine if a transaction was approved or declined, card was tokenized, etc.)1003- The payment terminal is busy or unavailable. (If this error persists, the user may need to close and re-open the Payment Application on the terminal or restart the terminal)1005- The specified terminal could not be found.1010- The transaction request is pending to become transaction.2014- The payment method or card brand is not enabled for the merchant.resultTextcarries the message, such asACH payments are not enabled for this merchant.orVisa cards are not enabled for this merchant.The transaction isCompletedand failed; do not retry it with the same payment method.3000- An unexpected error occurred. Please try again.3002- The transaction could not be completed because the payment terminal could not find the related transaction.3005- To resolve this error, power off your payment terminal, wait one minute and retry the transaction. If the error persists, please contact support.3006- The transaction could not be completed because the payment terminal is low on battery.3009- The transaction could not be completed because of network connectivity issues with the payment terminal. Please restore connectivity and try again.3010- The transaction took too long and was cancelled by the application.3011- Invalid transaction request. Please consult the documentation for valid transaction requests.3012- Invalid transaction request. paymentMethodId is invalid.3013- Invalid transaction request. The specified amount appears to be incorrect. Please retry with a smaller amount.3014- Invalid amount. Please try your transaction again with an amount greater than $0.3020- An unsupported transaction result was received.4001- The transaction is being processed. This is returned for asynchronous bank transfer payment methods (e.g. ACH) while awaiting a final outcome.6800- 3D Secure authentication was rejected by the issuer's ACS (card auth failed, security failure, stolen card, suspected fraud, etc.). Surfaced on declined CNP transactions whenformConfig.enable3DSecure: trueand the gateway reports a 3D Secure reason; other failures in a 3D Secure session use6900-6902. See SDK Error Codes for guidance.6801- 3D Secure authentication could not be completed because of an upstream technical issue (ACS timeout, directory server unreachable). Retry later or, if merchant policy allows, retry with 3DS disabled.6802- The card is not enrolled in 3D Secure. Retry without 3DS only if merchant policy allows; approval is not guaranteed.6900- The issuer declined the card on the hosted payment form or Payment SDK path. The specific reason is ontransactionResponses[0].responseCode(10-18) and inresultText. See SDK Error Codes for guidance.6901- The gateway rejected or failed the hosted payment form payment because of validation or a gateway failure rather than an issuer decision. See SDK Error Codes for guidance.6902- The gateway reported no failure but returned no payment token. See SDK Error Codes for guidance.9998- The system is not ready to process a transaction.9999- An unknown error has occurred. If available, an auxiliary error code will be provided in the message.1010- The transaction request is pending customer interaction.4100- Cardholder verification is required. FollowthreeDsChallenge.redirectUrland reconcile the final transaction outcome before retrying.55- The customer cancelled the hosted payment attempt.
Allowed: 0, 55, 1003, 1005, 1010, 2014, 3000, 3002, 3005, 3006, 3009, 3010, 3011, 3012, 3013, 3014, 3020, 4001, 4100, 6800, 6801, 6802, 6900, 6901, 6902, 9998, 9999
Example: 0
resultText ResultTextA message describing the result code in more detail. On a stored transaction it is uppercase, such as APPROVED, DECLINED, or the gateway's reason, except for resultCode 2014, where it is the message in sentence case. Use it for display, not for branching.
Example: "APPROVED"
requestedAmount integerThe requested amount in minor units. Virtual tokenization uses 0; physical tokenization uses a 1-unit authorization.
Example: 1000
approvedAmount integerThe approved amount in minor units. This is 0 for a decline or an outcome that is still in flight. A terminal may adjust the amount, for example by adding a tip.
Example: 1000
transactionResponses array of TransactionResponseIndividual gateway responses, with receipts under each entry. The array can be empty while processing is incomplete.
Child attributes
responseCode ResponseCodeThe outcome of the payment, and the field that tells you whether the transaction succeeded. The HTTP status, resultCode, and status do not. A transaction succeeded only when status is Completed and a transaction response has responseCode 1 or 2.
Outcomes:
- Approved -
1,2. For2, onlyamountApprovedwas approved. On aChargebacktransaction, approved means the chargeback took effect: the money went back to the payer. - Declined -
10to18. The issuer or bank refused the payment. Do not retry with the same payment details. - Canceled -
54,55. No money moved. - Pending -
57. The outcome is not final. Wait for the webhook or query the transaction again. - Unknown -
0. No specific code was reported. Whilestatusis notCompleted, the outcome is not final. On aCompletedtransaction it is not an approval: readresultCodeandresultTextfor the reason, for example2014,6901, or6902. - Error - every other code. Processing failed for a technical or request reason.
See Transaction response codes.
Response codes:
0- UNKNOWN1- APPROVED - Transaction was approved2- PARTIAL_APPROVED - Transaction was partially approved, but not for the full requested amount.10- DECLINED - Transaction was declined by the issuer or bank. For Card-Present, the transaction can also be declined offline by the terminal.11- INSUFFICIENT_FUNDS - Rejected due to insufficient funds in the account.12- CARD_EXPIRED - The card used for the transaction has expired.13- FRAUD_SUSPECTED - The transaction was flagged for potential fraud.14- INVALID_PAYMENT_INFO - The provided information is invalid (e.g.: card number).15- LIMIT_EXCEEDED - Rejected due to reaching a limit (e.g.: credit limit).16- VERIFICATION_REQUIRED - Additional customer verification is required for the transaction to proceed (e.g.: 3D Secure).17- AUTHENTICATION_FAILED - Rejected due to incorrect PIN or authentication failure.18- POLICY_VIOLATION - Rejected due to a violation of the payment gateway's terms of service or policies.19- BATCH_EMPTY - Indicates that the batch for processing is empty.20- RECORD_NOT_FOUND - Indicates that the requested record for a transaction was not found (e.g.: to VOID a reference).21- ALREADY_VOIDED - Indicates that the transaction has already been voided and cannot be processed again.50- NETWORK_ERROR - Rejected due to network or communication issues with the payment gateway.51- INVALID_ECR_PARAMETER - Payment Terminal or system-specific errors.52- NOT_SUPPORTED - Rejected because the requested operation is not supported.53- BUSY_OR_UNAVAILABLE - The Payment Terminal, Payment App or system is busy or unavailable.54- CANCELLED - Cancelled by the user or merchant.55- USER_CANCELLED - Specific to scenarios where the user cancels the transaction.56- TIMED_OUT_ON_USER_INPUT - Failed to complete the transaction in time.57- PENDING - The transaction is awaiting an asynchronous outcome.
Allowed: 0, 1, 2, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 50, 51, 52, 53, 54, 55, 56, 57
authCode stringThe authorization code provided by the card issuer, confirming transaction approval.
Example: "123456"
amountApproved integerThe amount approved for this transaction response.
Example: 1000
approvedAmountBreakdown ApprovedAmountBreakdownA breakdown of approvedAmount, where each amounts approved on the payment terminal are returned separately. Only returned on Sale, Auth and Capture transactions.
paymentMethod objectThe payment method used for this transaction.
cardType CardTypeThe type of card used for this transaction:
UNKNOWN- The card type is unknownDEBIT- Debit CardVISA- Visa Credit CardMASTERCARD- MasterCard Credit CardAMEX- American Express Credit CardDINERS- Diners Club Credit CardDISCOVER- Discover Credit CardJCB- JCB Credit CardUNIONPAY- UnionPay Credit CardMAESTRO- Maestro Debit CardGIFT- Gift CardCASH- All-cash TransactionEBT- Electronic Benefits Transfer CardINTERAC- Interac (Canadian PIN-debit network), Card Present onlyOTHER- Other tender types
Allowed: UNKNOWN, DEBIT, VISA, MASTERCARD, AMEX, DINERS, DISCOVER, JCB, UNIONPAY, MAESTRO, GIFT, CASH, EBT, INTERAC, OTHER
avsResult AVSResultThe AVS (Address Verification Service) result. Typically returned on Card Not Present transactions.
A- Address matches, ZIP does not. The first five numerical characters contained in the address match those stored at the VIC or issuer's center. However, the ZIP code does not match.E- Ineligible transaction.N- Neither address nor ZIP matches. Neither the first five numerical characters contained in the address match with those stored at the VIC nor issuer's center nor the ZIP code match.R- Retry (system unavailable or timed out).S- Card type not supported. The card type for this transaction is not supported by AVS. AVS can verify addresses for Visa cards, MasterCard, proprietary cards, and private label transactions.U- Address information unavailable.G- Address information unavailable, International - Visa only, The address information was not available at the VIC or issuer's center.W- Nine-digit ZIP match, address does not. The nine-digit Postal ZIP code matches that stored at the VIC or card issuer's centre. However, the first five numerical characters contained in the address do not match.X- Exact match (nine digit ZIP and address). Both the nine-digit Postal ZIP code as well as the first five numerical characters contained in the address match.Y- Address and five-digit ZIP match. Both the five-digit Postal ZIP code as well as the first five numerical characters contained in the address match.Z- Five-digit ZIP matches, address does not. The five-digit Postal ZIP code matches that stored at the VIC or card issuer's centre.
NOTE: Transactions can still be authorized if the AVS responses are no match or failure. AVS responses are for merchant information only, and usually do not influence the overall Authorization result. This can vary based on the Issuing Bank.
Allowed: A, E, N, R, S, U, G, W, X, Y, Z
cvvResult CVVResultThe CVV verification result. Typically returned on Card Not Present transactions.
M- CVV MatchN- CVV No MatchP- Not ProcessedS- CVV should be on the card but the merchant indicates it is not.U- User is unregistered
NOTE: Transactions can still be authorized if the CVV responses are no match or failure. CVV responses are for merchant information only, and usually do not influence the overall Authorization result. This can vary based on the Issuing Bank.
Allowed: M, N, P, S, U
accountType stringThe funding-source classification associated with the payment method used in this transaction.
- For credit/debit cards:
CreditorDebit. May be null when the classification is unavailable, including on older transactions. - For ACH/EFT bank accounts:
CheckingorSavings.
The immediate hosted ACH response uses lowercase checking or savings. Retrieved transaction responses normally use Checking or Savings.
Allowed: Credit, Debit, Checking, Savings, checking, savings
Example: "Credit"
hostResponseText stringA meaningful text explaining the response code from the host.
Example: "APPROVED 00"
receipt ReceiptReceipt lines for this transaction response. Card-present responses can contain printable receipt lines; other responses can return an empty lines array.
sourceId stringIdentifier of the session or other source that initiated the transaction.
threeDs ThreeDsAuthentication3D Secure (EMV 3DS2) authentication outcome. Populated on transactions initiated with formConfig.enable3DSecure: true. All fields (other than status) are optional - what the issuer returns depends on whether the transaction was frictionless, challenged, or declined.
Child attributes
status stringThe authentication outcome to use in your integration. The other threeDs fields provide supporting authentication data.
Allowed: Authenticated, Attempted, NotAuthenticated, Failed, Unavailable, NotEnrolled
Example: "Authenticated"
cavv stringCardholder Authentication Verification Value. Cryptographic proof that 3DS authentication was performed. Present on frictionless and challenge-completed transactions.
Example: "AAABBkgwVoRhY2tcYlZGAAAAAAA="
eci stringE-commerce Indicator. Indicates 3DS liability-shift status per card scheme:
02/05- Fully authenticated (liability shift to issuer).01/06- Attempted authentication (partial liability shift).00/07- Not authenticated (no liability shift).
Example: "05"
xid string3DS1 transaction identifier. Some issuers still return this under 3DS2 for backward compatibility.
Example: "MDAwMDAwMDAwMDAwMDAwMTM3MDI="
dsTransId stringDirectory Server transaction ID (3DS2). Identifies the authentication associated with this card transaction.
Example: "b71a7d5d-cc38-4ce9-80c3-50a7d53271f7"
threeDReasonId stringIssuer-provided reason code when 3DS authentication failed. Populated only on declines. Use status to handle the outcome and threeDReason for the explanation.
Example: "10"
threeDReason stringHuman-readable description matching threeDReasonId.
Example: "Stolen Card"
threeDsChallenge ThreeDsChallengePresent when a token payment requires a cardholder challenge (resultCode: 4100).
Child attributes
redirectUrl string (uri) requiredHosted URL where the cardholder completes the challenge.
followUpToken string requiredOpaque token identifying the pending challenge.
balanceAmount integerThe balance that remains to be paid on the transaction. This amount is always an integer in the smallest denomination of the currency (e.g. cents for USD or CAD).
Example: 0
CardOnFileAddResponse
Represents the response to a physical card tokenization request.
Type: object
id stringUnique ID for this card tokenization transaction.
Example: "trx_01J2F0ZJ2JW5B63CJFPXRGAB1S"
timestamp string (date-time)Transaction timestamp in UTC
Example: "2025-05-27T18:49:31Z"
type stringType of transaction
Allowed: Sale, Auth, Capture, Refund, Void
Example: "Auth"
status TransactionStatusThe processing lifecycle, separate from approval or decline. Pending waits for customer input; Submitted, Acknowledged, and Processing are in flight; AwaitingSettlement waits for a bank transfer outcome. Completed can be approved or declined: inspect resultCode and transactionResponses[].responseCode. Failed means processing stopped because of a technical issue. Abandoned means the customer did not complete the flow before submission. Both states close the request.
Allowed: Unknown, Created, Pending, Submitted, Acknowledged, Processing, AwaitingSettlement, Completed, Failed, Abandoned
Example: "Completed"
accountHolder objectAccount holder information associated with the transaction
Child attributes
id string requiredAccount holder ID assigned by the API.
Example: "aho_01JRZPRGFF4J2SZC3HMDBYEN2J"
externalId string requiredExternal account holder ID assigned by your application.
Example: "usr_1234567890123"
contact objectContact information for the account holder. Only returned for Card Not Present transactions.
paymentMethod objectThe payment method used for this transaction.
Child attributes
id string requiredThe unique identifier of the payment method. This ID has a prefix that makes it human-readable (pmt_trm_ for physical terminals, pmt_vrt_ for virtual card terminals, pmt_ach_ for virtual ACH terminals, pmt_tkn_ for tokens, which store a card or an ACH bank account), but applications should always use the type field to determine the payment method type rather than parsing this ID.
Example: "pmt_tkn_01JRZPRGFF4J2SZC3HMDBYEN2J"
dateDeleted string (date-time)The date and time (UTC) when this payment method token was removed from the system using the Remove Token endpoint. This parameter will only be returned if the token was removed/deleted from the system.
This field will be present in three scenarios:
- As part of a successful Remove Token endpoint response
- In token.removed webhook notifications
- In List Transactions responses for transactions where the associated token was later removed
When this field is present, sensitive card details (maskedCardNumber, cardExpDate) will be removed for security purposes, but all other transaction data remains intact.
Example: "2025-07-14T14:05:48.869225Z"
type string requiredThe type of payment method:
Physical- A physical payment terminal for Card Present transactionsVirtual- A hosted payment form/iframe for Card Not Present transactionsVirtualAch- A hosted payment form/iframe for ACH (US) bank transfer transactionsToken- A stored payment method (a card or an ACH bank account) for card-on-file and recurring transactionsVirtualEft- A virtual Canadian bank-transfer payment method, when configured.Unknown- The payment method type is not known.
Allowed: Unknown, Physical, Virtual, VirtualAch, VirtualEft, Token
Example: "Token"
currency string requiredThe currency of the payment method.
Allowed: USD, CAD
Example: "USD"
description stringA human-readable name for the payment method.
Example: "Token for John Doe's Visa"
billingContact objectBilling contact information associated with the payment method. Not returned on card present transactions or on refunds, captures, etc. of card present transactions.
cardType stringThe type of card used for this transaction:
UNKNOWN- The card type is unknownDEBIT- Debit CardVISA- Visa Credit CardMASTERCARD- MasterCard Credit CardAMEX- American Express Credit CardDINERS- Diners Club Credit CardDISCOVER- Discover Credit CardJCB- JCB Credit CardUNIONPAY- UnionPay Credit CardMAESTRO- Maestro Debit CardGIFT- Gift CardCASH- All-cash TransactionEBT- Electronic Benefits Transfer CardINTERAC- Interac (Canadian PIN-debit network), Card Present onlyOTHER- Other tender types
Allowed: UNKNOWN, DEBIT, VISA, MASTERCARD, AMEX, DINERS, DISCOVER, JCB, UNIONPAY, MAESTRO, GIFT, CASH, EBT, INTERAC, OTHER
Example: "VISA"
maskedCardNumber stringThe masked card number. The format may vary (e.g. **0011, 4**0011, etc.)
Example: "************0011"
cardExpDate stringThe expiration date of the card in MMYY format.
Example: "1225"
accountType stringFunding-source classification of this token-type payment method.
- For card tokens:
CreditorDebit. - For ACH tokens:
CheckingorSavings. May be omitted for older tokens that pre-date this field, for non-token payment methods, or when the source did not provide a classification.
Allowed: Credit, Debit, Checking, Savings
Example: "Debit"
accountNumber stringMasked bank account number, when available for a bank-account token.
Example: "*****6789"
referenceId ReferenceIdForResponseThe reference ID for this transaction. This will either be the reference ID provided in the transaction request or, if no value was provided, a value generated automatically by the system. This reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions.
max length 100
Example: "ref_s192i49i"
resultCode ResultCodeResult codes:
0- Successful transaction request. (Check each transactionResponse's responseCode to determine if a transaction was approved or declined, card was tokenized, etc.)1003- The payment terminal is busy or unavailable. (If this error persists, the user may need to close and re-open the Payment Application on the terminal or restart the terminal)1005- The specified terminal could not be found.1010- The transaction request is pending to become transaction.2014- The payment method or card brand is not enabled for the merchant.resultTextcarries the message, such asACH payments are not enabled for this merchant.orVisa cards are not enabled for this merchant.The transaction isCompletedand failed; do not retry it with the same payment method.3000- An unexpected error occurred. Please try again.3002- The transaction could not be completed because the payment terminal could not find the related transaction.3005- To resolve this error, power off your payment terminal, wait one minute and retry the transaction. If the error persists, please contact support.3006- The transaction could not be completed because the payment terminal is low on battery.3009- The transaction could not be completed because of network connectivity issues with the payment terminal. Please restore connectivity and try again.3010- The transaction took too long and was cancelled by the application.3011- Invalid transaction request. Please consult the documentation for valid transaction requests.3012- Invalid transaction request. paymentMethodId is invalid.3013- Invalid transaction request. The specified amount appears to be incorrect. Please retry with a smaller amount.3014- Invalid amount. Please try your transaction again with an amount greater than $0.3020- An unsupported transaction result was received.4001- The transaction is being processed. This is returned for asynchronous bank transfer payment methods (e.g. ACH) while awaiting a final outcome.6800- 3D Secure authentication was rejected by the issuer's ACS (card auth failed, security failure, stolen card, suspected fraud, etc.). Surfaced on declined CNP transactions whenformConfig.enable3DSecure: trueand the gateway reports a 3D Secure reason; other failures in a 3D Secure session use6900-6902. See SDK Error Codes for guidance.6801- 3D Secure authentication could not be completed because of an upstream technical issue (ACS timeout, directory server unreachable). Retry later or, if merchant policy allows, retry with 3DS disabled.6802- The card is not enrolled in 3D Secure. Retry without 3DS only if merchant policy allows; approval is not guaranteed.6900- The issuer declined the card on the hosted payment form or Payment SDK path. The specific reason is ontransactionResponses[0].responseCode(10-18) and inresultText. See SDK Error Codes for guidance.6901- The gateway rejected or failed the hosted payment form payment because of validation or a gateway failure rather than an issuer decision. See SDK Error Codes for guidance.6902- The gateway reported no failure but returned no payment token. See SDK Error Codes for guidance.9998- The system is not ready to process a transaction.9999- An unknown error has occurred. If available, an auxiliary error code will be provided in the message.1010- The transaction request is pending customer interaction.4100- Cardholder verification is required. FollowthreeDsChallenge.redirectUrland reconcile the final transaction outcome before retrying.55- The customer cancelled the hosted payment attempt.
Allowed: 0, 55, 1003, 1005, 1010, 2014, 3000, 3002, 3005, 3006, 3009, 3010, 3011, 3012, 3013, 3014, 3020, 4001, 4100, 6800, 6801, 6802, 6900, 6901, 6902, 9998, 9999
Example: 0
resultText ResultTextA message describing the result code in more detail. On a stored transaction it is uppercase, such as APPROVED, DECLINED, or the gateway's reason, except for resultCode 2014, where it is the message in sentence case. Use it for display, not for branching.
Example: "APPROVED"
requestedAmount integerThe requested amount in minor units. Virtual tokenization uses 0; physical tokenization uses a 1-unit authorization.
Example: 1
approvedAmount integerThe approved amount in minor units. This is 0 for a decline or an outcome that is still in flight. A terminal may adjust the amount, for example by adding a tip.
Example: 1
transactionResponses array of TransactionResponseIndividual gateway responses, with receipts under each entry. The array can be empty while processing is incomplete.
Child attributes
responseCode ResponseCodeThe outcome of the payment, and the field that tells you whether the transaction succeeded. The HTTP status, resultCode, and status do not. A transaction succeeded only when status is Completed and a transaction response has responseCode 1 or 2.
Outcomes:
- Approved -
1,2. For2, onlyamountApprovedwas approved. On aChargebacktransaction, approved means the chargeback took effect: the money went back to the payer. - Declined -
10to18. The issuer or bank refused the payment. Do not retry with the same payment details. - Canceled -
54,55. No money moved. - Pending -
57. The outcome is not final. Wait for the webhook or query the transaction again. - Unknown -
0. No specific code was reported. Whilestatusis notCompleted, the outcome is not final. On aCompletedtransaction it is not an approval: readresultCodeandresultTextfor the reason, for example2014,6901, or6902. - Error - every other code. Processing failed for a technical or request reason.
See Transaction response codes.
Response codes:
0- UNKNOWN1- APPROVED - Transaction was approved2- PARTIAL_APPROVED - Transaction was partially approved, but not for the full requested amount.10- DECLINED - Transaction was declined by the issuer or bank. For Card-Present, the transaction can also be declined offline by the terminal.11- INSUFFICIENT_FUNDS - Rejected due to insufficient funds in the account.12- CARD_EXPIRED - The card used for the transaction has expired.13- FRAUD_SUSPECTED - The transaction was flagged for potential fraud.14- INVALID_PAYMENT_INFO - The provided information is invalid (e.g.: card number).15- LIMIT_EXCEEDED - Rejected due to reaching a limit (e.g.: credit limit).16- VERIFICATION_REQUIRED - Additional customer verification is required for the transaction to proceed (e.g.: 3D Secure).17- AUTHENTICATION_FAILED - Rejected due to incorrect PIN or authentication failure.18- POLICY_VIOLATION - Rejected due to a violation of the payment gateway's terms of service or policies.19- BATCH_EMPTY - Indicates that the batch for processing is empty.20- RECORD_NOT_FOUND - Indicates that the requested record for a transaction was not found (e.g.: to VOID a reference).21- ALREADY_VOIDED - Indicates that the transaction has already been voided and cannot be processed again.50- NETWORK_ERROR - Rejected due to network or communication issues with the payment gateway.51- INVALID_ECR_PARAMETER - Payment Terminal or system-specific errors.52- NOT_SUPPORTED - Rejected because the requested operation is not supported.53- BUSY_OR_UNAVAILABLE - The Payment Terminal, Payment App or system is busy or unavailable.54- CANCELLED - Cancelled by the user or merchant.55- USER_CANCELLED - Specific to scenarios where the user cancels the transaction.56- TIMED_OUT_ON_USER_INPUT - Failed to complete the transaction in time.57- PENDING - The transaction is awaiting an asynchronous outcome.
Allowed: 0, 1, 2, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 50, 51, 52, 53, 54, 55, 56, 57
authCode stringThe authorization code provided by the card issuer, confirming transaction approval.
Example: "123456"
amountApproved integerThe amount approved for this transaction response.
Example: 1000
approvedAmountBreakdown ApprovedAmountBreakdownA breakdown of approvedAmount, where each amounts approved on the payment terminal are returned separately. Only returned on Sale, Auth and Capture transactions.
paymentMethod objectThe payment method used for this transaction.
cardType CardTypeThe type of card used for this transaction:
UNKNOWN- The card type is unknownDEBIT- Debit CardVISA- Visa Credit CardMASTERCARD- MasterCard Credit CardAMEX- American Express Credit CardDINERS- Diners Club Credit CardDISCOVER- Discover Credit CardJCB- JCB Credit CardUNIONPAY- UnionPay Credit CardMAESTRO- Maestro Debit CardGIFT- Gift CardCASH- All-cash TransactionEBT- Electronic Benefits Transfer CardINTERAC- Interac (Canadian PIN-debit network), Card Present onlyOTHER- Other tender types
Allowed: UNKNOWN, DEBIT, VISA, MASTERCARD, AMEX, DINERS, DISCOVER, JCB, UNIONPAY, MAESTRO, GIFT, CASH, EBT, INTERAC, OTHER
avsResult AVSResultThe AVS (Address Verification Service) result. Typically returned on Card Not Present transactions.
A- Address matches, ZIP does not. The first five numerical characters contained in the address match those stored at the VIC or issuer's center. However, the ZIP code does not match.E- Ineligible transaction.N- Neither address nor ZIP matches. Neither the first five numerical characters contained in the address match with those stored at the VIC nor issuer's center nor the ZIP code match.R- Retry (system unavailable or timed out).S- Card type not supported. The card type for this transaction is not supported by AVS. AVS can verify addresses for Visa cards, MasterCard, proprietary cards, and private label transactions.U- Address information unavailable.G- Address information unavailable, International - Visa only, The address information was not available at the VIC or issuer's center.W- Nine-digit ZIP match, address does not. The nine-digit Postal ZIP code matches that stored at the VIC or card issuer's centre. However, the first five numerical characters contained in the address do not match.X- Exact match (nine digit ZIP and address). Both the nine-digit Postal ZIP code as well as the first five numerical characters contained in the address match.Y- Address and five-digit ZIP match. Both the five-digit Postal ZIP code as well as the first five numerical characters contained in the address match.Z- Five-digit ZIP matches, address does not. The five-digit Postal ZIP code matches that stored at the VIC or card issuer's centre.
NOTE: Transactions can still be authorized if the AVS responses are no match or failure. AVS responses are for merchant information only, and usually do not influence the overall Authorization result. This can vary based on the Issuing Bank.
Allowed: A, E, N, R, S, U, G, W, X, Y, Z
cvvResult CVVResultThe CVV verification result. Typically returned on Card Not Present transactions.
M- CVV MatchN- CVV No MatchP- Not ProcessedS- CVV should be on the card but the merchant indicates it is not.U- User is unregistered
NOTE: Transactions can still be authorized if the CVV responses are no match or failure. CVV responses are for merchant information only, and usually do not influence the overall Authorization result. This can vary based on the Issuing Bank.
Allowed: M, N, P, S, U
accountType stringThe funding-source classification associated with the payment method used in this transaction.
- For credit/debit cards:
CreditorDebit. May be null when the classification is unavailable, including on older transactions. - For ACH/EFT bank accounts:
CheckingorSavings.
The immediate hosted ACH response uses lowercase checking or savings. Retrieved transaction responses normally use Checking or Savings.
Allowed: Credit, Debit, Checking, Savings, checking, savings
Example: "Credit"
hostResponseText stringA meaningful text explaining the response code from the host.
Example: "APPROVED 00"
receipt ReceiptReceipt lines for this transaction response. Card-present responses can contain printable receipt lines; other responses can return an empty lines array.
sourceId stringIdentifier of the session or other source that initiated the transaction.
threeDs ThreeDsAuthentication3D Secure (EMV 3DS2) authentication outcome. Populated on transactions initiated with formConfig.enable3DSecure: true. All fields (other than status) are optional - what the issuer returns depends on whether the transaction was frictionless, challenged, or declined.
Child attributes
status stringThe authentication outcome to use in your integration. The other threeDs fields provide supporting authentication data.
Allowed: Authenticated, Attempted, NotAuthenticated, Failed, Unavailable, NotEnrolled
Example: "Authenticated"
cavv stringCardholder Authentication Verification Value. Cryptographic proof that 3DS authentication was performed. Present on frictionless and challenge-completed transactions.
Example: "AAABBkgwVoRhY2tcYlZGAAAAAAA="
eci stringE-commerce Indicator. Indicates 3DS liability-shift status per card scheme:
02/05- Fully authenticated (liability shift to issuer).01/06- Attempted authentication (partial liability shift).00/07- Not authenticated (no liability shift).
Example: "05"
xid string3DS1 transaction identifier. Some issuers still return this under 3DS2 for backward compatibility.
Example: "MDAwMDAwMDAwMDAwMDAwMTM3MDI="
dsTransId stringDirectory Server transaction ID (3DS2). Identifies the authentication associated with this card transaction.
Example: "b71a7d5d-cc38-4ce9-80c3-50a7d53271f7"
threeDReasonId stringIssuer-provided reason code when 3DS authentication failed. Populated only on declines. Use status to handle the outcome and threeDReason for the explanation.
Example: "10"
threeDReason stringHuman-readable description matching threeDReasonId.
Example: "Stolen Card"
threeDsChallenge ThreeDsChallengePresent when a token payment requires a cardholder challenge (resultCode: 4100).
Child attributes
redirectUrl string (uri) requiredHosted URL where the cardholder completes the challenge.
followUpToken string requiredOpaque token identifying the pending challenge.
balanceAmount integerThe balance that remains to be paid on the transaction. This amount is always an integer in the smallest denomination of the currency (e.g. cents for USD or CAD).
Example: 0
invoiceNumber InvoiceNumberAn optional alphanumeric invoice number for this transaction. If provided in the request, the same value will be populated in the response.
max length 100
Example: "inv_1234567890123456"
orderNumber OrderNumberAn optional alphanumeric order number for this transaction. If provided, the same value will be populated in the response.
max length 100
Example: "order_number_1234"
CardOnFileVirtualAddResponse
Represents the response to a hosted payment form / iframe card tokenization request.
Type: object
id stringIdentifier of the hosted session request (ifr_ prefix). This is not a transaction ID.
Example: "ifr_01J2F0ZJ2JW5B63CJFPXRGAB1S"
paymentMethod objectThe payment method used for this transaction.
Child attributes
id string requiredThe unique identifier of the payment method. This ID has a prefix that makes it human-readable (pmt_trm_ for physical terminals, pmt_vrt_ for virtual card terminals, pmt_ach_ for virtual ACH terminals, pmt_tkn_ for tokens, which store a card or an ACH bank account), but applications should always use the type field to determine the payment method type rather than parsing this ID.
Example: "pmt_tkn_01JRZPRGFF4J2SZC3HMDBYEN2J"
dateDeleted string (date-time)The date and time (UTC) when this payment method token was removed from the system using the Remove Token endpoint. This parameter will only be returned if the token was removed/deleted from the system.
This field will be present in three scenarios:
- As part of a successful Remove Token endpoint response
- In token.removed webhook notifications
- In List Transactions responses for transactions where the associated token was later removed
When this field is present, sensitive card details (maskedCardNumber, cardExpDate) will be removed for security purposes, but all other transaction data remains intact.
Example: "2025-07-14T14:05:48.869225Z"
type string requiredThe type of payment method:
Physical- A physical payment terminal for Card Present transactionsVirtual- A hosted payment form/iframe for Card Not Present transactionsVirtualAch- A hosted payment form/iframe for ACH (US) bank transfer transactionsToken- A stored payment method (a card or an ACH bank account) for card-on-file and recurring transactionsVirtualEft- A virtual Canadian bank-transfer payment method, when configured.Unknown- The payment method type is not known.
Allowed: Unknown, Physical, Virtual, VirtualAch, VirtualEft, Token
Example: "Token"
currency string requiredThe currency of the payment method.
Allowed: USD, CAD
Example: "USD"
description stringA human-readable name for the payment method.
Example: "Token for John Doe's Visa"
billingContact objectBilling contact information associated with the payment method. Not returned on card present transactions or on refunds, captures, etc. of card present transactions.
cardType stringThe type of card used for this transaction:
UNKNOWN- The card type is unknownDEBIT- Debit CardVISA- Visa Credit CardMASTERCARD- MasterCard Credit CardAMEX- American Express Credit CardDINERS- Diners Club Credit CardDISCOVER- Discover Credit CardJCB- JCB Credit CardUNIONPAY- UnionPay Credit CardMAESTRO- Maestro Debit CardGIFT- Gift CardCASH- All-cash TransactionEBT- Electronic Benefits Transfer CardINTERAC- Interac (Canadian PIN-debit network), Card Present onlyOTHER- Other tender types
Allowed: UNKNOWN, DEBIT, VISA, MASTERCARD, AMEX, DINERS, DISCOVER, JCB, UNIONPAY, MAESTRO, GIFT, CASH, EBT, INTERAC, OTHER
Example: "VISA"
maskedCardNumber stringThe masked card number. The format may vary (e.g. **0011, 4**0011, etc.)
Example: "************0011"
cardExpDate stringThe expiration date of the card in MMYY format.
Example: "1225"
accountType stringFunding-source classification of this token-type payment method.
- For card tokens:
CreditorDebit. - For ACH tokens:
CheckingorSavings. May be omitted for older tokens that pre-date this field, for non-token payment methods, or when the source did not provide a classification.
Allowed: Credit, Debit, Checking, Savings
Example: "Debit"
accountNumber stringMasked bank account number, when available for a bank-account token.
Example: "*****6789"
referenceId ReferenceIdForResponseThe reference ID for this transaction. This will either be the reference ID provided in the transaction request or, if no value was provided, a value generated automatically by the system. This reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions.
max length 100
Example: "ref_s192i49i"
requestedAmount integerAlways 0 when creating a virtual tokenization session.
Example: 0
sessionId stringOpaque session token. Pass this exact unprefixed value to the SDK.
Example: "01JSFAMY0AGW27QKP30C727512"
iframeUrl stringURL for the iframe to collect payment information, or null if iframe could not be created due to invalid credentials, etc.
Example: "https://hpf.integratedcommerce.io/session/01JSFAMY0AGW27QKP30C727512"
expirationTimestamp string (date-time)Absolute session expiry in UTC, 10 minutes after creation.
Example: "2025-04-17T14:19:03Z"
status stringStatus of the iframe session. When created, this will always be pending. The status values will be updated as the customer goes through the iframe process.
Allowed: Pending, Completed, Expired, Error
Example: "Pending"
CardOnFileRemoveResponse
Represents the response to a tokenized card removal request.
Type: object
id stringUnique ID for this payment-method operation (ops_ prefix).
Example: "ops_01J2F0ZJ2JW5B63CJFPXRGAB1S"
paymentMethod objectThe payment method used for this transaction.
Child attributes
id string requiredThe unique identifier of the payment method. This ID has a prefix that makes it human-readable (pmt_trm_ for physical terminals, pmt_vrt_ for virtual card terminals, pmt_ach_ for virtual ACH terminals, pmt_tkn_ for tokens, which store a card or an ACH bank account), but applications should always use the type field to determine the payment method type rather than parsing this ID.
Example: "pmt_tkn_01JRZPRGFF4J2SZC3HMDBYEN2J"
dateDeleted string (date-time)The date and time (UTC) when this payment method token was removed from the system using the Remove Token endpoint. This parameter will only be returned if the token was removed/deleted from the system.
This field will be present in three scenarios:
- As part of a successful Remove Token endpoint response
- In token.removed webhook notifications
- In List Transactions responses for transactions where the associated token was later removed
When this field is present, sensitive card details (maskedCardNumber, cardExpDate) will be removed for security purposes, but all other transaction data remains intact.
Example: "2025-07-14T14:05:48.869225Z"
type string requiredThe type of payment method:
Physical- A physical payment terminal for Card Present transactionsVirtual- A hosted payment form/iframe for Card Not Present transactionsVirtualAch- A hosted payment form/iframe for ACH (US) bank transfer transactionsToken- A stored payment method (a card or an ACH bank account) for card-on-file and recurring transactionsVirtualEft- A virtual Canadian bank-transfer payment method, when configured.Unknown- The payment method type is not known.
Allowed: Unknown, Physical, Virtual, VirtualAch, VirtualEft, Token
Example: "Token"
currency string requiredThe currency of the payment method.
Allowed: USD, CAD
Example: "USD"
description stringA human-readable name for the payment method.
Example: "Token for John Doe's Visa"
billingContact objectBilling contact information associated with the payment method. Not returned on card present transactions or on refunds, captures, etc. of card present transactions.
cardType stringThe type of card used for this transaction:
UNKNOWN- The card type is unknownDEBIT- Debit CardVISA- Visa Credit CardMASTERCARD- MasterCard Credit CardAMEX- American Express Credit CardDINERS- Diners Club Credit CardDISCOVER- Discover Credit CardJCB- JCB Credit CardUNIONPAY- UnionPay Credit CardMAESTRO- Maestro Debit CardGIFT- Gift CardCASH- All-cash TransactionEBT- Electronic Benefits Transfer CardINTERAC- Interac (Canadian PIN-debit network), Card Present onlyOTHER- Other tender types
Allowed: UNKNOWN, DEBIT, VISA, MASTERCARD, AMEX, DINERS, DISCOVER, JCB, UNIONPAY, MAESTRO, GIFT, CASH, EBT, INTERAC, OTHER
Example: "VISA"
maskedCardNumber stringThe masked card number. The format may vary (e.g. **0011, 4**0011, etc.)
Example: "************0011"
cardExpDate stringThe expiration date of the card in MMYY format.
Example: "1225"
accountType stringFunding-source classification of this token-type payment method.
- For card tokens:
CreditorDebit. - For ACH tokens:
CheckingorSavings. May be omitted for older tokens that pre-date this field, for non-token payment methods, or when the source did not provide a classification.
Allowed: Credit, Debit, Checking, Savings
Example: "Debit"
accountNumber stringMasked bank account number, when available for a bank-account token.
Example: "*****6789"
referenceId ReferenceIdForResponseThe reference ID for this transaction. This will either be the reference ID provided in the transaction request or, if no value was provided, a value generated automatically by the system. This reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions.
max length 100
Example: "ref_s192i49i"
resultCode ResultCodeResult codes:
0- Successful transaction request. (Check each transactionResponse's responseCode to determine if a transaction was approved or declined, card was tokenized, etc.)1003- The payment terminal is busy or unavailable. (If this error persists, the user may need to close and re-open the Payment Application on the terminal or restart the terminal)1005- The specified terminal could not be found.1010- The transaction request is pending to become transaction.2014- The payment method or card brand is not enabled for the merchant.resultTextcarries the message, such asACH payments are not enabled for this merchant.orVisa cards are not enabled for this merchant.The transaction isCompletedand failed; do not retry it with the same payment method.3000- An unexpected error occurred. Please try again.3002- The transaction could not be completed because the payment terminal could not find the related transaction.3005- To resolve this error, power off your payment terminal, wait one minute and retry the transaction. If the error persists, please contact support.3006- The transaction could not be completed because the payment terminal is low on battery.3009- The transaction could not be completed because of network connectivity issues with the payment terminal. Please restore connectivity and try again.3010- The transaction took too long and was cancelled by the application.3011- Invalid transaction request. Please consult the documentation for valid transaction requests.3012- Invalid transaction request. paymentMethodId is invalid.3013- Invalid transaction request. The specified amount appears to be incorrect. Please retry with a smaller amount.3014- Invalid amount. Please try your transaction again with an amount greater than $0.3020- An unsupported transaction result was received.4001- The transaction is being processed. This is returned for asynchronous bank transfer payment methods (e.g. ACH) while awaiting a final outcome.6800- 3D Secure authentication was rejected by the issuer's ACS (card auth failed, security failure, stolen card, suspected fraud, etc.). Surfaced on declined CNP transactions whenformConfig.enable3DSecure: trueand the gateway reports a 3D Secure reason; other failures in a 3D Secure session use6900-6902. See SDK Error Codes for guidance.6801- 3D Secure authentication could not be completed because of an upstream technical issue (ACS timeout, directory server unreachable). Retry later or, if merchant policy allows, retry with 3DS disabled.6802- The card is not enrolled in 3D Secure. Retry without 3DS only if merchant policy allows; approval is not guaranteed.6900- The issuer declined the card on the hosted payment form or Payment SDK path. The specific reason is ontransactionResponses[0].responseCode(10-18) and inresultText. See SDK Error Codes for guidance.6901- The gateway rejected or failed the hosted payment form payment because of validation or a gateway failure rather than an issuer decision. See SDK Error Codes for guidance.6902- The gateway reported no failure but returned no payment token. See SDK Error Codes for guidance.9998- The system is not ready to process a transaction.9999- An unknown error has occurred. If available, an auxiliary error code will be provided in the message.1010- The transaction request is pending customer interaction.4100- Cardholder verification is required. FollowthreeDsChallenge.redirectUrland reconcile the final transaction outcome before retrying.55- The customer cancelled the hosted payment attempt.
Allowed: 0, 55, 1003, 1005, 1010, 2014, 3000, 3002, 3005, 3006, 3009, 3010, 3011, 3012, 3013, 3014, 3020, 4001, 4100, 6800, 6801, 6802, 6900, 6901, 6902, 9998, 9999
Example: 0
resultText ResultTextA message describing the result code in more detail. On a stored transaction it is uppercase, such as APPROVED, DECLINED, or the gateway's reason, except for resultCode 2014, where it is the message in sentence case. Use it for display, not for branching.
Example: "APPROVED"
WebhookEvent
Webhook event details.
Type: object
id string requiredUnique ID for this webhook event.
Example: "evt_01JS21X856RR8R69GV5F17XK9C"
type string requiredThe type of event that occurred.
Example: "event.completed"
timestamp string (date-time) requiredThe time when the event was triggered (UTC).
Example: "2025-04-16T14:30:00Z"
merchantId string requiredThe merchant that owns the transaction or token.
Example: "mer_01JQZC2Y6W3F8XKT5H9DPNBMVR"
SaleCompletedWebhook
Represents the webhook triggered when a financial transaction is processed and completed.
Type: object
event object requiredWebhook event details.
Child attributes
id string requiredUnique ID for this webhook event.
Example: "evt_01JS21X856RR8R69GV5F17XK9C"
type string requiredThe type of event that occurred.
Example: "event.completed"
timestamp string (date-time) requiredThe time when the event was triggered (UTC).
Example: "2025-04-16T14:30:00Z"
merchantId string requiredThe merchant that owns the transaction or token.
Example: "mer_01JQZC2Y6W3F8XKT5H9DPNBMVR"
Represents the response to a sale or authorization transaction.
Child attributes
id stringUnique ID for this transaction.
Example: "trx_01J2F0EKHC7HY2R93C8ENBD1FG"
timestamp string (date-time)Transaction timestamp in UTC
Example: "2025-05-27T18:49:31Z"
type stringType of transaction.
Chargeback records an ACH payment that the payer's bank returned after the funds reached the merchant. It is a separate transaction: the original sale is not changed and stays approved. originalTransactionId holds the sale's ID, and the amount is the returned amount. Its approved outcome (resultCode 0, responseCode 1) means the chargeback took effect and the money went back to the payer. See Chargebacks.
Treat this list as open: ignore a value your integration does not recognize instead of rejecting the transaction.
Allowed: Sale, Auth, Capture, Refund, Void, Chargeback
Example: "Sale"
status TransactionStatusThe processing lifecycle, separate from approval or decline. Pending waits for customer input; Submitted, Acknowledged, and Processing are in flight; AwaitingSettlement waits for a bank transfer outcome. Completed can be approved or declined: inspect resultCode and transactionResponses[].responseCode. Failed means processing stopped because of a technical issue. Abandoned means the customer did not complete the flow before submission. Both states close the request.
Allowed: Unknown, Created, Pending, Submitted, Acknowledged, Processing, AwaitingSettlement, Completed, Failed, Abandoned
Example: "Completed"
accountHolder objectAccount holder information associated with the transaction
paymentMethod objectThe payment method used for this transaction.
invoiceNumber InvoiceNumberAn optional alphanumeric invoice number for this transaction. If provided in the request, the same value will be populated in the response.
max length 100
Example: "inv_1234567890123456"
orderNumber OrderNumberAn optional alphanumeric order number for this transaction. If provided, the same value will be populated in the response.
max length 100
Example: "order_number_1234"
referenceId ReferenceIdForResponseThe reference ID for this transaction. This will either be the reference ID provided in the transaction request or, if no value was provided, a value generated automatically by the system. This reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions.
max length 100
Example: "ref_s192i49i"
originalTransactionId stringThe trx_ ID of the earlier transaction this one belongs to, when the link has been verified. Set on card-present captures and voids, card-present Interac refunds, ACH refunds once the gateway confirms the original sale, ACH chargebacks (the charged-back sale), and ACH resubmissions (the original sale).
Absent when there is no verified link. That includes card-not-present captures, refunds, and voids, other card-present refunds, and older transactions recorded before the link was stored. Do not treat an absent value as proof that the transaction has no original.
Example: "trx_01JWBPE27KHY2K4J7A13ATQ786"
resultCode ResultCodeResult codes:
0- Successful transaction request. (Check each transactionResponse's responseCode to determine if a transaction was approved or declined, card was tokenized, etc.)1003- The payment terminal is busy or unavailable. (If this error persists, the user may need to close and re-open the Payment Application on the terminal or restart the terminal)1005- The specified terminal could not be found.1010- The transaction request is pending to become transaction.2014- The payment method or card brand is not enabled for the merchant.resultTextcarries the message, such asACH payments are not enabled for this merchant.orVisa cards are not enabled for this merchant.The transaction isCompletedand failed; do not retry it with the same payment method.3000- An unexpected error occurred. Please try again.3002- The transaction could not be completed because the payment terminal could not find the related transaction.3005- To resolve this error, power off your payment terminal, wait one minute and retry the transaction. If the error persists, please contact support.3006- The transaction could not be completed because the payment terminal is low on battery.3009- The transaction could not be completed because of network connectivity issues with the payment terminal. Please restore connectivity and try again.3010- The transaction took too long and was cancelled by the application.3011- Invalid transaction request. Please consult the documentation for valid transaction requests.3012- Invalid transaction request. paymentMethodId is invalid.3013- Invalid transaction request. The specified amount appears to be incorrect. Please retry with a smaller amount.3014- Invalid amount. Please try your transaction again with an amount greater than $0.3020- An unsupported transaction result was received.4001- The transaction is being processed. This is returned for asynchronous bank transfer payment methods (e.g. ACH) while awaiting a final outcome.6800- 3D Secure authentication was rejected by the issuer's ACS (card auth failed, security failure, stolen card, suspected fraud, etc.). Surfaced on declined CNP transactions whenformConfig.enable3DSecure: trueand the gateway reports a 3D Secure reason; other failures in a 3D Secure session use6900-6902. See SDK Error Codes for guidance.6801- 3D Secure authentication could not be completed because of an upstream technical issue (ACS timeout, directory server unreachable). Retry later or, if merchant policy allows, retry with 3DS disabled.6802- The card is not enrolled in 3D Secure. Retry without 3DS only if merchant policy allows; approval is not guaranteed.6900- The issuer declined the card on the hosted payment form or Payment SDK path. The specific reason is ontransactionResponses[0].responseCode(10-18) and inresultText. See SDK Error Codes for guidance.6901- The gateway rejected or failed the hosted payment form payment because of validation or a gateway failure rather than an issuer decision. See SDK Error Codes for guidance.6902- The gateway reported no failure but returned no payment token. See SDK Error Codes for guidance.9998- The system is not ready to process a transaction.9999- An unknown error has occurred. If available, an auxiliary error code will be provided in the message.1010- The transaction request is pending customer interaction.4100- Cardholder verification is required. FollowthreeDsChallenge.redirectUrland reconcile the final transaction outcome before retrying.55- The customer cancelled the hosted payment attempt.
Allowed: 0, 55, 1003, 1005, 1010, 2014, 3000, 3002, 3005, 3006, 3009, 3010, 3011, 3012, 3013, 3014, 3020, 4001, 4100, 6800, 6801, 6802, 6900, 6901, 6902, 9998, 9999
Example: 0
resultText ResultTextA message describing the result code in more detail. On a stored transaction it is uppercase, such as APPROVED, DECLINED, or the gateway's reason, except for resultCode 2014, where it is the message in sentence case. Use it for display, not for branching.
Example: "APPROVED"
requestedAmount integerThe requested amount in minor units. Virtual tokenization uses 0; physical tokenization uses a 1-unit authorization.
Example: 1000
approvedAmount integerThe approved amount in minor units. This is 0 for a decline or an outcome that is still in flight. A terminal may adjust the amount, for example by adding a tip.
Example: 1000
balanceAmount integerThe balance that remains to be paid on the transaction. This amount is always an integer in the smallest denomination of the currency (e.g. cents for USD or CAD).
Example: 0
refundableAmount integerThe amount that can still be refunded against this sale or capture, in the smallest denomination of the currency. Normally available within seconds of approval. Absent for authorizations, refunds, voids, and declined transactions; it can also be absent briefly after a sale or capture is approved. Absence does not mean unlimited; it means this value is not yet available or not applicable. An ACH chargeback reduces it like a refund. 0 means fully refunded, voided, or charged back.
Example: 1000
transactionResponses array of objectIndividual gateway responses, with receipts under each entry. The array can be empty while processing is incomplete.
sourceId stringIdentifier of the session or other source that initiated the transaction. For an ACH chargeback, it is the chargeback's own trx_ ID, or the billing subscription ID when the charged-back sale was a subscription payment.
threeDs ThreeDsAuthentication3D Secure (EMV 3DS2) authentication outcome. Populated on transactions initiated with formConfig.enable3DSecure: true. All fields (other than status) are optional - what the issuer returns depends on whether the transaction was frictionless, challenged, or declined.
threeDsChallenge ThreeDsChallengePresent when a token payment requires a cardholder challenge (resultCode: 4100).
AuthCompletedWebhook
Represents the webhook triggered when a transaction authorization is completed.
Type: object
event object requiredWebhook event details.
Child attributes
id string requiredUnique ID for this webhook event.
Example: "evt_01JS21X856RR8R69GV5F17XK9C"
type string requiredThe type of event that occurred.
Example: "event.completed"
timestamp string (date-time) requiredThe time when the event was triggered (UTC).
Example: "2025-04-16T14:30:00Z"
merchantId string requiredThe merchant that owns the transaction or token.
Example: "mer_01JQZC2Y6W3F8XKT5H9DPNBMVR"
Represents the response to a sale or authorization transaction.
Child attributes
id stringUnique ID for this transaction.
Example: "trx_01J2F0EKHC7HY2R93C8ENBD1FG"
timestamp string (date-time)Transaction timestamp in UTC
Example: "2025-05-27T18:49:31Z"
type stringType of transaction.
Chargeback records an ACH payment that the payer's bank returned after the funds reached the merchant. It is a separate transaction: the original sale is not changed and stays approved. originalTransactionId holds the sale's ID, and the amount is the returned amount. Its approved outcome (resultCode 0, responseCode 1) means the chargeback took effect and the money went back to the payer. See Chargebacks.
Treat this list as open: ignore a value your integration does not recognize instead of rejecting the transaction.
Allowed: Sale, Auth, Capture, Refund, Void, Chargeback
Example: "Sale"
status TransactionStatusThe processing lifecycle, separate from approval or decline. Pending waits for customer input; Submitted, Acknowledged, and Processing are in flight; AwaitingSettlement waits for a bank transfer outcome. Completed can be approved or declined: inspect resultCode and transactionResponses[].responseCode. Failed means processing stopped because of a technical issue. Abandoned means the customer did not complete the flow before submission. Both states close the request.
Allowed: Unknown, Created, Pending, Submitted, Acknowledged, Processing, AwaitingSettlement, Completed, Failed, Abandoned
Example: "Completed"
accountHolder objectAccount holder information associated with the transaction
paymentMethod objectThe payment method used for this transaction.
invoiceNumber InvoiceNumberAn optional alphanumeric invoice number for this transaction. If provided in the request, the same value will be populated in the response.
max length 100
Example: "inv_1234567890123456"
orderNumber OrderNumberAn optional alphanumeric order number for this transaction. If provided, the same value will be populated in the response.
max length 100
Example: "order_number_1234"
referenceId ReferenceIdForResponseThe reference ID for this transaction. This will either be the reference ID provided in the transaction request or, if no value was provided, a value generated automatically by the system. This reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions.
max length 100
Example: "ref_s192i49i"
originalTransactionId stringThe trx_ ID of the earlier transaction this one belongs to, when the link has been verified. Set on card-present captures and voids, card-present Interac refunds, ACH refunds once the gateway confirms the original sale, ACH chargebacks (the charged-back sale), and ACH resubmissions (the original sale).
Absent when there is no verified link. That includes card-not-present captures, refunds, and voids, other card-present refunds, and older transactions recorded before the link was stored. Do not treat an absent value as proof that the transaction has no original.
Example: "trx_01JWBPE27KHY2K4J7A13ATQ786"
resultCode ResultCodeResult codes:
0- Successful transaction request. (Check each transactionResponse's responseCode to determine if a transaction was approved or declined, card was tokenized, etc.)1003- The payment terminal is busy or unavailable. (If this error persists, the user may need to close and re-open the Payment Application on the terminal or restart the terminal)1005- The specified terminal could not be found.1010- The transaction request is pending to become transaction.2014- The payment method or card brand is not enabled for the merchant.resultTextcarries the message, such asACH payments are not enabled for this merchant.orVisa cards are not enabled for this merchant.The transaction isCompletedand failed; do not retry it with the same payment method.3000- An unexpected error occurred. Please try again.3002- The transaction could not be completed because the payment terminal could not find the related transaction.3005- To resolve this error, power off your payment terminal, wait one minute and retry the transaction. If the error persists, please contact support.3006- The transaction could not be completed because the payment terminal is low on battery.3009- The transaction could not be completed because of network connectivity issues with the payment terminal. Please restore connectivity and try again.3010- The transaction took too long and was cancelled by the application.3011- Invalid transaction request. Please consult the documentation for valid transaction requests.3012- Invalid transaction request. paymentMethodId is invalid.3013- Invalid transaction request. The specified amount appears to be incorrect. Please retry with a smaller amount.3014- Invalid amount. Please try your transaction again with an amount greater than $0.3020- An unsupported transaction result was received.4001- The transaction is being processed. This is returned for asynchronous bank transfer payment methods (e.g. ACH) while awaiting a final outcome.6800- 3D Secure authentication was rejected by the issuer's ACS (card auth failed, security failure, stolen card, suspected fraud, etc.). Surfaced on declined CNP transactions whenformConfig.enable3DSecure: trueand the gateway reports a 3D Secure reason; other failures in a 3D Secure session use6900-6902. See SDK Error Codes for guidance.6801- 3D Secure authentication could not be completed because of an upstream technical issue (ACS timeout, directory server unreachable). Retry later or, if merchant policy allows, retry with 3DS disabled.6802- The card is not enrolled in 3D Secure. Retry without 3DS only if merchant policy allows; approval is not guaranteed.6900- The issuer declined the card on the hosted payment form or Payment SDK path. The specific reason is ontransactionResponses[0].responseCode(10-18) and inresultText. See SDK Error Codes for guidance.6901- The gateway rejected or failed the hosted payment form payment because of validation or a gateway failure rather than an issuer decision. See SDK Error Codes for guidance.6902- The gateway reported no failure but returned no payment token. See SDK Error Codes for guidance.9998- The system is not ready to process a transaction.9999- An unknown error has occurred. If available, an auxiliary error code will be provided in the message.1010- The transaction request is pending customer interaction.4100- Cardholder verification is required. FollowthreeDsChallenge.redirectUrland reconcile the final transaction outcome before retrying.55- The customer cancelled the hosted payment attempt.
Allowed: 0, 55, 1003, 1005, 1010, 2014, 3000, 3002, 3005, 3006, 3009, 3010, 3011, 3012, 3013, 3014, 3020, 4001, 4100, 6800, 6801, 6802, 6900, 6901, 6902, 9998, 9999
Example: 0
resultText ResultTextA message describing the result code in more detail. On a stored transaction it is uppercase, such as APPROVED, DECLINED, or the gateway's reason, except for resultCode 2014, where it is the message in sentence case. Use it for display, not for branching.
Example: "APPROVED"
requestedAmount integerThe requested amount in minor units. Virtual tokenization uses 0; physical tokenization uses a 1-unit authorization.
Example: 1000
approvedAmount integerThe approved amount in minor units. This is 0 for a decline or an outcome that is still in flight. A terminal may adjust the amount, for example by adding a tip.
Example: 1000
balanceAmount integerThe balance that remains to be paid on the transaction. This amount is always an integer in the smallest denomination of the currency (e.g. cents for USD or CAD).
Example: 0
refundableAmount integerThe amount that can still be refunded against this sale or capture, in the smallest denomination of the currency. Normally available within seconds of approval. Absent for authorizations, refunds, voids, and declined transactions; it can also be absent briefly after a sale or capture is approved. Absence does not mean unlimited; it means this value is not yet available or not applicable. An ACH chargeback reduces it like a refund. 0 means fully refunded, voided, or charged back.
Example: 1000
transactionResponses array of objectIndividual gateway responses, with receipts under each entry. The array can be empty while processing is incomplete.
sourceId stringIdentifier of the session or other source that initiated the transaction. For an ACH chargeback, it is the chargeback's own trx_ ID, or the billing subscription ID when the charged-back sale was a subscription payment.
threeDs ThreeDsAuthentication3D Secure (EMV 3DS2) authentication outcome. Populated on transactions initiated with formConfig.enable3DSecure: true. All fields (other than status) are optional - what the issuer returns depends on whether the transaction was frictionless, challenged, or declined.
threeDsChallenge ThreeDsChallengePresent when a token payment requires a cardholder challenge (resultCode: 4100).
CaptureCompletedWebhook
Represents the webhook triggered when a transaction capture for a previously authorized transaction is completed.
Type: object
event object requiredWebhook event details.
Child attributes
id string requiredUnique ID for this webhook event.
Example: "evt_01JS21X856RR8R69GV5F17XK9C"
type string requiredThe type of event that occurred.
Example: "event.completed"
timestamp string (date-time) requiredThe time when the event was triggered (UTC).
Example: "2025-04-16T14:30:00Z"
merchantId string requiredThe merchant that owns the transaction or token.
Example: "mer_01JQZC2Y6W3F8XKT5H9DPNBMVR"
Represents the response to a capture request.
Child attributes
id stringUnique ID for this capture transaction.
Example: "trx_01J2F0ZJ2JW5B63CJFPXRGAB1S"
timestamp string (date-time)Transaction timestamp in UTC
Example: "2025-05-27T18:49:31Z"
type stringType of transaction
Allowed: Sale, Auth, Capture, Refund, Void
Example: "Capture"
status TransactionStatusThe processing lifecycle, separate from approval or decline. Pending waits for customer input; Submitted, Acknowledged, and Processing are in flight; AwaitingSettlement waits for a bank transfer outcome. Completed can be approved or declined: inspect resultCode and transactionResponses[].responseCode. Failed means processing stopped because of a technical issue. Abandoned means the customer did not complete the flow before submission. Both states close the request.
Allowed: Unknown, Created, Pending, Submitted, Acknowledged, Processing, AwaitingSettlement, Completed, Failed, Abandoned
Example: "Completed"
accountHolder objectAccount holder information associated with the transaction
paymentMethod objectThe payment method used for this transaction.
invoiceNumber InvoiceNumberAn optional alphanumeric invoice number for this transaction. If provided in the request, the same value will be populated in the response.
max length 100
Example: "inv_1234567890123456"
orderNumber OrderNumberAn optional alphanumeric order number for this transaction. If provided, the same value will be populated in the response.
max length 100
Example: "order_number_1234"
referenceId ReferenceIdForResponseThe reference ID for this transaction. This will either be the reference ID provided in the transaction request or, if no value was provided, a value generated automatically by the system. This reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions.
max length 100
Example: "ref_s192i49i"
originalTransactionId stringThe trx_ ID of the earlier transaction this one belongs to, when the link has been verified. Set on card-present captures and voids, card-present Interac refunds, ACH refunds once the gateway confirms the original sale, ACH chargebacks (the charged-back sale), and ACH resubmissions (the original sale).
Absent when there is no verified link. That includes card-not-present captures, refunds, and voids, other card-present refunds, and older transactions recorded before the link was stored. Do not treat an absent value as proof that the transaction has no original.
Example: "trx_01JWBPE27KHY2K4J7A13ATQ786"
resultCode ResultCodeResult codes:
0- Successful transaction request. (Check each transactionResponse's responseCode to determine if a transaction was approved or declined, card was tokenized, etc.)1003- The payment terminal is busy or unavailable. (If this error persists, the user may need to close and re-open the Payment Application on the terminal or restart the terminal)1005- The specified terminal could not be found.1010- The transaction request is pending to become transaction.2014- The payment method or card brand is not enabled for the merchant.resultTextcarries the message, such asACH payments are not enabled for this merchant.orVisa cards are not enabled for this merchant.The transaction isCompletedand failed; do not retry it with the same payment method.3000- An unexpected error occurred. Please try again.3002- The transaction could not be completed because the payment terminal could not find the related transaction.3005- To resolve this error, power off your payment terminal, wait one minute and retry the transaction. If the error persists, please contact support.3006- The transaction could not be completed because the payment terminal is low on battery.3009- The transaction could not be completed because of network connectivity issues with the payment terminal. Please restore connectivity and try again.3010- The transaction took too long and was cancelled by the application.3011- Invalid transaction request. Please consult the documentation for valid transaction requests.3012- Invalid transaction request. paymentMethodId is invalid.3013- Invalid transaction request. The specified amount appears to be incorrect. Please retry with a smaller amount.3014- Invalid amount. Please try your transaction again with an amount greater than $0.3020- An unsupported transaction result was received.4001- The transaction is being processed. This is returned for asynchronous bank transfer payment methods (e.g. ACH) while awaiting a final outcome.6800- 3D Secure authentication was rejected by the issuer's ACS (card auth failed, security failure, stolen card, suspected fraud, etc.). Surfaced on declined CNP transactions whenformConfig.enable3DSecure: trueand the gateway reports a 3D Secure reason; other failures in a 3D Secure session use6900-6902. See SDK Error Codes for guidance.6801- 3D Secure authentication could not be completed because of an upstream technical issue (ACS timeout, directory server unreachable). Retry later or, if merchant policy allows, retry with 3DS disabled.6802- The card is not enrolled in 3D Secure. Retry without 3DS only if merchant policy allows; approval is not guaranteed.6900- The issuer declined the card on the hosted payment form or Payment SDK path. The specific reason is ontransactionResponses[0].responseCode(10-18) and inresultText. See SDK Error Codes for guidance.6901- The gateway rejected or failed the hosted payment form payment because of validation or a gateway failure rather than an issuer decision. See SDK Error Codes for guidance.6902- The gateway reported no failure but returned no payment token. See SDK Error Codes for guidance.9998- The system is not ready to process a transaction.9999- An unknown error has occurred. If available, an auxiliary error code will be provided in the message.1010- The transaction request is pending customer interaction.4100- Cardholder verification is required. FollowthreeDsChallenge.redirectUrland reconcile the final transaction outcome before retrying.55- The customer cancelled the hosted payment attempt.
Allowed: 0, 55, 1003, 1005, 1010, 2014, 3000, 3002, 3005, 3006, 3009, 3010, 3011, 3012, 3013, 3014, 3020, 4001, 4100, 6800, 6801, 6802, 6900, 6901, 6902, 9998, 9999
Example: 0
resultText ResultTextA message describing the result code in more detail. On a stored transaction it is uppercase, such as APPROVED, DECLINED, or the gateway's reason, except for resultCode 2014, where it is the message in sentence case. Use it for display, not for branching.
Example: "APPROVED"
requestedAmount integerThe requested amount in minor units. Virtual tokenization uses 0; physical tokenization uses a 1-unit authorization.
Example: 1000
approvedAmount integerThe approved amount in minor units. This is 0 for a decline or an outcome that is still in flight. A terminal may adjust the amount, for example by adding a tip.
Example: 1000
transactionResponses array of TransactionResponseIndividual gateway responses, with receipts under each entry. The array can be empty while processing is incomplete.
sourceId stringIdentifier of the session or other source that initiated the transaction.
threeDs ThreeDsAuthentication3D Secure (EMV 3DS2) authentication outcome. Populated on transactions initiated with formConfig.enable3DSecure: true. All fields (other than status) are optional - what the issuer returns depends on whether the transaction was frictionless, challenged, or declined.
threeDsChallenge ThreeDsChallengePresent when a token payment requires a cardholder challenge (resultCode: 4100).
balanceAmount integerThe balance that remains to be paid on the transaction. This amount is always an integer in the smallest denomination of the currency (e.g. cents for USD or CAD).
Example: 0
refundableAmount integerThe amount that can still be refunded against this sale or capture, in the smallest denomination of the currency. Normally available within seconds of approval. Absent for authorizations, refunds, voids, and declined transactions; it can also be absent briefly after a sale or capture is approved. Absence does not mean unlimited; it means this value is not yet available or not applicable. 0 means fully refunded or voided.
Example: 1000
RefundCompletedWebhook
Represents the webhook triggered when a transaction void or refund for a previously completed transaction is completed.
Type: object
event object requiredWebhook event details.
Child attributes
id string requiredUnique ID for this webhook event.
Example: "evt_01JS21X856RR8R69GV5F17XK9C"
type string requiredThe type of event that occurred.
Example: "event.completed"
timestamp string (date-time) requiredThe time when the event was triggered (UTC).
Example: "2025-04-16T14:30:00Z"
merchantId string requiredThe merchant that owns the transaction or token.
Example: "mer_01JQZC2Y6W3F8XKT5H9DPNBMVR"
Represents the response to a refund request.
Child attributes
id stringUnique ID for this refund transaction.
Example: "trx_01J2F0ZJ2JW5B63CJFPXRGAB1S"
timestamp string (date-time)Transaction timestamp in UTC
Example: "2025-05-27T18:49:31Z"
type stringType of transaction
Allowed: Sale, Auth, Capture, Refund, Void
Example: "Refund"
status TransactionStatusThe processing lifecycle, separate from approval or decline. Pending waits for customer input; Submitted, Acknowledged, and Processing are in flight; AwaitingSettlement waits for a bank transfer outcome. Completed can be approved or declined: inspect resultCode and transactionResponses[].responseCode. Failed means processing stopped because of a technical issue. Abandoned means the customer did not complete the flow before submission. Both states close the request.
Allowed: Unknown, Created, Pending, Submitted, Acknowledged, Processing, AwaitingSettlement, Completed, Failed, Abandoned
Example: "Completed"
accountHolder objectAccount holder information associated with the transaction
paymentMethod objectThe payment method used for this transaction.
invoiceNumber InvoiceNumberAn optional alphanumeric invoice number for this transaction. If provided in the request, the same value will be populated in the response.
max length 100
Example: "inv_1234567890123456"
orderNumber OrderNumberAn optional alphanumeric order number for this transaction. If provided, the same value will be populated in the response.
max length 100
Example: "order_number_1234"
referenceId ReferenceIdForResponseThe reference ID for this transaction. This will either be the reference ID provided in the transaction request or, if no value was provided, a value generated automatically by the system. This reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions.
max length 100
Example: "ref_s192i49i"
originalTransactionId stringThe trx_ ID of the earlier transaction this one belongs to, when the link has been verified. Set on card-present captures and voids, card-present Interac refunds, ACH refunds once the gateway confirms the original sale, ACH chargebacks (the charged-back sale), and ACH resubmissions (the original sale).
Absent when there is no verified link. That includes card-not-present captures, refunds, and voids, other card-present refunds, and older transactions recorded before the link was stored. Do not treat an absent value as proof that the transaction has no original.
Example: "trx_01JWBPE27KHY2K4J7A13ATQ786"
resultCode ResultCodeResult codes:
0- Successful transaction request. (Check each transactionResponse's responseCode to determine if a transaction was approved or declined, card was tokenized, etc.)1003- The payment terminal is busy or unavailable. (If this error persists, the user may need to close and re-open the Payment Application on the terminal or restart the terminal)1005- The specified terminal could not be found.1010- The transaction request is pending to become transaction.2014- The payment method or card brand is not enabled for the merchant.resultTextcarries the message, such asACH payments are not enabled for this merchant.orVisa cards are not enabled for this merchant.The transaction isCompletedand failed; do not retry it with the same payment method.3000- An unexpected error occurred. Please try again.3002- The transaction could not be completed because the payment terminal could not find the related transaction.3005- To resolve this error, power off your payment terminal, wait one minute and retry the transaction. If the error persists, please contact support.3006- The transaction could not be completed because the payment terminal is low on battery.3009- The transaction could not be completed because of network connectivity issues with the payment terminal. Please restore connectivity and try again.3010- The transaction took too long and was cancelled by the application.3011- Invalid transaction request. Please consult the documentation for valid transaction requests.3012- Invalid transaction request. paymentMethodId is invalid.3013- Invalid transaction request. The specified amount appears to be incorrect. Please retry with a smaller amount.3014- Invalid amount. Please try your transaction again with an amount greater than $0.3020- An unsupported transaction result was received.4001- The transaction is being processed. This is returned for asynchronous bank transfer payment methods (e.g. ACH) while awaiting a final outcome.6800- 3D Secure authentication was rejected by the issuer's ACS (card auth failed, security failure, stolen card, suspected fraud, etc.). Surfaced on declined CNP transactions whenformConfig.enable3DSecure: trueand the gateway reports a 3D Secure reason; other failures in a 3D Secure session use6900-6902. See SDK Error Codes for guidance.6801- 3D Secure authentication could not be completed because of an upstream technical issue (ACS timeout, directory server unreachable). Retry later or, if merchant policy allows, retry with 3DS disabled.6802- The card is not enrolled in 3D Secure. Retry without 3DS only if merchant policy allows; approval is not guaranteed.6900- The issuer declined the card on the hosted payment form or Payment SDK path. The specific reason is ontransactionResponses[0].responseCode(10-18) and inresultText. See SDK Error Codes for guidance.6901- The gateway rejected or failed the hosted payment form payment because of validation or a gateway failure rather than an issuer decision. See SDK Error Codes for guidance.6902- The gateway reported no failure but returned no payment token. See SDK Error Codes for guidance.9998- The system is not ready to process a transaction.9999- An unknown error has occurred. If available, an auxiliary error code will be provided in the message.1010- The transaction request is pending customer interaction.4100- Cardholder verification is required. FollowthreeDsChallenge.redirectUrland reconcile the final transaction outcome before retrying.55- The customer cancelled the hosted payment attempt.
Allowed: 0, 55, 1003, 1005, 1010, 2014, 3000, 3002, 3005, 3006, 3009, 3010, 3011, 3012, 3013, 3014, 3020, 4001, 4100, 6800, 6801, 6802, 6900, 6901, 6902, 9998, 9999
Example: 0
resultText ResultTextA message describing the result code in more detail. On a stored transaction it is uppercase, such as APPROVED, DECLINED, or the gateway's reason, except for resultCode 2014, where it is the message in sentence case. Use it for display, not for branching.
Example: "APPROVED"
requestedAmount integerThe requested amount in minor units. Virtual tokenization uses 0; physical tokenization uses a 1-unit authorization.
Example: 1000
approvedAmount integerThe approved amount in minor units. This is 0 for a decline or an outcome that is still in flight. A terminal may adjust the amount, for example by adding a tip.
Example: 1000
refundableAmount integerThe amount that remains refundable on the original transaction after this refund, in the smallest denomination of the currency. The balance reflects this refund attempt. When the gateway declines the refund, this equals the balance before the attempt.
Example: 0
transactionResponses array of TransactionResponseIndividual gateway responses, with receipts under each entry. The array can be empty while processing is incomplete.
sourceId stringIdentifier of the session or other source that initiated the transaction.
threeDs ThreeDsAuthentication3D Secure (EMV 3DS2) authentication outcome. Populated on transactions initiated with formConfig.enable3DSecure: true. All fields (other than status) are optional - what the issuer returns depends on whether the transaction was frictionless, challenged, or declined.
threeDsChallenge ThreeDsChallengePresent when a token payment requires a cardholder challenge (resultCode: 4100).
balanceAmount integerThe balance that remains to be paid on the transaction. This amount is always an integer in the smallest denomination of the currency (e.g. cents for USD or CAD).
Example: 0
VoidCompletedWebhook
Represents the webhook triggered when a transaction void for a previously completed transaction is completed.
Type: object
event object requiredWebhook event details.
Child attributes
id string requiredUnique ID for this webhook event.
Example: "evt_01JS21X856RR8R69GV5F17XK9C"
type string requiredThe type of event that occurred.
Example: "event.completed"
timestamp string (date-time) requiredThe time when the event was triggered (UTC).
Example: "2025-04-16T14:30:00Z"
merchantId string requiredThe merchant that owns the transaction or token.
Example: "mer_01JQZC2Y6W3F8XKT5H9DPNBMVR"
Represents the response to a void request.
Child attributes
id stringUnique ID for this void transaction.
Example: "trx_01J2F0ZJ2JW5B63CJFPXRGAB1S"
timestamp string (date-time)Transaction timestamp in UTC
Example: "2025-05-27T18:49:31Z"
type stringType of transaction
Allowed: Sale, Auth, Capture, Refund, Void
Example: "Void"
status TransactionStatusThe processing lifecycle, separate from approval or decline. Pending waits for customer input; Submitted, Acknowledged, and Processing are in flight; AwaitingSettlement waits for a bank transfer outcome. Completed can be approved or declined: inspect resultCode and transactionResponses[].responseCode. Failed means processing stopped because of a technical issue. Abandoned means the customer did not complete the flow before submission. Both states close the request.
Allowed: Unknown, Created, Pending, Submitted, Acknowledged, Processing, AwaitingSettlement, Completed, Failed, Abandoned
Example: "Completed"
accountHolder objectAccount holder information associated with the transaction
paymentMethod objectThe payment method used for this transaction.
invoiceNumber InvoiceNumberAn optional alphanumeric invoice number for this transaction. If provided in the request, the same value will be populated in the response.
max length 100
Example: "inv_1234567890123456"
orderNumber OrderNumberAn optional alphanumeric order number for this transaction. If provided, the same value will be populated in the response.
max length 100
Example: "order_number_1234"
referenceId ReferenceIdForResponseThe reference ID for this transaction. This will either be the reference ID provided in the transaction request or, if no value was provided, a value generated automatically by the system. This reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions.
max length 100
Example: "ref_s192i49i"
originalTransactionId stringThe trx_ ID of the earlier transaction this one belongs to, when the link has been verified. Set on card-present captures and voids, card-present Interac refunds, ACH refunds once the gateway confirms the original sale, ACH chargebacks (the charged-back sale), and ACH resubmissions (the original sale).
Absent when there is no verified link. That includes card-not-present captures, refunds, and voids, other card-present refunds, and older transactions recorded before the link was stored. Do not treat an absent value as proof that the transaction has no original.
Example: "trx_01JWBPE27KHY2K4J7A13ATQ786"
resultCode ResultCodeResult codes:
0- Successful transaction request. (Check each transactionResponse's responseCode to determine if a transaction was approved or declined, card was tokenized, etc.)1003- The payment terminal is busy or unavailable. (If this error persists, the user may need to close and re-open the Payment Application on the terminal or restart the terminal)1005- The specified terminal could not be found.1010- The transaction request is pending to become transaction.2014- The payment method or card brand is not enabled for the merchant.resultTextcarries the message, such asACH payments are not enabled for this merchant.orVisa cards are not enabled for this merchant.The transaction isCompletedand failed; do not retry it with the same payment method.3000- An unexpected error occurred. Please try again.3002- The transaction could not be completed because the payment terminal could not find the related transaction.3005- To resolve this error, power off your payment terminal, wait one minute and retry the transaction. If the error persists, please contact support.3006- The transaction could not be completed because the payment terminal is low on battery.3009- The transaction could not be completed because of network connectivity issues with the payment terminal. Please restore connectivity and try again.3010- The transaction took too long and was cancelled by the application.3011- Invalid transaction request. Please consult the documentation for valid transaction requests.3012- Invalid transaction request. paymentMethodId is invalid.3013- Invalid transaction request. The specified amount appears to be incorrect. Please retry with a smaller amount.3014- Invalid amount. Please try your transaction again with an amount greater than $0.3020- An unsupported transaction result was received.4001- The transaction is being processed. This is returned for asynchronous bank transfer payment methods (e.g. ACH) while awaiting a final outcome.6800- 3D Secure authentication was rejected by the issuer's ACS (card auth failed, security failure, stolen card, suspected fraud, etc.). Surfaced on declined CNP transactions whenformConfig.enable3DSecure: trueand the gateway reports a 3D Secure reason; other failures in a 3D Secure session use6900-6902. See SDK Error Codes for guidance.6801- 3D Secure authentication could not be completed because of an upstream technical issue (ACS timeout, directory server unreachable). Retry later or, if merchant policy allows, retry with 3DS disabled.6802- The card is not enrolled in 3D Secure. Retry without 3DS only if merchant policy allows; approval is not guaranteed.6900- The issuer declined the card on the hosted payment form or Payment SDK path. The specific reason is ontransactionResponses[0].responseCode(10-18) and inresultText. See SDK Error Codes for guidance.6901- The gateway rejected or failed the hosted payment form payment because of validation or a gateway failure rather than an issuer decision. See SDK Error Codes for guidance.6902- The gateway reported no failure but returned no payment token. See SDK Error Codes for guidance.9998- The system is not ready to process a transaction.9999- An unknown error has occurred. If available, an auxiliary error code will be provided in the message.1010- The transaction request is pending customer interaction.4100- Cardholder verification is required. FollowthreeDsChallenge.redirectUrland reconcile the final transaction outcome before retrying.55- The customer cancelled the hosted payment attempt.
Allowed: 0, 55, 1003, 1005, 1010, 2014, 3000, 3002, 3005, 3006, 3009, 3010, 3011, 3012, 3013, 3014, 3020, 4001, 4100, 6800, 6801, 6802, 6900, 6901, 6902, 9998, 9999
Example: 0
resultText ResultTextA message describing the result code in more detail. On a stored transaction it is uppercase, such as APPROVED, DECLINED, or the gateway's reason, except for resultCode 2014, where it is the message in sentence case. Use it for display, not for branching.
Example: "APPROVED"
requestedAmount integerThe requested amount in minor units. Virtual tokenization uses 0; physical tokenization uses a 1-unit authorization.
Example: 1000
approvedAmount integerThe approved amount in minor units. This is 0 for a decline or an outcome that is still in flight. A terminal may adjust the amount, for example by adding a tip.
Example: 1000
transactionResponses array of TransactionResponseIndividual gateway responses, with receipts under each entry. The array can be empty while processing is incomplete.
sourceId stringIdentifier of the session or other source that initiated the transaction.
threeDs ThreeDsAuthentication3D Secure (EMV 3DS2) authentication outcome. Populated on transactions initiated with formConfig.enable3DSecure: true. All fields (other than status) are optional - what the issuer returns depends on whether the transaction was frictionless, challenged, or declined.
threeDsChallenge ThreeDsChallengePresent when a token payment requires a cardholder challenge (resultCode: 4100).
balanceAmount integerThe balance that remains to be paid on the transaction. This amount is always an integer in the smallest denomination of the currency (e.g. cents for USD or CAD).
Example: 0
ChargebackCompletedWebhook
Represents the webhook triggered when an ACH chargeback is recorded. The payload is the chargeback transaction, with type Chargeback and originalTransactionId set to the charged-back sale.
Type: object
event object requiredWebhook event details.
Child attributes
id string requiredUnique ID for this webhook event.
Example: "evt_01JS21X856RR8R69GV5F17XK9C"
type string requiredThe type of event that occurred.
Example: "event.completed"
timestamp string (date-time) requiredThe time when the event was triggered (UTC).
Example: "2025-04-16T14:30:00Z"
merchantId string requiredThe merchant that owns the transaction or token.
Example: "mer_01JQZC2Y6W3F8XKT5H9DPNBMVR"
Represents the response to a sale or authorization transaction.
Child attributes
id stringUnique ID for this transaction.
Example: "trx_01J2F0EKHC7HY2R93C8ENBD1FG"
timestamp string (date-time)Transaction timestamp in UTC
Example: "2025-05-27T18:49:31Z"
type stringType of transaction.
Chargeback records an ACH payment that the payer's bank returned after the funds reached the merchant. It is a separate transaction: the original sale is not changed and stays approved. originalTransactionId holds the sale's ID, and the amount is the returned amount. Its approved outcome (resultCode 0, responseCode 1) means the chargeback took effect and the money went back to the payer. See Chargebacks.
Treat this list as open: ignore a value your integration does not recognize instead of rejecting the transaction.
Allowed: Sale, Auth, Capture, Refund, Void, Chargeback
Example: "Sale"
status TransactionStatusThe processing lifecycle, separate from approval or decline. Pending waits for customer input; Submitted, Acknowledged, and Processing are in flight; AwaitingSettlement waits for a bank transfer outcome. Completed can be approved or declined: inspect resultCode and transactionResponses[].responseCode. Failed means processing stopped because of a technical issue. Abandoned means the customer did not complete the flow before submission. Both states close the request.
Allowed: Unknown, Created, Pending, Submitted, Acknowledged, Processing, AwaitingSettlement, Completed, Failed, Abandoned
Example: "Completed"
accountHolder objectAccount holder information associated with the transaction
paymentMethod objectThe payment method used for this transaction.
invoiceNumber InvoiceNumberAn optional alphanumeric invoice number for this transaction. If provided in the request, the same value will be populated in the response.
max length 100
Example: "inv_1234567890123456"
orderNumber OrderNumberAn optional alphanumeric order number for this transaction. If provided, the same value will be populated in the response.
max length 100
Example: "order_number_1234"
referenceId ReferenceIdForResponseThe reference ID for this transaction. This will either be the reference ID provided in the transaction request or, if no value was provided, a value generated automatically by the system. This reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions.
max length 100
Example: "ref_s192i49i"
originalTransactionId stringThe trx_ ID of the earlier transaction this one belongs to, when the link has been verified. Set on card-present captures and voids, card-present Interac refunds, ACH refunds once the gateway confirms the original sale, ACH chargebacks (the charged-back sale), and ACH resubmissions (the original sale).
Absent when there is no verified link. That includes card-not-present captures, refunds, and voids, other card-present refunds, and older transactions recorded before the link was stored. Do not treat an absent value as proof that the transaction has no original.
Example: "trx_01JWBPE27KHY2K4J7A13ATQ786"
resultCode ResultCodeResult codes:
0- Successful transaction request. (Check each transactionResponse's responseCode to determine if a transaction was approved or declined, card was tokenized, etc.)1003- The payment terminal is busy or unavailable. (If this error persists, the user may need to close and re-open the Payment Application on the terminal or restart the terminal)1005- The specified terminal could not be found.1010- The transaction request is pending to become transaction.2014- The payment method or card brand is not enabled for the merchant.resultTextcarries the message, such asACH payments are not enabled for this merchant.orVisa cards are not enabled for this merchant.The transaction isCompletedand failed; do not retry it with the same payment method.3000- An unexpected error occurred. Please try again.3002- The transaction could not be completed because the payment terminal could not find the related transaction.3005- To resolve this error, power off your payment terminal, wait one minute and retry the transaction. If the error persists, please contact support.3006- The transaction could not be completed because the payment terminal is low on battery.3009- The transaction could not be completed because of network connectivity issues with the payment terminal. Please restore connectivity and try again.3010- The transaction took too long and was cancelled by the application.3011- Invalid transaction request. Please consult the documentation for valid transaction requests.3012- Invalid transaction request. paymentMethodId is invalid.3013- Invalid transaction request. The specified amount appears to be incorrect. Please retry with a smaller amount.3014- Invalid amount. Please try your transaction again with an amount greater than $0.3020- An unsupported transaction result was received.4001- The transaction is being processed. This is returned for asynchronous bank transfer payment methods (e.g. ACH) while awaiting a final outcome.6800- 3D Secure authentication was rejected by the issuer's ACS (card auth failed, security failure, stolen card, suspected fraud, etc.). Surfaced on declined CNP transactions whenformConfig.enable3DSecure: trueand the gateway reports a 3D Secure reason; other failures in a 3D Secure session use6900-6902. See SDK Error Codes for guidance.6801- 3D Secure authentication could not be completed because of an upstream technical issue (ACS timeout, directory server unreachable). Retry later or, if merchant policy allows, retry with 3DS disabled.6802- The card is not enrolled in 3D Secure. Retry without 3DS only if merchant policy allows; approval is not guaranteed.6900- The issuer declined the card on the hosted payment form or Payment SDK path. The specific reason is ontransactionResponses[0].responseCode(10-18) and inresultText. See SDK Error Codes for guidance.6901- The gateway rejected or failed the hosted payment form payment because of validation or a gateway failure rather than an issuer decision. See SDK Error Codes for guidance.6902- The gateway reported no failure but returned no payment token. See SDK Error Codes for guidance.9998- The system is not ready to process a transaction.9999- An unknown error has occurred. If available, an auxiliary error code will be provided in the message.1010- The transaction request is pending customer interaction.4100- Cardholder verification is required. FollowthreeDsChallenge.redirectUrland reconcile the final transaction outcome before retrying.55- The customer cancelled the hosted payment attempt.
Allowed: 0, 55, 1003, 1005, 1010, 2014, 3000, 3002, 3005, 3006, 3009, 3010, 3011, 3012, 3013, 3014, 3020, 4001, 4100, 6800, 6801, 6802, 6900, 6901, 6902, 9998, 9999
Example: 0
resultText ResultTextA message describing the result code in more detail. On a stored transaction it is uppercase, such as APPROVED, DECLINED, or the gateway's reason, except for resultCode 2014, where it is the message in sentence case. Use it for display, not for branching.
Example: "APPROVED"
requestedAmount integerThe requested amount in minor units. Virtual tokenization uses 0; physical tokenization uses a 1-unit authorization.
Example: 1000
approvedAmount integerThe approved amount in minor units. This is 0 for a decline or an outcome that is still in flight. A terminal may adjust the amount, for example by adding a tip.
Example: 1000
balanceAmount integerThe balance that remains to be paid on the transaction. This amount is always an integer in the smallest denomination of the currency (e.g. cents for USD or CAD).
Example: 0
refundableAmount integerThe amount that can still be refunded against this sale or capture, in the smallest denomination of the currency. Normally available within seconds of approval. Absent for authorizations, refunds, voids, and declined transactions; it can also be absent briefly after a sale or capture is approved. Absence does not mean unlimited; it means this value is not yet available or not applicable. An ACH chargeback reduces it like a refund. 0 means fully refunded, voided, or charged back.
Example: 1000
transactionResponses array of objectIndividual gateway responses, with receipts under each entry. The array can be empty while processing is incomplete.
sourceId stringIdentifier of the session or other source that initiated the transaction. For an ACH chargeback, it is the chargeback's own trx_ ID, or the billing subscription ID when the charged-back sale was a subscription payment.
threeDs ThreeDsAuthentication3D Secure (EMV 3DS2) authentication outcome. Populated on transactions initiated with formConfig.enable3DSecure: true. All fields (other than status) are optional - what the issuer returns depends on whether the transaction was frictionless, challenged, or declined.
threeDsChallenge ThreeDsChallengePresent when a token payment requires a cardholder challenge (resultCode: 4100).
TokenCreatedWebhook
Represents the webhook triggered when a card is tokenized and stored as a payment method.
Type: object
event object requiredWebhook event details.
Child attributes
id string requiredUnique ID for this webhook event.
Example: "evt_01JS21X856RR8R69GV5F17XK9C"
type string requiredThe type of event that occurred.
Example: "event.completed"
timestamp string (date-time) requiredThe time when the event was triggered (UTC).
Example: "2025-04-16T14:30:00Z"
merchantId string requiredThe merchant that owns the transaction or token.
Example: "mer_01JQZC2Y6W3F8XKT5H9DPNBMVR"
originalResponse object requiredRepresents the response to a physical card tokenization request.
Child attributes
id stringUnique ID for this card tokenization transaction.
Example: "trx_01J2F0ZJ2JW5B63CJFPXRGAB1S"
timestamp string (date-time)Transaction timestamp in UTC
Example: "2025-05-27T18:49:31Z"
type stringType of transaction
Allowed: Sale, Auth, Capture, Refund, Void
Example: "Auth"
status TransactionStatusThe processing lifecycle, separate from approval or decline. Pending waits for customer input; Submitted, Acknowledged, and Processing are in flight; AwaitingSettlement waits for a bank transfer outcome. Completed can be approved or declined: inspect resultCode and transactionResponses[].responseCode. Failed means processing stopped because of a technical issue. Abandoned means the customer did not complete the flow before submission. Both states close the request.
Allowed: Unknown, Created, Pending, Submitted, Acknowledged, Processing, AwaitingSettlement, Completed, Failed, Abandoned
Example: "Completed"
accountHolder objectAccount holder information associated with the transaction
paymentMethod objectThe payment method used for this transaction.
referenceId ReferenceIdForResponseThe reference ID for this transaction. This will either be the reference ID provided in the transaction request or, if no value was provided, a value generated automatically by the system. This reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions.
max length 100
Example: "ref_s192i49i"
resultCode ResultCodeResult codes:
0- Successful transaction request. (Check each transactionResponse's responseCode to determine if a transaction was approved or declined, card was tokenized, etc.)1003- The payment terminal is busy or unavailable. (If this error persists, the user may need to close and re-open the Payment Application on the terminal or restart the terminal)1005- The specified terminal could not be found.1010- The transaction request is pending to become transaction.2014- The payment method or card brand is not enabled for the merchant.resultTextcarries the message, such asACH payments are not enabled for this merchant.orVisa cards are not enabled for this merchant.The transaction isCompletedand failed; do not retry it with the same payment method.3000- An unexpected error occurred. Please try again.3002- The transaction could not be completed because the payment terminal could not find the related transaction.3005- To resolve this error, power off your payment terminal, wait one minute and retry the transaction. If the error persists, please contact support.3006- The transaction could not be completed because the payment terminal is low on battery.3009- The transaction could not be completed because of network connectivity issues with the payment terminal. Please restore connectivity and try again.3010- The transaction took too long and was cancelled by the application.3011- Invalid transaction request. Please consult the documentation for valid transaction requests.3012- Invalid transaction request. paymentMethodId is invalid.3013- Invalid transaction request. The specified amount appears to be incorrect. Please retry with a smaller amount.3014- Invalid amount. Please try your transaction again with an amount greater than $0.3020- An unsupported transaction result was received.4001- The transaction is being processed. This is returned for asynchronous bank transfer payment methods (e.g. ACH) while awaiting a final outcome.6800- 3D Secure authentication was rejected by the issuer's ACS (card auth failed, security failure, stolen card, suspected fraud, etc.). Surfaced on declined CNP transactions whenformConfig.enable3DSecure: trueand the gateway reports a 3D Secure reason; other failures in a 3D Secure session use6900-6902. See SDK Error Codes for guidance.6801- 3D Secure authentication could not be completed because of an upstream technical issue (ACS timeout, directory server unreachable). Retry later or, if merchant policy allows, retry with 3DS disabled.6802- The card is not enrolled in 3D Secure. Retry without 3DS only if merchant policy allows; approval is not guaranteed.6900- The issuer declined the card on the hosted payment form or Payment SDK path. The specific reason is ontransactionResponses[0].responseCode(10-18) and inresultText. See SDK Error Codes for guidance.6901- The gateway rejected or failed the hosted payment form payment because of validation or a gateway failure rather than an issuer decision. See SDK Error Codes for guidance.6902- The gateway reported no failure but returned no payment token. See SDK Error Codes for guidance.9998- The system is not ready to process a transaction.9999- An unknown error has occurred. If available, an auxiliary error code will be provided in the message.1010- The transaction request is pending customer interaction.4100- Cardholder verification is required. FollowthreeDsChallenge.redirectUrland reconcile the final transaction outcome before retrying.55- The customer cancelled the hosted payment attempt.
Allowed: 0, 55, 1003, 1005, 1010, 2014, 3000, 3002, 3005, 3006, 3009, 3010, 3011, 3012, 3013, 3014, 3020, 4001, 4100, 6800, 6801, 6802, 6900, 6901, 6902, 9998, 9999
Example: 0
resultText ResultTextA message describing the result code in more detail. On a stored transaction it is uppercase, such as APPROVED, DECLINED, or the gateway's reason, except for resultCode 2014, where it is the message in sentence case. Use it for display, not for branching.
Example: "APPROVED"
requestedAmount integerThe requested amount in minor units. Virtual tokenization uses 0; physical tokenization uses a 1-unit authorization.
Example: 1
approvedAmount integerThe approved amount in minor units. This is 0 for a decline or an outcome that is still in flight. A terminal may adjust the amount, for example by adding a tip.
Example: 1
transactionResponses array of TransactionResponseIndividual gateway responses, with receipts under each entry. The array can be empty while processing is incomplete.
sourceId stringIdentifier of the session or other source that initiated the transaction.
threeDs ThreeDsAuthentication3D Secure (EMV 3DS2) authentication outcome. Populated on transactions initiated with formConfig.enable3DSecure: true. All fields (other than status) are optional - what the issuer returns depends on whether the transaction was frictionless, challenged, or declined.
threeDsChallenge ThreeDsChallengePresent when a token payment requires a cardholder challenge (resultCode: 4100).
balanceAmount integerThe balance that remains to be paid on the transaction. This amount is always an integer in the smallest denomination of the currency (e.g. cents for USD or CAD).
Example: 0
invoiceNumber InvoiceNumberAn optional alphanumeric invoice number for this transaction. If provided in the request, the same value will be populated in the response.
max length 100
Example: "inv_1234567890123456"
orderNumber OrderNumberAn optional alphanumeric order number for this transaction. If provided, the same value will be populated in the response.
max length 100
Example: "order_number_1234"
TokenRemovedWebhook
Represents the webhook triggered when a previously tokenized card is removed from the system.
Type: object
event object requiredWebhook event details.
Child attributes
id string requiredUnique ID for this webhook event.
Example: "evt_01JS21X856RR8R69GV5F17XK9C"
type string requiredThe type of event that occurred.
Example: "event.completed"
timestamp string (date-time) requiredThe time when the event was triggered (UTC).
Example: "2025-04-16T14:30:00Z"
merchantId string requiredThe merchant that owns the transaction or token.
Example: "mer_01JQZC2Y6W3F8XKT5H9DPNBMVR"
Represents the response to a tokenized card removal request.
Child attributes
id stringUnique ID for this payment-method operation (ops_ prefix).
Example: "ops_01J2F0ZJ2JW5B63CJFPXRGAB1S"
paymentMethod objectThe payment method used for this transaction.
referenceId ReferenceIdForResponseThe reference ID for this transaction. This will either be the reference ID provided in the transaction request or, if no value was provided, a value generated automatically by the system. This reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions.
max length 100
Example: "ref_s192i49i"
resultCode ResultCodeResult codes:
0- Successful transaction request. (Check each transactionResponse's responseCode to determine if a transaction was approved or declined, card was tokenized, etc.)1003- The payment terminal is busy or unavailable. (If this error persists, the user may need to close and re-open the Payment Application on the terminal or restart the terminal)1005- The specified terminal could not be found.1010- The transaction request is pending to become transaction.2014- The payment method or card brand is not enabled for the merchant.resultTextcarries the message, such asACH payments are not enabled for this merchant.orVisa cards are not enabled for this merchant.The transaction isCompletedand failed; do not retry it with the same payment method.3000- An unexpected error occurred. Please try again.3002- The transaction could not be completed because the payment terminal could not find the related transaction.3005- To resolve this error, power off your payment terminal, wait one minute and retry the transaction. If the error persists, please contact support.3006- The transaction could not be completed because the payment terminal is low on battery.3009- The transaction could not be completed because of network connectivity issues with the payment terminal. Please restore connectivity and try again.3010- The transaction took too long and was cancelled by the application.3011- Invalid transaction request. Please consult the documentation for valid transaction requests.3012- Invalid transaction request. paymentMethodId is invalid.3013- Invalid transaction request. The specified amount appears to be incorrect. Please retry with a smaller amount.3014- Invalid amount. Please try your transaction again with an amount greater than $0.3020- An unsupported transaction result was received.4001- The transaction is being processed. This is returned for asynchronous bank transfer payment methods (e.g. ACH) while awaiting a final outcome.6800- 3D Secure authentication was rejected by the issuer's ACS (card auth failed, security failure, stolen card, suspected fraud, etc.). Surfaced on declined CNP transactions whenformConfig.enable3DSecure: trueand the gateway reports a 3D Secure reason; other failures in a 3D Secure session use6900-6902. See SDK Error Codes for guidance.6801- 3D Secure authentication could not be completed because of an upstream technical issue (ACS timeout, directory server unreachable). Retry later or, if merchant policy allows, retry with 3DS disabled.6802- The card is not enrolled in 3D Secure. Retry without 3DS only if merchant policy allows; approval is not guaranteed.6900- The issuer declined the card on the hosted payment form or Payment SDK path. The specific reason is ontransactionResponses[0].responseCode(10-18) and inresultText. See SDK Error Codes for guidance.6901- The gateway rejected or failed the hosted payment form payment because of validation or a gateway failure rather than an issuer decision. See SDK Error Codes for guidance.6902- The gateway reported no failure but returned no payment token. See SDK Error Codes for guidance.9998- The system is not ready to process a transaction.9999- An unknown error has occurred. If available, an auxiliary error code will be provided in the message.1010- The transaction request is pending customer interaction.4100- Cardholder verification is required. FollowthreeDsChallenge.redirectUrland reconcile the final transaction outcome before retrying.55- The customer cancelled the hosted payment attempt.
Allowed: 0, 55, 1003, 1005, 1010, 2014, 3000, 3002, 3005, 3006, 3009, 3010, 3011, 3012, 3013, 3014, 3020, 4001, 4100, 6800, 6801, 6802, 6900, 6901, 6902, 9998, 9999
Example: 0
resultText ResultTextA message describing the result code in more detail. On a stored transaction it is uppercase, such as APPROVED, DECLINED, or the gateway's reason, except for resultCode 2014, where it is the message in sentence case. Use it for display, not for branching.
Example: "APPROVED"
MerchantLifecycleWebhookEvent
Webhook event details for merchant lifecycle events. Extends the standard event envelope with the merchant the event relates to, once a merchant record exists.
Type: object
id string requiredUnique ID for this webhook event. A bare ULID - unlike transaction events, merchant lifecycle event ids carry no evt_ prefix.
Example: "01JZM7Q2XVGT5H8RC3W9K4N6PD"
type string requiredThe type of event that occurred.
Example: "merchant.application.submitted"
timestamp string (date-time) requiredThe time when the event was triggered (UTC).
Example: "2026-07-09T14:30:00Z"
merchantId string required nullableThe merchant this event relates to. Null for events that occur before a merchant record exists (e.g. application progress events).
Example: "mer_01M25WWARK63SVEMXZJ5Y8ZSQK"
MerchantLifecycleWebhookData
Details for a merchant lifecycle event. Every field is always present; fields that do not apply to the event type are null. Payloads are PII-safe by design - they never carry underwriting documents, bank details, or tax identifiers.
Type: object
isvId string requiredYour account ID, prefixed with isv_.
Example: "isv_01JY9FCPM8Q5T2V7R4W1XKB6ZD"
merchantName string required nullableThe merchant's business display name, when known.
Example: "Blue Bottle Bakery"
applicationId string required nullableThe merchant onboarding application this event relates to.
Example: "map_01JZM7RH2M8S6WV0P9RQD37GXE"
fromStatus string required nullableThe application status before the transition, for application progress events.
Example: "WaitingForSigning"
toStatus string required nullableThe application status after the transition, for application progress events.
Example: "Submitted"
reason string required nullableHuman-readable reason accompanying a rejection decision, when one was provided.
Example: null
templateName string required nullableThe pricing template name, for pricing template decision events.
Example: null
templateRegion string required nullableThe pricing template region (US or CA), for pricing template decision events.
Example: null
templateVersion string required nullableThe pricing template version, for pricing template decision events.
Example: null
portalLink string (uri) requiredDeep link into the partner portal page for this event.
Example: "https://portal.example.com/merchants/applications/map_01JZM7RH2M8S6WV0P9RQD37GXE"
MerchantApplicationStartedWebhook
Represents the webhook triggered when a merchant begins filling out their onboarding application.
Type: object
event object requiredWebhook event details for merchant lifecycle events. Extends the standard event envelope with the merchant the event relates to, once a merchant record exists.
Child attributes
id string requiredUnique ID for this webhook event. A bare ULID - unlike transaction events, merchant lifecycle event ids carry no evt_ prefix.
Example: "01JZM7Q2XVGT5H8RC3W9K4N6PD"
type string requiredThe type of event that occurred.
Example: "merchant.application.submitted"
timestamp string (date-time) requiredThe time when the event was triggered (UTC).
Example: "2026-07-09T14:30:00Z"
merchantId string required nullableThe merchant this event relates to. Null for events that occur before a merchant record exists (e.g. application progress events).
Example: "mer_01M25WWARK63SVEMXZJ5Y8ZSQK"
Details for a merchant lifecycle event. Every field is always present; fields that do not apply to the event type are null. Payloads are PII-safe by design - they never carry underwriting documents, bank details, or tax identifiers.
Child attributes
isvId string requiredYour account ID, prefixed with isv_.
Example: "isv_01JY9FCPM8Q5T2V7R4W1XKB6ZD"
merchantName string required nullableThe merchant's business display name, when known.
Example: "Blue Bottle Bakery"
applicationId string required nullableThe merchant onboarding application this event relates to.
Example: "map_01JZM7RH2M8S6WV0P9RQD37GXE"
fromStatus string required nullableThe application status before the transition, for application progress events.
Example: "WaitingForSigning"
toStatus string required nullableThe application status after the transition, for application progress events.
Example: "Submitted"
reason string required nullableHuman-readable reason accompanying a rejection decision, when one was provided.
Example: null
templateName string required nullableThe pricing template name, for pricing template decision events.
Example: null
templateRegion string required nullableThe pricing template region (US or CA), for pricing template decision events.
Example: null
templateVersion string required nullableThe pricing template version, for pricing template decision events.
Example: null
portalLink string (uri) requiredDeep link into the partner portal page for this event.
Example: "https://portal.example.com/merchants/applications/map_01JZM7RH2M8S6WV0P9RQD37GXE"
MerchantApplicationSubmittedWebhook
Represents the webhook triggered when a merchant submits their onboarding application for review.
Type: object
event object requiredWebhook event details for merchant lifecycle events. Extends the standard event envelope with the merchant the event relates to, once a merchant record exists.
Child attributes
id string requiredUnique ID for this webhook event. A bare ULID - unlike transaction events, merchant lifecycle event ids carry no evt_ prefix.
Example: "01JZM7Q2XVGT5H8RC3W9K4N6PD"
type string requiredThe type of event that occurred.
Example: "merchant.application.submitted"
timestamp string (date-time) requiredThe time when the event was triggered (UTC).
Example: "2026-07-09T14:30:00Z"
merchantId string required nullableThe merchant this event relates to. Null for events that occur before a merchant record exists (e.g. application progress events).
Example: "mer_01M25WWARK63SVEMXZJ5Y8ZSQK"
Details for a merchant lifecycle event. Every field is always present; fields that do not apply to the event type are null. Payloads are PII-safe by design - they never carry underwriting documents, bank details, or tax identifiers.
Child attributes
isvId string requiredYour account ID, prefixed with isv_.
Example: "isv_01JY9FCPM8Q5T2V7R4W1XKB6ZD"
merchantName string required nullableThe merchant's business display name, when known.
Example: "Blue Bottle Bakery"
applicationId string required nullableThe merchant onboarding application this event relates to.
Example: "map_01JZM7RH2M8S6WV0P9RQD37GXE"
fromStatus string required nullableThe application status before the transition, for application progress events.
Example: "WaitingForSigning"
toStatus string required nullableThe application status after the transition, for application progress events.
Example: "Submitted"
reason string required nullableHuman-readable reason accompanying a rejection decision, when one was provided.
Example: null
templateName string required nullableThe pricing template name, for pricing template decision events.
Example: null
templateRegion string required nullableThe pricing template region (US or CA), for pricing template decision events.
Example: null
templateVersion string required nullableThe pricing template version, for pricing template decision events.
Example: null
portalLink string (uri) requiredDeep link into the partner portal page for this event.
Example: "https://portal.example.com/merchants/applications/map_01JZM7RH2M8S6WV0P9RQD37GXE"
MerchantApplicationStatusChangedWebhook
Represents the webhook triggered when a merchant application moves between review stages (e.g. into Underwriting or Onboarding).
Type: object
event object requiredWebhook event details for merchant lifecycle events. Extends the standard event envelope with the merchant the event relates to, once a merchant record exists.
Child attributes
id string requiredUnique ID for this webhook event. A bare ULID - unlike transaction events, merchant lifecycle event ids carry no evt_ prefix.
Example: "01JZM7Q2XVGT5H8RC3W9K4N6PD"
type string requiredThe type of event that occurred.
Example: "merchant.application.submitted"
timestamp string (date-time) requiredThe time when the event was triggered (UTC).
Example: "2026-07-09T14:30:00Z"
merchantId string required nullableThe merchant this event relates to. Null for events that occur before a merchant record exists (e.g. application progress events).
Example: "mer_01M25WWARK63SVEMXZJ5Y8ZSQK"
Details for a merchant lifecycle event. Every field is always present; fields that do not apply to the event type are null. Payloads are PII-safe by design - they never carry underwriting documents, bank details, or tax identifiers.
Child attributes
isvId string requiredYour account ID, prefixed with isv_.
Example: "isv_01JY9FCPM8Q5T2V7R4W1XKB6ZD"
merchantName string required nullableThe merchant's business display name, when known.
Example: "Blue Bottle Bakery"
applicationId string required nullableThe merchant onboarding application this event relates to.
Example: "map_01JZM7RH2M8S6WV0P9RQD37GXE"
fromStatus string required nullableThe application status before the transition, for application progress events.
Example: "WaitingForSigning"
toStatus string required nullableThe application status after the transition, for application progress events.
Example: "Submitted"
reason string required nullableHuman-readable reason accompanying a rejection decision, when one was provided.
Example: null
templateName string required nullableThe pricing template name, for pricing template decision events.
Example: null
templateRegion string required nullableThe pricing template region (US or CA), for pricing template decision events.
Example: null
templateVersion string required nullableThe pricing template version, for pricing template decision events.
Example: null
portalLink string (uri) requiredDeep link into the partner portal page for this event.
Example: "https://portal.example.com/merchants/applications/map_01JZM7RH2M8S6WV0P9RQD37GXE"
MerchantApplicationRequiresActionWebhook
Represents the webhook triggered when a merchant application needs more information or documents from the merchant before review can continue.
Type: object
event object requiredWebhook event details for merchant lifecycle events. Extends the standard event envelope with the merchant the event relates to, once a merchant record exists.
Child attributes
id string requiredUnique ID for this webhook event. A bare ULID - unlike transaction events, merchant lifecycle event ids carry no evt_ prefix.
Example: "01JZM7Q2XVGT5H8RC3W9K4N6PD"
type string requiredThe type of event that occurred.
Example: "merchant.application.submitted"
timestamp string (date-time) requiredThe time when the event was triggered (UTC).
Example: "2026-07-09T14:30:00Z"
merchantId string required nullableThe merchant this event relates to. Null for events that occur before a merchant record exists (e.g. application progress events).
Example: "mer_01M25WWARK63SVEMXZJ5Y8ZSQK"
Details for a merchant lifecycle event. Every field is always present; fields that do not apply to the event type are null. Payloads are PII-safe by design - they never carry underwriting documents, bank details, or tax identifiers.
Child attributes
isvId string requiredYour account ID, prefixed with isv_.
Example: "isv_01JY9FCPM8Q5T2V7R4W1XKB6ZD"
merchantName string required nullableThe merchant's business display name, when known.
Example: "Blue Bottle Bakery"
applicationId string required nullableThe merchant onboarding application this event relates to.
Example: "map_01JZM7RH2M8S6WV0P9RQD37GXE"
fromStatus string required nullableThe application status before the transition, for application progress events.
Example: "WaitingForSigning"
toStatus string required nullableThe application status after the transition, for application progress events.
Example: "Submitted"
reason string required nullableHuman-readable reason accompanying a rejection decision, when one was provided.
Example: null
templateName string required nullableThe pricing template name, for pricing template decision events.
Example: null
templateRegion string required nullableThe pricing template region (US or CA), for pricing template decision events.
Example: null
templateVersion string required nullableThe pricing template version, for pricing template decision events.
Example: null
portalLink string (uri) requiredDeep link into the partner portal page for this event.
Example: "https://portal.example.com/merchants/applications/map_01JZM7RH2M8S6WV0P9RQD37GXE"
MerchantApplicationInfoUploadedWebhook
Represents the webhook triggered when a merchant provides the requested information or documents on an application that required action.
Type: object
event object requiredWebhook event details for merchant lifecycle events. Extends the standard event envelope with the merchant the event relates to, once a merchant record exists.
Child attributes
id string requiredUnique ID for this webhook event. A bare ULID - unlike transaction events, merchant lifecycle event ids carry no evt_ prefix.
Example: "01JZM7Q2XVGT5H8RC3W9K4N6PD"
type string requiredThe type of event that occurred.
Example: "merchant.application.submitted"
timestamp string (date-time) requiredThe time when the event was triggered (UTC).
Example: "2026-07-09T14:30:00Z"
merchantId string required nullableThe merchant this event relates to. Null for events that occur before a merchant record exists (e.g. application progress events).
Example: "mer_01M25WWARK63SVEMXZJ5Y8ZSQK"
Details for a merchant lifecycle event. Every field is always present; fields that do not apply to the event type are null. Payloads are PII-safe by design - they never carry underwriting documents, bank details, or tax identifiers.
Child attributes
isvId string requiredYour account ID, prefixed with isv_.
Example: "isv_01JY9FCPM8Q5T2V7R4W1XKB6ZD"
merchantName string required nullableThe merchant's business display name, when known.
Example: "Blue Bottle Bakery"
applicationId string required nullableThe merchant onboarding application this event relates to.
Example: "map_01JZM7RH2M8S6WV0P9RQD37GXE"
fromStatus string required nullableThe application status before the transition, for application progress events.
Example: "WaitingForSigning"
toStatus string required nullableThe application status after the transition, for application progress events.
Example: "Submitted"
reason string required nullableHuman-readable reason accompanying a rejection decision, when one was provided.
Example: null
templateName string required nullableThe pricing template name, for pricing template decision events.
Example: null
templateRegion string required nullableThe pricing template region (US or CA), for pricing template decision events.
Example: null
templateVersion string required nullableThe pricing template version, for pricing template decision events.
Example: null
portalLink string (uri) requiredDeep link into the partner portal page for this event.
Example: "https://portal.example.com/merchants/applications/map_01JZM7RH2M8S6WV0P9RQD37GXE"
MerchantApprovedWebhook
Represents the webhook triggered when a merchant application is approved and the merchant account is created.
Type: object
event object requiredWebhook event details for merchant lifecycle events. Extends the standard event envelope with the merchant the event relates to, once a merchant record exists.
Child attributes
id string requiredUnique ID for this webhook event. A bare ULID - unlike transaction events, merchant lifecycle event ids carry no evt_ prefix.
Example: "01JZM7Q2XVGT5H8RC3W9K4N6PD"
type string requiredThe type of event that occurred.
Example: "merchant.application.submitted"
timestamp string (date-time) requiredThe time when the event was triggered (UTC).
Example: "2026-07-09T14:30:00Z"
merchantId string required nullableThe merchant this event relates to. Null for events that occur before a merchant record exists (e.g. application progress events).
Example: "mer_01M25WWARK63SVEMXZJ5Y8ZSQK"
Details for a merchant lifecycle event. Every field is always present; fields that do not apply to the event type are null. Payloads are PII-safe by design - they never carry underwriting documents, bank details, or tax identifiers.
Child attributes
isvId string requiredYour account ID, prefixed with isv_.
Example: "isv_01JY9FCPM8Q5T2V7R4W1XKB6ZD"
merchantName string required nullableThe merchant's business display name, when known.
Example: "Blue Bottle Bakery"
applicationId string required nullableThe merchant onboarding application this event relates to.
Example: "map_01JZM7RH2M8S6WV0P9RQD37GXE"
fromStatus string required nullableThe application status before the transition, for application progress events.
Example: "WaitingForSigning"
toStatus string required nullableThe application status after the transition, for application progress events.
Example: "Submitted"
reason string required nullableHuman-readable reason accompanying a rejection decision, when one was provided.
Example: null
templateName string required nullableThe pricing template name, for pricing template decision events.
Example: null
templateRegion string required nullableThe pricing template region (US or CA), for pricing template decision events.
Example: null
templateVersion string required nullableThe pricing template version, for pricing template decision events.
Example: null
portalLink string (uri) requiredDeep link into the partner portal page for this event.
Example: "https://portal.example.com/merchants/applications/map_01JZM7RH2M8S6WV0P9RQD37GXE"
MerchantRejectedWebhook
Represents the webhook triggered when a merchant application is rejected during review.
Type: object
event object requiredWebhook event details for merchant lifecycle events. Extends the standard event envelope with the merchant the event relates to, once a merchant record exists.
Child attributes
id string requiredUnique ID for this webhook event. A bare ULID - unlike transaction events, merchant lifecycle event ids carry no evt_ prefix.
Example: "01JZM7Q2XVGT5H8RC3W9K4N6PD"
type string requiredThe type of event that occurred.
Example: "merchant.application.submitted"
timestamp string (date-time) requiredThe time when the event was triggered (UTC).
Example: "2026-07-09T14:30:00Z"
merchantId string required nullableThe merchant this event relates to. Null for events that occur before a merchant record exists (e.g. application progress events).
Example: "mer_01M25WWARK63SVEMXZJ5Y8ZSQK"
Details for a merchant lifecycle event. Every field is always present; fields that do not apply to the event type are null. Payloads are PII-safe by design - they never carry underwriting documents, bank details, or tax identifiers.
Child attributes
isvId string requiredYour account ID, prefixed with isv_.
Example: "isv_01JY9FCPM8Q5T2V7R4W1XKB6ZD"
merchantName string required nullableThe merchant's business display name, when known.
Example: "Blue Bottle Bakery"
applicationId string required nullableThe merchant onboarding application this event relates to.
Example: "map_01JZM7RH2M8S6WV0P9RQD37GXE"
fromStatus string required nullableThe application status before the transition, for application progress events.
Example: "WaitingForSigning"
toStatus string required nullableThe application status after the transition, for application progress events.
Example: "Submitted"
reason string required nullableHuman-readable reason accompanying a rejection decision, when one was provided.
Example: null
templateName string required nullableThe pricing template name, for pricing template decision events.
Example: null
templateRegion string required nullableThe pricing template region (US or CA), for pricing template decision events.
Example: null
templateVersion string required nullableThe pricing template version, for pricing template decision events.
Example: null
portalLink string (uri) requiredDeep link into the partner portal page for this event.
Example: "https://portal.example.com/merchants/applications/map_01JZM7RH2M8S6WV0P9RQD37GXE"
PricingTemplateApprovedWebhook
Represents the webhook triggered when a submitted pricing template is approved in review and its onboarding links become active.
Type: object
event object requiredWebhook event details for merchant lifecycle events. Extends the standard event envelope with the merchant the event relates to, once a merchant record exists.
Child attributes
id string requiredUnique ID for this webhook event. A bare ULID - unlike transaction events, merchant lifecycle event ids carry no evt_ prefix.
Example: "01JZM7Q2XVGT5H8RC3W9K4N6PD"
type string requiredThe type of event that occurred.
Example: "merchant.application.submitted"
timestamp string (date-time) requiredThe time when the event was triggered (UTC).
Example: "2026-07-09T14:30:00Z"
merchantId string required nullableThe merchant this event relates to. Null for events that occur before a merchant record exists (e.g. application progress events).
Example: "mer_01M25WWARK63SVEMXZJ5Y8ZSQK"
Details for a merchant lifecycle event. Every field is always present; fields that do not apply to the event type are null. Payloads are PII-safe by design - they never carry underwriting documents, bank details, or tax identifiers.
Child attributes
isvId string requiredYour account ID, prefixed with isv_.
Example: "isv_01JY9FCPM8Q5T2V7R4W1XKB6ZD"
merchantName string required nullableThe merchant's business display name, when known.
Example: "Blue Bottle Bakery"
applicationId string required nullableThe merchant onboarding application this event relates to.
Example: "map_01JZM7RH2M8S6WV0P9RQD37GXE"
fromStatus string required nullableThe application status before the transition, for application progress events.
Example: "WaitingForSigning"
toStatus string required nullableThe application status after the transition, for application progress events.
Example: "Submitted"
reason string required nullableHuman-readable reason accompanying a rejection decision, when one was provided.
Example: null
templateName string required nullableThe pricing template name, for pricing template decision events.
Example: null
templateRegion string required nullableThe pricing template region (US or CA), for pricing template decision events.
Example: null
templateVersion string required nullableThe pricing template version, for pricing template decision events.
Example: null
portalLink string (uri) requiredDeep link into the partner portal page for this event.
Example: "https://portal.example.com/merchants/applications/map_01JZM7RH2M8S6WV0P9RQD37GXE"
PricingTemplateRejectedWebhook
Represents the webhook triggered when a submitted pricing template is declined in review.
Type: object
event object requiredWebhook event details for merchant lifecycle events. Extends the standard event envelope with the merchant the event relates to, once a merchant record exists.
Child attributes
id string requiredUnique ID for this webhook event. A bare ULID - unlike transaction events, merchant lifecycle event ids carry no evt_ prefix.
Example: "01JZM7Q2XVGT5H8RC3W9K4N6PD"
type string requiredThe type of event that occurred.
Example: "merchant.application.submitted"
timestamp string (date-time) requiredThe time when the event was triggered (UTC).
Example: "2026-07-09T14:30:00Z"
merchantId string required nullableThe merchant this event relates to. Null for events that occur before a merchant record exists (e.g. application progress events).
Example: "mer_01M25WWARK63SVEMXZJ5Y8ZSQK"
Details for a merchant lifecycle event. Every field is always present; fields that do not apply to the event type are null. Payloads are PII-safe by design - they never carry underwriting documents, bank details, or tax identifiers.
Child attributes
isvId string requiredYour account ID, prefixed with isv_.
Example: "isv_01JY9FCPM8Q5T2V7R4W1XKB6ZD"
merchantName string required nullableThe merchant's business display name, when known.
Example: "Blue Bottle Bakery"
applicationId string required nullableThe merchant onboarding application this event relates to.
Example: "map_01JZM7RH2M8S6WV0P9RQD37GXE"
fromStatus string required nullableThe application status before the transition, for application progress events.
Example: "WaitingForSigning"
toStatus string required nullableThe application status after the transition, for application progress events.
Example: "Submitted"
reason string required nullableHuman-readable reason accompanying a rejection decision, when one was provided.
Example: null
templateName string required nullableThe pricing template name, for pricing template decision events.
Example: null
templateRegion string required nullableThe pricing template region (US or CA), for pricing template decision events.
Example: null
templateVersion string required nullableThe pricing template version, for pricing template decision events.
Example: null
portalLink string (uri) requiredDeep link into the partner portal page for this event.
Example: "https://portal.example.com/merchants/applications/map_01JZM7RH2M8S6WV0P9RQD37GXE"
SettlementFeeBreakdown
Optional breakdown of the components of a fee charge. Only the components that apply to a given fee are present. Components are signed integers in minor units; positive values are charges and negative values are credits.
Type: object
discountFee integerProcessing/discount fee component, smallest denomination.
originationFee integerACH origination fee, smallest denomination.
returnFee integerACH return fee - charged when a transaction is returned/reversed post-settlement. Smallest denomination.
interchangeFee integerCard-network interchange fee, in minor units.
otherFee integerProvider-specific catch-all for fee components not otherwise modeled.
SettlementSummary
A summary of a processor-reported transfer of payment proceeds to the merchant's bank account. It identifies the activity grouped into one deposit and reports its date, currency, total amount, rail, and funding type. See Settlement in the glossary.
Type: object
id string requiredThe settlement ID, prefixed with stl_.
Example: "stl_01JZ5F0M3SXA6PDH8YT2M4QWCN"
type string requiredThe kind of settlement: Card for card payments or Ach for ACH bank transfers.
Read this field together with fundingType. Card Net is type: Card with fundingType: Net; Card Gross is type: Card with fundingType: Gross. These are combinations of existing fields, not additional type values. ACH also supports both funding types.
Allowed: Card, Ach
Example: "Card"
settlementDate string (date) requiredThe date the settlement was deposited to the merchant's bank account.
Example: "2026-07-01"
currency string requiredAllowed: USD, CAD
Example: "USD"
amount integer requiredThe processor-reported deposit total in minor units. Signed: refunds, fees, and adjustments can produce a negative deposit.
For Card Net, the deposit includes deductions for withheld interchange and discount fees. For Card Gross, those fees are billed separately. Reserve holds and transfers can change the deposited amount in either card funding model. Card transaction lines retain their full settled amounts before these deposit-level deductions.
For ACH, fundingType states whether fees are withheld from the deposit or billed separately.
Example: 121875
fundingType string requiredWhether the payment provider withholds its fees from deposits or bills them separately. Read together with type; card and ACH funding terms can differ for the same merchant.
Net: the deposit is after withheld fees. For Card Net, interchange and discount fees apply at the deposit level; the individual card lines remain before those deductions.
Gross: fees are billed separately and do not reduce this deposit. For Card Gross, reserve holds and transfers can still change amount, so it need not equal the sum of card transaction amounts.
Funding type does not determine the fee billing schedule. Use each fee charge's source and chargeDate; monthly billing produces StatementOnly rollups of daily SettlementLinked components. An amount is always returned with a fundingType in scope.
Allowed: Net, Gross
Example: "Net"
netAmount integer required deprecatedDeprecated - read amount instead. This member mirrors amount exactly and cannot hold a different figure. fundingType on this payload states whether that figure is the gross deposit or one already net of withheld fees, and is the only authoritative reading of it. Deprecated on 2026-08-21 and removed one month later in its own release, at which point netAmount also stops being accepted as a filter or sort field.
Its value changed when amount was introduced: for a gross-funded merchant it now reports the gross deposit - the figure that actually reached the bank - so despite its name it is not necessarily a net figure.
Example: 121875
transactionCount integer requiredNumber of settled-transaction line items in the settlement. Always equal to the length of the lineItems array returned by GET /settlements/{settlementId}, which withholds no line.
Example: 42
status string requiredStatus of the settlement.
Settled: The settlement has been deposited to the merchant's bank account.
Adjusted: Reserved value; not currently returned.
Allowed: Settled, Adjusted
Example: "Settled"
SettlementLineItem
A processor-reported line showing how payment or dispute activity contributes to a merchant deposit. It records the activity's amount and processor identifiers, plus the transaction ID (trx_) when matched. See Settled transaction in the glossary.
Type: object
transactionId stringThe transaction ID, prefixed with trx_. Absent when matchStatus is Unmatched - look it up via GET /transactions (e.g. ?filters=id==trx_...) for full transaction detail.
Example: "trx_01JZ5EXH9GVK3M7T2QSBWD48RC"
transactionType string requiredThe kind of settled transaction. Treat this list as open: ignore a value your integration does not recognize instead of rejecting the line.
Sale: A sale that deposited funds to the merchant.
Refund: A refund/credit returned to the cardholder or payer (reduces the net deposit).
Capture: The capture/settlement of a previously authorized transaction.
Return: A payout the provider tried to make and could not - for ACH, typically a closed or invalid bank account - so no money reached the merchant. The line exists because the attempt still cost a fee: nothing was disbursed, so for a net-funded rail amount is that fee as a negative, and for a gross-funded one it is zero and the fee is billed separately. Unlike a Refund, no money moved in the first place, so nothing is deducted from the deposit beyond that fee. An ACH entry the bank returns before any money moves is reported the same way, in a settlement for that day, with its fee linked through the line.
Chargeback: Money taken back from the merchant after it was paid out, because the payer's bank returned the payment. Reported for ACH, as a return after funding. amount is negative: the returned amount under gross funding, or the returned amount and the entry's fees under net funding. The line is on the deposit of the day the return settled, and the original sale's line and deposit do not change. transactionDate is the original sale's date. The line matches only a Chargeback transaction: until that transaction exists, matchStatus is Unmatched and transactionId is absent.
See Transaction type for the reporting context.
Allowed: Sale, Refund, Capture, Return, Chargeback
Example: "Sale"
gatewayTransactionId string requiredThe gateway's own transaction ID.
Example: "1120000006864180230"
batchId stringThe processor's own batch number this transaction was settled in (informational). Present for card settlements; absent for providers with no native batch concept (e.g. ACH).
Example: "2616201"
matchStatus string requiredWhether the settled transaction has been matched to a transaction. A Refund line is matched to the refund transaction, never to the sale it refunds; a refund line that resolves only to a sale is left Unmatched. A Return line keeps its link to the sale whose payout failed.
Unmatched: No API transaction has been identified for this settled line; transactionId is absent.
Matched: Automatically matched to a transaction.
ManuallyMatched: Matched to a transaction by manual reconciliation.
Allowed: Unmatched, Matched, ManuallyMatched
Example: "Matched"
invoiceNumber stringPopulated from the matched transaction, when one exists.
Example: "INV-10432"
paymentType stringPopulated from the matched transaction's card type, when one exists.
Example: "Visa"
transactionDate string (date-time)The date the underlying transaction was processed, when reported.
Example: "2026-06-30T18:22:41Z"
amount integer requiredThe settled line amount in minor units. Signed: refunds are negative.
Card Net and Card Gross: the full settled transaction amount before deposit-level fees and reserve adjustments. Card fees are not allocated to individual transaction lines, so fundingType: Net does not make a card line's amount net of those fees.
ACH Net: the disbursed amount less any fees withheld from this line. A zero-disbursement Return can therefore have a negative amount equal to its fee. ACH Gross: the disbursed amount without subtracting separately billed fees; a zero-disbursement line remains zero.
Withheld fees are also itemized by GET /fee-charges. Do not subtract them again from amounts that already include the deduction.
Example: 5000
netAmount integer required deprecatedDeprecated - read amount instead. This member mirrors amount exactly. The enclosing settlement's type and fundingType explain the line amount: card lines retain their full settled amounts under both Card Net and Card Gross; ACH Net lines reflect any fees withheld from that line.
Deprecated on 2026-08-21 and removed one month later in its own release, at which point netAmount also stops being accepted as a filter or sort field. Despite its name, it does not necessarily represent an amount after fees.
Example: 5000
currency string requiredAllowed: USD, CAD
Example: "USD"
SettlementDetailResponse
A summary of a processor-reported transfer of payment proceeds to the merchant's bank account. It identifies the activity grouped into one deposit and reports its date, currency, total amount, rail, and funding type. See Settlement in the glossary.
Type: object
id string requiredThe settlement ID, prefixed with stl_.
Example: "stl_01JZ5F0M3SXA6PDH8YT2M4QWCN"
type string requiredThe kind of settlement: Card for card payments or Ach for ACH bank transfers.
Read this field together with fundingType. Card Net is type: Card with fundingType: Net; Card Gross is type: Card with fundingType: Gross. These are combinations of existing fields, not additional type values. ACH also supports both funding types.
Allowed: Card, Ach
Example: "Card"
settlementDate string (date) requiredThe date the settlement was deposited to the merchant's bank account.
Example: "2026-07-01"
currency string requiredAllowed: USD, CAD
Example: "USD"
amount integer requiredThe processor-reported deposit total in minor units. Signed: refunds, fees, and adjustments can produce a negative deposit.
For Card Net, the deposit includes deductions for withheld interchange and discount fees. For Card Gross, those fees are billed separately. Reserve holds and transfers can change the deposited amount in either card funding model. Card transaction lines retain their full settled amounts before these deposit-level deductions.
For ACH, fundingType states whether fees are withheld from the deposit or billed separately.
Example: 121875
fundingType string requiredWhether the payment provider withholds its fees from deposits or bills them separately. Read together with type; card and ACH funding terms can differ for the same merchant.
Net: the deposit is after withheld fees. For Card Net, interchange and discount fees apply at the deposit level; the individual card lines remain before those deductions.
Gross: fees are billed separately and do not reduce this deposit. For Card Gross, reserve holds and transfers can still change amount, so it need not equal the sum of card transaction amounts.
Funding type does not determine the fee billing schedule. Use each fee charge's source and chargeDate; monthly billing produces StatementOnly rollups of daily SettlementLinked components. An amount is always returned with a fundingType in scope.
Allowed: Net, Gross
Example: "Net"
netAmount integer required deprecatedDeprecated - read amount instead. This member mirrors amount exactly and cannot hold a different figure. fundingType on this payload states whether that figure is the gross deposit or one already net of withheld fees, and is the only authoritative reading of it. Deprecated on 2026-08-21 and removed one month later in its own release, at which point netAmount also stops being accepted as a filter or sort field.
Its value changed when amount was introduced: for a gross-funded merchant it now reports the gross deposit - the figure that actually reached the bank - so despite its name it is not necessarily a net figure.
Example: 121875
transactionCount integer requiredNumber of settled-transaction line items in the settlement. Always equal to the length of the lineItems array returned by GET /settlements/{settlementId}, which withholds no line.
Example: 42
status string requiredStatus of the settlement.
Settled: The settlement has been deposited to the merchant's bank account.
Adjusted: Reserved value; not currently returned.
Allowed: Settled, Adjusted
Example: "Settled"
merchantId string requiredThe ID of the merchant the settlement was deposited to, prefixed with mer_.
Example: "mer_01JQZC2Y6W3F8XKT5H9DPNBMVR"
Child attributes
transactionId stringThe transaction ID, prefixed with trx_. Absent when matchStatus is Unmatched - look it up via GET /transactions (e.g. ?filters=id==trx_...) for full transaction detail.
Example: "trx_01JZ5EXH9GVK3M7T2QSBWD48RC"
transactionType string requiredThe kind of settled transaction. Treat this list as open: ignore a value your integration does not recognize instead of rejecting the line.
Sale: A sale that deposited funds to the merchant.
Refund: A refund/credit returned to the cardholder or payer (reduces the net deposit).
Capture: The capture/settlement of a previously authorized transaction.
Return: A payout the provider tried to make and could not - for ACH, typically a closed or invalid bank account - so no money reached the merchant. The line exists because the attempt still cost a fee: nothing was disbursed, so for a net-funded rail amount is that fee as a negative, and for a gross-funded one it is zero and the fee is billed separately. Unlike a Refund, no money moved in the first place, so nothing is deducted from the deposit beyond that fee. An ACH entry the bank returns before any money moves is reported the same way, in a settlement for that day, with its fee linked through the line.
Chargeback: Money taken back from the merchant after it was paid out, because the payer's bank returned the payment. Reported for ACH, as a return after funding. amount is negative: the returned amount under gross funding, or the returned amount and the entry's fees under net funding. The line is on the deposit of the day the return settled, and the original sale's line and deposit do not change. transactionDate is the original sale's date. The line matches only a Chargeback transaction: until that transaction exists, matchStatus is Unmatched and transactionId is absent.
See Transaction type for the reporting context.
Allowed: Sale, Refund, Capture, Return, Chargeback
Example: "Sale"
gatewayTransactionId string requiredThe gateway's own transaction ID.
Example: "1120000006864180230"
batchId stringThe processor's own batch number this transaction was settled in (informational). Present for card settlements; absent for providers with no native batch concept (e.g. ACH).
Example: "2616201"
matchStatus string requiredWhether the settled transaction has been matched to a transaction. A Refund line is matched to the refund transaction, never to the sale it refunds; a refund line that resolves only to a sale is left Unmatched. A Return line keeps its link to the sale whose payout failed.
Unmatched: No API transaction has been identified for this settled line; transactionId is absent.
Matched: Automatically matched to a transaction.
ManuallyMatched: Matched to a transaction by manual reconciliation.
Allowed: Unmatched, Matched, ManuallyMatched
Example: "Matched"
invoiceNumber stringPopulated from the matched transaction, when one exists.
Example: "INV-10432"
paymentType stringPopulated from the matched transaction's card type, when one exists.
Example: "Visa"
transactionDate string (date-time)The date the underlying transaction was processed, when reported.
Example: "2026-06-30T18:22:41Z"
amount integer requiredThe settled line amount in minor units. Signed: refunds are negative.
Card Net and Card Gross: the full settled transaction amount before deposit-level fees and reserve adjustments. Card fees are not allocated to individual transaction lines, so fundingType: Net does not make a card line's amount net of those fees.
ACH Net: the disbursed amount less any fees withheld from this line. A zero-disbursement Return can therefore have a negative amount equal to its fee. ACH Gross: the disbursed amount without subtracting separately billed fees; a zero-disbursement line remains zero.
Withheld fees are also itemized by GET /fee-charges. Do not subtract them again from amounts that already include the deduction.
Example: 5000
netAmount integer required deprecatedDeprecated - read amount instead. This member mirrors amount exactly. The enclosing settlement's type and fundingType explain the line amount: card lines retain their full settled amounts under both Card Net and Card Gross; ACH Net lines reflect any fees withheld from that line.
Deprecated on 2026-08-21 and removed one month later in its own release, at which point netAmount also stops being accepted as a filter or sort field. Despite its name, it does not necessarily represent an amount after fees.
Example: 5000
currency string requiredAllowed: USD, CAD
Example: "USD"
SettlementsListResponse
Paginated response containing settlements
Type: object
totalCount integer requiredTotal number of settlements that match the filter criteria
Example: 2
page integer requiredThe current page number (starts at 1)
Example: 1
pageSize integer requiredNumber of items per page
Example: 10
totalPages integer requiredTotal number of pages available
Example: 1
hasNextPage boolean requiredTrue if there are more pages of results available
Example: false
hasPreviousPage boolean requiredTrue if there are previous pages of results available
Example: false
Array of settlements for the current page
Child attributes
id string requiredThe settlement ID, prefixed with stl_.
Example: "stl_01JZ5F0M3SXA6PDH8YT2M4QWCN"
type string requiredThe kind of settlement: Card for card payments or Ach for ACH bank transfers.
Read this field together with fundingType. Card Net is type: Card with fundingType: Net; Card Gross is type: Card with fundingType: Gross. These are combinations of existing fields, not additional type values. ACH also supports both funding types.
Allowed: Card, Ach
Example: "Card"
settlementDate string (date) requiredThe date the settlement was deposited to the merchant's bank account.
Example: "2026-07-01"
currency string requiredAllowed: USD, CAD
Example: "USD"
amount integer requiredThe processor-reported deposit total in minor units. Signed: refunds, fees, and adjustments can produce a negative deposit.
For Card Net, the deposit includes deductions for withheld interchange and discount fees. For Card Gross, those fees are billed separately. Reserve holds and transfers can change the deposited amount in either card funding model. Card transaction lines retain their full settled amounts before these deposit-level deductions.
For ACH, fundingType states whether fees are withheld from the deposit or billed separately.
Example: 121875
fundingType string requiredWhether the payment provider withholds its fees from deposits or bills them separately. Read together with type; card and ACH funding terms can differ for the same merchant.
Net: the deposit is after withheld fees. For Card Net, interchange and discount fees apply at the deposit level; the individual card lines remain before those deductions.
Gross: fees are billed separately and do not reduce this deposit. For Card Gross, reserve holds and transfers can still change amount, so it need not equal the sum of card transaction amounts.
Funding type does not determine the fee billing schedule. Use each fee charge's source and chargeDate; monthly billing produces StatementOnly rollups of daily SettlementLinked components. An amount is always returned with a fundingType in scope.
Allowed: Net, Gross
Example: "Net"
netAmount integer required deprecatedDeprecated - read amount instead. This member mirrors amount exactly and cannot hold a different figure. fundingType on this payload states whether that figure is the gross deposit or one already net of withheld fees, and is the only authoritative reading of it. Deprecated on 2026-08-21 and removed one month later in its own release, at which point netAmount also stops being accepted as a filter or sort field.
Its value changed when amount was introduced: for a gross-funded merchant it now reports the gross deposit - the figure that actually reached the bank - so despite its name it is not necessarily a net figure.
Example: 121875
transactionCount integer requiredNumber of settled-transaction line items in the settlement. Always equal to the length of the lineItems array returned by GET /settlements/{settlementId}, which withholds no line.
Example: 42
status string requiredStatus of the settlement.
Settled: The settlement has been deposited to the merchant's bank account.
Adjusted: Reserved value; not currently returned.
Allowed: Settled, Adjusted
Example: "Settled"
SettlementTransaction
A processor-reported line showing how payment or dispute activity contributes to a merchant deposit. This list representation includes the parent settlement's summary so the line can be interpreted with its deposit, rail, and funding type. See Settled transaction in the glossary.
Type: object
A summary of a processor-reported transfer of payment proceeds to the merchant's bank account. It identifies the activity grouped into one deposit and reports its date, currency, total amount, rail, and funding type. See Settlement in the glossary.
Child attributes
id string requiredThe settlement ID, prefixed with stl_.
Example: "stl_01JZ5F0M3SXA6PDH8YT2M4QWCN"
type string requiredThe kind of settlement: Card for card payments or Ach for ACH bank transfers.
Read this field together with fundingType. Card Net is type: Card with fundingType: Net; Card Gross is type: Card with fundingType: Gross. These are combinations of existing fields, not additional type values. ACH also supports both funding types.
Allowed: Card, Ach
Example: "Card"
settlementDate string (date) requiredThe date the settlement was deposited to the merchant's bank account.
Example: "2026-07-01"
currency string requiredAllowed: USD, CAD
Example: "USD"
amount integer requiredThe processor-reported deposit total in minor units. Signed: refunds, fees, and adjustments can produce a negative deposit.
For Card Net, the deposit includes deductions for withheld interchange and discount fees. For Card Gross, those fees are billed separately. Reserve holds and transfers can change the deposited amount in either card funding model. Card transaction lines retain their full settled amounts before these deposit-level deductions.
For ACH, fundingType states whether fees are withheld from the deposit or billed separately.
Example: 121875
fundingType string requiredWhether the payment provider withholds its fees from deposits or bills them separately. Read together with type; card and ACH funding terms can differ for the same merchant.
Net: the deposit is after withheld fees. For Card Net, interchange and discount fees apply at the deposit level; the individual card lines remain before those deductions.
Gross: fees are billed separately and do not reduce this deposit. For Card Gross, reserve holds and transfers can still change amount, so it need not equal the sum of card transaction amounts.
Funding type does not determine the fee billing schedule. Use each fee charge's source and chargeDate; monthly billing produces StatementOnly rollups of daily SettlementLinked components. An amount is always returned with a fundingType in scope.
Allowed: Net, Gross
Example: "Net"
netAmount integer required deprecatedDeprecated - read amount instead. This member mirrors amount exactly and cannot hold a different figure. fundingType on this payload states whether that figure is the gross deposit or one already net of withheld fees, and is the only authoritative reading of it. Deprecated on 2026-08-21 and removed one month later in its own release, at which point netAmount also stops being accepted as a filter or sort field.
Its value changed when amount was introduced: for a gross-funded merchant it now reports the gross deposit - the figure that actually reached the bank - so despite its name it is not necessarily a net figure.
Example: 121875
transactionCount integer requiredNumber of settled-transaction line items in the settlement. Always equal to the length of the lineItems array returned by GET /settlements/{settlementId}, which withholds no line.
Example: 42
status string requiredStatus of the settlement.
Settled: The settlement has been deposited to the merchant's bank account.
Adjusted: Reserved value; not currently returned.
Allowed: Settled, Adjusted
Example: "Settled"
transactionId stringThe transaction ID, prefixed with trx_. Absent when matchStatus is Unmatched - look it up via GET /transactions (e.g. ?filters=id==trx_...) for full transaction detail.
Example: "trx_01JZ5EXH9GVK3M7T2QSBWD48RC"
transactionType string requiredThe kind of settled transaction. Treat this list as open: ignore a value your integration does not recognize instead of rejecting the line.
Sale: A sale that deposited funds to the merchant.
Refund: A refund/credit returned to the cardholder or payer (reduces the net deposit).
Capture: The capture/settlement of a previously authorized transaction.
Return: A payout the provider tried to make and could not - for ACH, typically a closed or invalid bank account - so no money reached the merchant. The line exists because the attempt still cost a fee: nothing was disbursed, so for a net-funded rail amount is that fee as a negative, and for a gross-funded one it is zero and the fee is billed separately. Unlike a Refund, no money moved in the first place, so nothing is deducted from the deposit beyond that fee. An ACH entry the bank returns before any money moves is reported the same way, in a settlement for that day, with its fee linked through the line.
Chargeback: Money taken back from the merchant after it was paid out, because the payer's bank returned the payment. Reported for ACH, as a return after funding. amount is negative: the returned amount under gross funding, or the returned amount and the entry's fees under net funding. The line is on the deposit of the day the return settled, and the original sale's line and deposit do not change. transactionDate is the original sale's date. The line matches only a Chargeback transaction: until that transaction exists, matchStatus is Unmatched and transactionId is absent.
See Transaction type for the reporting context.
Allowed: Sale, Refund, Capture, Return, Chargeback
Example: "Sale"
gatewayTransactionId string requiredThe gateway's own transaction ID.
Example: "1120000006864180230"
batchId stringThe processor's own batch number this transaction was settled in (informational). Present for card settlements; absent for providers with no native batch concept (e.g. ACH).
Example: "2616201"
matchStatus string requiredWhether the settled transaction has been matched to an API transaction. A Refund line is matched to the refund transaction, never to the sale it refunds; a refund line that resolves only to a sale is left Unmatched. A Return line keeps its link to the sale whose payout failed.
Unmatched: No transaction has been identified for this settled line; transactionId is absent.
Matched: Automatically matched to a transaction.
ManuallyMatched: Matched to a transaction by manual reconciliation.
Allowed: Unmatched, Matched, ManuallyMatched
Example: "Matched"
invoiceNumber stringPopulated from the matched transaction, when one exists.
Example: "INV-10432"
paymentType stringPopulated from the matched transaction's card type, when one exists.
Example: "Visa"
settlementDate string (date) requiredThe date the transaction was settled - the parent settlement's deposit date.
Example: "2026-07-01"
transactionDate string (date-time)The date the underlying transaction was processed, when reported.
Example: "2026-06-30T18:22:41Z"
amount integer requiredThe settled line amount in minor units. Signed: refunds are negative.
Card Net and Card Gross: the full settled transaction amount before deposit-level fees and reserve adjustments. Card fees are not allocated to individual transaction lines, so fundingType: Net does not make a card line's amount net of those fees.
ACH Net: the disbursed amount less any fees withheld from this line. A zero-disbursement Return can therefore have a negative amount equal to its fee. ACH Gross: the disbursed amount without subtracting separately billed fees; a zero-disbursement line remains zero.
Withheld fees are also itemized by GET /fee-charges. Do not subtract them again from amounts that already include the deduction.
Example: 5000
fundingType string requiredThe parent settlement's funding type, repeated on this line. Read with settlement.type.
For Card Net and Card Gross, this field describes deposit-level fee withholding; the line's amount remains the full settled transaction amount. For ACH Net, line-level fees are withheld where applicable; for ACH Gross, they are billed separately. Funding type alone does not determine fee billing dates.
Allowed: Net, Gross
Example: "Net"
netAmount integer required deprecatedDeprecated - read amount instead. This member mirrors amount exactly. The enclosing settlement's type and fundingType explain the line amount: card lines retain their full settled amounts under both Card Net and Card Gross; ACH Net lines reflect any fees withheld from that line.
Deprecated on 2026-08-21 and removed one month later in its own release, at which point netAmount also stops being accepted as a filter or sort field. Despite its name, it does not necessarily represent an amount after fees.
Example: 5000
currency string requiredAllowed: USD, CAD
Example: "USD"
SettledTransactionsListResponse
Paginated response containing settled transactions
Type: object
totalCount integer requiredTotal number of settled transactions that match the filter criteria
Example: 2
page integer requiredThe current page number (starts at 1)
Example: 1
pageSize integer requiredNumber of items per page
Example: 10
totalPages integer requiredTotal number of pages available
Example: 1
hasNextPage boolean requiredTrue if there are more pages of results available
Example: false
hasPreviousPage boolean requiredTrue if there are previous pages of results available
Example: false
Array of settled transactions for the current page
Child attributes
A summary of a processor-reported transfer of payment proceeds to the merchant's bank account. It identifies the activity grouped into one deposit and reports its date, currency, total amount, rail, and funding type. See Settlement in the glossary.
transactionId stringThe transaction ID, prefixed with trx_. Absent when matchStatus is Unmatched - look it up via GET /transactions (e.g. ?filters=id==trx_...) for full transaction detail.
Example: "trx_01JZ5EXH9GVK3M7T2QSBWD48RC"
transactionType string requiredThe kind of settled transaction. Treat this list as open: ignore a value your integration does not recognize instead of rejecting the line.
Sale: A sale that deposited funds to the merchant.
Refund: A refund/credit returned to the cardholder or payer (reduces the net deposit).
Capture: The capture/settlement of a previously authorized transaction.
Return: A payout the provider tried to make and could not - for ACH, typically a closed or invalid bank account - so no money reached the merchant. The line exists because the attempt still cost a fee: nothing was disbursed, so for a net-funded rail amount is that fee as a negative, and for a gross-funded one it is zero and the fee is billed separately. Unlike a Refund, no money moved in the first place, so nothing is deducted from the deposit beyond that fee. An ACH entry the bank returns before any money moves is reported the same way, in a settlement for that day, with its fee linked through the line.
Chargeback: Money taken back from the merchant after it was paid out, because the payer's bank returned the payment. Reported for ACH, as a return after funding. amount is negative: the returned amount under gross funding, or the returned amount and the entry's fees under net funding. The line is on the deposit of the day the return settled, and the original sale's line and deposit do not change. transactionDate is the original sale's date. The line matches only a Chargeback transaction: until that transaction exists, matchStatus is Unmatched and transactionId is absent.
See Transaction type for the reporting context.
Allowed: Sale, Refund, Capture, Return, Chargeback
Example: "Sale"
gatewayTransactionId string requiredThe gateway's own transaction ID.
Example: "1120000006864180230"
batchId stringThe processor's own batch number this transaction was settled in (informational). Present for card settlements; absent for providers with no native batch concept (e.g. ACH).
Example: "2616201"
matchStatus string requiredWhether the settled transaction has been matched to an API transaction. A Refund line is matched to the refund transaction, never to the sale it refunds; a refund line that resolves only to a sale is left Unmatched. A Return line keeps its link to the sale whose payout failed.
Unmatched: No transaction has been identified for this settled line; transactionId is absent.
Matched: Automatically matched to a transaction.
ManuallyMatched: Matched to a transaction by manual reconciliation.
Allowed: Unmatched, Matched, ManuallyMatched
Example: "Matched"
invoiceNumber stringPopulated from the matched transaction, when one exists.
Example: "INV-10432"
paymentType stringPopulated from the matched transaction's card type, when one exists.
Example: "Visa"
settlementDate string (date) requiredThe date the transaction was settled - the parent settlement's deposit date.
Example: "2026-07-01"
transactionDate string (date-time)The date the underlying transaction was processed, when reported.
Example: "2026-06-30T18:22:41Z"
amount integer requiredThe settled line amount in minor units. Signed: refunds are negative.
Card Net and Card Gross: the full settled transaction amount before deposit-level fees and reserve adjustments. Card fees are not allocated to individual transaction lines, so fundingType: Net does not make a card line's amount net of those fees.
ACH Net: the disbursed amount less any fees withheld from this line. A zero-disbursement Return can therefore have a negative amount equal to its fee. ACH Gross: the disbursed amount without subtracting separately billed fees; a zero-disbursement line remains zero.
Withheld fees are also itemized by GET /fee-charges. Do not subtract them again from amounts that already include the deduction.
Example: 5000
fundingType string requiredThe parent settlement's funding type, repeated on this line. Read with settlement.type.
For Card Net and Card Gross, this field describes deposit-level fee withholding; the line's amount remains the full settled transaction amount. For ACH Net, line-level fees are withheld where applicable; for ACH Gross, they are billed separately. Funding type alone does not determine fee billing dates.
Allowed: Net, Gross
Example: "Net"
netAmount integer required deprecatedDeprecated - read amount instead. This member mirrors amount exactly. The enclosing settlement's type and fundingType explain the line amount: card lines retain their full settled amounts under both Card Net and Card Gross; ACH Net lines reflect any fees withheld from that line.
Deprecated on 2026-08-21 and removed one month later in its own release, at which point netAmount also stops being accepted as a filter or sort field. Despite its name, it does not necessarily represent an amount after fees.
Example: 5000
currency string requiredAllowed: USD, CAD
Example: "USD"
SettledTransactionReference
The settled transaction a per-transaction fee applies to, mirroring that transaction's identity. Present only on per-transaction fees. Combine gatewayTransactionId with the fee's settlementId to locate the settled line via GET /settlements/{settlementId}.
Type: object
transactionId stringThe transaction ID (trx_) of the settled transaction, when that line is matched to a transaction. Absent when matchStatus is Unmatched.
Example: "trx_01JZ5EXH9GVK3M7T2QSBWD48RC"
gatewayTransactionId string requiredThe gateway's own transaction ID of the settled transaction. Always present.
Example: "1620000000770632947"
matchStatus string requiredThe match status of the settled transaction - the same matchStatus reported on that settled transaction.
Unmatched: The settled transaction has no identified transaction; transactionId is absent.
Matched: Automatically matched to a transaction.
ManuallyMatched: Matched to a transaction by manual reconciliation.
Allowed: Unmatched, Matched, ManuallyMatched
Example: "Matched"
FeeCharge
A record of a merchant cost, a pending monthly rollup, or an informational component of that rollup. Its status states whether it has been billed. See Fee charges.
A settlement-linked fee identifies its deposit through settlementId when available. Per-transaction fees can also carry a settledTransaction reference. Statement and invoice fees and monthly rollups have neither direct link; follow a rollup's components to find the underlying settlements and transactions.
Statement, invoice, and rollup charges (source: StatementOnly) are returned only once their billing month is published: on the 10th of the following month. Daily fees and rollup components are never held back. See When monthly fees become visible.
Type: object
id string requiredThe fee charge ID, prefixed with mfc_.
Example: "mfc_01JZ5G4K8WQT2XB7RD9NVMC3EH"
category string requiredWhat kind of fee this is. An open set of strings, not a closed enum. A fee can use a specific fee name or one of the general categories below. New values can be added without an API version change. Treat a value you do not recognise exactly as you treat Other: read description, which carries the wording the provider printed. Do not fail on an unknown value.
General fee categories:
MonthlyService- fees for maintaining the merchant account and related payment services, such as statements, reporting, and gateway services.PciCompliance- fees related to Payment Card Industry (PCI) compliance, including compliance services and non-compliance assessments.OneTimeSetup- one-time fees for setting up a service, such as an account, gateway, or wireless connection.NetworkAssessment- card-network charges passed through to the merchant, such as registration or network participation fees.Equipment- fees for payment terminals and related hardware, including charges for equipment that was not returned.TransactionFee- per-transaction processing costs, including fees assessed on individual settled transactions and per-item or authorization charges billed on a monthly card statement.Other- fees with no more specific classification. Readdescriptionfor the reported fee wording.
Transaction and settlement fees (daily fees have source: SettlementLinked; under monthly billing their rollups have source: StatementOnly):
DailyDiscountFee- the daily discount fee assessed against a card settlement.DailyInterchangeFee- the daily interchange fee assessed against a card settlement.TransactionFee- a per-transaction settlement fee, e.g. an ACH transaction's processing fee.ReturnFee- charged when a payout could not be completed; for ACH, typically a closed or invalid bank account, so no money reached the merchant and this fee is the only thing the attempt produced. Its settled line has atransactionTypeofReturn. The fee of an ACH entry the bank returned is reported asReturnFeewhen the processor reports it as a return fee, otherwise asTransactionFee.ChargebackFee- charged when the payer's bank returns an ACH payment after the funds reached the merchant.descriptionisChargeback fee. ItssettledTransactionis theChargebackline on the deposit of the day the return settled, not the sale's line. Under monthly billing it rolls up under its ownChargebackFeeparent.PerSettlementFee- a flat fee a merchant's pricing applies once to a settlement, independent of what settled in it. Assessed against the deposit rather than any one line, so it carries asettlementIdand nosettledTransaction.
Fees billed on a monthly statement or invoice (source is StatementOnly). Representative examples by general category:
MonthlyService:GatewayService,StatementFee,WebReportsAlerts.PciCompliance:PciFee,NonComplianceAssessment,SaqScanIncomplete.OneTimeSetup:ApplicationFee,GatewaySetup,WirelessActivation.NetworkAssessment:VisaRegistrationFee,McRegistrationFee,PinBasedDebitNetworkFee.Equipment:UnreturnedEquipment.TransactionFee: per-item or authorization charges classified as per-transaction. A named charge uses its specific fee name incategory.Other: an unclassified fee or unrecognized statement wording; readdescription.
A named fee uses its specific value in category, such as GatewayService, rather than the group name MonthlyService. The examples are not an exhaustive list. See Fee examples by category and use each charge's description for its reported wording.
Card processing costs on the statement:
InterchangeAndPassthrough- interchange and the card-network costs the monthly card statement passes through to the merchant, read from the statement lines reported under this category. Typical for cost-plus pricing.DiscountFee- the month's discount as the card statement's summary prints it. Typical for flat-rate pricing.
Both have source: StatementOnly, cover the statement period, and are not tied to a specific settled transaction. DiscountFee differs from DailyDiscountFee, which is one day's discount assessed against a card settlement.
A card statement's charges are reported as printed, one per fee, and include the card fees already withheld from the month's daily deposits, which are also reported as SettlementLinked daily fees. The API does not subtract them. Deduct the period's daily card fees from the statement charges to find the month-end deduction, and do not add the two together. See Card statement charges include the daily fees.
Description wording can vary; use category as the identifier. Changes to pricing or wording do not relabel previously reported fees.
An ACH invoice line that restates daily transaction, return, or per-settlement fees does not create another billed charge. Those amounts are already represented by daily fees or their rollups. Named card statement fees can include per-transaction charges.
Example: "AuthorizationFee"
source string requiredWhere the fee was reported, independently of its billing schedule.
SettlementLinked: a fee from daily settlement activity. It is billed directly under daily billing or is an informational component under monthly billing. Settlement references are present when available; a fee can lack a link if no corresponding deposit is available.
StatementOnly: a fee from a monthly statement or invoice, or a monthly rollup of daily fees. It has no direct settlement or settled-transaction link. Follow a rollup's components for those references.
Use status and chargeDate for billing. Funding type controls whether fees reduce the deposit. Do not deduct a withheld fee from a deposit amount that already includes that deduction.
Allowed: SettlementLinked, StatementOnly
Example: "StatementOnly"
status string requiredBilled fees are charged to the merchant and are the only records returned by the default fee listing.
With includeInformational=true, the listing also returns Pending monthly rollups, which are still accumulating or awaiting their statement or invoice, and Informational daily components, whose amounts are billed through their parent rollup. The components endpoint returns the informational components directly. Only Billed records belong in billed totals. Held and reversed entries are excluded from the public endpoints.
Whatever its status, a StatementOnly record is absent from the listing until its billing month is published, on the 10th of the following month or earlier for the account. Nothing in the response marks the difference; the record appears from that day.
Allowed: Billed, Pending, Informational
Example: "Billed"
currency string requiredAllowed: USD, CAD
Example: "USD"
amount integer (int64) requiredSigned amount in the smallest currency unit. Positive is a charge; negative is money returned to the merchant. A pending rollup amount can change as components arrive. A negative statement charge is a credit the statement applies against the month's fees, not a refund; a statement fee whose lines net to zero is not reported.
Example: 2995
assessmentDate string (date) requiredThe settlement date for a daily fee. For a statement or invoice fee and a rollup, it equals chargeDate. Informational fees are selected by this date when includeInformational=true.
Example: "2026-07-01"
chargeDate string (date) requiredThe date a fee is or will be charged. Daily billing uses assessmentDate; monthly billing uses the first of the following month. Billed and Pending fees are selected by this date. Reaching this date alone does not make a pending rollup billed. A StatementOnly fee is listed only from the publication day of its charge month, the 10th.
Example: "2026-07-01"
periodStart string (date)Start of the period covered by a statement or invoice fee or monthly rollup. Absent on settlement-linked fees, including informational components.
Example: "2026-06-01"
periodEnd string (date)End of the period covered by a statement or invoice fee or monthly rollup. Absent on settlement-linked fees, including informational components.
Example: "2026-06-30"
parentFeeId stringThe monthly rollup's mfc_ ID on an informational component. Absent on other fees. GET /fee-charges/{feeChargeId}/components lists the rollup's components.
pattern "^mfc_[0-9A-HJKMNP-TV-Z]{26}$"
Example: "mfc_01JZ5G9V8MP2TD6QW4N7XC3RKH"
componentFeeCount integer requiredNumber of daily component fees in a rollup. Always returned; 0 on other fees. It is not feeUnitCount.
min 0
Example: 10
feeUnitCount integer (int32)Positive whole-number count printed for a fee on a monthly statement or invoice, such as transactions, items, batches, or accounts. A charge that combines several statement lines reports the sum of their counts. Absent when no valid count was reported, and on daily fees, rollups, and components. Zero, negative, fractional, and out-of-range counts are omitted. Independent of componentFeeCount.
min 1 · max 2147483647
Example: 100
description stringHuman-readable fee wording. It can vary; use category to identify the fee type.
Example: "Monthly service fee - June 2026"
settlementId stringThe related deposit ID, prefixed with stl_, when available on a SettlementLinked fee. Absent on StatementOnly fees and rollups. A link identifies the origin of the fee, not whether it was withheld from the deposit. An ACH per-settlement fee reported before its day's deposit gains this link once that deposit is reported.
Example: "stl_01JZ5F0M3SXA6PDH8YT2M4QWCN"
settledTransaction SettledTransactionReferenceThe settled transaction a per-transaction fee applies to, mirroring that transaction's identity. Present only on per-transaction fees. Combine gatewayTransactionId with the fee's settlementId to locate the settled line via GET /settlements/{settlementId}.
Child attributes
transactionId stringThe transaction ID (trx_) of the settled transaction, when that line is matched to a transaction. Absent when matchStatus is Unmatched.
Example: "trx_01JZ5EXH9GVK3M7T2QSBWD48RC"
gatewayTransactionId string requiredThe gateway's own transaction ID of the settled transaction. Always present.
Example: "1620000000770632947"
matchStatus string requiredThe match status of the settled transaction - the same matchStatus reported on that settled transaction.
Unmatched: The settled transaction has no identified transaction; transactionId is absent.
Matched: Automatically matched to a transaction.
ManuallyMatched: Matched to a transaction by manual reconciliation.
Allowed: Unmatched, Matched, ManuallyMatched
Example: "Matched"
feeBreakdown SettlementFeeBreakdownOptional breakdown of the components of a fee charge. Only the components that apply to a given fee are present. Components are signed integers in minor units; positive values are charges and negative values are credits.
Child attributes
discountFee integerProcessing/discount fee component, smallest denomination.
originationFee integerACH origination fee, smallest denomination.
returnFee integerACH return fee - charged when a transaction is returned/reversed post-settlement. Smallest denomination.
interchangeFee integerCard-network interchange fee, in minor units.
otherFee integerProvider-specific catch-all for fee components not otherwise modeled.
FeeChargesListResponse
Paginated response containing merchant fee charges
Type: object
totalCount integer requiredTotal number of fee charges that match the filter criteria
Example: 2
page integer requiredThe current page number (starts at 1)
Example: 1
pageSize integer requiredNumber of items per page
Example: 10
totalPages integer requiredTotal number of pages available
Example: 1
hasNextPage boolean requiredTrue if there are more pages of results available
Example: false
hasPreviousPage boolean requiredTrue if there are previous pages of results available
Example: false
Array of fee charges for the current page
Child attributes
id string requiredThe fee charge ID, prefixed with mfc_.
Example: "mfc_01JZ5G4K8WQT2XB7RD9NVMC3EH"
category string requiredWhat kind of fee this is. An open set of strings, not a closed enum. A fee can use a specific fee name or one of the general categories below. New values can be added without an API version change. Treat a value you do not recognise exactly as you treat Other: read description, which carries the wording the provider printed. Do not fail on an unknown value.
General fee categories:
MonthlyService- fees for maintaining the merchant account and related payment services, such as statements, reporting, and gateway services.PciCompliance- fees related to Payment Card Industry (PCI) compliance, including compliance services and non-compliance assessments.OneTimeSetup- one-time fees for setting up a service, such as an account, gateway, or wireless connection.NetworkAssessment- card-network charges passed through to the merchant, such as registration or network participation fees.Equipment- fees for payment terminals and related hardware, including charges for equipment that was not returned.TransactionFee- per-transaction processing costs, including fees assessed on individual settled transactions and per-item or authorization charges billed on a monthly card statement.Other- fees with no more specific classification. Readdescriptionfor the reported fee wording.
Transaction and settlement fees (daily fees have source: SettlementLinked; under monthly billing their rollups have source: StatementOnly):
DailyDiscountFee- the daily discount fee assessed against a card settlement.DailyInterchangeFee- the daily interchange fee assessed against a card settlement.TransactionFee- a per-transaction settlement fee, e.g. an ACH transaction's processing fee.ReturnFee- charged when a payout could not be completed; for ACH, typically a closed or invalid bank account, so no money reached the merchant and this fee is the only thing the attempt produced. Its settled line has atransactionTypeofReturn. The fee of an ACH entry the bank returned is reported asReturnFeewhen the processor reports it as a return fee, otherwise asTransactionFee.ChargebackFee- charged when the payer's bank returns an ACH payment after the funds reached the merchant.descriptionisChargeback fee. ItssettledTransactionis theChargebackline on the deposit of the day the return settled, not the sale's line. Under monthly billing it rolls up under its ownChargebackFeeparent.PerSettlementFee- a flat fee a merchant's pricing applies once to a settlement, independent of what settled in it. Assessed against the deposit rather than any one line, so it carries asettlementIdand nosettledTransaction.
Fees billed on a monthly statement or invoice (source is StatementOnly). Representative examples by general category:
MonthlyService:GatewayService,StatementFee,WebReportsAlerts.PciCompliance:PciFee,NonComplianceAssessment,SaqScanIncomplete.OneTimeSetup:ApplicationFee,GatewaySetup,WirelessActivation.NetworkAssessment:VisaRegistrationFee,McRegistrationFee,PinBasedDebitNetworkFee.Equipment:UnreturnedEquipment.TransactionFee: per-item or authorization charges classified as per-transaction. A named charge uses its specific fee name incategory.Other: an unclassified fee or unrecognized statement wording; readdescription.
A named fee uses its specific value in category, such as GatewayService, rather than the group name MonthlyService. The examples are not an exhaustive list. See Fee examples by category and use each charge's description for its reported wording.
Card processing costs on the statement:
InterchangeAndPassthrough- interchange and the card-network costs the monthly card statement passes through to the merchant, read from the statement lines reported under this category. Typical for cost-plus pricing.DiscountFee- the month's discount as the card statement's summary prints it. Typical for flat-rate pricing.
Both have source: StatementOnly, cover the statement period, and are not tied to a specific settled transaction. DiscountFee differs from DailyDiscountFee, which is one day's discount assessed against a card settlement.
A card statement's charges are reported as printed, one per fee, and include the card fees already withheld from the month's daily deposits, which are also reported as SettlementLinked daily fees. The API does not subtract them. Deduct the period's daily card fees from the statement charges to find the month-end deduction, and do not add the two together. See Card statement charges include the daily fees.
Description wording can vary; use category as the identifier. Changes to pricing or wording do not relabel previously reported fees.
An ACH invoice line that restates daily transaction, return, or per-settlement fees does not create another billed charge. Those amounts are already represented by daily fees or their rollups. Named card statement fees can include per-transaction charges.
Example: "AuthorizationFee"
source string requiredWhere the fee was reported, independently of its billing schedule.
SettlementLinked: a fee from daily settlement activity. It is billed directly under daily billing or is an informational component under monthly billing. Settlement references are present when available; a fee can lack a link if no corresponding deposit is available.
StatementOnly: a fee from a monthly statement or invoice, or a monthly rollup of daily fees. It has no direct settlement or settled-transaction link. Follow a rollup's components for those references.
Use status and chargeDate for billing. Funding type controls whether fees reduce the deposit. Do not deduct a withheld fee from a deposit amount that already includes that deduction.
Allowed: SettlementLinked, StatementOnly
Example: "StatementOnly"
status string requiredBilled fees are charged to the merchant and are the only records returned by the default fee listing.
With includeInformational=true, the listing also returns Pending monthly rollups, which are still accumulating or awaiting their statement or invoice, and Informational daily components, whose amounts are billed through their parent rollup. The components endpoint returns the informational components directly. Only Billed records belong in billed totals. Held and reversed entries are excluded from the public endpoints.
Whatever its status, a StatementOnly record is absent from the listing until its billing month is published, on the 10th of the following month or earlier for the account. Nothing in the response marks the difference; the record appears from that day.
Allowed: Billed, Pending, Informational
Example: "Billed"
currency string requiredAllowed: USD, CAD
Example: "USD"
amount integer (int64) requiredSigned amount in the smallest currency unit. Positive is a charge; negative is money returned to the merchant. A pending rollup amount can change as components arrive. A negative statement charge is a credit the statement applies against the month's fees, not a refund; a statement fee whose lines net to zero is not reported.
Example: 2995
assessmentDate string (date) requiredThe settlement date for a daily fee. For a statement or invoice fee and a rollup, it equals chargeDate. Informational fees are selected by this date when includeInformational=true.
Example: "2026-07-01"
chargeDate string (date) requiredThe date a fee is or will be charged. Daily billing uses assessmentDate; monthly billing uses the first of the following month. Billed and Pending fees are selected by this date. Reaching this date alone does not make a pending rollup billed. A StatementOnly fee is listed only from the publication day of its charge month, the 10th.
Example: "2026-07-01"
periodStart string (date)Start of the period covered by a statement or invoice fee or monthly rollup. Absent on settlement-linked fees, including informational components.
Example: "2026-06-01"
periodEnd string (date)End of the period covered by a statement or invoice fee or monthly rollup. Absent on settlement-linked fees, including informational components.
Example: "2026-06-30"
parentFeeId stringThe monthly rollup's mfc_ ID on an informational component. Absent on other fees. GET /fee-charges/{feeChargeId}/components lists the rollup's components.
pattern "^mfc_[0-9A-HJKMNP-TV-Z]{26}$"
Example: "mfc_01JZ5G9V8MP2TD6QW4N7XC3RKH"
componentFeeCount integer requiredNumber of daily component fees in a rollup. Always returned; 0 on other fees. It is not feeUnitCount.
min 0
Example: 10
feeUnitCount integer (int32)Positive whole-number count printed for a fee on a monthly statement or invoice, such as transactions, items, batches, or accounts. A charge that combines several statement lines reports the sum of their counts. Absent when no valid count was reported, and on daily fees, rollups, and components. Zero, negative, fractional, and out-of-range counts are omitted. Independent of componentFeeCount.
min 1 · max 2147483647
Example: 100
description stringHuman-readable fee wording. It can vary; use category to identify the fee type.
Example: "Monthly service fee - June 2026"
settlementId stringThe related deposit ID, prefixed with stl_, when available on a SettlementLinked fee. Absent on StatementOnly fees and rollups. A link identifies the origin of the fee, not whether it was withheld from the deposit. An ACH per-settlement fee reported before its day's deposit gains this link once that deposit is reported.
Example: "stl_01JZ5F0M3SXA6PDH8YT2M4QWCN"
settledTransaction SettledTransactionReferenceThe settled transaction a per-transaction fee applies to, mirroring that transaction's identity. Present only on per-transaction fees. Combine gatewayTransactionId with the fee's settlementId to locate the settled line via GET /settlements/{settlementId}.
feeBreakdown SettlementFeeBreakdownOptional breakdown of the components of a fee charge. Only the components that apply to a given fee are present. Components are signed integers in minor units; positive values are charges and negative values are credits.
TransactionStatus
The processing lifecycle, separate from approval or decline. Pending waits for customer input; Submitted, Acknowledged, and Processing are in flight; AwaitingSettlement waits for a bank transfer outcome. Completed can be approved or declined: inspect resultCode and transactionResponses[].responseCode. Failed means processing stopped because of a technical issue. Abandoned means the customer did not complete the flow before submission. Both states close the request.
Type: string
Allowed: Unknown, Created, Pending, Submitted, Acknowledged, Processing, AwaitingSettlement, Completed, Failed, Abandoned
ThreeDsChallenge
Present when a token payment requires a cardholder challenge (resultCode: 4100).
Type: object
redirectUrl string (uri) requiredHosted URL where the cardholder completes the challenge.
followUpToken string requiredOpaque token identifying the pending challenge.