Binance
PIT-38 from Binance: three different exports, one of them full of cancelled orders
Binance gives several reports of the same history, and one of them contains orders that never happened. Below is exactly what our engine reads.
Where to get the file
- Open Wallet → Transaction History and request a report for the tax year.
- Pick Transaction History if you want one file covering everything that moved on the account.
- If you already have Spot Trade History or Spot Order History, send those — we recognise all three.
What is inside
- Three different report shapes
- Spot Trade History is executed trades. Spot Order History is orders, including ones that never filled. Transaction History is a ledger of individual balance movements.
- Headers somewhere around row ten
- In the XLSX a few rows of account and date-range description sit above the table. Column names begin only below them.
- An order status column
- In the order history the status says whether an order filled, partially filled, or was cancelled.
- Fees in their own currency
- The fee is sometimes charged in a different coin from the trade, with its own currency column.
Where it goes wrong
- Cancelled orders counted as trades
- Order history also holds the ones that never executed. Without filtering on status the return shows disposals that never happened.
- The first row taken for the header
- An account description sits above the table. Opened raw, a spreadsheet takes it for the column names and everything below shifts by several rows.
- A coin-to-coin swap counted as a sale
- Exchanging one virtual currency for another is tax-neutral — art. 12 ust. 4g. Counting it as a sale inflates proceeds by the entire volume traded between coins.
- A stablecoin treated as money
- Under Polish law USDT and USDC are virtual currencies. Buying USDC for złoty is a cost of acquiring virtual currency, not a “cash deposit”.
What we compute from it
- Virtual currencies — section E/F
- Separate from shares, art. 30b ust. 1a. A crypto loss does not reduce a gain on shares.
- Costs without FIFO
- Line 37 is the sum of EVERY purchase in the year, including those not yet sold — art. 22 ust. 14-16. Mechanically nothing like shares.
- Undeducted costs carry forward
- Costs exceeding proceeds move to line 38 of the following year, with no time limit.
- Conversion to złoty
- NBP rate from the day before income is realised, art. 11a ust. 1.
Run this once
claude mcp add --transport http taxroam https://taxroam.com/mcp --header "Authorization: Bearer $TAXROAM_KEY"Where this export usually goes wrong
- Crypto
- A December purchase left out because “it isn’t sold yet”
- The NBP rate
- The trade-date rate
Questions about Binance
Do I have to report BTC-to-ETH swaps?
Not as income. Swapping one virtual currency for another is neutral — art. 12 ust. 4g. Tax arises when you exit into money, goods or services.
I bought USDC in December and sold nothing. Does that matter?
Yes. The purchase enters this year’s costs even with no sale, and it either lowers the base or carries into next year. Leaving it out overstates the tax.
Which of the three reports should I send?
One is enough, but it must cover the whole year. Transaction History is the fullest.