Skip to main content
The Open Money Stack (OMS) Payments API moves money between fiat and stablecoins. It provides the full infrastructure stack: identity, custodial wallets, compliance, and fiat rail access, all integrated so they hand off cleanly to each other. One integration covers crypto-to-crypto, fiat-to-crypto, and crypto-to-fiat money movement across ACH, wire, SWIFT, cash, and card rails. OMS infers the direction from the instruments on each side and reports it on the quote as sourceToDestination.

Get started

Onboard a customer, provision a wallet, and make your first transaction.

API reference

Full endpoint reference: transactions, quotes, wallets, customers, webhooks.

Core concepts

Entities & relationships

The full resource model: customers, wallets, quotes, transactions, cash-ins, virtual accounts, deposit addresses, counterparties, and external accounts, and how they relate.

Quote system

How OMS locks pricing, structures fees, and calculates exchange rates before you commit to a transaction.

Account model

Custodial wallets, virtual bank accounts, deposit addresses, and external accounts.

Transaction lifecycle

Statuses, sub-statuses, transfers, returns, and the webhook events a transaction sends.

Currencies & rails

Supported stablecoins and networks, and the fiat rails OMS pays out on: ACH, wire, SWIFT, instant payments, card, and cash.

Sandbox & testing

How sandbox maps to testnets, what customer data it accepts, and how to simulate inbound deposits.

Use cases

Common products built on the Open Money Stack. Each card links to a step-by-step walkthrough.

Dollar accounts

Give users a real USD account number that receives ACH transfers and holds a stablecoin balance.

Payouts & B2B

Pay contractors, suppliers, and recipients from a single treasury wallet, via bank rails or cash pickup.

On- & off-ramps

Fund a wallet with cash or bank rails, hold a USDC balance, and withdraw back to a bank account.

Rewards & loyalty

Drop USDC rewards and cashback straight into user wallets. No card networks, no breakage, no expiry.

Cross-border send

Fiat in one country, fiat delivered in another, settled via Polygon in seconds.

OMS primitives

The OMS API is managed through a core set of resources. Every transaction, deposit, and disbursement is built from these.

Customers

The identity record every financial resource belongs to. Its status and endorsements (basic, cryptoCustody, usd) show whether it can move money.

Wallets

Custodial stablecoin wallets and USD fiat wallets that OMS holds for a customer. Created with POST /wallets. The source of quoted transactions and a common destination for deposits.

Quotes

A short-lived price lock with a full fee breakdown. Created before every transaction you start from a wallet or card. Expires after 30 seconds by default.

Transactions

One money movement from a source to a destination, created from a quote or automatically by a deposit. Each rail movement is a transfer. Track it through processing to completed with webhooks.

Cash-ins

A code-based deposit flow for in-person cash funding at retail locations. Auto-creates a transaction on confirmation.

Webhooks

Subscribe to events as they happen. Full CRUD: create, list, update, and delete subscriptions with POST/GET/PATCH/DELETE /webhooks, or manage them in the OMS Dashboard.

Deposit and payout resources

These resources extend the core model with reusable deposit configurations and off-platform funding and payout references. You create and manage them directly through the API.
Transactions reference these resources by ID; when funds arrive at a deposit address or virtual account, OMS auto-creates the transaction. Deposit addresses must be enabled for your project: contact us to enable them.

Virtual accounts

A dedicated bank account number assigned to a customer. Incoming fiat converts to a stablecoin, or forwards as USD, to the configured destination. Create and manage with POST/GET/PATCH/DELETE /virtual-accounts.

Deposit addresses

A reusable onchain address for a customer. Incoming crypto auto-triggers a transaction to a registered bank account or wallet. Create and manage with POST/GET/PATCH /deposit-addresses.

External accounts

Off-platform banks, external wallets, and cards. Register banks and wallets with POST /external-accounts and cards with the OMS browser SDK, then reference them by ext_ ID as a quote source or destination.

Counterparties

A third party that is not your customer but owns external accounts you pay, for example a vendor. Full CRUD via /counterparties.

Why Polygon for settlement

  • Sub-2-second finality with 99.9%+ network uptime
  • $0.002 average transaction cost on Polygon Chain
  • $54B+ in stablecoin transfer volume processed onchain
  • Native USDC: no wrapping, no bridging, no surprise deductions
  • Compliance included: KYC, KYB, AML screening, and transaction monitoring across 48 US states and international corridors