---
title: "Create Virtual Account"
method: POST
path: "/virtual_accounts"
---

# Create Virtual Account

`POST /virtual_accounts`

## Request body

- object
  - `name` string, required
  - `internal_account_id` string, required
  - `credit_ledger_account_id` string — This field is deprecated and replaced by `ledger_account_id`.
  - `debit_ledger_account_id` string — This field has been deprecated and replaced by the `ledger_account_id` of the [Internal Account](https://docs.moderntreasury.com/platform/reference/internal-account-object).
  - `ledger_account` object
    - `name` string, required — The name of the ledger account. Maximum of 1000 characters allowed.
    - `description` string — An optional free-form description for internal use. Maximum of 1000 characters allowed.
    - `currency` string, required
    - `currency_exponent` integer — Must be included if currency is a custom currency. The currency_exponent cannot exceed 30.
    - `normal_balance` string, required — One of `credit`, `debit`
    - `ledger_id` string, required
    - `metadata` string, json — Metadata to be added to the ledger account. Must be a JSON object.
  - `counterparty_id` string
  - `account_details` object[]
    - `account_number` string, required
    - `account_number_type` string
  - `description` string
  - `metadata` string, json

## Response `201`

201

- object
  - `id` string
  - `object` string
  - `name` string
  - `description` unknown
  - `active` boolean
  - `counterparty_id` unknown
  - `internal_account_id` string
  - `debit_ledger_account_id` string
  - `credit_ledger_account_id` string
  - `account_details` object[]
    - `id` string
    - `object` string
    - `account_number_safe` string
    - `account_number_type` string
  - `routing_details` object[]
    - `id` string
    - `object` string
    - `payment_type` unknown
    - `routing_number` string
    - `routing_number_type` string
    - `bank_name` string
    - `bank_address` object
      - `id` string
      - `object` string
      - `line1` string
      - `line2` unknown
      - `locality` string
      - `region` string
      - `postal_code` string
      - `country` string
      - `live_mode` boolean
      - `created_at` string
      - `updated_at` string
    - `live_mode` boolean
    - `created_at` string
    - `updated_at` string
  - `metadata` object
  - `live_mode` boolean
  - `created_at` string
  - `updated_at` string

## Other responses

- `422` — 422

---

[API](https://skmtc.net/modern-treasury/apis/modern-treasury-api.md) · [All operations](https://skmtc.net/modern-treasury/apis/modern-treasury-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/modern-treasury/modern-treasury-api/versions/ed0431a2dcd0/schema)
