API sync failed, so you switch to manually importing CSV, and end up importing a bunch of duplicate transactions—this is one of the most common error scenarios in tax software like Koinly, CoinLedger, and CoinTracking.

A leading global cryptocurrency platform,suitable for both beginners and experienced traders.
New user benefit: 20% off trading fees upon registration!!
When the platform says "Duplicate", it doesn't mean your CSV file is problematic; it means the record already exists in your ledger. When importing manually, there are three core types of duplicates to watch out for: reimporting the same file, mixing API and CSV sources, and overlapping data across files.
Step 1: Importing the Same File Multiple Times (Most Common)
What to do: Confirm whether you've imported the same CSV file repeatedly.
How to do it: Go to the tax software's "Imported Records" or "Connected Accounts" list, and check if the same file name appears multiple times. CoinLedger's "Missing Cost Basis Troubleshooting" panel will directly flag "Same CSV file imported twice"; Koinly's import summary under "Duplicate" shows the number of skipped transactions.
Success criteria: You can state how many copies of the same file exist in the system.
Common failure reasons: Many people forget they already imported the file a month ago, and this month they import the same old file again to add new data, resulting in all old transactions being duplicated. The simplest solution: before each import, first check the "Imported Files" list.
Step 2: Using Both API and CSV Simultaneously (Easiest to Miss)
What to do: Make sure the CSV you're importing isn't from an exchange where you've already synced the same account via API.
How to do it:
Check the tax software's "Connected Accounts" list to see if an API connection already exists for the same exchange.
CoinLedger explicitly states that if you mix CSV and API for the same exchange, the system cannot effectively filter duplicates—the two use different matching mechanisms. CoinTracking also recommends using only one method per account, not mixing them.
Some platforms (like MEXC) have API and CSV that are incompatible; using both will inevitably create duplicates.
Success criteria: You've confirmed that for the exchange you're currently using, only one data source is connected (either API or CSV, not both).
Risk reminder: Duplicates caused by mixing API and CSV will not all be automatically skipped. CoinLedger explicitly warns that this situation can trigger "Missing Cost Basis" alerts—duplicate transactions interfere with cost flow, causing some trades to be unmatched with the correct purchase cost. Ultimately, your tax report may show records with a cost basis of 0, inflating your taxable amount.
Step 3: Overlapping Transactions Across Files (Batch Importing Multiple Files)
What to do: Confirm whether there is any time range or transaction overlap between multiple CSV files.
How to do it:
If you are importing in batches (e.g., by quarter or by month), make sure the date ranges of each batch file do not overlap.
Koinly users have reported that when splitting Bybit CSV files into multiple imports, the system may mark some transactions as "Duplicate" even if the files have no time overlap. The solution is to import in ascending time order and use the largest possible files (e.g., up to 10MB limit) to reduce the number of splits.
For overlapping transactions across files, keep the earlier imported batch and delete the later duplicates.
Success criteria: All imported files have non-overlapping date ranges, or you have manually marked which record to keep for any overlapping part.

A leading global cryptocurrency platform,suitable for both beginners and experienced traders.
New user benefit: 20% off trading fees upon registration!!
Verification After Import
After importing, go to the tax software's "Transactions" list, filter by the coin or exchange, and sort by time:
Check if any transactions with the same timestamp, same coin, and same quantity appear more than twice. If so, that's a typical duplicate transaction flag.
Look at the "Missing Cost Basis" warning panel—if duplicate imports are flagged, the system will prompt you here.
Next Step: If duplicate records have already been created, do not try to delete them one by one manually. First, delete the entire problematic import (remove the API connection or the CSV import), then perform a clean import again. CoinTracking recommends deleting all old imported transactions before switching methods, then re-importing. After that, use the method mentioned in "Exchange CSV Missing Internal Transfers: How to Complete the Full Ledger" to separately add internal transfer records, avoiding duplicates.


