Data
Import (PDF, CSV) and export
Importing transactions
Section titled “Importing transactions”From Import transactions, drop your statements — PDF files downloaded from your bank’s website, or CSV files exported by your bank or by another budgeting app — or click to browse. You can drop several at once, mixed if you like (a PDF and a CSV together): they are read one by one, then gathered into a single preview.
One import = one account. Every file of an import goes into the same account: drop the statements of one account together; those of another account are imported afterwards, separately.
Limits: at most 60 files per import, 5 MB and 30 pages per PDF, 25 MB per CSV.
Your files are read on your device and are not uploaded: only the transactions you import join your budget. A file’s name is never kept: the source of an imported transaction reads (in French) “Relevé 03/2026”, “Relevé du 23/05/2026 au 22/06/2026” or, for several files, “3 relevés du … au …”, never the file name (which sometimes carries an account number).
PDF statements
Section titled “PDF statements”A PDF statement is not read by guesswork: Arca rebuilds its table (Date, Description, Debit, Credit, Balance columns…), then checks the result against the balances the bank prints. The opening balance, plus the transactions read, must land exactly on the closing balance — and, when the statement prints them, on its debit and credit totals, on each line’s running balance and on its intermediate balances. A statement that passes is marked KEPT (“Balances checked: … opening, … closing”). A missing transaction, a flipped sign or a misread amount breaks that check, and the statement is not imported. The check has limits, stated plainly: it cannot see two errors that cancel each other out exactly, and it checks the reading of the statement, not the statement itself (a statement that is wrong at the bank goes unnoticed).
- Recognised banks. Arca does not recognise a bank by its name: it recognises the column and balance headings that common statements use — some read from real statements, others from public sources. If your statement uses other headings, it is simply marked TO MAP (see below): it is not lost.
- Password-protected statement. Arca asks for it — the one your bank gave you — to open that file, this time only: it is not kept. “Skip this file” sets aside that one statement; the others carry on.
- Masked numbers. Truncated card numbers and IBANs found in a statement’s lines are replaced by “[carte masquée]” or “[IBAN masqué]” before they enter your budget. Long numeric references (ten digits in a row or more) are replaced by “[référence masquée]” in the bank detail; the imported description keeps them, since it is used to recognise a transaction already imported.
- “Pending” transactions. A section of the statement whose transactions do not add up with its balances (transactions not yet booked) is set aside, and said so: “2 pending transactions, not imported”.
- Several consecutive statements. One month’s closing balance must land on the next month’s opening balance. If not, Arca warns (“a statement may be missing, or was reissued”) without blocking the import. Two statements whose periods overlap are kept only once, and a PDF, checked against its balances, takes precedence over a CSV.
Mapping a PDF’s columns and entering its balances
Section titled “Mapping a PDF’s columns and entering its balances”When the table heading is not recognised, or the statement prints no balances, the file stays TO MAP: the Map the columns button rebuilds the table next to the list of fields. You choose what each column holds (Date, Payee, Amount — or Debit and Credit —, Bank detail…); the columns you do not choose are called “not read” and are not imported. Arca remembers your mapping for statements with the same heading, on this device only.
If the statement prints no balances, copy them in (opening and closing balance, as printed): they feed the same check. Arca writes out the sum — “€1,500.00 opening, + €820.00 credits, − €1,140.00 debits = €1,180.00” — and, if it does not add up, the gap: importing that statement is blocked until the balance you copied brings the gap to zero — or until you set it aside (Set this statement aside): the other files are imported. Without balances, nothing is imported: a badly mapped table would otherwise be imported with nothing to say it is wrong.
Why a file is refused
Section titled “Why a file is refused”Each refused file says why, in the file list; the other files of the import are untouched. The reasons, in plain words:
- the file is neither a PDF nor a CSV, or exceeds the allowed size;
- the PDF has more than 30 pages (drop it month by month), or holds far more text than a statement;
- the PDF is an image — a scan: it holds no text to read. Download the statement from your bank’s website, or export it as CSV;
- the PDF could not be opened (damaged), or reading it took more than 30 seconds;
- the PDF reader could not start (see the note below);
- the password is wrong, or was not given;
- no transaction was found in the file;
- the transactions read do not lead from the opening balance to the closing balance — “a transaction is missing or was misread” — or the totals, a line’s balance or an intermediate balance do not add up;
- dated transactions could not be attached to the table (rather than importing an incomplete statement, the file is refused), or their date is unreadable or outside the statement’s period;
- a transaction has no readable amount, or several; or its value date is more than 10 days from its date (the column reading is doubtful);
- a balance you copied contradicts the one the statement prints: the printed one counts;
- the statement is already in the import (same statement, or a period that overlaps another);
- the import goes past 60 files.
Mapping a CSV’s columns
Section titled “Mapping a CSV’s columns”Map columns lists Arca’s own fields — Date, Payee, Bank detail, Note, Envelope, Envelope group, Account, Amount, Fee, State, End date and Cleared — each with a picker for the column that feeds it, and a sample of what Arca reads from it. Common headers are recognised on their own, and a counter says how many of the file’s columns are read. The same column can feed several fields at once — a single “Description” column, for instance, can supply both Payee and Note. Date, Payee and Amount are the only three required.
Two optional fields change what gets written:
- Fee: when mapped, it is subtracted from Amount — the amount written is always the net one, even a row reading “Amount 0.00 / Fee 1.00” is written at its real cost, never at 0.00;
- State: when mapped, only rows at a final state are written. Pending or returned rows are left out and counted separately in the summary; a state Arca doesn’t recognise is never silently dropped — it is imported anyway and flagged for a check.
A row can also carry a date followed by a time (for instance “03/07/2026 13:42”): the time is ignored, only the date is kept, with no timezone conversion. And an optional End date column helps Arca recognise a row that is already in your vault — the date it writes is always the start date, the end date is only used to match.
Two more things to know:
- envelopes are matched by name, never created. A name your budget does not have leaves the row without an envelope, and the number of rows affected is stated before the import runs. A row with no envelope at all is offered the one Arca would suggest for its payee, marked with the same bulb as at manual entry — an envelope the file does name is never replaced;
- the account can come from the file. Map an Account column and each row goes to the account it names; otherwise everything lands on the account picked from the list.
Invert the sign of amounts if your bank records spending as positive.
The preview
Section titled “The preview”Each row in the preview carries one of three statuses:
Arca recognises an already-imported row by its import id (when the file is one of Arca’s own exports), or by matching amount, day (within a few days) and a recognised payee — twin rows (the same amount and payee, a few days apart) are matched in date order rather than duplicated, and a transfer is recognised the same way as any other row. When several rows of the file share the same amount and several existing entries do too, a few days apart (a subscription paid every month, for instance), they are offered as matches in date order rather than silently duplicated — a single row facing several possible matches is left as a new row instead. Confirming a match also repairs an older trace, if the linked row still carried the label Arca recognised before it was imported.
Comparing to a statement
Section titled “Comparing to a statement”Instead of importing a file, you can compare it to what the account already holds, without writing anything: from an account’s register, the Compare to a statement… entry of the ⋯ menu (“More actions”, at the end of the filter bar, next to “Reconcile”) opens the same import screen, in a dedicated mode. Dropping the file and mapping columns work exactly as for a regular import; step 3 becomes “Comparison”, and its button reads Compare N lines instead of importing.
The screen answers three questions, in order: do Arca and the bank agree? Since when do they not? Which transaction explains it? A sentence first says where the gap stands (“In agreement until 13/03/2025. Since then, 7 days created the gap of + €128.11”), then a curve shows the lasting gap — bank minus Arca — in steps, on a zero line that means “in agreement”; the gap is amber, the colour of what needs watching. Each day that changes the gap carries a numbered marker, the same number as its row in the list below. The All, 12 months, 3 months, 1 month segments change the period shown.
Date shifts — the bank and Arca date the same operation a few days apart, and the gap closes again within three days — do not make the gap: they stay out of the curve’s scale, but they remain counted and visible in a strip under the axis, with the largest of them, and can be unfolded one by one. When everything matches, the screen shows no chart: a sentence, a tick and the button to reconcile the account.
Under the curve, What makes the gap groups the rows into sub-lists (in the bank only, imported twice, in Arca only, returned by the bank, different, to pick), each with its total and its effect on the gap; their effects add up to the remaining gap, to the cent. Matching rows stay folded below, and rows set aside because they are not final come separately.
The bank’s level comes, in this order, from the file’s Balance column if it has one; from a PDF statement’s closing balance — the one the statement prints, or the one you copied in (the screen then reads “Statement closing balance on 15/08: …”); otherwise from a balance you enter, on a date of your choice. With none of the three, the screen shows “Level unknown” in place of the bank and the gap: the shape of the graph stays true, its level does not, and Arca makes up no amount. With several PDF statements, the most recent one sets the level. If the import also holds a file that does not state its balances (a CSV, or a PDF covering several accounts), the level is yours to enter: Arca could not see a statement missing between the two. Change hands the balance back to you to enter by hand.
Rows are read exactly as the import preview reads them: your rules apply (a row whose bank label contains PIZZA shows as the payee “Pizza”, with the bank’s label underneath), the payee Arca recognises counts when matching a row to an entry, and Add to Arca writes the payee and the envelope the import would have written — never a new payee named after the raw bank label.
Each sub-list also has its bulk gesture — Add all to Arca, Remove the N duplicates, Keep all, Delete all…, Match the bank on all — which acts on the visible rows (when the lists are filtered to one day, on those only). A gesture that deletes asks for confirmation, which says the number of transactions, the amount and what the gap becomes; the others undo with one click in the message that follows.
Each row offers the gesture that fits it — add a missing row, remove a duplicate (the copy entered by hand keeps its place and receives the import’s trace), match an amount or date to the bank’s, keep a difference as is, or link an ambiguous row to the entry it points to. Nothing is written until one of these gestures runs, and each one undoes like an import (⌘Z, or Ctrl+Z on Windows and Linux). Once the gap reaches zero, the screen offers to reconcile the account as of the statement’s date.
Exporting transactions
Section titled “Exporting transactions”The Export entry of the ⋯ menu (“More actions”, at the end of the filter bar of the All accounts
page and of every account’s register — Import is there too; their icons are opposite: an upward
arrow to export, a downward arrow to import, the file entering the vault) downloads
the currently displayed rows (filters and search included) as CSV, with the columns:
Date, Payee, Envelope, Account, Amount, Note, Imported label, Import id — the last two only
serve to link a re-imported row back to the original.
It’s the simplest format to re-import your data into a spreadsheet, or to back it up outside Arca — and re-importing that same export into the same vault creates nothing: every row comes back “Already there”.
Was this page helpful?
Thanks — noted.
