Skip to main content

Environments

Last updated: 2026-08-30

The Merchant API uses one public base URL:

https://merchants-api.tcpay.io

There is no separate development API host. Live and sandbox traffic use the same URL and are isolated by the financial realm selected by the API key.

RealmKey formatUse it for
livepk_prod_* / sk_prod_*Real customer payments, balances, and webhook deliveries
sandboxpk_test_* / sk_test_*Isolated integration testing and test data

The realm is selected by the key, not by a different hostname. Use the same API URL with the key set for the realm you intend to access. See Authentication for public-key and secret-key permissions. The Merchant Portal uses the same Live and Sandbox split for API credentials and webhook configuration.

All endpoints are relative to the base URL. Paths are versioned per endpoint, so use the exact path shown in the relevant API reference instead of inferring one version for the whole API. For example:

  • discovery and payment-flow operations currently use /merchant/api/v1/...;
  • balance reads use GET /merchant/api/v2/balances and GET /merchant/api/v2/balances/history.

Use Coverage for the product market list. Available countries, currencies, and method families can differ by realm and merchant account.

Orange direct pay-ins in the nine markets listed in Orange OTP continuation use that OTP flow when the create response returns isOtpAuthRequired: true. Availability is account- and realm-specific: use ORANGE only when discovery returns it for the current account and realm. There is no separate Orange OTP activation.

Start discovery with these endpoints:

  • GET /merchant/api/v1/catalog
  • GET /merchant/api/v1/payins/banks
  • GET /merchant/api/v1/payins/mmo
  • GET /merchant/api/v1/payouts/banks
  • GET /merchant/api/v1/payouts/mmo

Call GET /merchant/api/v1/catalog first to retrieve the markets enabled for your account. Then call the bank and operator discovery endpoints for the country, method, and request context you plan to use. Use Payment methods, Mobile money, and Flows to build the final request shape for your integration.

The API accepts customerSegment on payout discovery requests for request consistency. Use the same segment value in discovery and creation when your integration classifies customer traffic by segment.