List deposits and withdrawals combined
const url = 'https://example.com/v2/transactions?type=deposit&chain=TRON_MAINNET&page=1&limit=20';const options = {method: 'GET', headers: {'X-CowriePay-Key': '<X-CowriePay-Key>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://example.com/v2/transactions?type=deposit&chain=TRON_MAINNET&page=1&limit=20' \ --header 'X-CowriePay-Key: <X-CowriePay-Key>'Returns deposits and withdrawals in separate arrays, optionally filtered by type. This endpoint does not return pagination metadata (total/page/limit), use GET /transactions/deposits or GET /transactions/withdrawals for individually paginated lists. Each item includes a type field ("deposit" or "withdrawal").
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Filter by transaction type. Omit to return both.
Filter by status string
Responses
Section titled “Responses”Combined transaction list
object
object
object
ID of the wallet that received this deposit. Use this to link the deposit back to your own order or customer record.
Deposit amount in human-readable units. Example: “100.000000” for 100 USDT, “1.500000000000000000” for 1.5 ETH.
How many confirmations THIS deposit needs before it is credited. Captured when the deposit is first seen and never changed afterwards, so confirmations / required_confirmations is a stable progress fraction for the life of the deposit. It is a per-deposit value: raising the platform threshold affects future deposits only, never one already in flight.
object
Withdrawal amount in human-readable units.
Example
{ "data": { "deposits": [ { "chain": "TRON_MAINNET", "asset": "USDT_TRON", "txid": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890ab", "amount": "100.000000", "status": "DETECTED", "confirmations": 0, "required_confirmations": 19, "fee_record": { "fee_amount": "0.900000", "net_amount": "99.100000" }, "type": "deposit" } ], "withdrawals": [ { "chain": "TRON_MAINNET", "asset": "USDT_TRON", "txid": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890ab", "amount": "50.000000", "status": "PENDING_APPROVAL", "fee_record": { "fee_amount": "0.900000", "net_amount": "99.100000" }, "type": "withdrawal" } ] }}Invalid or revoked API key / HMAC signature mismatch
object
Human-readable message, for display/logging. Do NOT branch on this text.
Stable, machine-readable error code, branch on this, not the message. Common values: VALIDATION_ERROR, INVALID_JSON, PAYLOAD_TOO_LARGE, MISSING_AUTH_HEADERS, INVALID_SIGNATURE, TIMESTAMP_EXPIRED, REPLAY_DETECTED, INVALID_API_KEY, IP_NOT_ALLOWED, API_KEY_EXPIRED, WORKSPACE_INACTIVE, INSUFFICIENT_SCOPE, NOT_FOUND, CONFLICT, UNPROCESSABLE, INSUFFICIENT_BALANCE, INVALID_DESTINATION_ADDRESS, DESTINATION_IS_INTERNAL, CHAIN_NOT_ENABLED, FAUCET_ONLY_SANDBOX, FAUCET_ADDRESS_NOT_FOUND, FAUCET_INVALID_ASSET, FAUCET_AMOUNT_OVER_CAP, FAUCET_RATE_LIMITED, FAUCET_TOO_MANY_ITEMS, FAUCET_DUPLICATE_ASSET, FAUCET_NATIVE_REQUIRES_DEPOSIT, FAUCET_NATIVE_BUDGET_EXCEEDED, FAUCET_DISPENSER_EXHAUSTED, WITHDRAWAL_NOT_CANCELLABLE, IDEMPOTENCY_CONFLICT, IDEMPOTENCY_MISMATCH, IDEMPOTENCY_KEY_INVALID, FEATURE_NOT_AVAILABLE, RATE_LIMITED, DATABASE_ERROR, INTERNAL_ERROR, UNAUTHORIZED, FORBIDDEN, UNSUPPORTED_MEDIA_TYPE, WITHDRAWALS_FROZEN, WORKSPACE_NOT_FOUND, SYSTEM_WORKSPACE_PROTECTED, FAUCET_INVALID_AMOUNT, FAUCET_NO_ASSETS, FAUCET_NOT_SANDBOX.
Most failures do NOT carry a business code. 326 throw sites raise a generic one (VALIDATION_ERROR, NOT_FOUND, UNPROCESSABLE, UNAUTHORIZED, CONFLICT, FORBIDDEN) against 46 named public codes, so a generic code is the common case and a named one is the exception. Branch on code; treat error as human text that may be reworded. The full catalogue, with causes and next steps, is the Error codes guide.
Example
{ "error": "Insufficient balance. Available: 10.000000, Requested: 50.000000", "code": "INSUFFICIENT_BALANCE"}Rate limit exceeded
object
Human-readable message, for display/logging. Do NOT branch on this text.
Stable, machine-readable error code, branch on this, not the message. Common values: VALIDATION_ERROR, INVALID_JSON, PAYLOAD_TOO_LARGE, MISSING_AUTH_HEADERS, INVALID_SIGNATURE, TIMESTAMP_EXPIRED, REPLAY_DETECTED, INVALID_API_KEY, IP_NOT_ALLOWED, API_KEY_EXPIRED, WORKSPACE_INACTIVE, INSUFFICIENT_SCOPE, NOT_FOUND, CONFLICT, UNPROCESSABLE, INSUFFICIENT_BALANCE, INVALID_DESTINATION_ADDRESS, DESTINATION_IS_INTERNAL, CHAIN_NOT_ENABLED, FAUCET_ONLY_SANDBOX, FAUCET_ADDRESS_NOT_FOUND, FAUCET_INVALID_ASSET, FAUCET_AMOUNT_OVER_CAP, FAUCET_RATE_LIMITED, FAUCET_TOO_MANY_ITEMS, FAUCET_DUPLICATE_ASSET, FAUCET_NATIVE_REQUIRES_DEPOSIT, FAUCET_NATIVE_BUDGET_EXCEEDED, FAUCET_DISPENSER_EXHAUSTED, WITHDRAWAL_NOT_CANCELLABLE, IDEMPOTENCY_CONFLICT, IDEMPOTENCY_MISMATCH, IDEMPOTENCY_KEY_INVALID, FEATURE_NOT_AVAILABLE, RATE_LIMITED, DATABASE_ERROR, INTERNAL_ERROR, UNAUTHORIZED, FORBIDDEN, UNSUPPORTED_MEDIA_TYPE, WITHDRAWALS_FROZEN, WORKSPACE_NOT_FOUND, SYSTEM_WORKSPACE_PROTECTED, FAUCET_INVALID_AMOUNT, FAUCET_NO_ASSETS, FAUCET_NOT_SANDBOX.
Most failures do NOT carry a business code. 326 throw sites raise a generic one (VALIDATION_ERROR, NOT_FOUND, UNPROCESSABLE, UNAUTHORIZED, CONFLICT, FORBIDDEN) against 46 named public codes, so a generic code is the common case and a named one is the exception. Branch on code; treat error as human text that may be reworded. The full catalogue, with causes and next steps, is the Error codes guide.
Example
{ "error": "Insufficient balance. Available: 10.000000, Requested: 50.000000", "code": "INSUFFICIENT_BALANCE"}