Overview
Last general docs update: 2026-09-26
This API is used to:
- accept customer payments (pay-ins / collections),
- send payouts to customers, partners, or beneficiaries (pay-outs / disbursements),
- track payment lifecycle via webhooks and status polling.
Links
- Swagger UI is available in top navigation under
Swagger UI. - Swagger UI: Merchant API
- Canonical machine-readable spec:
merchants.swagger.json
What you need before integration
- API keys (
pk_*for public endpoints,sk_*for authenticated merchant operations). - A webhook URL configured for each realm.
- A stable
merchantReferencestrategy on your side.
Quick start (5 steps)
- Choose the
liveorsandboxrealm and configure keys: Environments, Authentication - Review request/response rules: Conventions
- Discover the markets enabled for your account with
GET /merchant/api/v1/catalog: identify the country, currency, and method family for the flow you are implementing - Implement the selected flow and request details: Choose a flow, Pay-ins, Mobile money transfer, Payouts, Payment methods, and the Endpoint index
- Add webhook verification and idempotent processing: Webhooks
Authorized merchant users can rotate API credentials and manage webhook settings in the Merchant Portal.
Integrator workflow
- Use sidebar navigation for structured reading by topic.
- Use
Cmd/Ctrl + Ksearch for terms such asAuthentication,Webhook,PAYMENT_METHOD,balances. - Use the page
Copymenu to copy or open the current page markdown in ChatGPT/Claude.
API URL and realms
Live and sandbox requests use the same Merchant API URL:
https://merchants-api.tcpay.io
Use *_prod_* keys for the live realm and *_test_* keys for the sandbox
realm. The key selects the isolated data scope; there is no separate development
host.
All endpoints are relative to the base URL. Use the exact versioned path shown on the relevant API reference page.
Available countries, currencies, and method families depend on the realm and
your merchant account. Start with GET /merchant/api/v1/catalog to identify the
markets enabled for the selected realm, then use the relevant bank or operator
discovery endpoint with the same request context you will use for the payment
flow. Use Payment methods and Flows to build the
final request payloads.
Documentation structure
- Getting started: Environments, Authentication, Merchant Portal, Conventions
- Discovery: Coverage, Catalog and availability, Payment methods, Mobile money operators
- Guides: Choose a flow, Pay-ins, Mobile money transfer, Payouts, Balances, Payment lifecycle, Webhooks
- API reference: Endpoint index, Object index, Errors
- Compatibility & changes: Forward compatibility, Changelog