Double-Entry Ledger
Chart of accounts mapped to Schedule III. Every transaction posts balanced Dr/Cr entries, enforced in code and by database constraints. Posted entries are immutable — corrections use reversals.
Hisab is a GST-compliant, double-entry accounting and hybrid Point-of-Sale platform for Indian product, service, and hybrid businesses — built ledger-first, so every sale, return, and payment resolves to a balanced journal entry. Web terminal, offline-first Android, and a Cloudflare edge backend.
Product, service, and hybrid workflows all post into the same double-entry core. Modules are front-ends that generate journal entries — they never write balances directly.
Chart of accounts mapped to Schedule III. Every transaction posts balanced Dr/Cr entries, enforced in code and by database constraints. Posted entries are immutable — corrections use reversals.
GST computed per line, not per invoice, so hybrid bills can mix HSN goods and SAC services. Intra-state splits to CGST + SGST; inter-state to IGST, derived from place of supply.
Sales returns raise credit notes that reverse output GST and restock inventory; purchase returns raise debit notes that reverse input GST and remove stock.
FIFO and weighted-average valuation (Ind AS 2 — never LIFO). Layer-wise costing produces accurate COGS, with stock updated at goods receipt.
GSTR-1 and GSTR-3B exports, trial balance, and P&L — generated straight from posted journal entries, so the reports and the books can never disagree.
Settle one invoice across cash, UPI, card, and bank with exact paise-level balancing. Idempotency keys make retries safe — no duplicate transactions.
A single Cloudflare Worker owns the API, ledger, GST, FIFO, reports, and refunds. Clients stay thin and fast.
Zero-build single-page till. Opens from a file or a URL, works on a counter machine with a poor connection.
Kotlin, Material 3, offline-first. Sales write to Room first; a WorkManager job syncs when connectivity returns.
JavaScript ES modules on Wrangler. Ledger, GST, FIFO, GSTR, refunds — all server-side.
SQLite at the edge. 8 reviewed migrations, integer-paise money, 7-day point-in-time restore.
Optional item images, served from the edge.
Hisab treats accounting integrity as non-negotiable. These invariants hold across every module.
Enforced in code and the database for every posted entry.
No edits or deletes — corrections post reversal entries only.
No floating point for money or quantity, anywhere, end to end.
Voucher numbers are sequential per financial year, allocated inside the posting transaction.
A document uses the GST/TDS rate valid on its own date, not today's.
Damage, loss, and free samples auto-post ITC reversal under Section 17(5)(h).
Every query is scoped by company / GSTIN, with cross-tenant leakage tests.
Every edit logs user, timestamp, and before/after values; financial-year locks respected.
Every Android sale is written to a local Room database first, then a background sync job runs when connectivity returns — surviving app kill and reboot.
Chosen for correctness, offline resilience, and a free, serverless footprint.
JavaScript ES modules, Wrangler dev & deploy.
SQLite database at the edge with migrations.
Object storage for item images.
394 automated tests across ledger, GST, FIFO, reports.
No CDN dependency so the till opens with no network.
Classic scripts that run from a file:// page.
58mm / 80mm roll and A4 invoice formats.
Large touch targets, keyboard-first entry.
Native UI, package com.hisab.pos.
Local-first sales cache and catalog.
Connectivity-constrained background sync.
Exact paise arithmetic, never binary floats.
Cloud build & signed APK release pipeline.
Android test, assemble, and lint verification.
Dependency management and edge deploys.
7-day point-in-time database restore.
Ledger-first by design, GST-compliant by rule, and offline-ready by default — Hisab brings serious accounting discipline to everyday retail and service billing.