Versions
v2.11.12026-11-10patch release

Finance now reads PDF bank statements

Personal Finance used to take statements only as CSV or Excel files. Plenty of banks hand you a PDF and nothing else, or bury the spreadsheet export three menus deep. You can now import the PDF straight from your bank's app or website, and Portail rebuilds the table of transactions from it: dates, descriptions, amounts, and the running balance when the statement has one. It works with English and Russian statements, with one amount column or separate money in and money out columns, with descriptions that wrap onto a second line, and with tables that restart on every page. Sberbank-style statements, where each operation takes two lines and only income carries a plus sign, come through with every purchase counted once and the salary counted as income. Nothing about this uses an AI model: the file is read the same careful, rule-based way spreadsheets already were, and it stays private to your account. Scanned statements and password-protected PDFs get a clear message saying what to do instead, since there is no text in a scan to read and a locked file can't be opened. A PDF that holds no transaction table at all, such as a letter from your bank, is turned away with a pointer to the CSV or Excel export. The 4 MB limit per file still applies, so for a long history, download a few shorter periods and import them one after another. Overlapping statements are fine: transactions already imported are recognized and skipped, so nothing is counted twice. Imports keep working on every plan, free included, and you can keep up to ten statements at a time.

665 words

Import a PDF statement in Finance, alongside CSV and Excel.

Two-line rows, wrapped descriptions, repeated page headers and dates printed without a year are read correctly.

A plus sign on income with unsigned spending, and a currency sign next to the amount, are now read in CSV and Excel files too.

Scanned and password-protected PDFs get their own clear message.

Portail v2.11.1 shipped on 2026-11-10 as a patch release focused on finance now reads pdf bank statements. Personal Finance used to take statements only as CSV or Excel files. Plenty of banks hand you a PDF and nothing else, or bury the spreadsheet export three menus deep. You can now import the PDF straight from your bank's app or website, and Portail rebuilds the table of transactions from it: dates, descriptions, amounts, and the running balance when the statement has one. It works with English and Russian statements, with one amount column or separate money in and money out columns, with descriptions that wrap onto a second line, and with tables that restart on every page. Sberbank-style statements, where each operation takes two lines and only income carries a plus sign, come through with every purchase counted once and the salary counted as income. Nothing about this uses an AI model: the file is read the same careful, rule-based way spreadsheets already were, and it stays private to your account. Scanned statements and password-protected PDFs get a clear message saying what to do instead, since there is no text in a scan to read and a locked file can't be opened. A PDF that holds no transaction table at all, such as a letter from your bank, is turned away with a pointer to the CSV or Excel export. The 4 MB limit per file still applies, so for a long history, download a few shorter periods and import them one after another. Overlapping statements are fine: transactions already imported are recognized and skipped, so nothing is counted twice. Imports keep working on every plan, free included, and you can keep up to ten statements at a time. The work is recorded here because small releases are still product history. They change how people sign in, read responses, pay for access, share conversations, open files, or trust the system when something goes wrong.

The main changes were direct: import a pdf statement in finance, alongside csv and excel, two-line rows, wrapped descriptions, repeated page headers and dates printed without a year are read correctly, a plus sign on income with unsigned spending, and a currency sign next to the amount, are now read in csv and excel files too, and scanned and password-protected pdfs get their own clear message. That list is intentionally plain. It names what changed without turning the release into theatre. When a release fixes a build, a redirect, a storage path, or a UI edge case, the value is often that users stop noticing the problem. The archive keeps that invisible work visible enough for future debugging and for anyone checking whether Portail has cared about the details over time.

This version also fits into the wider Portail contract. One account, one chat history, and one model picker only work if the smaller pieces keep their promises. Authentication has to fail clearly. Billing has to count honestly. Uploads have to arrive in a form models can read. Admin tools have to show the operator what happened instead of hiding it behind a blank screen. v2.11.1 moved that contract forward in its own narrow lane.

The screenshots attached to this entry show the public release record as it now appears on portail.cc. For older releases, this archive was rebuilt from the git history, package version changes, release modal text, and commit subjects. That means the page is honest about its source: it documents the shipped change and preserves the record going forward, even when the exact old production screen cannot be recreated from a single saved image.

The practical result is simple. Someone landing on this page can see the version number, date, release tier, headline, highlights, and a real rendered screenshot of the archive page. Search engines can index the post through the canonical URL, sitemap entry, and structured data. Future releases now have a standard to meet before deploy, so the history should get cleaner from here instead of fuzzier.