Skip to main content

Headers

Request body

Decrypted payload — top-level fields:

Example request

All examples assume you’ve already encrypted the body and signed the request — see the Quickstart for the full helper in Node and Python.

Recipient details

The shape of recipient_details depends on payment_method. Every method requires name (the recipient’s full name, max 200 chars). Additional fields per method are listed below.

imps / rtgs / neft — India bank transfer (INR)

For payment_method: "imps", send the following inside recipient_details. The API picks the underlying rail (IMPS, RTGS, or NEFT) automatically based on the amount and bank availability. Decrypted request body:
If any required field is missing or malformed, the API responds with HTTP 400 and a structured validation_error pointing at the offending field — for example:

Responses

201 — Success

status is one of:
  • pending — accepted and queued for processing
  • pending_approval — exceeds your auto-approval limit; awaiting manual approval

400 — validation_error

Schema mismatch — fix and retry.

401 — unauthorized / jwt_expired

Bad/missing JWT — re-login.

403 — forbidden

KYC required or account suspended.

404 — no_route

The requested country/currency/payment method combination is not available. Contact support to enable it.

422 — business rule failures

429 — rate_limited

Tighten your client-side throttle. Full code list in Errors.

Sandbox tip

In sandbox, the trailing cents of source_amount decide the eventual status — see Sandbox.