fiscalm
fiscalm is a self-hosted bookkeeping app for small Romanian companies. The
finrec Python engine keeps the ledger; the Romanian, phone-first web app shows
what needs attention. The ledger and source documents are stored on the installation's
host. Configured integrations and the native Claude CLI fallback can send document or mail content
to external providers; shadow mode is not an offline mode (see the installation guide).
- Received and issued invoices read back from ANAF e-Factura.
- Local invoice drafts, PDF previews, issuing and e-Factura submission.
- Bank statement imports and guarded reconciliation of payments and collections.
- Receipt documents, monthly reports and the accountant's pack.
- Payment files for the bank's app (BT Go today, more formats can be added:
docs/payment-files.md) and document downloads for a human to import or send. - Any number of configured companies, individual accounts with password plus TOTP or passkeys, installation-wide roles, user-owned API tokens and an HTTP API/MCP interface.
fiscalm never moves money, sends mail or writes to a mail account. IMAP access is read-only for incoming invoices. A human downloads invoice PDF/XML or an accountant ZIP and sends them themselves; payment reminders are text to copy. New installations start in shadow mode: all local work is available, while external uploads, notifications, marketplace write-backs and payment-file generation/downloads require activation. Configure connections in Setări → Integrări.
The first finrec init creates an administrator and prints a one-time setup link.
Open it at the configured HTTPS origin, configure password plus TOTP or a passkey
on a compatible device, and save the recovery codes before continuing. Every later
sign-in requires both password and authenticator code, or device verification of a passkey.
Passkeys require a DNS HTTPS origin.
Start with the installation and operations guide for Docker,
Linux, configuration, backups and upgrades. Integrators use the API/MCP guide.
For developers: development guide, app guide, API schema,
and bin/test.sh. Runtime data and secrets belong outside the repository.
Licensed under the GNU Affero General Public License v3.0 (AGPL-3.0-only): free to run,
change and host, and anyone who offers a changed version as a service publishes their changes.
Statement imports support BT monthly PDF, CAMT.053 XML, MT940 and mapped CSV. Administrators upload them in Tranzacții; CSV is a partial import and does not replace a complete monthly statement. See the statement import limits.
The public repository uses main for the latest release and installation, and dev
for the next release. Contributions target dev. Start with the development guide
for fixtures or an isolated local shadow engine, and read CONTRIBUTING.md
and the CLA. Report vulnerabilities privately as described in SECURITY.md.
No prebuilt container image is shipped. Docker has been exercised on Linux/amd64; other hosts/architectures are unverified.
For migration, history import distinguishes the shipped XML/ZIP, SAGA, PDF and SmartBill unpaid-XLSX readers from proposed vendor API adapters. An imported paid claim is not bank proof. Live ANAF, bank-provider, IMAP, AI and Drive success is not established by the synthetic test suite; verify the chosen connection before relying on it. fiscalm is not a replacement for the accountant or a promise that arbitrary bank/vendor exports will import.