Skip to content

About

GST-compliant invoicing and UPI-native payments for Indian freelancers — built with Next.js 16, Prisma, and Razorpay. No invoice caps, payments-first dashboard.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

InvoiceFlow

GST-compliant invoicing and UPI-native payments — built for one freelancer, not a finance team.

🔗 Live demo: https://invoiceflow-xehb.vercel.app/demo 🔗 Product: https://invoiceflow-xehb.vercel.app


The problem

Indian freelancers and small agencies still invoice the way they did a decade ago — WhatsApp PDFs, Excel trackers, manual bank-transfer follow-ups. It works, until it doesn't: a wrong CGST/SGST split costs a client their input tax credit, a missed follow-up costs you a month of cash flow, and every new tool on the market is either an accounting suite you don't need or a free plan that caps out the moment your business gets serious.

InvoiceFlow is built around one idea: invoicing software for a single person shouldn't feel like software built for a finance department.


What InvoiceFlow does today

  • Automatic GST — CGST, SGST, or IGST calculated correctly from your client's state, every time, including zero-rated export invoices under LUT. No spreadsheet, no manual lookup, no compliance risk.
  • One-click, on-demand PDF invoices — professional, branded, generated fresh from your data every time, never a stale cached file.
  • UPI & card payments, in one tap — every invoice ships with a Razorpay payment link. Clients pay directly; you're notified the moment it lands.
  • A payments-first dashboard — total earned, outstanding, and overdue, visible the second you log in. Not a report you have to go looking for.
  • Full client history — every invoice, every payment, tied to the client it belongs to.
  • Compliance-correct corrections — sent invoices are never silently edited. Mistakes are voided and reissued under a new sequential number, exactly as GST requires.
  • Built-in automation — overdue invoices are detected automatically, and a weekly digest keeps you from losing track of who owes you money.
  • No invoice caps. Ever.

Why it's different

Zoho Invoice Refrens Riffit InvoiceFlow
Built for Broad SMB GST-focused SMB Solo freelancers (chat-first) Solo freelancers (product-first)
Invoice cap on free tier Feature-gated 15/year — None
Payment tracking depth Report-buried Moderate Minimal (chat ceiling) Home screen, day one
Payment collection Multi-gateway Multi-gateway WhatsApp link UPI-native via Razorpay

InvoiceFlow doesn't compete on feature count. It competes on being the thing a freelancer actually wants to open every day.


How it's built

A production-grade, security-conscious stack — not a prototype:

  • Next.js 16 (App Router, TypeScript) — Server Components by default, minimal client JS
  • PostgreSQL (Neon) via Prisma 6 — every monetary value stored as Decimal, never Float
  • Better Auth — session-based authentication, fully isolated per-tenant data access
  • Razorpay — payment links with cryptographically verified, idempotent webhooks; duplicate delivery of the same event is guaranteed to never double-process a payment
  • Resend — transactional email, including automated overdue digests
  • Tailwind CSS v4 + shadcn/ui — a real design system, not utility-class sprawl
  • Vercel — deployed with scheduled cron automation for overdue detection and reminders

Engineering principles this project was built to prove

  • Money is never a float. Every tax and total field is a fixed-precision Decimal, computed once at invoice creation and never silently recalculated.
  • Payment state has one source of truth. Whether a client pays via Razorpay or a freelancer marks an invoice paid manually, both write to the same append-only payment ledger — never a status field mutated directly.
  • Webhooks are trusted, not assumed. Every incoming payment event is signature-verified and checked for duplicate delivery before it's allowed to touch the database.
  • Multi-tenancy is enforced at the query, not the UI. Every database read is scoped by the authenticated user's ID — cross-tenant access fails closed, not open.
  • Compliance shapes the architecture. GST's sequential-invoice-number requirement is why sent invoices are voided and reissued instead of edited — a business rule encoded directly into the data model, not bolted on as a UI restriction.

Roadmap

Now: single-tenant payment collection — all client payments settle to the platform's own Razorpay account.

Next — Marketplace payments (Razorpay Route): The most significant evolution on the roadmap is turning InvoiceFlow into a true multi-tenant payments platform:

  • In-app KYC onboarding — freelancers verify their identity and bank details directly inside InvoiceFlow (PAN, business details, bank account), no separate portal
  • Direct settlement — client payments route straight to the freelancer's own linked account via Razorpay Route, not through a shared pool
  • Optional platform fee — a small, transparent cut on each transaction, enabling a sustainable business model without subscription friction
  • Full accountability — every linked account, every split, every settlement traceable end-to-end

This is a deliberate, sequenced roadmap item — not an oversight. Marketplace-style payment routing carries real regulatory weight in India (RBI's Payment Aggregator framework), and this project is being built to eventually meet that bar properly rather than shortcut it.

Later:

  • CSV export for tax filing season
  • Rate-limited, hardened public endpoints at scale
  • Search and pagination across every list view (already shipped for invoices)

Built by

Asif Mulla

This project was built end-to-end — schema design, backend, payment architecture, and UI — as a demonstration of production-grade full-stack engineering, not a tutorial clone.

About

GST-compliant invoicing and UPI-native payments for Indian freelancers — built with Next.js 16, Prisma, and Razorpay. No invoice caps, payments-first dashboard.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages