Skip to Content
IndiaPayinIndia — UPI Pay-in (H2H)

India — UPI Pay-in (H2H)

Base URL

https://api.transacty.ai

Summary

India UPI pay-in lets your customers pay in INR via UPI. You build the payment screen (QR / UPI ID). Your server creates a pay-in, shows the payment details, collects the bank UTR after payment, and confirms it with Transacty. When the payment completes, Transacty credits your USDT wallet and notifies your webhook.

Supported on the merchant API: H2H UPI only (/v1/h2h/*). There is no hosted “pay button” create on /v1. You build the UPI payment UI.

Amount, conversion, and settlement

  • The customer always pays in INR through UPI.
  • Your merchant wallet is always credited in USDT on success — settlement lands when the trade reaches event 4 or 6 (see Pay-in Status & Events).
  • currencySymbol sets whether your amount is in INR or USDT:
    • INR — customer pays that INR amount; you receive the USDT equivalent.
    • USDT — customer pays the INR equivalent at the current rate; you receive that USDT amount.

See Create Pay-in for examples. Use GET /v1/h2h/conversion-rates for current rates.

Settlement wallet & balances

  • India settles to its own USDT pocket — a separate balance from Bangladesh (BDT) and Europe (USDC). Never sum unlike currencies into one headline number.
  • On GET /v1/balance: availableBalance is the settled, spendable balance; pendingBalance is the sum of in-flight pay-ins in that currency (not yet spendable).
  • The transaction appears on the india rail in transaction lists.

Enable the India market first. Each market has its own KYB approval. Until India is approved, /v1/h2h/* returns 403 (market_not_enabled), and your USDT wallet pocket is provisioned only once the market is approved.

Required headers

Every request uses HMAC authentication (same scheme as all /v1/* endpoints):

  • X-Transacty-Key
  • X-Transacty-Timestamp (Unix seconds)
  • X-Transacty-Signature = HMAC-SHA256(secret, "{timestamp}.{rawBody}")
  • Content-Type: application/json

Required scope

  • payin:create

Integration flow

StepMerchant serverTransacty API
1Create the pay-inPOST /v1/h2h/payin-instances
2Show UPI details from paymentDetails / paymentInstructions
3Customer pays in their bank/UPI app
4Collect the bank UTR from the customer
5Submit the UTRPOST /v1/h2h/buyer-confirms-payment
6Poll status or wait for webhookGET /v1/h2h/payin-instances/:transactionId or GET /v1/transactions/:id
7Final status; wallet credited on successsuccess / failed

The customer-facing UPI screen (QR, VPA, UTR entry, confirm button) is built and hosted by you — Transacty does not provide a hosted checkout for India H2H.

Webhook events

When a webhook URL is configured, Transacty sends:

  • payin.completed
  • payin.failed

See Webhooks for signature verification.

Next steps

Last updated on