The Bank of London Virtual Account Management API

The Virtual Account Management API from The Bank of London — 7 operation(s) for virtual account management.

Operations 12

GET /v2/virtual/accounts Get Virtual Accounts #
POST /v2/virtual/accounts Create a Virtual Account #
GET /v2/virtual/accounts/{id} Get a Virtual Account #
PATCH /v2/virtual/accounts/{id} Update a Virtual Account #
POST /v2/virtual/accounts/{id}/close Close Virtual Account #
GET /v3/virtual/transactions Get Virtual Account Transactions V3 #
GET /v2/virtual/aggregator-nodes Get Virtual Aggregator Nodes #
POST /v2/virtual/aggregator-nodes Create a Virtual Aggregator Node #
GET /v2/virtual/aggregator-nodes/{id} Get a Virtual Aggregator Node #
PATCH /v2/virtual/aggregator-nodes/{id} Update a Virtual Aggregator Node #
GET /v2/virtual/hierarchy Get a Hierarchy #
POST /v2/virtual/hierarchy Create a Virtual Account Hierarchy #

Documentation

Specifications

Other Resources

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/the-bank-of-london-virtual-account-management-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

the-bank-of-london-virtual-account-management-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Bank of London Virtual Account Management API
  version: 2.0.0
  description: ''
servers:
- description: Sandbox
  url: https://sandbox-api.bankoflondon.com/
- description: Live
  url: https://api.bankoflondon.com/
- description: Mock Server
  url: https://developer.bankoflondon.com/api/mock/the-bank-of-london-api
