Before you start: the OMS API is in early access. Every endpoint, including the ones in this guide, requires an early-access API key. Request access before you begin.
- Getting fiat in: use cash-in, where a customer deposits physical cash and OMS delivers USDC to the wallet. See the Cash-in guide.
- Moving value out of a wallet: use the
POST /quotesthenPOST /transactionspattern when the destination is another OMS wallet or an externalblockchainAddress. This is a crypto-to-crypto send, available now.
source is always an OMS wallet (walletId, asset, network), so the supported out-of-wallet flow keeps crypto on both sides.
Move value out of a wallet (available today)
This flow sends USDC from a customer’s wallet to an onchain address. OMS infers thecryptoToCrypto type from the source and destination asset pair.
Step 1: Create a quote
source: the OMS wallet to pull from. ThewalletId,asset, andnetworkare all required.destination.wallet: either another OMS wallet (wallet) or an external onchain address (blockchainAddress). This example sends to ablockchainAddress.
destination.amountNet to the customer before they confirm.
Step 2: Execute the transaction
transaction.cryptoToCrypto.completed webhook with the onchain txHash when the send settles.
Bank rails (early access)
Bank transfers in both directions are in early access. Inbound ACH and wire need a virtual account, which provisions a dedicated bank account number per customer and auto-creates afiatToCrypto transaction when a deposit arrives. Outbound ACH and wire payouts pull from a wallet to an external bank account (cpUsBank_), creating a cryptoToFiat transaction.
Bank transfers over ACH and wire are not yet available in the OMS API. Inbound depends on virtual accounts and outbound depends on external bank accounts, neither of which is available in the OMS API yet. To be notified when they launch, register your interest.
Register interest
Share your use case and we’ll reach out when bank transfers are available.
Key points
- Bank rails are early access. ACH and wire in both directions depend on virtual accounts (inbound) and external bank accounts (outbound), which are not yet available in the OMS API.
- Crypto-to-crypto sends work today. The
POST /quotesthenPOST /transactionspattern moves value out of a wallet when the destination is another wallet or an externalblockchainAddress. - Cash-in handles fiat-in today. See the Cash-in guide.
- A quote’s source is always an OMS wallet. There is no fiat-funded quote.
- Idempotency keys: all
POSTendpoints accept anIdempotency-Keyheader. Use a deterministic key so you can safely retry on network errors.