Skip to main content
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.

How it works

A customer holds USDC in an OMS wallet and wants to withdraw as physical cash. You create a quote whose source is the customer’s OMS wallet and whose destination is a cash instrument at an ALLPOINT pickup location, with the cash amount set on the destination side. OMS converts the crypto to fiat, issues a time-limited pickup code, and the customer collects cash at a retail counter or ATM. The transaction direction is cryptoToCash. This is the complement to Cash-in. Cash-in funds a wallet from cash; cash pickup withdraws from a wallet to cash.
Cash pickup flow
1AppOMSPOST /quotes (cryptoToCash, amount on destination)
2OMSAppQuote with pickup fee breakdown
3AppCustomerShow amount to receive
4CustomerAppConfirm
5AppOMSPOST /transactions {quoteId}
6OMSPull USDC from wallet
7OMSAppWebhook: transaction.statusChanged (pickup code issued)
8AppCustomerShow pickup code + location
9CustomerRetailPresent code, collect cash
10OMSAppWebhook: transaction.statusChanged (cash collected)

Limits

The following limits apply to cash pickups (cash-outs):

What is available today

The quote and transaction mechanics for a cash pickup are part of the canonical API. A cryptoToCash quote takes an OMS wallet as the source and a cash destination whose details carry asset: usd, a cashLocationId, a cashLocationReference, and the amount (a multiple of $20.00, up to $400.00 per transaction). You execute it with POST /transactions referencing the quote by quoteId, and OMS reports pickup progress through the transaction.statusChanged event. Because one event covers every transition, branch on data.status together with data.subStatus, which carries the stage detail: the payout starting, the pickup code being issued, the cash being collected (for example completed.cashPickupCollected), or the code expiring uncollected. See Webhook events for the envelope and the full catalog. Cash pickup is enabled per project through early access; contact us before you build against it.

Planned capabilities

  • Cash-out location lookup with GET /cash-locations and flow=cash_out
  • Time-limited pickup codes with automatic refund on expiry
  • Wider coverage across US retail networks and ATMs

Cash pickup is under active development and available through early access. Contact us to enable it for your project.

Register interest

Share your use case and we’ll reach out when cash pickup is available.