Coins.ph Coins Pro — Account
Coins Pro — Account API (TRADING v1.0.0) — part of the Coins.ph developer platform.
Coins Pro — Account API (TRADING v1.0.0) — part of the Coins.ph developer platform.
{
"openapi": "3.0.0",
"info": {
"title": "TRADING",
"version": "1.0.0",
"description": "API reference for Account management — Coins.ph"
},
"servers": [
{
"url": "https://api.pro.coins.ph",
"description": "Production"
},
{
"url": "https://api.9001.pl-qa.coinsxyz.me",
"description": "Sandbox"
}
],
"x-readme": {
"proxy-enabled": false
},
"tags": [
{
"name": "Account",
"description": "Account management APIs."
}
],
"paths": {
"/openapi/account/v3/crypto-accounts": {
"get": {
"tags": [
"Account"
],
"summary": "Query Balance - Crypto Accounts (USER_DATA)",
"description": "Retrieve the current cryptocurrency balance for a specific currency or all supported\ncryptocurrencies. Use this endpoint to query available and pending balances across\ndifferent crypto assets.\n\n---\n\n## Additional Info\n\n**Rate Limit** [📖 Learn More](https://api.docs.coins.ph/reference/general#api-limit-introduction)\n\nWeight: 1\n\n**Pending Balance Explained**\n\nThe `pending_balance` represents funds that are not immediately available for trading or\nwithdrawal. This typically includes Deposit Confirmations, Pending Withdrawals,\nProcessing Transactions, and Order-Related Locks.\n\n**Use Cases** [🧩 SDK](https://api.docs.coins.ph/reference/general#sdk)\n\n- **Deposit Tracking** — Monitor pending balance to track deposit confirmations.\n- **Withdrawal Verification** — Check pending balance before initiating new withdrawals.\n\n**Best Practices**\n\n- Use specific currency parameter when checking single asset.\n- Cache results appropriately (30–60 seconds for pending balance).\n- Don't poll more frequently than necessary (respect rate limits).\n- Use WebSocket for real-time balance updates if available.\n",
"operationId": "query_crypto_account_balance",
"parameters": [
{
"in": "header",
"name": "X-COINS-APIKEY",
"required": true,
"schema": {
"type": "string",
"example": "VGkCt1GWUqWsxsCtsTvqLP7xNxOikd6wd7uPbnMIk8RUHQZ2bNd4Gcmq6NgQ6VlK"
},
"description": "API key for authentication."
},
{
"in": "query",
"name": "currency",
"required": false,
"schema": {
"type": "string",
"example": "BTC"
},
"description": "The currency symbol for which the balance is being queried. If not provided, returns balances for all supported cryptocurrencies. Use standard cryptocurrency symbols (e.g., 'BTC', 'ETH', 'USDT'). Case-insensitive.\n"
},
{
"in": "query",
"name": "recvWindow",
"required": false,
"schema": {
"type": "integer",
"format": "int64",
"minimum": 0,
"maximum": 60000
},
"description": "Request validity window in milliseconds. Default: 5000, Maximum: 60000."
},
{
"in": "query",
"name": "timestamp",
"required": true,
"schema": {
"type": "integer",
"format": "int64",
"minimum": 0,
"example": 1499827319559
},
"description": "Unix timestamp in milliseconds."
},
{
"in": "query",
"name": "signature",
"required": true,
"schema": {
"type": "string"
},
"description": "HMAC SHA256 signature of the request parameters [📖 Learn More](https://api.docs.coins.ph/reference/general#signed-endpoint-examples-for-post-openapiv1order)"
}
],
"x-codeSamples": [
{
"lang": "Shell",
"label": "Query specific currency (BTC)",
"source": "curl --get --location 'https://api.pro.coins.ph/openapi/account/v3/crypto-accounts' \\\n--header 'X-COINS-APIKEY: <your api key>' \\\n--data-urlencode 'currency=BTC' \\\n--data-urlencode 'recvWindow=60000' \\\n--data-urlencode 'timestamp=1707273549694' \\\n--data-urlencode 'signature=<calculated_signature>'\n"
},
{
"lang": "Shell",
"label": "Query all cryptocurrencies",
"source": "curl --get --location 'https://api.pro.coins.ph/openapi/account/v3/crypto-accounts' \\\n--header 'X-COINS-APIKEY: <your api key>' \\\n--data-urlencode 'recvWindow=60000' \\\n--data-urlencode 'timestamp=1707273549694' \\\n--data-urlencode 'signature=<calculated_signature>'\n"
}
],
"responses": {
"200": {
"description": "Cryptocurrency account balance returned successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"crypto-accounts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Account identifier.",
"example": "1451431230880900352"
},
"name": {
"type": "string",
"description": "Cryptocurrency symbol (display name).",
"example": "BTC"
},
"currency": {
"type": "string",
"description": "Cryptocurrency symbol.",
"example": "BTC"
},
"balance": {
"type": "string",
"description": "Available balance.",
"example": "1"
},
"pending_balance": {
"type": "string",
"description": "Funds in pending transactions, awaiting confirmation, or temporarily locked. Not immediately available for trading or withdrawal.\n",
"example": "0"
}
}
}
}
}
},
"examples": {
"single_currency": {
"summary": "Single Currency Balance (BTC)",
"value": {
"crypto-accounts": [
{
"id": "1451431230880900352",
"name": "BTC",
"currency": "BTC",
"balance": "1",
"pending_balance": "0"
}
]
}
},
"multiple_currencies": {
"summary": "Multiple Cryptocurrency Balances",
"value": {
"crypto-accounts": [
{
"id": "1451431230880900352",
"name": "PHP",
"currency": "PHP",
"balance": "100",
"pending_balance": "1"
},
{
"id": "1451431230880900352",
"name": "BTC",
"currency": "BTC",
"balance": "1",
"pending_balance": "0"
}
]
}
}
}
}
}
},
"default": {
"description": "API error response. The `code` field contains the internal API error code (not an HTTP status code).\n\n| Code | Description |\n|---|---|\n| -1121 | Invalid currency symbol. |\n\nFor the full list of error codes, see [Error Codes](https://api.docs.coins.ph/reference/error-codes).\n"
}
}
}
},
"/openapi/v1/account": {
"get": {
"tags": [
"Account"
],
"summary": "Account Information (USER_DATA)",
"description": "Retrieve comprehensive information about trading account, including permissions,\nbalances, withdrawal limits (daily, monthly, annual), fee tier, and configuration settings.\nUse this endpoint to get a complete snapshot of account's current state for portfolio\nmanagement, compliance checks, and monitoring.\n\n**Permission Flags**\n\n- **canDeposit**: `true` = Account can receive deposits; `false` = Deposits are blocked\n (reasons: pending verification, compliance hold, security review).\n- **canTrade**: `true` = Account can execute buy/sell orders; `false` = Trading is restricted\n (reasons: KYC incomplete, account suspension, regulatory restrictions).\n- **canWithdraw**: `true` = Account can withdraw funds; `false` = Withdrawals are blocked\n (reasons: security review, 2FA setup required, compliance hold).\n\n---\n\n## Additional Info\n\n**Rate Limit** [📖 Learn More](https://api.docs.coins.ph/reference/general#api-limit-introduction)\n\nWeight: 10\n\n**Use Cases** [🧩 SDK](https://api.docs.coins.ph/reference/general#sdk)\n\n- **Withdrawal Validation** — Check if withdrawal amount is within limits before submission.\n- **Trading Permission Check** — Verify account can trade before placing orders.\n- **Compliance Monitoring** — Track transaction limits for regulatory compliance.\n- **Balance Verification** — Confirm available balance before placing trades.\n\n**Best Practices**\n\n- Cache account information and refresh after transactions.\n- Use `updateTime` to track data freshness.\n- Always check `canTrade` before placing orders.\n- Always check `canWithdraw` before initiating withdrawals.\n- Check all three limit tiers (daily, monthly, annual).\n",
"operationId": "get_account_information",
"parameters": [
{
"in": "header",
"name": "X-COINS-APIKEY",
"required": true,
"schema": {
"type": "string",
"example": "VGkCt1GWUqWsxsCtsTvqLP7xNxOikd6wd7uPbnMIk8RUHQZ2bNd4Gcmq6NgQ6VlK"
},
"description": "API key for authentication."
},
{
"in": "query",
"name": "recvWindow",
"required": false,
"schema": {
"type": "integer",
"format": "int64",
"minimum": 0,
"maximum": 60000
},
"description": "Request validity window in milliseconds. Default: 5000, Maximum: 60000."
},
{
"in": "query",
"name": "timestamp",
"required": true,
"schema": {
"type": "integer",
"format": "int64",
"minimum": 0,
"example": 1499827319559
},
"description": "Unix timestamp in milliseconds."
},
{
"in": "query",
"name": "signature",
"required": true,
"schema": {
"type": "string"
},
"description": "HMAC SHA256 signature of the request parameters [📖 Learn More](https://api.docs.coins.ph/reference/general#signed-endpoint-examples-for-post-openapiv1order)"
}
],
"x-codeSamples": [
{
"lang": "Shell",
"label": "Get account information",
"source": "curl --get --location 'https://api.pro.coins.ph/openapi/v1/account' \\\n--header 'X-COINS-APIKEY: <your api key>' \\\n--data-urlencode 'recvWindow=60000' \\\n--data-urlencode 'timestamp=1707273549694' \\\n--data-urlencode 'signature=<calculated_signature>'\n"
}
],
"responses": {
"200": {
"description": "Account information returned successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"accountType": {
"type": "string",
"description": "Type of trading account. Currently only \"SPOT\" is supported.",
"example": "SPOT"
},
"canDeposit": {
"type": "boolean",
"description": "Whether the account is allowed to deposit funds.",
"example": true
},
"canTrade": {
"type": "boolean",
"description": "Whether the account is allowed to execute trades.",
"example": true
},
"canWithdraw": {
"type": "boolean",
"description": "Whether the account is allowed to withdraw funds.",
"example": true
},
"enableWithdrawWhitelist": {
"type": "boolean",
"description": "Whether the account's withdrawal address whitelist feature is enabled.",
"example": false
},
"email": {
"type": "string",
"description": "Email address associated with the account.",
"example": "test@coins.ph"
},
"feeTier": {
"type": "integer",
"description": "Current trading fee tier level for the account.",
"example": 0
},
"balances": {
"type": "array",
"description": "Balance details for all assets.",
"items": {
"type": "object",
"properties": {
"asset": {
"type": "string",
"description": "Asset currency (e.g., PHP, BTC).",
"example": "PHP"
},
"free": {
"type": "string",
"description": "Available balance for trading or withdrawal.",
"example": "100"
},
"locked": {
"type": "string",
"description": "Balance locked in pending orders or operations.",
"example": "0"
}
}
}
},
"token": {
"type": "string",
"description": "Fiat currency token.",
"example": "PHP"
},
"daily": {
"type": "object",
"description": "Daily transaction limits.",
"properties": {
"cashInLimit": {
"type": "string",
"example": "500000"
},
"cashInRemaining": {
"type": "string",
"example": "499994"
},
"cashOutLimit": {
"type": "string",
"example": "500000"
},
"cashOutRemaining": {
"type": "string",
"example": "500000"
},
"totalWithdrawLimit": {
"type": "string",
"example": "500000"
},
"totalWithdrawRemaining": {
"type": "string",
"example": "500000"
}
}
},
"monthly": {
"type": "object",
"description": "Monthly transaction limits.",
"properties": {
"cashInLimit": {
"type": "string",
"example": "10000000"
},
"cashInRemaining": {
"type": "string",
"example": "9999157"
},
"cashOutLimit": {
"type": "string",
"example": "10000000"
},
"cashOutRemaining": {
"type": "string",
"example": "10000000"
},
"totalWithdrawLimit": {
"type": "string",
"example": "10000000"
},
"totalWithdrawRemaining": {
"type": "string",
"example": "10000000"
}
}
},
"annually": {
"type": "object",
"description": "Annual transaction limits.",
"properties": {
"cashInLimit": {
"type": "string",
"example": "120000000"
},
"cashInRemaining": {
"type": "string",
"example": "119998487.97"
},
"cashOutLimit": {
"type": "string",
"example": "120000000"
},
"cashOutRemaining": {
"type": "string",
"example": "120000000"
},
"totalWithdrawLimit": {
"type": "string",
"example": "120000000"
},
"totalWithdrawRemaining": {
"type": "string",
"example": "120000000"
}
}
},
"p2pDaily": {
"type": "object",
"description": "Daily P2P transaction limits.",
"properties": {
"cashInLimit": {
"type": "string",
"description": "Fiat cash-in limit (Deposit). Corresponds to fiatInLimit.",
"example": "500000"
},
"cashInRemaining": {
"type": "string",
"description": "Remaining fiat cash-in quota. Calculated as fiatInLimit - fiatInUsed - fiatInDailyLocked, where fiatInDailyLocked is the amount of PENDING deposit orders (in-transit funds) deducted from the available quota.",
"example": "499994"
},
"cashOutLimit": {
"type": "string",
"description": "Fiat cash-out limit (Withdraw fiat). Corresponds to fiatOutLimit.",
"example": "500000"
},
"cashOutRemaining": {
"type": "string",
"description": "Remaining fiat cash-out quota. Calculated as fiatOutLimit - fiatOutOccupied.",
"example": "500000"
},
"totalWithdrawLimit": {
"type": "string",
"description": "Total withdrawal limit (fiat + crypto combined). Corresponds to allOutLimit.",
"example": "500000"
},
"totalWithdrawRemaining": {
"type": "string",
"description": "Remaining total withdrawal quota. Calculated as allOutLimit - allOutOccupied.",
"example": "500000"
}
}
},
"p2pMonthly": {
"type": "object",
"description": "Monthly P2P transaction limits.",
"properties": {
"cashInLimit": {
"type": "string",
"description": "Fiat cash-in limit (Deposit). Corresponds to fiatInLimit.",
"example": "10000000"
},
"cashInRemaining": {
"type": "string",
"description": "Remaining fiat cash-in quota. Calculated as fiatInLimit - fiatInUsed - fiatInDailyLocked, where fiatInDailyLocked is the amount of PENDING deposit orders (in-transit funds) deducted from the available quota.",
"example": "9999157"
},
"cashOutLimit": {
"type": "string",
"description": "Fiat cash-out limit (Withdraw fiat). Corresponds to fiatOutLimit.",
"example": "10000000"
},
"cashOutRemaining": {
"type": "string",
"description": "Remaining fiat cash-out quota. Calculated as fiatOutLimit - fiatOutOccupied.",
"example": "10000000"
},
"totalWithdrawLimit": {
"type": "string",
"description": "Total withdrawal limit (fiat + crypto combined). Corresponds to allOutLimit.",
"example": "10000000"
},
"totalWithdrawRemaining": {
"type": "string",
"description": "Remaining total withdrawal quota. Calculated as allOutLimit - allOutOccupied.",
"example": "10000000"
}
}
},
"p2pAnnually": {
"type": "object",
"description": "Annual P2P transaction limits.",
"properties": {
"cashInLimit": {
"type": "string",
"description": "Fiat cash-in limit (Deposit). Corresponds to fiatInLimit.",
"example": "120000000"
},
"cashInRemaining": {
"type": "string",
"description": "Remaining fiat cash-in quota. Calculated as fiatInLimit - fiatInUsed - fiatInDailyLocked, where fiatInDailyLocked is the amount of PENDING deposit orders (in-transit funds) deducted from the available quota.",
"example": "119998577"
},
"cashOutLimit": {
"type": "string",
"description": "Fiat cash-out limit (Withdraw fiat). Corresponds to fiatOutLimit.",
"example": "120000000"
},
"cashOutRemaining": {
"type": "string",
"description": "Remaining fiat cash-out quota. Calculated as fiatOutLimit - fiatOutOccupied.",
"example": "119999488"
},
"totalWithdrawLimit": {
"type": "string",
"description": "Total withdrawal limit (fiat + crypto combined). Corresponds to allOutLimit.",
"example": "120000000"
},
"totalWithdrawRemaining": {
"type": "string",
"description": "Remaining total withdrawal quota. Calculated as allOutLimit - allOutOccupied.",
"example": "119998487.97"
}
}
},
"updateTime": {
"type": "integer",
"format": "int64",
"description": "Unix timestamp (ms) of the last account update.",
"example": 1707273549694
}
}
},
"examples": {
"success_full": {
"summary": "Complete Account Information",
"value": {
"accountType": "SPOT",
"canDeposit": true,
"canTrade": true,
"canWithdraw": true,
"email": "test@coins.ph",
"feeTier": 0,
"balances": [
{
"asset": "PHP",
"free": "100",
"locked": "0"
},
{
"asset": "BTC",
"free": "0.00123456",
"locked": "0"
},
{
"asset": "ETH",
"free": "0.5",
"locked": "0.1"
}
],
"token": "PHP",
"daily": {
"cashInLimit": "500000",
"cashInRemaining": "499994",
"cashOutLimit": "500000",
"cashOutRemaining": "500000",
"totalWithdrawLimit": "500000",
"totalWithdrawRemaining": "500000"
},
"monthly": {
"cashInLimit": "10000000",
"cashInRemaining": "9999157",
"cashOutLimit": "10000000",
"cashOutRemaining": "10000000",
"totalWithdrawLimit": "10000000",
"totalWithdrawRemaining": "10000000"
},
"annually": {
"cashInLimit": "120000000",
"cashInRemaining": "119998487.97",
"cashOutLimit": "120000000",
"cashOutRemaining": "120000000",
"totalWithdrawLimit": "120000000",
"totalWithdrawRemaining": "120000000"
},
"p2pDaily": {
"cashInLimit": "500000",
"cashInRemaining": "499994",
"cashOutLimit": "500000",
"cashOutRemaining": "500000",
"totalWithdrawLimit": "500000",
"totalWithdrawRemaining": "500000"
},
"p2pMonthly": {
"cashInLimit": "10000000",
"cashInRemaining": "9999157",
"cashOutLimit": "10000000",
"cashOutRemaining": "10000000",
"totalWithdrawLimit": "10000000",
"totalWithdrawRemaining": "10000000"
},
"p2pAnnually": {
"cashInLimit": "120000000",
"cashInRemaining": "119998577",
"cashOutLimit": "120000000",
"cashOutRemaining": "119999488",
"totalWithdrawLimit": "120000000",
"totalWithdrawRemaining": "119998487.97"
},
"updateTime": 1707273549694
}
},
"success_restricted": {
"summary": "Account with Restricted Permissions",
"value": {
"accountType": "SPOT",
"canDeposit": true,
"canTrade": false,
"canWithdraw": false,
"email": "restricted@example.com",
"feeTier": 0,
"balances": [
{
"asset": "PHP",
"free": "1000",
"locked": "0"
}
],
"token": "PHP",
"daily": {
"cashInLimit": "100000",
"cashInRemaining": "100000",
"cashOutLimit": "0",
"cashOutRemaining": "0",
"totalWithdrawLimit": "0",
"totalWithdrawRemaining": "0"
},
"monthly": {
"cashInLimit": "1000000",
"cashInRemaining": "1000000",
"cashOutLimit": "0",
"cashOutRemaining": "0",
"totalWithdrawLimit": "0",
"totalWithdrawRemaining": "0"
},
"annually": {
"cashInLimit": "12000000",
"cashInRemaining": "12000000",
"cashOutLimit": "0",
"cashOutRemaining": "0",
"totalWithdrawLimit": "0",
"totalWithdrawRemaining": "0"
},
"p2pDaily": {
"cashInLimit": "500000",
"cashInRemaining": "500000",
"cashOutLimit": "0",
"cashOutRemaining": "0",
"totalWithdrawLimit": "0",
"totalWithdrawRemaining": "0"
},
"p2pMonthly": {
"cashInLimit": "10000000",
"cashInRemaining": "10000000",
"cashOutLimit": "0",
"cashOutRemaining": "0",
"totalWithdrawLimit": "0",
"totalWithdrawRemaining": "0"
},
"p2pAnnually": {
"cashInLimit": "120000000",
"cashInRemaining": "120000000",
"cashOutLimit": "0",
"cashOutRemaining": "0",
"totalWithdrawLimit": "0",
"totalWithdrawRemaining": "0"
},
"updateTime": 1707273549694
}
}
}
}
}
},
"default": {
"description": "API error response. The `code` field contains the internal API error code (not an HTTP status code).\n\n| Code | Description |\n|---|---|\n| -1022 | Signature for this request is not valid. |\n| -1002 | Unauthorized. API key does not have permission. |\n\nFor the full list of error codes, see [Error Codes](https://api.docs.coins.ph/reference/error-codes).\n"
}
}
}
}
},
"components": {
"securitySchemes": {
"ApiKeyAuth": {
"type": "apiKey",
"in": "header",
"name": "X-COINS-APIKEY"
}
}
}
}