On / Off ramp

How to give users their own bank account details and turn deposits into stablecoins

Virtual accounts in 6 currencies: your users receive SEPA, ACH, Wire, PIX, SPEI or PSE transfers, converted to crypto on arrival.

Early access AccountsWallets Published October 16, 2026 · KemyCard team
How to give users their own bank account details and turn deposits into stablecoins: flow diagram with the KemyCard API
Best fit

Crypto apps, wallets and remittance platforms whose users want to fund their balance with a normal bank transfer, in their own currency.

Next step

Create a test virtual account in the sandbox with your sk_test_ key, and apply for early access to go live.

Early access. This product is available in the sandbox today with your test keys. Production access is opening progressively: sign up and tell us you need it, we will contact you first.

The hardest moment for a new crypto user is the first deposit. Buying stablecoins usually means a card payment with high fees, or an exchange account with its own verification. Many users give up before their first transaction.

Virtual accounts remove that step. Each user gets their own bank account details in their currency. They send a normal bank transfer from their usual bank, and the funds are converted to crypto on arrival and credited to their balance in your app.

Currencies and payment rails

CurrencyUsers pay byAccount details
USDACH, WireAccount and routing number
EURSEPAIBAN
GBPBank transferAccount details
BRLPIXPIX key
MXNSPEICLABE
COPPSEPSE

The on-ramp: bank transfer in, stablecoins out

  1. Open the account. For a verified customer, POST /v1/virtual-accounts with the currency returns the account to show in your app.
  2. The user sends a transfer from their own bank, like paying a bill. No card, no exchange account.
  3. Converted on arrival. The deposit is converted to crypto at the live market rate.
  4. You are notified. virtual_account.deposit_received arrives as a signed webhook, so you credit the user's balance immediately.
# Sandbox: open a euro virtual account for a customer
curl https://api.kemycard.com/v1/virtual-accounts \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{ "customer_code": "CUSTOMER_CODE", "currency": "EUR" }'

And the way back: the off-ramp

To close the loop, users also need to get their money out. That part is live today with Payouts: SEPA Instant to any euro account in the EU and ACH to US bank accounts, paid from your KemyCard balance. See the crypto off-ramp guide.

What you can build with it

  • Fiat deposits for a crypto wallet: the cheapest way for users to fund their balance.
  • Remittances: a sender pays in by bank transfer in one currency, the recipient is paid out in another.
  • Salary in stablecoins: employers pay a normal transfer, the employee receives USDC.
  • Card funding: a bank transfer that ends up on a KemyCard virtual card.

Why it matters

  • No banking license and no bank account to open in each country.
  • Local rails: users pay the way they always do, in their own currency.
  • The same integration as cards, wallets, KYC and payouts: one set of keys, customers and webhooks.
Early access

Be among the first to go live

Create your free Découverte account, build in the sandbox today, and mention this product in your application: early access partners are onboarded first.

More use cases