Skip to Content
Merchant Onboarding

Merchant Onboarding

This guide is for your merchants. The goal is to start using Transacty in a few easy steps.

What you get from Transacty

When a merchant is onboarded, they receive:

  • apiKey
  • secret
  • baseUrlhttps://api.transacty.ai

These credentials are used to call the Transacty APIs.

One merchant account uses one API key type (scopes control access), with separate wallet pockets per currency. Do not sum unlike currencies into one headline number.

Regions and rails

Transacty supports multiple settlement rails. The same API key and the same transaction list / webhook URL serve all of them — only the API paths and checkout UX differ.

RegionRailPay-in APISettlement walletCheckout
Bangladeshbangladesh/v1/payinsBDTProvider link from paymentInfo.content
Brazilbrazil/v1/br/payinsBRLPIX from paymentInfo
Indiaindia/v1/h2h/*USDTMerchant-built UPI UI
Europeeurope/v1/eur/*USDCRedirect to checkoutUrl

Create pay-ins and payouts from your server only (HMAC). The dashboard uses a separate login (JWT) and never holds the API secret.

Main endpoints merchants use

Auth / identity

  • GET /v1/me

Balance

  • GET /v1/balance

Bangladesh pay-in / payout

  • POST /v1/payins · GET /v1/payins/:id
  • POST /v1/payouts · GET /v1/payouts/:id

Brazil PIX

  • POST /v1/br/payins · GET /v1/payins/:id
  • POST /v1/br/payouts · GET /v1/payouts/:id

India UPI (H2H)

  • POST /v1/h2h/payin-instances · GET /v1/h2h/payin-instances/:transactionId
  • POST /v1/h2h/buyer-confirms-payment

Europe Open Banking

  • POST /v1/eur/payin-instances · GET /v1/eur/payin-instances/:transactionId
  • POST /v1/eur/payout-instances · POST /v1/eur/payout-instances/:transactionId/approve

Transactions

  • GET /v1/transactions (filter by rail, type, status)

HMAC headers (required for /v1/*)

Every request must send:

  • X-Transacty-Key
  • X-Transacty-Signature
  • X-Transacty-Timestamp

The signature payload format is <timestamp>.<raw_json_body>, hashed with HMAC-SHA256 using the merchant secret.

Important notes for merchants

  • Use transactionId from Transacty as your main reference.
  • platformOrderId is the provider-side reference (for support / escalation).
  • Do not call any payment provider directly from your integration.
  • Each currency is a separate wallet pocket; pendingBalance is in-flight pay-ins.
  • Poll the relevant status endpoint when you need the latest state, or wait for webhooks.

Super quick test (Bangladesh)

Check identity

GET /v1/me

Check balance

GET /v1/balance

Create a pay-in

POST /v1/payins, then complete the payer step from paymentInfo.content

Poll until success

GET /v1/payins/:id until success

Create a payout

POST /v1/payouts, then GET /v1/payouts/:id until a final state

For India and Europe, follow the dedicated India and Europe sections.

How to go live

Complete KYC

Activate your account in the portal.

Create an API key

Grant payin:create, payout:create, and balance:read scopes.

Implement your server integration

Build against Bangladesh, India, and/or Europe as needed.

Configure your webhook

Set your webhook URL and handle payin.completed / payin.failed.

Switch to live

Test with environment=test, then switch keys to live when ready.

Last updated on