International payments
Cross-border money movement via our issuing partner's Payments API. 10+ destination currencies via SWIFT, SEPA, FPS, and local rails. T+0 within UTC+8 banking window.
POST /api/payments/international/quote
Bearer apk_
{
"sourceAsset": "USDC",
"amountUsdCents": 100000,
"destinationCurrency": "HKD",
"destinationCountry": "HK"
}Returns { quote: { destination_amount, rate, fee, rail, estimated_settlement } }.
POST /api/payments/international
Bearer apk_ · write:payments · Idempotent · Live: KYB approved
{
"sourceAsset": "USDC",
"sourceChain": "polygon",
"amountUsdCents": 100000,
"destinationCurrency": "HKD",
"destinationCountry": "HK",
"beneficiary": {
"name": "Acme HK Ltd",
"iban": "HK00...",
"swiftBic": "HSBCHKHH",
"countryCode": "HK"
},
"description": "Q2 contractor payout"
}Posts source-side hold via recordDebit. On failed webhook, the hold is reversed.
GET /api/payments/international/[id]
Bearer apk_
Single payment status.
GET /api/payments/international
Bearer apk_
List recent intl payments.
Supported corridors
See src/lib/reap/payment-api.ts SUPPORTED_CORRIDORS. Common ones:
| From | To | Rail | ETA | |---|---|---|---| | USD | HKD | SWIFT | T+0 (banking window) | | USD | EUR | SEPA | ~1 hr | | USD | GBP | FPS | ~30 min | | EUR | USD | SEPA + correspondent | T+0 | | USD | MXN | Local | ~4 hr | | USD | SGD | Local | ~4 hr |
Webhook
/api/webhooks/reap-intl-payment — HMAC-verified status updates.
On failed, posts a reversal credit to restore the source-side hold.