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

# Diameter Virtual Accounts: Retrieval and Balance Checks

> Virtual accounts are automatically created when an end user completes bank onboarding. Learn how to retrieve account details and check balances.

When an end user finishes bank onboarding, Diameter automatically provisions a virtual account on their behalf. You do not create accounts via API — instead, you retrieve and monitor them as part of managing your end users' financial activity.

## Account Structure

Each end user receives one virtual account per product and bank combination. If an end user is onboarded with two partner banks under the same product, they will have two separate accounts — one per bank.

Every account contains the following fields:

| Field | Description |
| - | - |
| `id` | Unique account identifier |
| `accountNumber` | The virtual account number |
| `accountName` | Display name for the account |
| `currency` | Always `USD` |
| `bank` | Partner bank: `PORTAGE` or `SLOVAK_SAVINGS_BANK` |
| `wireInstructions` | Routing details for inbound wire payments (see below) |

### Wire Instructions

The `wireInstructions` object on each account contains the routing information that counterparties need to send funds into the account:

| Field | Description |
| - | - |
| `bicCode` | Bank Identifier Code (BIC/SWIFT) for international wires |
| `routingNumber` | ABA routing number for domestic wires |

Share these details with anyone who needs to send an inbound wire to the account.

## Retrieving Accounts

### Get a Specific Account

Fetch a single account by its ID:

```http theme={null}
GET /v1/accounts/{id}
```

### Search All Accounts

Search across all accounts in your tenant. Narrow results using query parameters:

```http theme={null}
GET /v1/accounts
```

| Query Parameter | Description |
| - | - |
| `accountName` | Filter by account display name |
| `accountNumber` | Filter by account number |
| `endUserId` | Filter by the owning end user's ID |
| `productId` | Filter by product |

### Include End User Name

Add `includeEndUserName=true` to any account query to include the owning end user's name in the response:

```http theme={null}
GET /v1/accounts?endUserId=usr_01abc&includeEndUserName=true
```

## Checking Account Balances

Retrieve the current balance for a specific account:

```http theme={null}
GET /v1/accounts/{id}/balance
```

The response includes:

| Field | Description |
| - | - |
| `availableBalance` | Funds available for use |
| `currency` | Always `USD` |

> [!WARNING]
>
> The balance endpoint is **rate limited to 15 requests per second**. Design your application to poll balances at a responsible frequency, or rely on [webhooks](https://diameterpay.mintlify.site/concepts/payments.md) for payment status changes rather than balance polling to confirm transaction completion.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.