WhatsApp, PDF statements, report pages and a file for your accountant

On 1–2 October finkpr answered on WhatsApp, started reading PDF statements and checking them against the statement's own balances, put reports on signed web pages, and gained /export — one workbook an accountant can import.

Everything below is live for every customer. Each book was moved to the new version on 2 October.

WhatsApp

finkpr answers on WhatsApp at +1 855 748 1343, as a peer of the Telegram bot: same book, same commands, same free ones. You link a number the same way — a code from your book’s page, now with a QR code beside it — and the code retires itself once it is used, so the page stops showing a dead one. (#692)

PDF statements

A PDF is the statement most banks hand out, and on 1 October the first customer to send one was refused. Now the model reads the rows out — date, description, signed amount, running balance — and they are checked in exact arithmetic before anything else happens: opening balance plus every row must equal the printed closing balance, and every row must agree with the running balance printed beside it. A failed check is said in the reply, never imported quietly. The checked rows then go through the same importer as a CSV.

On a 40-row, two-page test statement, sent as text and as a scan: 40 of 40 rows read, both totals checks passed, 40 of 40 running balances agreed. About 16 seconds and about one US cent of model time per statement. PDFs up to 8 MB. (#693)

“Try again”

If a message fails before the assistant ever sees it — the file would not download, the PDF could not be read, the book was slow to open — the chat now keeps that message and a reference to its file for seven days. Reply try again and it runs again with the same file. Nothing was charged or written at those points, so a retry cannot charge twice. (#695)

Long answers arrive

Telegram refuses a message over 4,096 characters and WhatsApp cut one off at the same length, so a long answer could arrive as nothing, or half. Answers are now split at paragraph breaks — never inside a table — into at most four messages, every send is checked and retried once, and a refused one is said rather than dropped. (#696)

Report pages

/report still sends the spreadsheet, and now comes with an Open report button. It opens a page that answers first — money in, money out, kept or short, and what still needs you — with the figures drawn underneath and the detail closed. Two kinds so far: the month summary and cash by currency. Two currencies are never added together on either.

The link is the key: signed, one page per link, valid for 30 days by default and at most 92, and the owner can withdraw every shared link at once from the book’s report page. Withdrawing a single link is not possible yet. (#708)

The accountant pack

/export is free — no model, no credits. Pick Last month, This year or Everything and you get one workbook: a read-me, a journal in a generic layout, the same journal laid out for Xero and for QuickBooks, the chart of accounts, a trial balance, every posting, and a Not converted sheet. A plain-text copy of the book follows as a second file.

Amounts are converted into your base currency only at a rate written in your book — a price or a cost on the entry. A transaction with no such rate is not guessed at: it goes to Not converted with the reason. The generic journal is verified; the Xero and QuickBooks layouts are built from their documentation and have not yet been run through either importer, and the workbook says so. Zoho Books and Odoo layouts are written but not in the chat workbook yet. (#706)

Your local time

Dates in the chat, the month an Open report link shows, and what “last month” means to /export used to follow UTC. At 23:30 UTC on 31 August a customer in Bangkok is already in September, and “Last month” exported July. Each chat now has its own time zone: /timezone sets it with one tap for six South-East Asian cities and UTC, or typed, like /timezone Europe/London. A WhatsApp number from a single-zone country gets a guess from its country code until you choose. Where the zone is unknown, dates say “(UTC)”. (#712)

Reports the assistant makes

Ask the assistant for a report in conversation and it used to write the file somewhere you could not reach and answer with its path. The file now follows the answer into the same chat. (#703)

Next, and not on yet

  • A monthly check-in — a month summary and a nudge when a statement looks missing. It is built and running in shadow: it records what it would send, and sends nothing. No customer receives a message they did not ask for until those records have been read.
  • Stripe payouts filed automatically. Being built, and switched off.
  • Picture cards in place of text tables in the chat. Being tried on our own books first; no customer sees them yet.