All payment endpoints require a valid Bearer token in the
Authorization header.Resolve scan link
POST /v2/scan-link
Resolves a raw QR code string scanned by the device camera. The response shape varies depending on whether the QR encodes a merchant payment link, a user profile link, or a fixed-amount payment URL.
Request body
The raw string value read from the QR code.
Response
true if the QR encodes a merchant/cashier payment link where the user enters the amount. false if it encodes a fixed-amount payment or a user profile.Present when the QR code encodes a user profile. When
user_id is set and is_string is false, the client navigates to the scanned user’s profile instead of the payment flow.Confirm payment with PIN
POST /v2/confirm_payment_with_pin
Finalises a payment that was initiated from a QR code scan. The user confirms by entering their 4-digit PIN. On success, the dashboard and transaction history caches are invalidated.
Request body
The user’s 4-digit PIN.
The type of payment link:
"string" for merchant payments or "url" for fixed-amount payments. When link_type is "string", the merchant and cashier objects from the scan response are omitted.The merchant’s numeric ID. Required when
link_type is "string".The cashier’s numeric ID. Required when
link_type is "string".The payment amount entered by the user.
The payment record ID. Required when
link_type is "url".Optional note for the payment.
Payment request action
POST /v2/payment-request-action
Approves or rejects an incoming payment request (such as a request from a merchant terminal). The user must enter their PIN to authorise the action. On success, the dashboard and transaction history caches are invalidated.
Request body
The user’s 4-digit PIN.
The transaction UUID (
txn_uid) of the pending payment request.The action to take. Must be
"approve" or "reject".Response
Timestamp of when the action was processed.
A human-readable confirmation message.