Enterprise Balance Inquiry

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

📘

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.

Base URLs

EnvironmentBase URL
Productionhttps://caas.coinme.com
Staginghttps://caas-staging.coinme.com

Endpoints

MethodPathReturns
GET/services/enterprise/wallets/balanceAvailable balances for all assets
GET/services/enterprise/wallets/balance/{asset}Available balance for a single asset

Path Parameters

ParameterTypeRequiredDescription
assetstringNoAsset identifier to filter by (e.g. BTC, ETH, SOL). Omit to return all assets. Matching is case-insensitiveeth, ETH, and eTH are equivalent.
📘

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.

Sample API Request

curl --location 'https://caas-staging.coinme.com/services/enterprise/wallets/balance' \
  --header 'Authorization: Bearer <token>'
curl --location 'https://caas-staging.coinme.com/services/enterprise/wallets/balance/SOL' \
  --header 'Authorization: Bearer <token>'

Sample API Response

200 OK

{
    "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
}
{
    "data": {
        "balances": [
            {
                "assetId": "SOL",
                "currencySymbol": "SOL",
                "chain": "SOL",
                "availableBalance": "46.429490974"
            }
        ]
    },
    "errorResponse": null
}

Response Fields

FieldTypeDescription
dataobjectContainer for the successful response payload.
data.balancesarrayList of balance entries, one per asset.
data.balances[].assetIdstringUnique asset identifier. Disambiguates the same currency across chains (e.g. USDC, USDC_SOL). Use this as the stable key.
data.balances[].currencySymbolstringDisplay symbol for the currency (e.g. BTC, USDC). Not unique on its own.
data.balances[].chainstringBlockchain network the asset is held on (e.g. BTC, ETH, SOL, XRP).
data.balances[].availableBalancestringSpendable balance, returned as a decimal string to preserve full precision.
errorResponseobject | nullnull on success. Populated with error details on failure.
⚠️

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.

Error Response

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

{
    "data": null,
    "errorResponse": {
        "code": "string",
        "message": "string"
    }
}

Status Codes

CodeMeaning
200Success. Balance entries returned in data.
400Bad request — invalid or unsupported asset path parameter.
401Missing or invalid authentication credentials.
403Authenticated, but not authorized for this resource.
404Asset or Partner wallet not found.
500Internal 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.


Did this page help you?