
Prerequisites — Register a Counter (POS Terminal)
Each physical terminal should be registered once. This enables per-terminal reporting and ties scan-payment transactions to a specific terminal.POST /merchant/api/v1/counters
Save webhook_secret — you will use it to verify incoming webhooks for this terminal. Treat it like a password.
Initiate a Scan Payment
POST /merchant/api/v1/scan-payment
| Field | Type | Required | Description |
|---|---|---|---|
scan_token | string | ✅ | Value decoded from the customer’s wallet QR |
counter_id | string | ✅ | ID of the scanning terminal |
amount | float | ✅ | Charge amount |
currency | string | — | Default: USD |
expires_in | integer | — | Seconds for customer to approve. Default: 300 |
description | string | — | Shown to customer in push notification |
reference | string | — | Your internal order or invoice ID |
callback_url | string | — | URL to receive the payment.completed webhook |
201 Created:
payment.completed webhook to your callback_url.