Update a virtual account
Change the markup or the metadata of one of your virtual accounts. Only what you send changes — every field you leave out keeps its value.
A new markup prices the deposits that settle after the call. A deposit that has already settled keeps the markup it settled with. Payouts are not affected: each payout carries its own client_markup.
The response is the whole account, in the same shape Get a virtual account returns.
Headers
Version applied to this request. It wins over your account's pinned version — see Versioning.
"2026-04-14"
Path Parameters
UUID of the account to change.
Body
Send markup, metadata, or both.
The fees to change on this account, each a decimal string with at most two decimals. A value sets that fee, null removes it, and a fee you leave out keeps its value. Any key not listed here is rejected, and so is an empty object.
Response
Success.
One virtual account. The six flat bank fields repeat what source_deposit_instructions holds: absent when it is null, and null where it holds an empty value.
Virtual account UUID.
UUID of the user that owns the account.
Where the account is in its lifecycle — see Virtual account values. Available options: approved, rfi, declined, deactivated.
Account type.
US_BANK Which bank the account runs on, and with it the rail — see Virtual account values. null while the bank is still opening it.
What the account does with a deposit. Available options: fiat, crypto. See Virtual account values.
Where a crypto-mode deposit is sent. null on a fiat-mode account.
The bank details a payer uses to send money to this account. null until the bank assigns them.
They can also arrive filled with placeholders, such as an account_number of PENDING-ACT-ACCOUNT. Treat them as real only after the virtual_account.activated webhook — see Webhooks.
Which rails the account takes money on and pays out on.
The same value as payment_methods.
Name the payment must be made out to.
Account number the payer sends to.
Routing number the payer sends to.
Name of the bank holding the account.
Postal address of that bank.
Postal address of the beneficiary.
Label you set when you created the account. Absent when you set none.
Why the account is in its current status, in the bank's own words. Free text — read it, do not parse it. Absent when there is nothing to report.
Your fees on this account, each a decimal string. Absent when none are set.
When the account was created, as an ISO 8601 timestamp.
When the account last changed, as an ISO 8601 timestamp.
Key/value pairs you attached to the account. {} when you attached none.