Invoicing · Sep 2025 – Oct 2026
Invoices that match the money
Exporters need compliant invoices that line up with the foreign payments they receive. I built the invoicing product end to end, from the editor to matching invoices against incoming money.
- Role
- Lead frontend
- When
- Sep 2025 – Oct 2026
- Where
- PayGlocal
- Stack
- Next.jsTypeScriptreact-pdfZustand
The situation
Sellers were creating invoices elsewhere and then trying to match them by hand to payments arriving in different currencies, from different banks and names.
What I built
- A multi-step editor with a live preview; click any part of the preview to edit that section.
- Tax and discount maths (flat or percentage) with GSTIN, HSN and SAC validation.
- Recurring invoices, logo and signature upload, PDF delivery by email with CC and BCC.
- Uploading an existing invoice PDF, with the extracted fields shown for confirmation.
- Linking invoices to payments (and back), with amount checks, plus a client ledger.
- A product catalogue with Excel import, and sync with an accounting tool.
- Batch invoice links for many recipients at once.
Try it
Decisions
Recommend, don’t force, the receiving account
The editor suggests the best account for the currency (local first, then settlement, then global) and labels it, but lets the seller choose.
Render real PDFs, not iframes
Switching to react-pdf made previews consistent across browsers and let uploaded and generated invoices share one viewer.
Outcome
| What | Before | After | Change |
|---|---|---|---|
| Invoice sources | manual | create · upload · recurring | 3 ways |
| Payment matching | by hand | linked + checked | in product |
Next projectCheckout diet →Cut the hosted checkout bundle by 18.3% and improved mobile load times by finding one heavy dependency that drew a single animation.