- Consumer apps that want to offer crypto-backed savings or spending accounts
- Crypto exchanges and brokers handling retail on/off-ramp volume
- DeFi frontends that need fiat on-ramps for users without existing crypto holdings
- Apps onboarding cash-preferring or unbanked users who fund without a bank account or card
Cash-in funding, crypto-to-crypto sends, bank funding, and bank payouts all run on the OMS API today. Create a virtual account for inbound bank transfers with
POST /virtual-accounts, and register the customer’s bank account for payouts with POST /external-accounts. In sandbox, simulate a bank deposit with POST /virtual-accounts/{virtualAccountId}/simulate/inbound-transfer and a cash deposit with the cash-in simulate/present-code and simulate/deposit-cash endpoints. The OMS API is in early access: request access for an API key.How it works
Funding needs no quote. A cash-in or virtual account deposit creates its transaction automatically when the money arrives, and the cash-in shows estimatedpricing up front. Moving money out uses the quote-then-execute flow: the source is the customer’s OMS wallet, and the quote locks the rate and fee breakdown for a short window before any money moves, so the customer sees exactly what they’ll receive.
To move money out as a crypto-to-crypto send, run the same POST /quotes then POST /transactions flow: the source is the customer’s wallet and the destination is another wallet or an external blockchain address. Bank payouts follow the flow above, with the destination referencing an external account, registered with POST /external-accounts, by its ext_ identifier.
OMS resources
Implementation
Customer onboarding
Create customer records, collect KYC, and provision wallets.
Fiat to crypto
Fund wallets with cash-ins and bank deposits to virtual accounts.
Crypto to fiat
Quote and execute ACH or wire off-ramps.
Bank transfers
Full walkthrough of both funding and withdrawal flows.