Transcaty Merchant Onboarding
This guide is for your merchants. Goal: start using Transcaty in a few easy steps.
1) What You Get From Transcaty
When a merchant is onboarded, they get:
apiKeysecretbaseUrl(your API URL)
They use these to call Transcaty APIs.
2) How Payment Flow Works
Merchant talks to Transcaty. Transcaty talks to the payment provider.
So merchant only integrates with Transcaty endpoints.
3) Main Endpoints Merchants Use
Auth / identity
GET /v1/me
Balance
GET /v1/balance
PAYIN (customer pays merchant)
POST /v1/payinsGET /v1/payins/:id
PAYOUT (merchant sends money out)
POST /v1/payoutsGET /v1/payouts/:id
Transactions
GET /v1/transactions
4) HMAC Headers (Required for /v1/*)
Merchant must send:
X-Transcaty-KeyX-Transcaty-SignatureX-Transcaty-Timestamp
Signature payload format:
<timestamp>.<raw_json_body>
Hash algorithm:
HMAC-SHA256 with merchant secret.
5) Merchant Webhooks (Available)
Transcaty can notify merchant server after PAYIN/PAYOUT completion.
Configure merchant webhook URL
Use:
PATCH /v1/me/webhook
Body example:
{
"webhookUrl": "https://merchant.com/webhooks/transcaty"
}Response includes:
webhookSecret(save this safely)
Use null to remove webhook:
{
"webhookUrl": null
}6) Merchant Webhook Events Sent by Transcaty
Current event types:
payin.completedpayin.failedpayout.completedpayout.failed
Headers sent by Transcaty:
X-Transcaty-Webhook-Signature(HMAC SHA256)X-Transcaty-Event
Payload shape:
{
"event": "payin.completed",
"transactionId": "uuid",
"status": "success",
"amount": "500",
"paidAmount": "500",
"platformOrderId": "2026031807000000129",
"timestamp": "2026-03-19T10:00:00.000Z"
}For failed events, paidAmount may be absent.
7) Important Notes for Merchants
- Use
transactionIdfrom Transcaty as your main reference. platformOrderIdis provider-side reference (for support/escalation).- Do not call any payment provider directly from merchant integration.
- If webhook is delayed, poll
GET /v1/payins/:idorGET /v1/payouts/:id.
8) Super Quick Test (Merchant)
GET /v1/meGET /v1/balancePOST /v1/payins- Complete payer step from
paymentInfo.content GET /v1/payins/:iduntilsuccessPOST /v1/payoutsGET /v1/payouts/:iduntil final state- Set webhook URL with
PATCH /v1/me/webhookand confirm events are received