Pay QR codes like a local across Asia, Africa and Latin America.
This collection includes all HTTP endpoints for the SQRIL SaaS payout system:
- Customer registration and profile management (registerCustomer/checkCustomer/updateCustomer)
- QR code decoding (decodeQr)
- Payout execution (executePayout)
- Payment provider integrations
- Transaction management
- Account webhook notifications
Currency precision (request amounts)
Pass amounts as JSON numbers in standard currency units:
decodeQr, getQuotation, and executePayout response formatting
USD fields in JSON responses from those endpoints:
fee(total SaaS fee in USD),percentage_fee,fixed_fee,amount_usd: 2 decimal placesexchange_rate: 10 decimal places (source currency → USD)
Where pricing is returned, fee equals percentage_fee + fixed_fee (within rounding). Older transactions may omit the breakdown.
Stored transaction data may keep higher precision; these limits apply to the HTTP response body.
All endpoints are RESTful HTTP endpoints.
Customer flow (required):
- Call
registerCustomerand store the returnedcustomer_id. - (Optional) Call
checkCustomer/updateCustomerto verify or update profile data. - Use the same
customer_idindecodeQr,getQuotation, andexecutePayout. getQuotationandexecutePayoutenforce thattx_idbelongs to the samecustomer_id.
These are the sender fields currently required by the local providers to execute a payment transaction.
Sender Fields
This is a one-time call that will allow your customer to transact in any regions you integrated with.
Asia: VN, PH, TH, KH, ID. Latin America: AR, BR, CO, BO, PE, PY. Africa: KE, TZ, UG.
* Collected once through registerCustomer. Each country column lists every field a payout to that country needs. A field marked N at registration but Y for a country can be sent at registration or added later with updateCustomer before the first payout there.
Sender Field Definition
All fields are required except gender, phone, email and nationality, which some corridors ask for; executePayout returns them as missing_fields when a corridor needs them (nationality: Vietnam). Thailand also needs the sender’s email, and a payout to Thailand without one is refused.
Occupation List
Identification Card List
Funding and balance timing
Payouts draw from your account balance, never from a specific deposit. A stablecoin deposit to your assigned receiving address is credited to your balance a few minutes after it confirms on chain, not at the moment of confirmation.
If your flow collects the customer’s funds first and calls executePayout immediately after the on-chain confirmation, the call can arrive before the credit and fail on balance. Check getAccountBalances shows the deposit before calling executePayout, or keep a small standing balance.
On TON, your deposit address comes with a memo, shown under it on your Balance page. Send USDT to the address and put the memo, exactly as shown, in the transfer’s comment field (wallets and exchanges also call it memo, tag or note). Do not paste the memo into the address field. A transfer without the memo reaches the wallet but cannot be credited to your balance.
A quotation that expires before executePayout locks nothing: the balance stays available and the same payment can be re-run from decodeQr. Deposits are not returned per transaction; the balance is what you spend.
