Publishes account.virtualAccount.hidden / .unhidden; null publishes nothing (tests).
Admin-creates an ACTIVE virtual account on an existing ledger account for
a MANUAL-type provider — a bank we hold an out-of-band deposit account at
but have no onboarding integration for. Unlike the Victor flow there's no
partner API to call and nothing to poll: the row lands ACTIVE in one
transaction, stamped with an audit product_quote.
The provider must resolve to a MANUAL-type virtual_account_provider
row (integrated victor/bivo/route_fusion providers are rejected — those
mint through their own dispatcher). The bank supplies the customer-facing
deposit instructions via the linked bank row.
Optionalname?: stringA virtual_account_provider externalId; must resolve to type MANUAL.
OptionalreferenceId?: string | nullToggle whether a virtual account is soft-deleted (hidden from
customer-facing reads). When deleted is true the consumer
VirtualAccountService read paths filter the row out entirely.
Writes the given fields on id. RouteFusion fields merge into data with
jsonb ||, keeping every other key. Publishes no event and busts no
cache; a status transition's caller owns both.
OptionalaccountNumber?: stringOptionalbankId?: stringThe bank the account receives deposits at, by slug.
OptionalbeneficiaryAddress?: Address | nullOptionalbeneficiaryName?: string | nullOptionaldepositReference?: string | nullOptionalrouteFusion?: Partial<OptionalroutingNumber?: stringOptionalstatus?: "PENDING" | "ACTIVE" | "FAILED" | "INACTIVE"
Admin-only mutations on virtual accounts. Operates across all customers and takes no
customerId.