Pay on terminal
Send a sale transaction request to a physical terminal (BridgePay or Strictly). The terminal will activate and wait for a card payment.
Strictly merchants (asynchronous): the response contains msgIdentifier and pollUrl. Poll GET /public/terminal/processed-messages/{messageId}; complete means the gateway answered — read the payment via its paymentId to see whether it was approved or declined. timeout is not final; do not auto-retry (risk of duplicate charge).
BridgePay merchants (synchronous): the final result is returned directly (transactionId, no msgIdentifier).
error: true can be returned inside a 2xx response.
Required fields: terminalId, amount (integer cents, 1000 = $10.00), receipt (true/false).
Optional: orderNumber, email / phone (when receipt=true: Strictly uses email over phone when both are sent; BridgePay needs both), customValues array, taxes (array of tax IDs forwarded to Strictly).
Errors: 400 validation error or inactive terminal; 401 terminal not owned by the merchant / API user has no access to the terminal; 404 merchant has no BridgePay access or terminal not found (BridgePay); 429 rate limit; 501 declined by the gateway before a transaction id was issued (BridgePay).
Headers
key-hashSecurity key hash issued to your integration (merchant dashboard: Administration → Security Keys).
Pay on terminal › Request Body
terminalIdTerminal id
amountInteger amount in cents (1000 = $10.00). Base amount; surcharge/tax may be added by the processor.
receiptReceipt
clientIdIgnored. Derived from your API key (key-hash).
orderNumberOrder number
emailUser email
phone^[+]?[(]?[0-9]{3}[)]…Phone number for the SMS receipt
Custom values ({ key, label, value }) forwarded with the transaction.
taxesList of tax IDs (Mongo ObjectIds) to apply to this transaction
Pay on terminal › Responses
Request accepted. Strictly: poll processed-messages for the result. BridgePay: final result returned synchronously.
dataPre-auth on terminal
Send a pre-authorization request to a terminal. Reserves funds without capturing. Call POST /public/terminal/capture to settle the pre-authorized amount. Same parameters as /pay: terminalId, amount (integer cents), receipt, and optional orderNumber, email, phone, customValues, taxes.
Same response semantics as /pay: asynchronous for Strictly merchants (msgIdentifier + pollUrl, poll processed-messages; timeout is not final), synchronous for BridgePay merchants (transactionId). error: true can be returned inside a 2xx response.
Errors: 400 validation error or inactive terminal; 401 terminal not owned by the merchant / API user has no access to the terminal; 404 merchant has no BridgePay access or terminal not found (BridgePay); 429 rate limit; 501 declined by the gateway before a transaction id was issued (BridgePay).
Headers
key-hashSecurity key hash issued to your integration (merchant dashboard: Administration → Security Keys).
Pre-auth on terminal › Request Body
terminalIdTerminal id
amountInteger amount in cents (1000 = $10.00). Base amount; surcharge/tax may be added by the processor.
receiptReceipt
clientIdIgnored. Derived from your API key (key-hash).
orderNumberOrder number
emailUser email
phone^[+]?[(]?[0-9]{3}[)]…Phone number for the SMS receipt
Custom values ({ key, label, value }) forwarded with the transaction.
taxesList of tax IDs (Mongo ObjectIds) to apply to this transaction
Pre-auth on terminal › Responses
Auth request accepted. Strictly: poll processed-messages for the result. BridgePay: final result returned synchronously.
Capture on terminal
Capture a pre-authorized terminal transaction. Synchronous — the result is returned directly and is not pollable. Provide terminalId, pnRefNum (gateway transaction id of the pre-auth payment) and amount (integer cents).
Errors: 400 validation error, no payment with that pnRefNum, or the payment is not an open pre-auth (BridgePay); 401 terminal not owned by the merchant / API user has no access to the terminal; 404 not found; 429 rate limit.
Headers
key-hashSecurity key hash issued to your integration (merchant dashboard: Administration → Security Keys).
Capture on terminal › Request Body
terminalIdTerminal id
pnRefNumGateway transaction id (transactions[].transactionId of the pre-auth/sale payment). BridgePay returns it synchronously; on Strictly poll the message, fetch the payment, then read it.
amountInteger amount in cents (1000 = $10.00), max 10000000 (100,000.00). Base amount; surcharge/tax may be added by the processor.
clientIdIgnored. Derived from your API key (key-hash).
Capture on terminal › Responses
Capture processed.
Void on terminal
Void a terminal transaction that has not yet been settled. Synchronous — the result is returned directly and is not pollable. Provide terminalId and pnRefNum (gateway transaction id of the original pay/auth payment).
Errors: 400 validation error, no payment with that pnRefNum, or the payment is already voided (BridgePay); 401 terminal not owned by the merchant / API user has no access to the terminal; 404 not found; 429 rate limit.
Headers
key-hashSecurity key hash issued to your integration (merchant dashboard: Administration → Security Keys).
Void on terminal › Request Body
terminalIdTerminal id
pnRefNumGateway transaction id (transactions[].transactionId of the pre-auth/sale payment). BridgePay returns it synchronously; on Strictly poll the message, fetch the payment, then read it.
clientIdIgnored. Derived from your API key (key-hash).
Void on terminal › Responses
Void processed.
Refund on terminal
Refund a terminal transaction. Synchronous — the result is returned directly and is not pollable. Provide terminalId, pnRefNum (gateway transaction id) and amount (integer cents, 1000 = $10.00).
Errors: 400 validation error, no payment with that pnRefNum, or the payment is an un-captured auth, voided or already fully refunded (BridgePay); 401 terminal not owned by the merchant / API user has no access to the terminal; 404 not found; 429 rate limit.
Headers
key-hashSecurity key hash issued to your integration (merchant dashboard: Administration → Security Keys).
Refund on terminal › Request Body
terminalIdTerminal id
pnRefNumGateway transaction id (transactions[].transactionId of the pre-auth/sale payment). BridgePay returns it synchronously; on Strictly poll the message, fetch the payment, then read it.
amountInteger amount in cents (1000 = $10.00), max 10000000 (100,000.00). Base amount; surcharge/tax may be added by the processor.
clientIdIgnored. Derived from your API key (key-hash).
Refund on terminal › Responses
Refund processed.
Close batch on terminal
Close the current open settlement batch for a terminal. Synchronous — not pollable. Triggers settlement processing for all captured transactions in that batch. Provide terminalId in the request body. HTTP 2xx alone does not mean success: check status and gwResponse.resultTxt (BridgePay) or data.success / data.message (Strictly) in the response.
Errors: 400 validation error, inactive terminal or gateway failure; 401 terminal not owned by the merchant / API user has no access to the terminal; 404 merchant has no BridgePay access or terminal not found (BridgePay); 429 rate limit.
Headers
key-hashSecurity key hash issued to your integration (merchant dashboard: Administration → Security Keys).
Close batch on terminal › Request Body
terminalIdTerminal id
clientIdIgnored. Derived from your API key (key-hash).
Close batch on terminal › Responses
Batch closed.
Close batch by terminal serial number (device login)
Prefer POST /public/terminal/close-batch. Close the settlement batch specifically for Strictly-native terminals. Synchronous — not pollable. terminalId is the terminal serial number.
Errors: 400 terminal login or close-batch failure upstream; 401 bad credentials.
Headers
key-hashSecurity key hash issued to your integration (merchant dashboard: Administration → Security Keys).
Close batch by terminal serial number (device login) › Request Body
terminalIdTerminal serial number (not the terminal id used by other terminal endpoints)
Close batch by terminal serial number (device login) › Responses
Batch closed.
List terminals
List the payment terminals of the authenticated merchant. BridgePay merchants receive a paginated { meta, data } response. Strictly merchants receive { data, total } with every terminal (each row includes serialNumber and isActive); page, limit and timezone are ignored.
query Parameters
pagePage number (BridgePay merchants only; ignored for Strictly).
limitItems per page (BridgePay merchants only; ignored for Strictly).
clientIdIgnored. Derived from your API key (key-hash).
timezoneIANA timezone name, e.g. America/New_York (forwarded for BridgePay merchants only; ignored for Strictly).
Headers
key-hashSecurity key hash issued to your integration (merchant dashboard: Administration → Security Keys).
List terminals › Responses
Terminals list. BridgePay: paginated { meta, data }. Strictly: { data, total }.
Poll terminal message status
Poll for the result of an asynchronous terminal operation (Strictly merchants only) using the msgIdentifier returned by /pay and /auth. Capture, void, refund and close-batch are synchronous and not pollable.
Processing statuses: received → processing → complete | failed | timeout. complete means the gateway answered — read the payment via paymentId to see whether it was approved or declined. timeout is not final; do not auto-retry (risk of duplicate charge). A pending sale cannot be cancelled through this API.
Rate limited to 120 requests per minute.
path Parameters
messageIdMessage identifier (msgIdentifier) returned by a terminal operation
Headers
key-hashSecurity key hash issued to your integration (merchant dashboard: Administration → Security Keys).
Poll terminal message status › Responses
Processed message details: status (received | processing | complete | failed | timeout) and, once complete, the paymentId to read the payment outcome from.
data
