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

  1. Open Wallet → Transaction History and request a report for the tax year.
  2. Pick Transaction History if you want one file covering everything that moved on the account.
  3. 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"

Documentation · How it works · Pricing

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

All Polish tax cases

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.