Properties
| Name | Type | Description |
|---|---|---|
| id | string | |
| object | string | |
| live_mode | boolean | This field will be true if this object exists in the live environment or false if it exists in the test environment. |
| created_at | string | |
| updated_at | string | |
| discarded_at | string | |
| name | string | The name of the virtual account. |
| description | string | An optional free-form description for internal use. |
| counterparty_id | string | The ID of a counterparty that the virtual account belongs to. Optional. |
| internal_account_id | string | The ID of the internal account that the virtual account is in. |
| account_details | array | An array of account detail objects. |
| routing_details | array | An array of routing detail objects. These will be the routing details of the internal account. |
| debit_ledger_account_id | string | The ID of a debit normal ledger account. When money enters the virtual account, this ledger account will be debited. Must be accompanied by a credit_ledger_account_id if present. |
| credit_ledger_account_id | string | The ID of a credit normal ledger account. When money enters the virtual account, this ledger account will be credited. Must be accompanied by a debit_ledger_account_id if present. |
| ledger_account_id | string | If the virtual account links to a ledger account in Modern Treasury, the id of the ledger account will be populated here. |
| metadata | object | Additional data represented as key-value pairs. Both the key and value must be strings. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "#/components/schemas/virtual_account",
"title": "virtual_account",
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"object": {
"type": "string"
},
"live_mode": {
"type": "boolean",
"description": "This field will be true if this object exists in the live environment or false if it exists in the test environment."
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
},
"discarded_at": {
"type": "string",
"format": "date-time",
"nullable": true
},
"name": {
"type": "string",
"description": "The name of the virtual account."
},
"description": {
"type": "string",
"description": "An optional free-form description for internal use.",
"nullable": true
},
"counterparty_id": {
"type": "string",
"format": "uuid",
"description": "The ID of a counterparty that the virtual account belongs to. Optional.",
"nullable": true
},
"internal_account_id": {
"type": "string",
"format": "uuid",
"description": "The ID of the internal account that the virtual account is in."
},
"account_details": {
"type": "array",
"description": "An array of account detail objects.",
"items": {
"$ref": "#/components/schemas/account_detail"
}
},
"routing_details": {
"type": "array",
"description": "An array of routing detail objects. These will be the routing details of the internal account.",
"items": {
"$ref": "#/components/schemas/routing_detail"
}
},
"debit_ledger_account_id": {
"type": "string",
"format": "uuid",
"description": "The ID of a debit normal ledger account. When money enters the virtual account, this ledger account will be debited. Must be accompanied by a credit_ledger_account_id if present.",
"nullable": true
},
"credit_ledger_account_id": {
"type": "string",
"format": "uuid",
"description": "The ID of a credit normal ledger account. When money enters the virtual account, this ledger account will be credited. Must be accompanied by a debit_ledger_account_id if present.",
"nullable": true
},
"ledger_account_id": {
"type": "string",
"format": "uuid",
"nullable": true,
"description": "If the virtual account links to a ledger account in Modern Treasury, the id of the ledger account will be populated here."
},
"metadata": {
"type": "object",
"description": "Additional data represented as key-value pairs. Both the key and value must be strings.",
"additionalProperties": {
"type": "string"
},
"example": {
"key": "value",
"foo": "bar",
"modern": "treasury"
}
}
},
"additionalProperties": false,
"minProperties": 16,
"required": [
"id",
"object",
"live_mode",
"created_at",
"updated_at",
"discarded_at",
"name",
"description",
"counterparty_id",
"internal_account_id",
"account_details",
"routing_details",
"debit_ledger_account_id",
"credit_ledger_account_id",
"ledger_account_id",
"metadata"
]
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/modern-treasury-virtual-account"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.