Importing statements, receipts, and documents
Which files FullFi reads, why importing the same file twice never adds anything twice, how it asks when it isn't sure, and how to undo an import.
Everything you import goes through one page: Import, in the app. Pick the account the transactions are on, choose a file, and select Upload and review. Nothing changes in your ledger until you've seen exactly what will be added, the original file is always kept, and you can undo any import.
Bank and card files
FullFi reads CSV (and tab-separated) exports, plus OFX, QFX, and QIF statements. Files can be up to 2 MB and 10,000 rows.
- CSV. FullFi guesses the date, description, and amount columns from the header row, in English, French, German, or Spanish. On the review page you can pick them yourself, choose the date format and number style (1,234.56 or 1.234,56), and flip the sign if your card's export shows purchases as positive.
- OFX and QFX. The file's currency must match the account's. Investment statements and files with several accounts aren't supported yet.
- QIF. When a date such as 09/10 could be read both ways, FullFi asks which order the file uses.
The review shows how many rows are New, Already imported, Already in your ledger, or Need review, and why any row couldn't be read.
Importing the same file twice
Re-importing never duplicates anything. Each row gets a fingerprint: the bank's own transaction id when an OFX file has one, otherwise the account, date, amount, and description. Two identical −4.75 CAD coffees on the same day in one file stay two transactions. A row that was already imported shows as Already imported and is skipped, and FullFi refuses to import the same upload twice.
When FullFi isn't sure
FullFi also looks for each row among the transactions you already have on that account: the same amount within a few days, ideally with the same merchant. A pending or expected transaction can match even when the final amount differs.
- A sure match is linked, not added. The row becomes another source of the transaction you have, which counts once. If that transaction was pending or expected, it becomes settled.
- An unsure match becomes a question: "Is this the same?" It shows why the two look alike ("Same amount, same day, same merchant.") and how sure FullFi is ("92% sure"). Answer Link, it's the same or Keep separate. Nothing is added until you answer.
How eagerly FullFi links on its own follows the automation level in Settings. With More control, it always asks. After an import, FullFi also links transfers between your accounts so they don't count as spending. See transfers and card payments.
Receipts, bills, and AI import
AI import is off until someone who can configure the workspace turns it on in Settings. With it on, you can import a PDF, a photo or screenshot (PNG, JPEG, WebP, or HEIC), or a text file or email up to 4 MB, or paste text.
When it's on, the file is sent to OpenRouter, which passes it to the model shown in Settings. Only providers that don't train on your data are used. Your category names go along so the model can suggest one. FullFi keeps what the model read, which model read it, and how sure it was, separately from what you finally accept.
You review every item before it's added: each one shows how sure the reading is, and you can correct it, link it to a transaction you already have, or set it aside. A bill can be added as expected until it's paid.
Without AI import, PDFs and photos can still be kept on the Documents page.
Undoing an import
Open the import and select Undo this import. Its transactions are archived, not deleted, and rows that were linked to transactions you already had are unlinked. The original rows are kept, so you can upload the file again. To undo a single link, open the transaction and select Unlink under Sources.