Import: what to do when it fails
Wrong characters, unrecognised columns, a password-protected Excel file, a reversed sign on a card, everything marked as duplicate, a refused account, the monthly limit and how to undo an import.
Last updated: October 2, 2026
The file is refused or nothing is recognised
- Accepted files: CSV, Excel (
.xlsx,.xls), SEPA XML (camt.053), MT940 (.sta,.940), OFX / QFX / QBO, QIF, GPC / ABO and the national formats Norma 43, CFONB 120, CBI, CODA and Elixir. The full list is on the Statement formats page. The format is decided by the content, so an unusual extension such as.txtor.datis fine too. - PDF: read if it has a text layer (you can select its text with your mouse). For a scanned statement (without a text layer), the import offers an AI transcription with the price shown first; if you decline it or do not have enough AI credit, download CSV, Excel or XML from your bank. If the import finds no transaction table in the PDF (for example, it is only a summary overview), download CSV, Excel or XML from your bank.
- Zero transactions found: the file is most likely a summary rather than a transaction list (for example a monthly overview), or an investment statement. The structure of the file decides before the bank choice: a camt.053 file is parsed as camt.053 even if a CSV bank is selected. You do not have to choose a bank; if we do not recognise it, the import continues as “Other bank”.
Excel cannot be read
- “The Excel file is password-protected”: a password-protected workbook cannot be read. Open it in Excel and save it without a password, or download CSV from your bank.
- “The Excel file is too large”: it exceeds 50 MB when unpacked. Export a shorter period.
- “The Excel file could not be read”: the file is damaged or is not Excel, even though it has the
.xlsextension. Save it again in Excel as XLSX or CSV. - The wrong sheet is used: from a workbook with several sheets, the one with the most rows is read. If your statement is on a smaller sheet, save it on its own.
Wrong characters in the description
A file in UTF-8 or UTF-16 is recognised automatically. National formats (GPC, Elixir, CODA, Norma 43, CFONB, CBI) have the encoding set by their standard. Other files in a legacy encoding are read according to the market in Settings: Czech Republic, Slovakia and Poland as Windows-1250, all other markets as Windows-1252. For markets outside Central Europe, Cyrillic, Greek, Japanese, Korean and Chinese are also recognised from the content.
If the preview still shows wrong characters (typically ř instead of ø in a Danish statement uploaded with the Czech market selected), check the market in Settings. If your bank offers a choice, export the statement in UTF-8; that is always read correctly.
Columns are assigned wrongly
Smart detection recognises columns by content, not by header names. When it is unsure, the dialog shows the columns and lets you assign date, amount, description and counterparty by hand. You can also let the AI propose the mapping from the header and a few rows; the mapping is then saved with the bank, so the next import does not ask again. The whole statement is never sent to the AI.
Numbers with a decimal comma or a decimal point and dates in dozens of notations are handled; if amounts come out multiplied by 100 or 1000, the thousands separator was read as a decimal point, which the manual mapping’s number-format option fixes.
Expenses show up as income (or the other way round)
- Credit card: some banks (American Express, Discover, BMO, Nubank) record a purchase as a positive amount. We recognise this from the export header, or from the fact that all negative rows are payments and refunds. If the preview does not pick it up (for example a statement without a single payment), assign the columns by hand and choose the opposite sign for the amount.
- Positive amounts with a direction column: a column with values such as
S/H,D/CorIN/OUTis recognised automatically. If your bank uses its own labels, assign the columns by hand.
Day and month are swapped in the date
The order of day and month is determined from all rows of the statement: a single day greater than 12 is enough. If the statement has no such day (for example a short statement covering the first twelve days of a month), the preview says so and you choose the order in the manual mapping. For QIF, US MM/DD is used in that case.
Everything is marked as duplicate
The preview compares each row with what the account already holds: by the bank’s transaction code when the file has one, otherwise by date, amount and description. If you already imported the same period, all rows are duplicates and skipping them is correct. If you imported into a different account by mistake, remove that import first (below) and import again.
”This account is synced with Wallet”
An account that receives Wallet by BudgetBakers sync refuses CSV imports, because the two sources identify the same movement differently and would create duplicates and wrong balances. Import into a separate account, or disconnect Wallet in Settings and remove its transactions from the account first.
The monthly limit
The Free plan imports up to 500 transactions per calendar month; the count is shown in the import dialog. Premium and Max have no limit. Rows skipped as duplicates do not count.
Balance looks wrong after import
The account balance is recalculated from its transactions after every import. A transfer between two of your accounts is detected and paired; when the two accounts have different currencies, only the source side is adjusted, because the bank’s exchange rate is unknown. Check that transfers were not imported twice from both accounts’ statements with different descriptions; if so, delete one side.
Undoing an import
Open the account, choose “Clear Data” and pick what to remove: all transactions, or only those from one source (CSV imports, Wallet by BudgetBakers, manual entries). The “CSV imports” option deletes all imported transactions on the account, not a single batch. Rules and categories are not affected.
A statement sent by email can be undone import by import: on the Email import page, under “Recently imported”, use the “Undo import” button within 14 days (see Email import).
Large statements
Import runs in batches on the server. A very large file can take a while; the dialog shows progress and reports a timeout as a message rather than a crash. If it happens, split the statement by period and import in parts; duplicates from the overlap are skipped.
Email import: nothing arrived
When a statement you emailed does not show up under “Waiting for approval” on the Email import page, go through these points (details in Email import):
- Is email import on? It is off by default. After 20 rejected messages from unknown senders in a day it also turns itself off; then use “Generate a new address and turn on”.
- Are you sending from an allowed address? A message from an unknown sender waits under “Waiting for your decision”. Confirm it with “It is mine”, or add the address to the allowed senders.
- Is the address right? After you generate a new address, the old one stops working immediately. Copy the current address from the page again.
- Is receiving paused today? If the page shows “Receiving is paused for today”, send the statement the next day. The address also processes at most 10 messages a day.
- Is the attachment a statement in a supported format? CSV, Excel, XML and the other formats on the Statement formats page all work. We cannot read a scanned PDF, and an attachment can be at most 10 MB.
If the statement arrives but shows in red with a reason, discard it and upload the file manually on the Bank accounts page, where you can assign the columns yourself.