tags:
- name: Virtual Account Management
paths:
  /v2/virtual/accounts:
    get:
      operationId: GetVirtualAccounts
      summary: Get Virtual Accounts
      description: 'Retrieves a list of virtual bank accounts. The consumer application must have already created the Virtual Accounts.


        ![Virtual Account Overview Diagram](https://cdn.prod.website-files.com/67ac63e504ea6d324d5e5a44/681b294d1ec87ba3bdf72b2c_Virtual%20Account%20Solution%20overview%20%E2%80%93%20Virtual%20Account.svg)'
      parameters:
      - $ref: '#/components/parameters/JwsSignature'
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: organisationId
        required: false
        schema:
          type: string
          description: 'Supplying the `organisationId` will return only the Virtual Accounts belonging to `Individuals` associated with that `Organisation`.

            '
      - in: query
        name: individualId
        required: false
        schema:
          type: string
          description: 'Supplying the `individualId` will return Virtual Accounts for specific individual.

            '
      - in: query
        name: accountOwnership
        required: false
        schema:
          $ref: '#/components/schemas/AccountOwnership1'
      - in: query
        name: headerAccountId
        required: false
        description: Supplying the `headerAccountId` will return Virtual Accounts under specific header account id.
        schema:
          $ref: '#/components/schemas/HeaderAccountId'
      - in: query
        name: virtualAggregatorNodeId
        required: false
        description: Supplying the `virtualAggregatorNodeId` will return Virtual Accounts under specific virtual aggregator node.
        schema:
          $ref: '#/components/schemas/VirtualAccountAggregatorNodeId'
      - in: query
        name: status
        required: false
        schema:
          $ref: '#/components/schemas/AccountStatusFilter'
      responses:
        '200':
          description: Success
          headers:
            x-correlation-id:
              description: A unique identifier assigned to each request, facilitating issue tracing. In the event that a problem arises with a request, this ID can be provided to Bank of London support team for assistance.
              schema:
                type: string
              example: '2579248247516384065'
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  accounts:
                    items:
                      $ref: '#/components/schemas/VirtualAccountBase'
                    type: array
                  metadata:
                    $ref: '#/components/schemas/MetaData'
                required:
                - accounts
                - metadata
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          $ref: '#/components/responses/422'
        '500':
          $ref: '#/components/responses/500'
      tags:
      - Virtual Account Management
    post:
      operationId: CreateVirtualAccount
      summary: Create a Virtual Account
      description: 'Creates a Virtual Account – the balance limit of the Virtual Account created will be dependent on the hierarchy configuration determined during onboarding (refer to `GET a Hierarchy` endpoint response to validate if required).

        Virtual Accounts can be created for Individuals and Organisations.


        **Attention** \

        If you would like to test against our Virtual Account Management (VAM) endpoints,

        please read our Virtual Account Management

        overview for more information on how to get started. `virtualAggregatorNodeId` is an optional attribute in the request.


        **Limits**

        - Production: There is a cap on the number of Virtual Accounts a client can create. Please discuss expected volumes with your Relationship Manager during onboarding.

        - Sandbox: Limited to 2,000 Virtual Accounts per client.'
      parameters:
      - $ref: '#/components/parameters/JwsSignature'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateVirtualAccountRequest'
      responses:
        '200':
          description: Virtual account created successfully
          headers:
            x-correlation-id:
              description: A unique identifier assigned to each request, facilitating issue tracing. In the event that a problem arises with a request, this ID can be provided to Bank of London support team for assistance.
              schema:
                type: string
              example: '2579248247516384065'
              required: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateVirtualAccountResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '500':
          $ref: '#/components/responses/500'
      tags:
      - Virtual Account Management
  /v2/virtual/accounts/{id}:
    get:
      operationId: GetAVirtualAccount
      summary: Get a Virtual Account
      description: 'Retrieves the details of a specific virtual bank account. The consumer application needs permissions to read the requested account.


        **Attention** \

        If you would like to test against our Virtual Account Management (VAM) endpoints, please read our Virtual Account Management overview for more information on how to get started.'
      parameters:
      - in: path
        name: id
        required: true
        schema:
          $ref: '#/components/schemas/AccountId'
      - $ref: '#/components/parameters/JwsSignature'
      responses:
        '200':
          description: Success
          headers:
            x-correlation-id:
              description: A unique identifier assigned to each request, facilitating issue tracing. In the event that a problem arises with a request, this ID can be provided to Bank of London support team for assistance.
              schema:
                type: string
              example: '2579248247516384065'
              required: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSingleVirtualAccountResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '500':
          $ref: '#/components/responses/500'
      tags:
      - Virtual Account Management
    patch:
      operationId: UpdateAVirtualAccount
      summary: Update a Virtual Account
      description: 'This operation updates a Virtual Account by its `id` in the context of

        an application registered with Bank of London Developer Studio.


        **Attention** \

        If you would like to test against our Virtual Account Management (VAM) endpoints, please read our Virtual Account Management overview for more information on how to get started.'
      parameters:
      - in: path
        name: id
        required: true
        schema:
          $ref: '#/components/schemas/AccountId'
      - $ref: '#/components/parameters/JwsSignature'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateVirtualAccountRequest'
      responses:
        '200':
          description: Success
          headers:
            x-correlation-id:
              description: A unique identifier assigned to each request, facilitating issue tracing. In the event that a problem arises with a request, this ID can be provided to Bank of London support team for assistance.
              schema:
                type: string
              example: '2579248247516384065'
              required: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSingleVirtualAccountResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          $ref: '#/components/responses/409'
        '422':
          $ref: '#/components/responses/422'
        '500':
          $ref: '#/components/responses/500'
      tags:
      - Virtual Account Management
  /v2/virtual/accounts/{id}/close:
    post:
      operationId: CloseVirtualAccount
      summary: Close Virtual Account
      description: Closes a Virtual Account. This operation is only applicable to `VIRTUAL_ACCOUNT` type accounts.
      parameters:
      - in: path
        name: id
        required: true
        schema:
          $ref: '#/components/schemas/AccountId'
      - $ref: '#/components/parameters/JwsSignature'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloseVirtualAccountRequest'
      responses:
        '200':
          description: Account closed successfully
          headers:
            x-correlation-id:
              description: A unique identifier assigned to each request, facilitating issue tracing. In the event that a problem arises with a request, this ID can be provided to Bank of London support team for assistance.
              schema:
                type: string
              example: '2579248247516384065'
              required: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloseAccountResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          $ref: '#/components/responses/409'
        '422':
          $ref: '#/components/responses/422'
        '500':
          $ref: '#/components/responses/500'
      tags:
      - Virtual Account Management
  /v3/virtual/transactions:
    get:
      operationId: GetVirtualAccountTransactionsV3
      summary: Get Virtual Account Transactions V3
      description: 'This operation allows to retrieve a list of transactions for a Virtual Account along with the transaction ID

        (`id`) to be able to retrieve a specific transaction later via `GET

        /transactions/{transactionId}`.


        It must be filtered by either Bank of London Virtual Account ID (`accountId`) to

        retrieve only transactions for a specific Virtual Account or by the `headerAccountId` to

        retrieve all transactions for all Virtual Accounts under the header account.


        It can also be filtered by the `fromDate`, `toDate`, `type`, `scheme`, `isCredit` fields to narrow down the result set.'
      parameters:
      - $ref: '#/components/parameters/JwsSignature'
      - in: query
        name: accountId
        required: false
        schema:
          $ref: '#/components/schemas/AccountId'
      - in: query
        name: fromDate
        required: false
        schema:
          $ref: '#/components/schemas/TransactionFromDate'
      - in: query
        name: toDate
        required: false
        schema:
          $ref: '#/components/schemas/TransactionToDate'
      - in: query
        name: isCredit
        required: false
        schema:
          $ref: '#/components/schemas/TransactionIsCreditQueryParam'
      - in: query
        name: type
        required: false
        schema:
          $ref: '#/components/schemas/TransactionTypeV3'
      - in: query
        name: scheme
        required: false
        schema:
          $ref: '#/components/schemas/TransactionScheme'
      - in: query
        name: paymentOrderId
        required: false
        schema:
          $ref: '#/components/schemas/TransactionPaymentOrderId'
      - in: query
        name: search
        required: false
        schema:
          $ref: '#/components/schemas/TransactionSearch'
      - in: query
        name: orderBy
        required: false
        schema:
          $ref: '#/components/schemas/TransactionOrderBy'
      - in: query
        name: headerAccountId
        description: 'If specified, the response will return the transactions of all Virtual Accounts which have headerAccountId set to the provided value.

          '
        required: false
        schema:
          $ref: '#/components/schemas/HeaderAccountId'
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      responses:
        '200':
          description: 'Success

            <span style="color:#f46d2a; font-size:14px; font-family:Inter;">**Attention**</span> \

            <span style="font-size:14px; font-family:Inter;">Please note that the oneOf transactions in the **body** below, is extensible and new objects can be

            returned with a new transaction **type**

            in the future without a major version change. Please ensure this is factored into your

            application code.</span>

            '
          headers:
            x-correlation-id:
              description: A unique identifier assigned to each request, facilitating issue tracing. In the event that a problem arises with a request, this ID can be provided to Bank of London support team for assistance.
              schema:
                type: string
              example: '2579248247516384065'
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  transactions:
                    type: array
                    items:
                      oneOf:
                      - $ref: '#/components/schemas/PaymentTransactionV3'
                      - $ref: '#/components/schemas/FeeInterestTransactionV3'
                  metadata:
                    $ref: '#/components/schemas/MetaData'
                required:
                - transactions
                - metadata
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '500':
          $ref: '#/components/responses/500'
      tags:
      - Virtual Account Management
  /v2/virtual/aggregator-nodes:
    get:
      operationId: GetVirtualAggregatorNodes
      summary: Get Virtual Aggregator Nodes
      description: 'Get a list of Virtual Aggregator nodes.


        Aggregator nodes must be filtered by `headerAccountId` to retrieve all aggregator nodes under the header account.

        They can also be filtered by the `organisationId` and `individualId` fields to narrow down the result set.'
      parameters:
      - $ref: '#/components/parameters/JwsSignature'
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: headerAccountId
        required: true
        schema:
          $ref: '#/components/schemas/AggregatorNodeHeaderAccountId'
      - in: query
        name: organisationId
        required: false
        schema:
          type: string
          description: 'Supplying the `organisationId` will return aggregator nodes for specific organisation.

            '
      - in: query
        name: individualId
        required: false
        schema:
          type: string
          description: 'Supplying the `individualId` will return aggregator nodes for specific individual.

            '
      responses:
        '200':
          description: Success
          headers:
            x-correlation-id:
              description: A unique identifier assigned to each request, facilitating issue tracing. In the event that a problem arises with a request, this ID can be provided to Bank of London support team for assistance.
              schema:
                type: string
              example: '2579248247516384065'
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  aggregatorNodes:
                    items:
                      $ref: '#/components/schemas/AggregatorNodeResponse'
                    type: array
                  metadata:
                    $ref: '#/components/schemas/MetaData'
                required:
                - aggregatorNodes
                - metadata
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '500':
          $ref: '#/components/responses/500'
      tags:
      - Virtual Account Management
    post:
      operationId: CreateVirtualAggregatorNode
      summary: Create a Virtual Aggregator Node
      description: 'Creates A Virtual Aggregator Node.


        Virtual aggregator nodes are an aggregation tool and are not externally addressable. They can be used to group Virtual Accounts and view aggregated data relating to those Virtual Accounts.


        **Attention** \

        If you would like to test against our Virtual Account Management (VAM) endpoints,

        please read our Virtual Account Management

        overview for more information on how to get started.'
      parameters:
      - $ref: '#/components/parameters/JwsSignature'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAggregatorNodeRequest'
      responses:
        '200':
          description: Aggregator node created successfully
          headers:
            x-correlation-id:
              description: A unique identifier assigned to each request, facilitating issue tracing. In the event that a problem arises with a request, this ID can be provided to Bank of London support team for assistance.
              schema:
                type: string
              example: '2579248247516384065'
              required: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAggregatorNodeResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '500':
          $ref: '#/components/responses/500'
      tags:
      - Virtual Account Management
  /v2/virtual/aggregator-nodes/{id}:
    get:
      operationId: GetVirtualAggregatorNode
      summary: Get a Virtual Aggregator Node
      description: 'Retrieves details of a virtual aggregator node as well as aggregated data of the Virtual Accounts under the virtual aggregator node.


        **Attention** \

        If you would like to test against our Virtual Account Management (VAM) endpoints,

        please read our Virtual Account Management

        overview for more information on how to get started.


        ![Virtual Account Overview Diagram](https://cdn.prod.website-files.com/67ac63e504ea6d324d5e5a44/681b294dc3f1738a3363fd71_Virtual%20Account%20Solution%20overview%20%E2%80%93%20VA%20Aggregator%20Node.svg)'
      parameters:
      - in: path
        name: id
        required: true
        schema:
          $ref: '#/components/schemas/AggregatorNodeId'
      - $ref: '#/components/parameters/JwsSignature'
      responses:
        '200':
          description: Success
          headers:
            x-correlation-id:
              description: A unique identifier assigned to each request, facilitating issue tracing. In the event that a problem arises with a request, this ID can be provided to Bank of London support team for assistance.
              schema:
                type: string
              example: '2579248247516384065'
              required: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAggregatorNodeResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '500':
          $ref: '#/components/responses/500'
      tags:
      - Virtual Account Management
    patch:
      operationId: UpdateVirtualAggregatorNode
      summary: Update a Virtual Aggregator Node
      description: 'Updates a Virtual Aggregator Node.


        **Attention** \

        If you would like to test against our Virtual Account Management (VAM) endpoints,

        please read our Virtual Account Management

        overview for more information on how to get started.'
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the aggregator node to update.
        schema:
          type: string
      - $ref: '#/components/parameters/JwsSignature'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAggregatorNodeRequest'
      responses:
        '200':
          description: Aggregator node updated successfully
          headers:
            x-correlation-id:
              description: A unique identifier assigned to each request, facilitating issue tracing. In the event that a problem arises with a request, this ID can be provided to Bank of London support team for assistance.
              schema:
                type: string
              example: '2579248247516384065'
              required: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AggregatorNodeResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '500':
          $ref: '#/components/responses/500'
      tags:
      - Virtual Account Management
  /v2/virtual/hierarchy:
    get:
      operationId: GetHierarchy
      summary: Get a Hierarchy
      description: 'Retrieve the structure of a Virtual Account hierarchy, showing the Header Account at the top of the structure, the hierarchy type, the default virtual aggregator node below that and all subsequent virtual aggregator nodes and Virtual Accounts that have been set up, along with the associated hierarchy level.


        **Attention** \

        If you would like to test against our Virtual Account Management (VAM) endpoints,

        please read our Virtual Account Management

        overview for more information on how to get started.


        ![Virtual Account Overview Diagram](https://cdn.prod.website-files.com/67ac63e504ea6d324d5e5a44/681b294d9ede0b6c9c8663dc_Virtual%20Account%20Solution%20overview%20%E2%80%93%20Header%20Account.svg)'
      parameters:
      - $ref: '#/components/parameters/JwsSignature'
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: headerAccountId
        required: true
        schema:
          $ref: '#/components/schemas/HeaderAccountId'
      - in: query
        name: parentVirtualAggregatorNodeId
        required: false
        schema:
          $ref: '#/components/schemas/ParentAggregatorNodeId'
      - in: query
        name: date
        required: false
        schema:
          type: string
          description: Allows the user to view the hierarchy as it was on a specific date. If none is specified you will be shown the hierarchy as it is now.
          example: '2025-01-01'
      responses:
        '200':
          description: Success
          headers:
            x-correlation-id:
              description: A unique identifier assigned to each request, facilitating issue tracing. In the event that a problem arises with a request, this ID can be provided to Bank of London support team for assistance.
              schema:
                type: string
              example: '2579248247516384065'
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  hierarchyType:
                    $ref: '#/components/schemas/HierarchyType'
                  elements:
                    items:
                      $ref: '#/components/schemas/HierarchyElementResponse'
                    type: array
                  metadata:
                    $ref: '#/components/schemas/MetaData'
                required:
                - elements
                - hierarchyType
                - metadata
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '500':
          $ref: '#/components/responses/500'
      tags:
      - Virtual Account Management
    post:
      operationId: CreateVirtualAccountHierarchy
      summary: Create a Virtual Account Hierarchy
      description: '**Attention** \

        This endpoint is only available in the sandbox environment for testing purposes. In production, the header accounts are opened manually and this endpoint is not accessible.


        Creates a header account together with `VIRTUAL_SUSPENSE` and `VIRTUAL_PANDL` accounts. Returned header account ID can be used for creating Virtual Accounts in the sandbox environment.'
      parameters:
      - $ref: '#/components/parameters/JwsSignature'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateVirtualHierarchyRequest'
      responses:
        '200':
          description: Success
          headers:
            x-correlation-id:
              description: A unique identifier assigned to each request, facilitating issue tracing. In the event that a problem arises with a request, this ID can be provided to Bank of London support team for assistance.
              schema:
                type: string
              example: '2579248247516384065'
              required: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateVirtualHierarchyResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '500':
          $ref: '#/components/responses/500'
      tags:
      - Virtual Account Management
components:
  schemas:
    Account1:
      type: object
      properties:
        currency:
          $ref: '#/components/schemas/Currency'
        balance:
          allOf:
          - $ref: '#/components/schemas/AccountBalance'
          - description: The balance of the account after the transaction has been processed.
      required:
      - currency
      - balance
    TransactionReference:
      type:
      - string
      - 'null'
      description: Transaction reference
      example: INV-12345
    CreateVirtualHierarchyRequest:
      type: object
      title: Create Virtual Hierarchy Request
      description: Request object that is required to create a virtual hierarchy
      properties:
        hierarchyType:
          $ref: '#/components/schemas/HierarchyType'
      required:
      - hierarchyType
    AccountId:
      type: string
      description: Bank of London account ID identifies the account within Bank of London API. This field is considered a unique ID and cannot be constructed using the account number and sort code. As such it must only be provided with `accountId` values returned by Bank of London Account API.
      example: GB-040075-12345678
    PaymentTransactionV3:
      type: object
      title: Payment Transaction
      description: An incoming or outgoing transaction with a sender and recipient.
      properties:
        id:
          $ref: '#/components/schemas/TransactionId'
        type:
          $ref: '#/components/schemas/TransactionTypeV3'
        typeDescription:
          $ref: '#/components/schemas/TransactionTypeDescription'
        scheme:
          $ref: '#/components/schemas/TransactionScheme'
        channel:
          $ref: '#/components/schemas/TransactionChannel'
        sender:
          $ref: '#/components/schemas/TransactionSenderV3'
        recipient:
          $ref: '#/components/schemas/TransactionRecipientV3'
        originator:
          $ref: '#/components/schemas/TransactionOriginator'
        reference:
          $ref: '#/components/schemas/TransactionReference'
        mandateReference:
          $ref: '#/components/schemas/TransactionMandateReference'
        notes:
          $ref: '#/components/schemas/TransactionNotes'
        amount:
          $ref: '#/components/schemas/schemas-TransactionAmount'
        postingDate:
          $ref: '#/components/schemas/TransactionPostingDate'
        releaseDateTime:
          $ref: '#/components/schemas/TransactionReleaseDateTime'
        valueDate:
          $ref: '#/components/schemas/TransactionValueDate'
        createdDateTime:
          $ref: '#/components/schemas/TransactionCreatedDateTime'
        fxDetails:
          allOf:
          - $ref: '#/components/schemas/TransactionFxDetails'
          - type:
            - object
            - 'null'
        account:
          $ref: '#/components/schemas/Account1'
        status:
          $ref: '#/components/schemas/TransactionStatus'
        paymentOrderId:
          $ref: '#/components/schemas/PaymentOrderId'
        isCredit:
          $ref: '#/components/schemas/TransactionIsCredit'
        isReturn:
          $ref: '#/components/schemas/TransactionIsReturn'
      required:
      - id
      - sender
      - recipient
      - amount
      - valueDate
      - postingDate
      - createdDateTime
      - account
      - status
      - isCredit
      - isReturn
      - type
      - scheme
      - typeDescription
    Status:
      type: object
      description: An object that represents the status of Bank of London API entity (e.g. payment status, account status etc.)
      properties:
        identifier:
          type: string
          description: A machine readable string identifier for the status.
      required:
      - identifier
    CreateAggregatorNodeRequest:
      type: object
      title: Create Aggregator Node Request
      description: Request object that is required to create an aggregator node
      properties:
        headerAccountId:
          $ref: '#/components/schemas/AggregatorNodeHeaderAccountId'
        parentVirtualAggregatorNodeId:
          $ref: '#/components/schemas/ParentAggregatorNodeIdRequest'
        name:
          $ref: '#/components/schemas/AggregatorNodeName'
        owner:
          $ref: '#/components/schemas/AggregatorNodeAccountOwner'
      required:
 

# --- truncated at 32 KB (84 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/the-bank-of-london/refs/heads/main/openapi/the-bank-of-london-virtual-account-management-api-openapi.yml