Skip to content

Getting started

Keys, environments and your first quote.

What you get

SmartRemit is remittance infrastructure for licensed money transmitters. Your customers chat with the SmartRemit WhatsApp assistant, and you integrate through the Partner API, signed settlement instructions and signed status callbacks. SmartRemit never holds funds: you, the licensed partner, move the money.

Where SmartRemit is today

SmartRemit is a working demonstration of production-grade remittance infrastructure. The AI conversation, live exchange-rate quoting, the signed instruction-and-callback loop, durable processing, dashboards and WhatsApp notifications are real. Actual fund movement, the production identity-verification vendor, a commercial sanctions feed and a live payout rail are simulated today: the reference rail runs the exact signed loop a production rail would.

Compliance screening (sanctions) runs on every transfer and cannot be switched off, in every mode; a watchlist hit returns 422. Today it runs against a built-in reference rule set, not yet a live commercial AML feed.

Keys and environments

Every request carries your API key as a bearer token:

Authorization: Bearer sr_test_…
  • A test key starts sr_test_… and only ever creates and sees sandbox transactions. See Sandbox.
  • A live key starts sr_live_…. Live keys are issued at the end of the go-live checklist.
  • The mode comes from the key itself. The whole key, prefix included, is what we verify, so editing the prefix only makes the key invalid (401).
  • A key is shown once, when it is issued on your dashboard's partner page. It does not expire. Keep it on your server, never in a browser or an app.
  • To rotate a key, issue a new one, move your traffic to it, then revoke the old one.

Base URL

https://smartremit.ai/api/partner/v1

All requests and responses are JSON. Errors are JSON too; see Errors.

Endpoints and scopes

Each endpoint needs one scope. A key is issued with every scope its mode allows.

EndpointScopeTest key
GET /corridorscorridors:readYes
POST /quotequoteYes
POST /beneficiaries/validatebeneficiaries:validateYes
POST /beneficiariesbeneficiaries:writeNo
POST /transactionstransactions:writeYes (sandbox only)
GET /transactionstransactions:readYes (sandbox only)
GET /transactions/{id}transactions:readYes (sandbox only)
POST /transactions/{id}/confirmtransactions:writeYes (sandbox only)
PUT /ratesrates:writeNo
GET /ratesrates:readNo
GET /settlementssettlements:readNo

A request outside the key's scopes gets 403. The API reference in these docs lists every field and status code for each endpoint.

Your first calls

Start by listing the corridors your account can send on:

curl https://smartremit.ai/api/partner/v1/corridors \
  -H "Authorization: Bearer $KEY"

Then price a transfer. Nothing is stored by a quote:

curl -X POST https://smartremit.ai/api/partner/v1/quote \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{ "amount_source": 200, "source_currency": "USD", "destination_country": "IN" }'

The response carries the fee, the total charge, the exchange rate and the amount the recipient receives. A 503 means live exchange rates are briefly unavailable; nothing was stored, so retry later.

Creating a transaction

  • beneficiary.name and sender.name are 1 to 80 characters, with no brackets ([ ] { } < >) and no control or line-break characters.
  • beneficiary.payout_method is bank, upi or usdc (default bank). An inline payout_destination is at most 64 printable characters. A masked display value, such as ****1234 or account on file, is refused with 422.
  • destination_country is optional and defaults to IN. An unsupported value is refused with 400; it is never changed to India.
  • Each of these is refused before the Idempotency-Key is bound, so a corrected retry with the same key succeeds.
  • Transactions created through the API are never added to the customer's saved recipients in chat.

Next steps

  1. Create a sandbox transaction with a test key: Sandbox.
  2. Build your settlement endpoint and status callbacks: Webhooks.
  3. Retry safely: Idempotency.
  4. Work through the go-live checklist.