Lesson 5

    Tool Lab: Reconcile Exchange Exports (CSV)

    18 min read

    Learn to download, import, and reconcile exchange transaction CSVs into your Fedha journal — detecting missing trades, fee errors, and misclassifications.

    Your Exchange Knows Everything — But Can You Make Sense of It?

    Every Indian crypto exchange lets you download a CSV (spreadsheet) of your transaction history. This file is your official record for tax purposes — but if you've ever opened one, you know it looks like a wall of confusing data with cryptic column names and thousands of rows.

    This lesson teaches you how to take a raw exchange CSV, clean it up, and turn it into a tax-ready record.

    Why You Need to Do This

    Three reasons:

    1. Tax filing: ClearTax and Koinly need clean data to calculate your gains correctly. Garbage in = garbage out.
    2. Audit defense: If the IT department asks questions, your exchange CSV + your reconciled journal is your proof.
    3. Self-awareness: Most people have no idea how much they actually spent on fees, how many trades they made, or what their real return is after costs.
    Exchange CSV Export IssuesIndian exchanges export incomplete or inconsistently formatted CSVs — blind import leads to wrong tax calculations1. Missing INR ValuesSwap CSV row example:Sold: 0.005 BTCReceived: 0.12 ETHINR Value: ??? MISSINGYou must manually look uphistorical INR price from CMCfor tax calculation accuracy.⚠ Cannot skip this step2. Incomplete FieldsTransfer-out CSV row:Type: Transfer-OutAmount: 0.1 ETHDestination: MISSINGWithout destination address,impossible to confirm if it'sown-wallet (not taxable) or gift.⚠ Must cross-reference wallet3. Quarterly LimitsExchange exports max 90 days:Apr 1 – Jun 30 → Download 1Jul 1 – Sep 30 → Download 2Oct 1 – Dec 31 → Download 3Jan 1 – Mar 31 → Download 4Need 4 separate downloadsper exchange for full FY data.⚠ Repeat for each exchange
    Three structural limitations in Indian exchange CSV exports — missing INR values on swaps, incomplete transfer records, and 90-day export windows — require manual reconciliation before any tax software import.

    Step 1: Download Your CSVs

    Every Indian exchange offers transaction history export:

    • CoinDCX: Profile → Transaction History → Download CSV
    • WazirX: Funds → Transaction History → Download
    • ZebPay: Profile → Reports → Generate Report

    Download the full history — not just the current month. You need the entire financial year (April 1 to March 31).

    If you use multiple exchanges, download from each one separately.

    CSV Reconciliation ChecklistComplete all 5 steps before importing into tax software — each step catches a distinct class of errors1Download from ALL exchanges used (April 1 – March 31)For each exchange: 4 quarterly downloads; for DeFi: use on-chain explorer exports2Cross-check totals with Form 26AS (TDS records)Total TDS in your CSVs must match TDS shown in Form 26AS from the IT portal3Add INR values for swaps (from CMC historical API)For each swap, record INR equivalent of crypto sent at exact timestamp using CoinMarketCap4Flag transfers between own wallets (not taxable)Tag each transfer-out with destination wallet — mark as "self" to exclude from gain calculation5Verify TDS deducted = TDS in Form 26ASFinal check: reconciled TDS total must match IT department records exactly before filing
    A five-step CSV reconciliation process — covering data completeness, Form 26AS matching, swap INR values, wallet tagging, and TDS verification — ensures the transaction record is accurate before any ITR Schedule VDA entry.

    Step 2: Understand the Columns

    Each exchange formats slightly differently, but you'll typically see:

    Column What it means
    Date/Time When the trade happened
    Type Buy, Sell, Deposit, Withdrawal
    Market/Pair e.g., BTC/INR, ETH/USDT
    Price Rate at which you traded
    Quantity/Amount How much crypto
    Total INR value of the trade
    Fee Trading fee charged
    TDS TDS deducted (if applicable)

    Step 3: Clean and Categorize

    Open the CSV in Google Sheets or Excel. Now:

    Filter out non-taxable events:

    • Deposits (INR into exchange) — not taxable
    • Withdrawals to your own wallet — not taxable (but note them for audit trail)
    • Keep: Buys, Sells, Swaps

    Add a "Tax Type" column:

    • Buy → "Acquisition" (establishes cost basis, no tax)
    • Sell for INR → "Disposal" (taxable gain/loss)
    • Swap → "Disposal + Acquisition" (taxable on the out-leg)

    Add a "Cost Basis" column: For each sell/swap, you need to match it against your original purchase using FIFO (First In, First Out). This is the most tedious part.

    Step 4: Calculate Gains

    For each disposal:

    Gain = Sale Value (INR) - Cost Basis (INR) - Fee
    

    Sum all gains for the financial year. This is your total taxable income from crypto.

    Don't forget: Gains from different crypto assets cannot be offset against each other. If you made ₹50,000 on BTC and lost ₹30,000 on DOGE, your taxable gain is ₹50,000 (not ₹20,000).

    Step 5: Reconcile Against Your Journal

    Compare the CSV calculations against the tax journal you've been maintaining (Lesson 3.3):

    • Total number of taxable events should match
    • Total gains should be within ₹100-500 (rounding differences)
    • Any large discrepancies need investigation — missed transactions, different exchange rates, or fee miscalculations

    Step 6: Import Into Tax Software

    Once reconciled:

    • ClearTax Crypto: Upload CSV directly. It auto-maps most exchange formats.
    • Koinly: Connect via API or upload CSV. It handles FIFO matching automatically.
    • Manual ITR filing: Use your reconciled spreadsheet to fill in Schedule VDA in your ITR.

    Common CSV Pitfalls

    • P2P trades not in the CSV: Some exchanges don't include P2P transactions in the standard export. Check separately.
    • Fee currency confusion: Some exchanges show fees in crypto (e.g., 0.001 BTC fee), others in INR. Convert crypto fees to INR at the time of the transaction.
    • Multi-exchange gap: If you moved crypto between exchanges, one shows a withdrawal and the other shows a deposit. Neither shows it as a trade — but you need to track the cost basis transfer.
    • USDT-denominated trades: If you traded BTC/USDT, you need the INR value of USDT at the time of the trade to calculate your INR gain.

    Quick Recap

    • Download full-year CSVs from every exchange you've used (April 1 to March 31)
    • Clean the data: filter non-taxable events, add Tax Type and Cost Basis columns
    • Calculate gains using FIFO matching
    • Reconcile against your weekly journal — discrepancies need investigation
    • Import into ClearTax Crypto or Koinly for auto-calculation
    • Watch for P2P trades, multi-exchange transfers, and USDT-denominated trades

    Key Takeaways from this Lesson

    1. 1Exchange CSVs have common quality issues — review all auto-classifications manually
    2. 2Verify entry count in journal matches transaction count in exchange portal
    3. 3Never delete imported entries — add correction entries with notes instead
    4. 4Financial year export = April 1 to March 31 — not calendar year
    Lesson Quiz
    +10 points when you complete this lesson

    Pass the quiz above to unlock completion

    © 2026 Fedha Academy. All rights reserved.

    Trading involves risk. Learn responsibly.