Tino Developers
PUT/service/@id/tinopay/pay-codes

Save payment code patterns

Replaces the whole list: body {"pay_codes": [...]} sends every existing pattern plus the new ones, [] removes all; at most 20 patterns. prefix 2–5 letters or digits (stored upper case, unique), suffix_from ≤ suffix_to within 1–30, character_type NumberOnly or NumberAndLetter. Returns the list after saving. Dropping a prefix a Sapo integration uses: 409 RESOURCE_IN_USE, details.prefixes lists those prefixes.

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
pay_codesarrayRequired—

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.