How to Troubleshoot When Binance API Cannot Find Deposit Records?

 / 
 / 
3

When the API does not return deposit records, the problem is rarely a coding mistake. More often, it stems from inherent limitations in Binance deposit data access and query scope. When troubleshooting, set aside "code issues" first and rule out problems step by step across three dimensions: data type, time range, and API version.

Binance Exchange
The world's largest cryptocurrency exchange by trading volume,leading in security and liquidity.
New user benefit: Enjoy 20% off trading fees upon registration!

Step 1: Confirm Whether You Are Looking for "On-chain Deposits" or "Fiat Deposits"

Binance's API provides completely different endpoints for these two deposit types. Many missing-record problems start right here.

On-chain deposits (crypto deposits):

  • Use the /sapi/v1/capital/deposit/hisrec endpoint to query.

  • This is the most commonly used deposit query endpoint, supporting filtering by coin, network, status, and txId.

Fiat deposits (buying crypto directly with credit card or bank transfer):

  • Use the /sapi/v1/fiat/orders endpoint to query fiat deposit and withdrawal history.

  • Binance's API does not return fiat deposit records by default – you must call this separate endpoint.

Many third-party tax tools (such as Koinly, CoinLedger) explicitly state that Binance's API does not return fiat deposit history, leading to missing data during import.

What counts as done: First confirm which deposit type you need, then call the corresponding endpoint.

Step 2: Check Whether the Time Range Exceeds API Limits

Binance's API imposes strict time limits on deposit history queries – this is one of the most overlooked points.

Key limits:

  • The query period cannot exceed 90 days.

  • The interval between startTime and endTime must be less than 90 days.

  • If startTime is not passed, the API only returns data from the last 90 days by default.

If you try to fetch deposits older than 3 months by calling fetch_deposits without a time parameter, you will not get them. Third-party libraries such as CCXT have the same limitation – some developers report that even when using the since parameter, the iteration can break due to a 3-month gap without deposits, leaving the history incomplete.

Solution: Query data in chunks of no more than 90 days each, using pagination to iterate segment by segment from oldest to newest, rather than attempting to fetch everything at once.

What counts as done: Confirm that the requested time interval does not exceed 90 days and implement a segmented query loop.

Step 3: Ensure the API Key Has "Read" Permission

API key permission settings directly affect the scope of data you can retrieve.

  • Deposit history falls under the USER_DATA permission scope. The API key must have the read-only permission enabled to query this data.

  • Some developers have observed that the same endpoint returns different amounts of data with different users' API keys – some can see the full history, while others can only see data created after the API key was generated.

How to check:

  1. Log in to the Binance website and go to the API Management page.

  2. Check the permission settings for the relevant API key and make sure "Read" permission is enabled.

  3. If permissions are insufficient, regenerate an API key with full read access.

What counts as done: Confirm the API key has USER_DATA read permission.

Step 4: Verify the API Version – Old Endpoints May Have Been Discontinued

Binance retired the WAPI endpoints in 2021. All requests must be migrated to SAPI endpoints. If you are still using old WAPI endpoints to query deposit records, you will get nothing.

How to check:

  • Make sure the request URL contains /sapi/v1/ or /sapi/v2/, not /wapi/.

  • On-chain deposits: /sapi/v1/capital/deposit/hisrec

  • Sub-account deposits: /sapi/v1/capital/deposit/subHisrec

What counts as done: Confirm the request URL uses a SAPI endpoint path.

Step 5: Verify with the Transaction Hash (txId)

If you still cannot find the deposit after following the above steps, use the txId to look up that specific deposit directly.

How to do it:

  1. Pass the txId parameter in the deposit history endpoint.

  2. If the txId is confirmed on-chain but still not returned by the API, the deposit may have been made via a fiat channel (see Step 1).

  3. If the txId can be found but the status shows pending (status=0) or credited but cannot withdraw (status=6), it means the deposit has not yet completed. Wait patiently for the confirmation.

What counts as done: Locate the specific record via txId and confirm the deposit status.

Common Failure Causes Summary

CauseSymptomSolution
Querying on-chain endpoint for a fiat depositNo records returnedSwitch to /sapi/v1/fiat/orders
Query interval exceeds 90 daysOnly returns data from the last 3 monthsQuery in chunks of ≤90 days
API key lacks read permissionReturns an empty arrayRegenerate a key with USER_DATA permission
Using discontinued WAPI endpointRequest error or no dataMigrate to SAPI endpoint
Deposit confirmation not yet completeStatus is pending or 6Wait for on-chain confirmations to complete

Binance Exchange
The world's largest cryptocurrency exchange by trading volume,leading in security and liquidity.
New user benefit: Enjoy 20% off trading fees upon registration!

Risk Reminders

  • An empty API result does not mean your funds are lost – first check the Deposit History in the Binance App to confirm whether the deposit arrived. If the record appears in the App but not via the API, the problem is with the API call, not the safety of your funds.

  • Starting January 15, 2026, Binance updated the signature parameter ordering rule. If your requests do not follow the new ordering, they will be rejected with a -1022 INVALID_SIGNATURE error. You need to check whether your signature logic has been adapted.

First confirm the deposit type (on-chain vs fiat), then check whether the time range exceeds 90 days, and finally verify your API key permissions. These three steps will identify most issues. If you still cannot find the record, check the Deposit History in the Binance App to confirm the funds have arrived, and then use the corresponding txId to make a direct API request via Postman to rule out any code logic issues.