Skip to main content
POST
Create virtual account

Overview

Creates a USD or EUR virtual account for a customer. The customer must have completed Tier 2 verification.
  • A USD account returns US bank details and supports the payment rails listed in deposit_instructions.payment_rails.
  • A EUR account returns an IBAN and BIC and supports the SEPA rails listed in deposit_instructions.payment_rails.
  • Payments into both account types settle into the merchant USD collection balance.
EUR virtual accounts require additional approval for SEPA access. If a verified customer cannot create a EUR account, contact Daya to confirm eligibility.
Daya does not currently maintain a separate EUR balance. Incoming EUR is converted and settled in USD. The deposit response reports the original EUR amount and the applied exchange rate.
Each customer can have one active EUR virtual account. Repeating the same EUR request returns the existing account when its developer fee matches. A request with a different developer fee returns 409 Conflict.

Authentication

string
required
Your merchant API key.

Request body

string
required
Customer ID in UUID format. The customer must have completed Tier 2 verification.Example: 650e8400-e29b-41d4-a716-446655440000
string
Funding currency for the account. Use usd or eur. If omitted, the value defaults to usd. Both currencies settle in USD.Example: eur
object
Optional fee that your merchant account keeps from each settled deposit. Omit this object to use 0%.

Request examples

Response

string
required
Virtual account ID in UUID format.
string
required
Customer associated with the account.
string
required
Merchant that owns the account.
string
required
Funding currency: usd or eur.
string
required
Account status: active or inactive.
string
required
Virtual account provider.
object
required
Developer fee applied to deposits received through this account.
object
Bank details for funding the account. Fields depend on the account currency.
string
required
Account creation time in ISO 8601 format.
string
required
Last update time in ISO 8601 format.

EUR deposit reconciliation

Use GET /v1/virtual-account-deposits or the deposit.completed webhook to reconcile a payment. For EUR-funded deposits, the response includes:
  • source_amount: original EUR amount.
  • source_currency: EUR.
  • fx_rate: exchange rate applied to the conversion.
  • amount and currency: converted USD amount before Daya deposit fees.
  • settled_amount and settled_currency: USD amount after Daya deposit fees.
  • customer_amount: USD amount after Daya fees and the configured developer fee.