Give each customer their own USD and EUR receiving details
Virtual accounts
With Venly Finance, each incoming payment that quotes its reference is attributed to the right customer and converted to USDC. USD arrives by ACH to an account and routing number in the customer’s name, EUR by SEPA to an IBAN, and both land in one stablecoin balance.
Talk to us
Read the virtual account guide
Virtual accounts, stablecoin accounts, payouts and stablecoin transfers are one integration: the Finance API. The EUR side of virtual accounts has its own page, with the attribution ledger in full.
Receiving in EUR? The EUR virtual IBAN in detail
A week of Maria’s invoices
Maria’s clients pay her in dollars and in euros, and both reach her USDC balance.
Maria Santos is a freelance designer. The app she runs her studio on is built on Venly Finance, so her client in the US pays her by ACH and her client in France pays her by SEPA, each to receiving details in her own name.
Details
Her app issues USD and EUR receiving details in her name
Once Maria’s account is verified, the app requests one virtual account per currency. The USD account returns an account and routing number for ACH, and the EUR account returns an IBAN and BIC for SEPA. Each has its own reference code, and both convert what arrives into USDC.
The virtual bank account guide
Invoice
Each invoice carries the details its client can pay
Her client in the US gets the USD details and the reference VF-MARIA-3150. Her client in France gets the IBAN and VF-MARIA-8842. The app puts the reference on the invoice beside the details, because the reference is how a payment finds Maria’s account.
USD by ACH
The US client pays USD 1,850.00 by ACH
The client’s bank sends an ACH transfer to Maria’s account and routing number and quotes VF-MARIA-3150. The reference attributes the credit to Maria’s USD account, whatever name the sender uses. After the example fee of USD 18.50, 1,831.50 USDC is credited, with no exchange rate between USD and USDC.
EUR by SEPA
The client in France pays EUR 1,200.00 by SEPA
The SEPA transfer goes to Maria’s IBAN with VF-MARIA-8842 in the remittance field, and it is attributed to her EUR account the same way. After the example fee of EUR 12.00, EUR 1,188.00 converts at the recorded rate of 1.0850 to 1,288.98 USDC.
Receiving in EUR? The EUR virtual IBAN in detail
No reference
A payment without its reference waits for a person
A USD 300.00 ACH payment reaches Maria’s details without the reference code. Nothing attributes it automatically, so it goes to manual reconciliation and stays out of every balance until someone matches it.
Spend
Maria pays Mira from the same USDC balance
Both invoices now sit in one balance on Base, 3,120.48 USDC. At the Saturday market Maria pays Mira, another user of the app, 64.00 USDC for two bowls. The transfer goes from pending to completed and her balance reads 3,056.48 USDC, and your platform reads the same transfer and balance through the API.
The accounts and transfers behind the balance
The times show the order of events. How long a credit takes depends on the rail and the checks each payment needs.
The fields in this story are the ones the virtual bank account API returns.
Read the virtual bank account guide
What each customer gets
One set of receiving details per currency, each in the customer’s name
Your platform requests a virtual account for each currency a customer gets paid in. The payer sees ordinary bank details and a reference; your customer sees a stablecoin balance.
USD by ACH
Live
- Account number and routing number
- Beneficiary name: your customer’s legal name
- A reference code the payer quotes
- Converts to USDC on receipt
Opens once your platform is onboarded for the USD lane, with an approved KYB.
EUR by SEPA
Live
- IBAN and BIC
- Beneficiary name: your customer’s legal name
- A reference code the payer quotes
- Converts to USDC on receipt
A new EUR account can show as pending for a short while before its details are ready.
Being added
- GBP receiving details for UK customers, being added.
- USD by wire, including international SWIFT, being added.
Ask us when they open for your platform.
The EUR virtual IBAN in detail
Paying out in USD, EUR and GBP
For your engineers
One request per currency
A virtual account is a child of the customer’s account in the Finance API. The same request returns USD or EUR details, depending on the currency you ask for.
inCurrency picks the lane.
USD returns an account and routing number, EUR returns an IBAN and BIC.
referenceCode goes to the payer.
Show it next to the details and ask the payer to quote it.
targetCryptocurrency sets what lands.
USDC here, on the chain enabled for the account.
idempotencyKey makes a retry safe.
Sending the same request twice creates one account.
Questions about receiving
Which currencies can our customers receive?
USD by ACH and EUR by SEPA today, each to receiving details in the customer’s own name. GBP receiving details and USD by wire, including international SWIFT, are being added.
How is a payment matched to the right customer?
By the reference code that comes with each set of receiving details. The payer quotes it on the transfer, and the credit is attributed to that customer’s account. Matching does not depend on the sender’s name.
What happens when a payer leaves out the reference?
The credit cannot be attributed automatically, so it goes to manual reconciliation instead of to an account. Showing the reference beside the details, on every invoice or payment screen, helps payers quote it.
What does a customer need before details are issued?
A verified account with a linked account-holder party, who has accepted the partner terms. For USD, your platform also needs to be onboarded for the USD lane with an approved KYB.
How fast does a payment arrive as USDC?
It depends on the bank rail the payer used, the checks on the incoming payment and onchain execution. We do not promise a fixed or instant settlement time.
Do we need our own licence to offer this?
It depends on your role, your flow and your jurisdiction. We will map your specific model with you rather than tell you no licence is needed.
Tell us who pays your customers, and in which currency
Bring the currencies your customers invoice in and how you match incoming payments today. We will map it to accounts, USD and EUR receiving details and conversion in one session.
Talk to us
Read the virtual account guide
Related
The EUR virtual IBAN in detail
Finance API: the accounts behind each customer
The screens a fintech ships on these details
Per-seller receiving details on Payment platforms
When receiving details are issued
Receiving details are issued to a verified account. Each account needs a linked account-holder party with verification cleared, and the USD lane needs your platform onboarded with an approved KYB. Until then, issuing waits.
SOC 2 Type 2 certified. Our own licences are in flight and flows run on licensed partner rails today.