Troubleshooting: Internal Transactions

In this article, we will explain how to troubleshoot for Internal Transactions. When you send assets from one wallet to an exchange or from one wallet to another, it is called an Internal Transaction. These are important, as they are necessary for the correct reporting of the purchase price. If the exchange and wallet are both connected to and send exact data, you will never worry about internal transactions at all. However, there are some cases where you’ll need to improve the data to make it understandable for But first, let me illustrate why internal transactions are so important:

Let us say you buy 1 Bitcoin for $ 3.000 and after a year send that asset to an exchange to sell it. Tracking tools need to understand at what particular price the asset was acquired to calculate the profit/loss.

To match internals within we look at three things: the transaction hash, the time when the transaction was executed, and the quantity of moved funds. If we receive a transaction hash from the blockchain we match the internal without any further doing. Otherwise the internal will pop up for manual review in the corresponding tab on the review page.

Therefore usually it is sufficient to connect both wallets/exchanges and possibly check the internals tab on the review page. However, there are cases where the internal transaction will not show up nevertheless. Then you will need to do a manual fix. Let’s take a look at some real world data for this case and how to fix it!

Example of an internal transaction with slightly different quantities reported

You can see that on Binance with USDT 30.000 deposited, there was an order placed for 1 Bitcoin. Afterward, the Bitcoin was sent from Binance to a cold storage wallet. The API reported a slightly different quantity, this could happen because of invalid fees being reported. So overall Binance reports 1 BTC withdrawn, while only 0.94 BTC were received on the cold storage wallet. Given the conditions that are listed at the end of this article, is not able to match this as an internal transaction as the quantity is different by more than 5 percent:

The review page for internals reports no candiates

We will proceed to troubleshooting your internal transactions. The fix is quite simple, we just have to adjust the value that is off in order to be within the defined threshold. Therefore in the Full Data Set we are going to edit the deposits quantity to 1 BTC:

The quantity of the deposit is changed to 1 BTC

As you can see below, is now ignoring the deposit and added an adjusted copy of the record. This will only happen for data that was imported through API and prevents duplicates when importing further data:

If you head over to the review tab, your internal is now ready to be approved:

That’s it, congratulations, you have matched your internal transactions. You can utilize this file to reproduce the case. Just import it on the wallets page via Services ->

Frequently Asked Questions About Internal Transactions

What are the conditions for an internal to match?

  • Both the deposit and withdrawal are imported/created into
  • The time difference between deposit and withdrawal is less than 12 hours 
  • The quantity is either exactly the same or within a 5% threshold

How do I fix an internal transaction not showing up in the review tab?What should I do if either one of the wallets is not supported by

Make sure that all the above criteria are met.You can always create a so called manual wallet and enter the data by hand.

What should I do if either one of the wallets is not supported by

You can always create a so-called manual wallet and enter the data by hand.