Tino Developers
POST/service/@id/tinopay/sapo-integrations

Create a Sapo integration

The buyer transfers with content holding the order code (prefix + Sapo order number, e.g. TNG1002 for order #1002): when the amount is enough or more, TinoPay marks the order paid on Sapo. Body: name (≤ 100 characters), store_url (the store's .mysapo.net domain; custom domains are not accepted), api_key, api_secret (private app on Sapo with read and write access to orders and transactions), bank_account_id, virtual_account (required for BIDV), order_prefix (2–5 letters or digits; when missing from the payment code patterns, TinoPay adds a pattern with a 1–12 digit suffix), transaction (kind, source_name, status), status. TinoPay tests the Sapo connection before saving; on failure 422 SAPO_CONNECTION_FAILED and nothing is created. Paste the returned snippet into Sapo Admin → Cấu hình → Trang thanh toán (Settings → Checkout), the additional message field.

Merchant API · Updated 2026-10-22View .md

A TinoPay service route: call it with the service owner's sign-in token; the /v1 gateway (app tokens, personal tokens) does not expose TinoPay yet. See Getting started with TinoPay.

Authentication

Send the token in the header Authorization:

Authorization: Bearer <token>

Tokens that can call it: the TinoPay service owner's sign-in token (the tino.vn client area token).

Parameters

Path parameters

NameTypeRequiredDescription
idintRequiredTinoPay service ID

Body (JSON)

NameTypeRequiredDescription
namestringRequired≤ 100
store_urlstringRequired<tên-cửa-hàng>.mysapo.net (tên miền riêng không nhận)
api_keystringRequired—
api_secretstringRequired—
bank_account_idstringRequired—
virtual_accountstring—Bắt buộc với BIDV
order_prefixstringRequired2–5 chữ/số
transactionarray——
statusstring—active | inactive

Response

Sample built from the TinoPay API v1 documentation (Tino relays TinoPay data as is); values are examples.

Error codes

Error codeDescription
404 · service_not_found, invalid methodThe service does not belong to the signed-in account, or is not TinoPay.
403 · service_not_activeThe service is neither Active nor Suspended.
403 · MERCHANT_SUSPENDEDThe merchant is suspended: writes are blocked, GET still works.
404 · RESOURCE_NOT_FOUNDThe resource does not exist or does not belong to the merchant.
422 · VALIDATION_FAILEDInvalid data; details lists the fields.
502 · NETWORK_ERROR…, 504The connection between Tino and the partner is interrupted (504: HTML body, request took too long): a Tino-side error, not a token problem. Keep the token, retry later.

Errors look like {"error": ["<CODE>"], "message", "details", "request_id"}; every code is in Getting started with TinoPay.