Skip to main content
A customer walks into a convenience store, gas station, or pharmacy with cash. They hand over the bills, get a confirmation code, and their digital wallet is funded. No bank account. No credit card. No friction beyond the cash handoff. In the US, this pattern reaches the millions of households that are unbanked or underbanked, and the much larger banked population that still uses cash for specific transactions. Globally, it extends digital wallets to the estimated 1.4 billion unbanked adults who hold value primarily in cash. Who this is for:
  • US-based fintech and neobank apps onboarding cash-preferring customers without an ACH or card relationship
  • Remittance apps serving recipients who receive cash from abroad and want to hold digital balances
  • Gig economy platforms where workers prefer cash funding over ACH
  • Consumer apps that need a no-bank-account funding path alongside card and bank transfers

How it works

Cash on-ramp flow
1AppOMSPOST /cash-ins (amount, currency)
2OMSAppDeposit code + barcode + retail instructions
3AppCustomerShow barcode in app
4CustomerRetailPresent barcode, hand over cash
5OMSCash confirmed, converts to USDC, credits wallet
6OMSAppWebhook: fiatToCrypto.completed
The deposit code is time-limited. OMS creates the cash-in intent, returns a barcode, and waits for the retail network to confirm receipt. When cash is collected at the counter, OMS auto-creates a fiatToCrypto transaction and credits the customer’s wallet.

OMS resources

ResourceRole
CustomerIdentity record with KYC endorsements
WalletCustodial or non-custodial stablecoin balance that receives the deposit
Cash-inDeposit intent with barcode for retail scanning
fiatToCrypto transactionAuto-created when cash is confirmed at retail

Implementation

Customer onboarding

Create customer records, collect KYC, and provision wallets.

Cash-in

Generate deposit codes, display barcodes, and handle retail confirmations.