Accounting portal
One place for documents instead of five channels.
Problem
The practice receives paperwork by whatever route the client picks: email, WhatsApp, paper. On top of that comes the national e-invoicing system, which clients cannot navigate alone.
Solution
A portal where the accountant adds a company by its tax number alone and the details arrive from the public register. Clients get in only through an invitation link. Files stream straight to Drive, filed by company and month, and never rest on the server. A nightly job pulls e-invoices and stores the original XML beside them.
What it does
- Add a company by its tax number alone, details from the public register
- Clients register only through an invitation link
- Drag and drop; files stream straight to Drive and never rest on the server
- A folder per company and month, created automatically, so the accountant looks where they always looked
- Nightly e-invoice pull that keeps the original XML
- A token wizard: one step per screen and an “I'm stuck, call the office” button
How it's built
- Prototype in plain HTML and CSS, eleven screens, no framework
- Company details from the public register by tax number, a second register as fallback, then by hand
- The register's original response stored separately from the editable copy
- Files streamed through the server straight to Drive, never written in between
- Filed by tax number and year-month, 50 MB cap, executables refused
- A nightly worker picks up from the last successful sync and dedupes by invoice number
How it looks
What it changed
- A prototype, not a deployment: there is no number from a working practice here, and there will not be one until the portal stands at a client
- What becomes countable once it does: five document channels collapse into one, and the monthly hand-fetch of e-invoices gives way to a nightly job
- The office it is being built for runs on six people: six people collecting those documents across five channels today
- Design scale: up to a hundred companies and two hundred users on one server
- Specification closed as twelve numbered assumptions; clickable prototype of eleven screens in plain HTML
Stack
- HTML/CSS (prototype)
- e-invoicing API
- public register
- Google Drive API
Story
Registration runs on invitation codes rather than the tax number, and that is a security decision: the number is public, so without a code anyone could start registering against someone else's company. A separate wizard walks through issuing an access token one step per screen, with a “I'm stuck, call the office” button, because the person doing it does not know the word token.