> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kirafin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# The virtual account object

A virtual account is a set of bank details Kira opens for one user. Money sent to those details arrives as a deposit, and what the account does with it — hold it as fiat, or convert and forward it — is fixed when you create the account.

Most fields on this object are filled in by the bank, not by you, so an account read straight after creation carries very little. The bank details arrive when the bank assigns them, and until then they are `null`.

## Example

```json theme={null}
{
  "id": "11111111-2222-3333-4444-555555555555",
  "user_id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  "status": "deactivated",
  "type": "US_BANK",
  "bank": "austin_capital_trust",
  "mode": "fiat",
  "destination": null,
  "source_deposit_instructions": {
    "currency": "usd",
    "bank_name": "Example Bank National Association",
    "bank_account_number": "1000000001",
    "bank_routing_number": "000000001",
    "bank_beneficiary_name": "Northwind Trading LLC"
  },
  "payment_methods": {
    "inbound": [ { "name": "WIRE", "status": "active" } ],
    "outbound": [ { "name": "WIRE", "status": "active" } ]
  },
  "description": "Operating account",
  "markup": { "wire_fixed_fee": "1.50", "inbound_variable_fee_pct": "0.25" },
  "metadata": {},
  "created_at": "2026-09-01T12:00:00.000Z",
  "updated_at": "2026-09-01T12:00:00.000Z"
}
```

## What the account is

| Field           | Type              | Description                                                                                                   |
| --------------- | ----------------- | ------------------------------------------------------------------------------------------------------------- |
| `id`            | string, uuid      | The account's identifier.                                                                                     |
| `user_id`       | string, uuid      | The user that owns the account.                                                                               |
| `status`        | string            | Where the account is in its lifecycle. [Values](/reference/virtual-accounts/values#status)                    |
| `type`          | string            | The kind of account.                                                                                          |
| `bank`          | string or `null`  | Which bank the account runs on, and with it the rail. [Values](/reference/virtual-accounts/values#bank)       |
| `mode`          | string            | What the account does with a deposit. [Values](/reference/virtual-accounts/values#mode)                       |
| `description`   | string            | The label you set at creation. Absent when you set none.                                                      |
| `status_reason` | string            | Why the account sits in its current status, in the bank's own words. Free text: show it, do not branch on it. |
| `created_at`    | string, date-time | When the account was created, ISO 8601.                                                                       |
| `updated_at`    | string, date-time | When the account last changed, ISO 8601.                                                                      |
| `metadata`      | object            | Key-value pairs you attached. `{}` when you attached none — see [Metadata](/reference/metadata).              |

## Where money goes

| Field                         | Type             | Description                                                                                                                                                                                                          |
| ----------------------------- | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `destination`                 | object or `null` | Where a `crypto`-mode deposit is forwarded. `null` on a `fiat`-mode account. [Currency](/reference/virtual-accounts/values#destination-currency) · [Network](/reference/virtual-accounts/values#destination-network) |
| `source_deposit_instructions` | object or `null` | The bank details a payer sends money to. `null` until the bank assigns them.                                                                                                                                         |
| `payment_methods`             | object or `null` | Which rails the account takes money on and pays out on, as `inbound` and `outbound` lists. [Status values](/reference/virtual-accounts/values#payment_methods-status)                                                |
| `methods`                     | object or `null` | The same value as `payment_methods`.                                                                                                                                                                                 |

<Warning>
  `methods` and `payment_methods` are two names for one value, both returned on every read. Pick one and use it everywhere.
</Warning>

## The flattened bank details

The bank details repeated at the top level, projected from the deposit instructions the account holds. All of them are `null` until the bank assigns the account.

| Field                    | Type             | Description                          |
| ------------------------ | ---------------- | ------------------------------------ |
| `account_holder_name`    | string or `null` | Who the payment must be made out to. |
| `account_number`         | string or `null` | The account number a payer sends to. |
| `routing_number`         | string or `null` | The routing number a payer sends to. |
| `bank_name`              | string or `null` | The bank holding the account.        |
| `bank_address`           | string or `null` | That bank's postal address.          |
| `account_holder_address` | string or `null` | The beneficiary's postal address.    |

## Your fees

| Field    | Type   | Description                                                                               |
| -------- | ------ | ----------------------------------------------------------------------------------------- |
| `markup` | object | The fees you charge on this account, each a decimal **string**. Absent when none are set. |

<Note>
  Every amount in `markup` is a string, not a number — `"1.50"`, not `1.50`. Parse it as a decimal rather than a float.
</Note>
