Fluids capability
Finance, GST & Billing
Statutory compliance is handled at the moment the transaction happens, not reconstructed at month end. The result is that filing becomes a review rather than a rebuild.
Why we went this deep on tax
Most operations software treats GST as a percentage field. That works until an inter-state branch transfer, a partial credit note, a customer with a different shipping state to their billing state, or an auditor asking why invoice 4471 does not exist. Fluids resolves place of supply from the actual state pair and refuses to proceed if it cannot; computes the split in two independent places and checks them against each other; and lets the database itself veto an invoice that does not reconcile.
The tax engine
Five design decisions you will care about
- One engine, two implementations
- The tax split is computed identically in the application and in the database, pinned to a shared golden test matrix so the two can never drift apart. CGST and SGST are equal by construction rather than by convention.
- Rates are data, not code
- GST slabs live in a table with validity dates. Adding or changing a rate is a setting you change yourself, not a software release. Every line records which rung of the resolution chain produced its rate — explicit line, price book, product master or branch default.
- Place of supply refuses to guess
- Supplier state comes from your GST registration, then the branch. Recipient state comes from an override, then the shipping address, then the billing address, then the default address, then the GSTIN prefix — and if none of those resolve, the system refuses rather than assuming intra-state.
- The database is the last line of defence
- A trigger refuses to issue an invoice with an invalid slab, an unreconciled tax split, or an undecided intra-versus-inter-state classification. Twenty-two check constraints and twelve rate-validation triggers back it up.
- Gapless numbering
- Document series are allocated one at a time per GSTIN, document type and financial year. Two users hitting save at the same instant cannot produce a duplicate or a hole in the sequence.
Statutory filings and documents
The India-specific machinery
🧾
E-invoice / IRN
Generate, cancel and read IRNs, with reporting-window validation. Provider slots for the common GSPs. Runs against the sandbox today with the production connection as the remaining step — we would rather tell you that than let you find out at go-live.
🚛
NIC E-Way Bills
Full lifecycle across four movement sources — sales invoice, branch transfer, purchase inward and delivery challan — with Part-B update, validity extension and consolidated bills. Configurable rupee threshold, and every call and response kept as an event. Like the e-invoice above, it runs against a sandbox today; your production NIC connection is made at go-live.
📑
GSTR-1 and GSTR-3B
B2B and B2CS supplies with credit notes as CDNR, plus net liability and inward ITC, built from live documents and saved as a return export you can hand to your filing agent. Switched off by default, and deliberately not a filing service — it prepares, your agent files. A GST inward register sits alongside it. The fuller version is coming with Pradrava Accounting.
📲
UPI scan-to-pay
The invoice carries a UPI pay link built from your own bank details, so the customer pays from the document rather than from a follow-up email. Printing it as a scannable QR on the PDF is one server-side switch away and is on the roadmap.
Getting paid
Receivables, credit and the money that goes missing
- Credit control
- A credit limit gate at order entry, so an order that would push a customer past their limit stops there rather than at dispatch. Ad-hoc credit checks available on demand.
- AR ageing
- An ageing view by customer and by how overdue they are, kept ready so your exposure is a number you can look at rather than a query someone has to run.
- Automated dunning
- Overdue invoices grouped by customer and emailed weekly where an address exists, with an in-app notification either way and every attempt logged. Supports a dry run, so you can see who would be contacted before anyone is.
- Rental and demurrage
- Per-day accrual after grace against a customer deposit ledger, with a billing watermark so rent is billed monthly and on return without ever double-billing a day. Deliberately kept off the dispatch invoice.
- Credit and debit notes
- Partial sales returns credited at the quantity level with over-credit protection enforced by the database, and vendor debit notes with their own issue and cancel lifecycle.
Your existing accounts system
Fluids hands over, it does not fight you
You do not have to replace your accounts package
Fluids posts documents to whatever you already run. The hand-off is a proper queue rather than a send-and-hope — it keeps retrying if your system is down, waits longer between each attempt, writes the voucher number back onto the original document, and runs daily.
It tells you when it gives up
A document that exhausts its retry attempts raises a high-priority notification. Nothing fails silently into a log file nobody reads.
Payments come back the other way
An inbound bridge lets your accounts system mark documents synced or failed and post payment against an invoice, secured by an API key and failing closed if it is not configured.
Invoicing is transactional
Invoice creation, issue, cancellation and total recomputation are database functions, so an invoice is never left half-created by a dropped connection or a duplicate submit.
Registers and reports out of the box
- Sales register
- Credit note register
- Delivery-challan-pending-invoice
- GSTR-1 summary
- GST inward register
- Receivables ageing
- Rental ageing
- Cylinder holdings by customer
- Cylinder test-due
- Purchase spend and price trend
- Top vendors and expiring contracts
- Vendor scorecard by period
Next
See where the money goes out
Three-way match, landed cost, budgets and contract drawdown — the controls on the purchase side.