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.
Crypto apps, wallets and remittance platforms whose users want to fund their balance with a normal bank transfer, in their own currency.
Create a test virtual account in the sandbox with your sk_test_ key, and apply for early access to go live.
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
| Currency | Users pay by | Account details |
|---|---|---|
| USD | ACH, Wire | Account and routing number |
| EUR | SEPA | IBAN |
| GBP | Bank transfer | Account details |
| BRL | PIX | PIX key |
| MXN | SPEI | CLABE |
| COP | PSE | PSE |
The on-ramp: bank transfer in, stablecoins out
- Open the account. For a verified customer,
POST /v1/virtual-accountswith the currency returns the account to show in your app. - The user sends a transfer from their own bank, like paying a bill. No card, no exchange account.
- Converted on arrival. The deposit is converted to crypto at the live market rate.
- You are notified.
virtual_account.deposit_receivedarrives 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.
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.