Payments

Process payments and save manual transactions. Requires the payments:direct scope. Supported currencies: NZD (New Zealand Dollar) and AUD (Australian Dollar).

POST/api/v1/{system}/payNow🔒 payments:direct

Process a payment through a terminal's configured gateway. Tenant ownership is validated server-side.

Auth: Bearer JWT

Request Body

FieldTypeRequiredDescription
grandTotalstringYesDecimal amount (e.g. '10.00')
referenceIdstringYesUnique transaction reference (must be unique per merchant)
branchIdlongYesBranch user ID
configIdlongYesTerminal config ID (from listTerminals)
channelstringNoWECHAT, ALIPAY, UNION_PAY, CENTRAPAY, etc.
authCodestringNoQR scan code (required when qrMode=false)
qrModebooleanNotrue = generate QR for customer to scan

Response Example

{
  "status": true,
  "paymentStatus": "SUCCESS",
  "referenceId": "REF-001",
  "tradeNo": "TRADE-123",
  "grandTotal": "10.00",
  "channel": "WECHAT",
  "currency": "NZD"
}
⚠️ Live testing disabled for this endpoint — it modifies data. Use curl or the SDK against your sandbox.
POST/api/v1/{system}/saveTransaction🔒 payments:direct

Save a manually recorded transaction (e.g. cash or external payment).

Auth: Bearer JWT

Request Body

FieldTypeRequiredDescription
grandTotalstringYesDecimal amount
referenceIdstringYesUnique reference
branchIdlongYesBranch user ID
configIdlongYesTerminal config ID
channelstringYesPayment channel (e.g. CASH)
⚠️ Live testing disabled for this endpoint — it modifies data. Use curl or the SDK against your sandbox.