
Pyro
Automated invoice coding for accounting firms. Pyro reads the bills clients receive from suppliers and the invoices they issue to customers, codes every line to the client's own accounts and VAT, and sends drafts to Xero or Zoho Books for approval.
The problem
Every VAT period, accounting teams lose hours keying invoices into their accounting software, line by line. That covers the purchase invoices clients receive from suppliers and the sales invoices they issue to customers. The tools on the market didn’t handle the way Maltese firms code invoices and apply VAT, so the work stayed manual.
What I built
Pyro handles both sides of the books. It reads purchase and sales invoices as PDFs, scans or photos, and splits bundled statements into their separate charges. Each line is coded to the client’s own chart of accounts, the way the firm coded that supplier or customer before, with the right VAT treatment and the reason shown beside it.
- Purchase invoices from suppliers and sales invoices to customers, both as drafts
- Maltese VAT, EU reverse charge with VAT numbers checked on VIES, exempt and out-of-scope supplies
- Duplicates caught before they post, foreign currencies converted at ECB rates
- A review screen that puts each invoice beside its source, with every field editable
- Approved invoices sent to Xero or Zoho Books as drafts (bills or sales invoices), with the original attached
Built to be trusted
Nothing posts without a person approving it. Firms sign in through their accounting software’s own sign-in, connection tokens are encrypted at rest, every client and document is scoped to its firm, and payments run through Stripe.
Where it is now
Live at pyroplatform.com, and in daily use with Maltese accountants and accounting firms.
How it's built
Frontend
- HTML
- CSS
- JavaScript (no framework)
- Single-page app
Backend
- Bun runtime
- JavaScript (ES modules)
- Vercel serverless functions
- Scheduled cron jobs
Data
- Supabase
- PostgreSQL (postgres.js)
Infrastructure
- Vercel
- GitHub Actions
- Bun test