Merchant hierarchy
TagPay supports a two-level merchant structure:- Main merchant — Your primary business account. It authenticates to the API, manages access keys, and can create subsidiary merchants.
- Subsidiary merchant — A child merchant created and owned by a main merchant. Subsidiaries operate independently but inherit configuration (charges, limits) from the parent unless overridden.
Only a main merchant can create subsidiary merchants. Subsidiaries cannot themselves create further subsidiaries.
Creating a subsidiary merchant
Send aPOST request to /merchant/subsidiary. You must be authenticated as a main merchant.
Account modes
Every merchant account operates in one of two modes:| Mode | Purpose |
|---|---|
SANDBOX | Testing environment — no real money moves. You can fund the sandbox wallet freely. |
PRODUCTION | Live environment — real transactions. Requires completed KYC and account activation. |
Switching modes
Switch between modes by sending aPOST request to /merchant/account-mode. Your account must have a review status of ENABLED before you can switch to PRODUCTION.
Access keys
TagPay issues two keys per merchant per mode:| Key | Usage |
|---|---|
| Public key | Identifies your merchant in client-side or read-only contexts |
| Private key | Signs webhook payloads — use this as the HMAC secret to verify incoming webhook signatures. Keep it secret. |
Retrieving your keys
You can retrieve your key from the dashboardGenerating new keys
If your private key is compromised, generate a new key pair immediately. The old keys are invalidated.Generating new keys invalidates the old private key immediately. Update any webhook verification logic that uses the old key.
Fee configuration
TagPay lets you configure how fees are applied to transactions processed under your merchant account. You can define fees as a fixed amount or a percentage, and set minimum and maximum caps. Supported transaction types for fee configuration:BANK_TRANSFERCUSTOMER_BANK_TRANSFERWALLET_TO_WALLET_TRANSFERWALLET_RESERVATIONBATCH_BANK_TRANSFERBATCH_WALLET_TRANSFER
Creating a fee configuration
GET /merchant/fee-config to list all active fee configurations and POST /merchant/calculate-fees to preview what a fee will be for a given amount before committing to a transaction.
Transaction limits
Limits control the maximum amount a merchant or its customers can transact within a period. Limits are scoped per tier:| Field | Description |
|---|---|
tier_1_daily_limit | Maximum daily transaction volume for Tier 1 customers |
tier_2_daily_limit | Maximum daily transaction volume for Tier 2 customers |
tier_3_daily_limit | Maximum daily transaction volume for Tier 3 customers |
dailyTransactionLimit | Overall daily limit across all transactions |
GET /merchant/limits. Review global platform limits with GET /merchant/limits/global.
Related pages
Authentication
Get access tokens and authenticate API requests
Wallets
Understand how merchant and customer wallets work
Webhooks
Configure callback URLs and subscribe to events
KYC Verification
Complete the KYC process and go live
