Stablecoin payments infrastructure API from MoonPay, targeting banks, fintechs, PSPs, payroll, and remittance platforms. Five primitives: fiat-to-stablecoin onramp, stablecoin-to-fiat offramp, cross-chain swap, named virtual accounts for third-party collection, and regulated US-issuer stablecoin issuance.
- 01embedded onramp/offramp inside a fintech or neobank product
- 02cross-border B2B payments settled in stablecoins
- 03issuing named virtual accounts that customers can use to collect from third parties
- 04launching a custom stablecoin under a regulated US issuer
- 05treasury operations for institutions holding stablecoin balances
- # REST API — no official SDK. Use fetch / ofetch / axios.
- pnpm add zod # recommended for runtime-validating Iron responses
| Variable | Scope | Description |
|---|---|---|
| IRON_API_KEY | Server | API key generated from the Iron partner dashboard (app.iron.xyz or app.sandbox.iron.xyz). Server-only. |
| IRON_API_BASE_URL | Server | Sandbox or production base URL given during partner onboarding. Iron is partner-gated — base URLs aren't fully public. |
| IRON_WEBHOOK_SECRET | Server | Signing secret for verifying webhook deliveries (onramp completions, offramp settlements, swap confirmations, virtual-account credits). |
Use Iron when the product needs regulated stablecoin rails embedded inside a fintech UX. Onramp: server-side POST to `/v1/onramps` with `{ customer_id, amount, destination_chain, destination_token, destination_address }` → returns a quote and a hosted payment URL or direct ACH/SEPA instructions. Offramp: POST `/v1/offramps` with the user's stablecoin transfer details → returns the bank-account beneficiary the user funds. Swap: POST `/v1/swaps` for cross-chain stablecoin conversions. Virtual Accounts: POST `/v1/virtual_accounts` to issue a named USD/EUR account tied to a customer. Stablecoin Issuance is partner-onboarded only. All flows are async — register webhook handlers and verify HMAC signatures before mutating state.
- ⚑Iron is partner-gated — you must email support@iron.xyz and complete KYB before you can hit any endpoint. Plan for a multi-week onboarding before integration work begins.
- ⚑Sandbox and production are completely separate environments with separate dashboards, keys, and webhook URLs — never share keys across environments.
- ⚑MoonPay acquired Iron but the two API surfaces are distinct; do not assume MoonPay SDK methods map to Iron endpoints.
- ⚑Onramp/offramp settlement is asynchronous (hours to a day for ACH/SEPA) — your UX must show a pending state, not optimistic success.
- ⚑Compliance limits (per-customer caps, geographic restrictions) are enforced server-side and surface as 4xx errors at transact time, not at customer-creation time — handle gracefully.
- ⚑Custom stablecoin issuance requires reserve attestation cadence and regulator sign-off on disclosures — engineering work is the easy half.