---
updatedAt: 2026-07-09T21:33:25.000Z
agentTools:
  projectIndex: https://docs.coinme.com/llms.txt
---

# Enterprise Balance Inquiry

Returns the available balances of the Partner's enterprise custodial wallets, either for all crypto assets or for a single asset.

<Callout icon="📘" theme="info">
  ### This endpoint is for enterprise Partners that custody with Coinme

  It returns balances for the Partner's own enterprise wallets — not individual customer wallets. To retrieve a customer's balances, see [Consumer Balance Inquiry](https://docs.coinme.com/docs/crypto-asset-balance).
</Callout>

## Base URLs

| Environment | Base URL                          |
| :---------- | :-------------------------------- |
| Production  | `https://caas.coinme.com`         |
| Staging     | `https://caas-staging.coinme.com` |

## Endpoints

| Method | Path                                           | Returns                                  |
| :----- | :--------------------------------------------- | :--------------------------------------- |
| `GET`  | `/services/enterprise/wallets/balance`         | Available balances for **all** assets    |
| `GET`  | `/services/enterprise/wallets/balance/{asset}` | Available balance for a **single** asset |

## Path Parameters

| Parameter | Type   | Required | Description                                                                                                                                                     |
| :-------- | :----- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `asset`   | string | No       | Asset identifier to filter by (e.g. `BTC`, `ETH`, `SOL`). Omit to return all assets. Matching is **case-insensitive** — `eth`, `ETH`, and `eTH` are equivalent. |

<Callout icon="📘" theme="info">
  ### The filter matches by asset, not by chain

  Requesting `SOL` returns only the `SOL` asset itself — not other assets held on the Solana chain such as `USDC_SOL` or `XO_SOL`. When a filter is applied, `data.balances` is still returned as an array containing the single matching entry.
</Callout>

## Sample API Request

```curl Request — all balances
curl --location 'https://caas-staging.coinme.com/services/enterprise/wallets/balance' \
  --header 'Authorization: Bearer <token>'
```
```curl Request — single asset
curl --location 'https://caas-staging.coinme.com/services/enterprise/wallets/balance/SOL' \
  --header 'Authorization: Bearer <token>'
```

## Sample API Response

`200 OK`

```json Response — all balances
{
    "data": {
        "balances": [
            {
                "assetId": "USDC_SOL",
                "currencySymbol": "USDC",
                "chain": "SOL",
                "availableBalance": "4539.686345"
            },
            {
                "assetId": "BTC",
                "currencySymbol": "BTC",
                "chain": "BTC",
                "availableBalance": "0.02731081"
            },
            {
                "assetId": "SOL",
                "currencySymbol": "SOL",
                "chain": "SOL",
                "availableBalance": "46.429490974"
            },
            {
                "assetId": "MATIC",
                "currencySymbol": "MATIC",
                "chain": "ETH",
                "availableBalance": "996476.546071941453547625"
            },
            {
                "assetId": "XRP",
                "currencySymbol": "XRP",
                "chain": "XRP",
                "availableBalance": "124.199433"
            },
            {
                "assetId": "LINK",
                "currencySymbol": "LINK",
                "chain": "ETH",
                "availableBalance": "0.548430501495823465"
            },
            {
                "assetId": "LTC",
                "currencySymbol": "LTC",
                "chain": "LTC",
                "availableBalance": "1.05181059"
            },
            {
                "assetId": "ETH",
                "currencySymbol": "ETH",
                "chain": "ETH",
                "availableBalance": "13.131442651256353266"
            },
            {
                "assetId": "XLM",
                "currencySymbol": "XLM",
                "chain": "XLM",
                "availableBalance": "17913.1989002"
            },
            {
                "assetId": "USDC",
                "currencySymbol": "USDC",
                "chain": "ETH",
                "availableBalance": "3773.072882"
            },
            {
                "assetId": "XO_SOL",
                "currencySymbol": "XO",
                "chain": "SOL",
                "availableBalance": "746.982164"
            },
            {
                "assetId": "DOGE",
                "currencySymbol": "DOGE",
                "chain": "DOGE",
                "availableBalance": "395.15332812"
            }
        ]
    },
    "errorResponse": null
}
```
```json Response — single asset (SOL)
{
    "data": {
        "balances": [
            {
                "assetId": "SOL",
                "currencySymbol": "SOL",
                "chain": "SOL",
                "availableBalance": "46.429490974"
            }
        ]
    },
    "errorResponse": null
}
```

## Response Fields

| Field                              | Type           | Description                                                                                                                   |
| :--------------------------------- | :------------- | :---------------------------------------------------------------------------------------------------------------------------- |
| `data`                             | object         | Container for the successful response payload.                                                                                |
| `data.balances`                    | array          | List of balance entries, one per asset.                                                                                       |
| `data.balances[].assetId`          | string         | Unique asset identifier. Disambiguates the same currency across chains (e.g. `USDC`, `USDC_SOL`). Use this as the stable key. |
| `data.balances[].currencySymbol`   | string         | Display symbol for the currency (e.g. `BTC`, `USDC`). Not unique on its own.                                                  |
| `data.balances[].chain`            | string         | Blockchain network the asset is held on (e.g. `BTC`, `ETH`, `SOL`, `XRP`).                                                    |
| `data.balances[].availableBalance` | string         | Spendable balance, returned as a **decimal string** to preserve full precision.                                               |
| `errorResponse`                    | object \| null | `null` on success. Populated with error details on failure.                                                                   |

<Callout icon="⚠️" theme="warn">
  ### Always parse `availableBalance` as an arbitrary-precision decimal

  Balances are returned as strings rather than numbers so that no precision is lost in transport or JSON parsing — some assets carry up to 18 decimal places (e.g. ETH, MATIC). Parse these values with a decimal/big-number library, never a native float.
</Callout>

## Error Response

On failure, `data` is `null` and `errorResponse` carries the error details:

```json Failure Response
{
    "data": null,
    "errorResponse": {
        "code": "string",
        "message": "string"
    }
}
```

## Status Codes

| Code  | Meaning                                                      |
| :---- | :----------------------------------------------------------- |
| `200` | Success. Balance entries returned in `data`.                 |
| `400` | Bad request — invalid or unsupported `asset` path parameter. |
| `401` | Missing or invalid authentication credentials.               |
| `403` | Authenticated, but not authorized for this resource.         |
| `404` | Asset or Partner wallet not found.                           |
| `500` | Internal server error.                                       |

## Notes

* **Asset vs. currency:** Use `assetId` (not `currencySymbol`) as the stable key when reconciling balances. The same `currencySymbol` can appear on multiple chains — for example, `USDC` exists as `USDC` (Ethereum) and `USDC_SOL` (Solana).
* **Case-insensitive path:** The `{asset}` path segment is matched case-insensitively.
* **Numeric precision:** Treat all balance values as arbitrary-precision decimals.

<br />