Wallet infrastructure partnership

One API to move money from a wallet to anywhere in the Global South

Give Privy wallet users payouts to 34 countries — banks, mobile money, and cash. You register the parties, request a quote, and execute. Airtm settles your funding in USDC and delivers local currency through direct off-ramps and its P2P network.

34
countries
127
payment methods
USDC
internal settlement
VASP
FinCEN registered
Interactive demo

Walk through the transfer flow

This is what your wallet users experience when Airtm is embedded in your product — click through each step.

1
Selects the recipient
Your wallet user starts a payout and picks a saved recipient or adds a new one. Your platform calls the Airtm Embedded API to initialize.
Embedded API invoked
2
Selects destination country
Airtm returns the available payout rails and live FX for the chosen country — instantly, from your platform's perspective.
Live rails + rates returned
3
Chooses method & enters details
User picks the local rail Airtm returned — bank, mobile money, or cash — and fills in the recipient's payment details.
Rail chosen · details captured
4
Reviews and confirms
Transfer summary with locked FX rate, fee, delivery estimate, and amount in local currency. User confirms — your platform executes the transaction.
Locked rate · transparent fee
5
Funds on the way — webhook fires
Airtm executes, monitors, and delivers. A transaction.completed webhook fires to your platform. Recipient receives local currency typically within 2 minutes.
Avg delivery < 3 min
Payment architecture

How a payout runs end to end

One funded transaction flows through Airtm's normalization layer. You fund in any supported rail; Airtm holds value in USDC and routes the payout through a direct off-ramp or its P2P network, depending on the destination.

🧭
Discover
Read capabilities
Fetch every supported funding rail and payout rail with stable IDs and the destination fields each one requires. Render only what's live for the user's corridor.
GET /capabilities
👤
Register
Create sender & receiver
Register the originating party (with KYC reliance you've already performed) and the beneficiary with their payout destination. The sender response returns funding addresses for the rails you enabled.
POST /senders · /receivers
🧮
Price
Request a quote
Specify exactly one of amountToSend or amountToReceive. Airtm returns both amounts plus a fee breakdown in USDC. Quotes are informational and expire.
POST /quotes
Execute
Create the transaction
Execute against the quote. Airtm returns funding instructions — the address or virtual account and a reference to include — and the transaction enters AWAITING_FUNDING.
POST /transactions
💵
Fund
Settle to USDC
Send the funding transfer with the supplied reference. On crypto rails, include the reference as a memo/tag; on fiat, in the transfer reference. Airtm confirms and normalizes the funding to USDC.
webhook transaction.fundedSettled
🏦
Deliver
Pay out & complete
Airtm executes through a DIRECT_OFFRAMP provider or the P2P_NETWORK, delivers local currency to the beneficiary, and emits a terminal event with final pricing. Reconcile through reporting.
webhook transaction.completed · GET /transactions
Lifecycle

One webhook stream, every state

Subscribe once. The transaction lifecycle is delivered as discrete events — no polling required. Each error is a stable, catchable code.

Webhook events

Emitted in order across the transaction lifecycle.

transaction.createdCreated from a quote
transaction.awaitingFundingFunding instructions issued
transaction.fundedSettledFunding received & settled
transaction.payoutInitiatedPayout execution started
transaction.completedDelivered · final pricing
transaction.failedFunding or payout failed

Error codes

Returned on the request that caused them.

400_INVALID_INPUTMalformed or missing required fields.
404_NOT_FOUNDReferenced sender, receiver, quote, or transaction does not exist.
409_IDEMPOTENCY_CONFLICTIdempotency-Key reused with a different payload.
410_QUOTE_EXPIREDQuote is past its expiry; request a fresh one.
422_UNSUPPORTED_RAILFunding or payout rail not available for this corridor.
422_TRANSACTION_FAILEDExecution failed at funding or payout.
Integration

Register, quote, execute

A partner-scoped bearer token, an idempotency key on every write, and a webhook endpoint. That's the integration surface.

1

Authenticate & discover

Call with your partner-scoped bearer token and read /capabilities to learn which funding and payout rails are live, plus the destination fields each requires.

Bearer token · sandbox available
2

Register parties & quote

Create the sender and receiver, passing your existing KYC as reliance. Request a quote for the corridor — specify one amount, get both back with pricing.

Idempotency-Key required on POST
3

Execute & reconcile

Execute against the quote, fund using the returned instructions, and let the webhook stream drive your UI. Reconcile any time via GET /transactions.

Signed webhooks · reporting endpoint
POST/embedded/v1/transactions
# headers
Authorization: Bearer <partnerToken>
Idempotency-Key: "a1f3…uuid"
Content-Type: application/json

{
  "quoteId": "q001",
  "clientTransactionId": "tx123"
}

// 200 — funding instructions returned
{
  "transactionId": "txn001",
  "status": "AWAITING_FUNDING",
  "funding": {
    "railId": "fund001",
    "address": "GCFX…",
    "reference": "txn001"
  }
}

Base URL https://api.airtm.com/embedded/v1 · full auth, sandbox credentials, webhook schemas and rail reference in the API documentation.

Global coverage

Live rates — 34 countries, 127 payment methods

Net payout your users receive per 1 USDC, pulled live from Airtm's rate feed. The capabilities catalog returns the exact rail for each corridor; here's a slice of the network.

Connecting to rate feed…

Net local currency received per 1 USDC · source: rates.airtm.io · figures move continuously and are indicative until quoted.

Why Airtm

Built for where your users actually are

The Global South is where stablecoin wallet adoption is growing fastest. Airtm has spent a decade building the infrastructure to serve it.

COVERAGE

Deepest Global South reach

34 active countries with liquidity across LATAM, Africa, and APAC — corridors we execute in daily, not a coverage list.

SETTLEMENT

USDC-normalized core

Fund in fiat or crypto. Airtm holds value in USDC internally and routes payout through the right channel per destination.

COMPLIANCE

Compliance-first

FinCEN registered, VASP compliant, screening on every transaction. Pass your KYC as reliance — no duplicate onboarding.

DELIVERY

Instant rails, natively integrated

Pago Móvil, PIX, UPI, GCash, M-Pesa. Beneficiaries see delivered, not pending, in key markets.

RELIABILITY

Resilient routing

Active monitoring, rail failover, and a dedicated liquidity ops team — SLAs you can put in a partner agreement.

SCALE

Proven payout network

Your users share infrastructure with a battle-tested consumer network moving real volume every month.

One integration. 34 countries.

Embed Airtm's payout network into Privy and give every wallet user a way home for their money.

Replay the flow →