Inventory and billing,
kept in sync with reality.

A GST-oriented billing and inventory system for Indian businesses. A sale moves stock, a payment settles the party, and reports read the same records.

Explore the product
  • GST-oriented billing
  • Single-tenant admin
  • Role-based access
Automatic stock movement CGST / SGST maths Party ledgers

Built on a small stack, with one job per layer.

Finally, a business system
that does its job

Keep accurate

Stock levels go stale.
STOCKCRM's don't.

Stock movement

Read the numbers

Reports read the same records you enter.

Open reports

STOCKCRM moves stock
on every document.

Save a sales invoice, purchase invoice, sales return or purchase return and product quantities update in the same step. Every movement is recorded against the item.

See stock movement

Sales

Invoices, quotations and returns, each numbered and stored.

Purchases

Supplier bills and returns, received straight into inventory.

Payments

Money in and out, settled against each party and posted to the ledger.

Reports

Dashboard KPIs, counts and drill-downs by date, party or item.

Stock that keeps itself current

Every sale, purchase and return updates the balance.

Low stock is flagged
on its own

Each item changes status as its quantity moves past the threshold.

Access follows
responsibility.

Four roles and per-module rights decide what each person can read, create, update and delete. Navigation adapts, so users see only the screens their role allows.

See how access works

One document engine.
Multiple workflows.

Sales invoice Quotation Purchase order

Every list, ledger and report reads from the same records, filtered by date, party or item.

See the architecture
Business profile Parties Inventory Sales Purchases Payments Documents Ledgers Reports Permissions Invoice settings

Low stock is
flagged first

Each item has a low-stock threshold. When quantity drops below it, the status changes on its own.

Permission-aware

Each role gets its own rights per module. Navigation adapts, so users only see the screens they can use.

Every balance
is traceable

The party ledger starts from the opening balance and lists every document and payment.

“Nothing is entered twice.”
Product principle · STOCKCRM

Built as a modular
three-layer system.

The interface talks to a Go REST API under /api/v1. Documents, stock, ledgers and permissions live in the service layer, and MySQL 8 holds the records.

See the stack
Create document Record payment Adjust stock Read ledger Render PDF Check permission

Current state: tax maths run locally in the client. GST portal filing and verification are not part of this build.

Who you are decides
what you can reach.

Authentication

Signed JWT tokens carry identity between the interface and the API on every request.

Access

Four roles with per-module read, create, update and delete rights.

Data

Parties, items, documents, transactions, settings and access records live in MySQL 8.

Item history

Every stock movement, including manual adjustments, is recorded against the item.

A sale moves stock, so the item count stays right without a second entry.
Sales → Inventory
A payment settles the party, and the ledger shows exactly why.
Payments → Party ledger
Reports are computed from the same records, so the numbers agree.
Dashboard · Reports

Built for GST-registered Indian businesses, as a single-tenant admin panel.

See the modules

A simple stack, with one
job per layer.

Interface

The admin interface: routing, layout, forms and the client-side tax maths in the document editor.

Next.js
Client layer

API

The REST API under /api/v1 and the services behind it: documents, stock movement, ledgers and permissions.

Go
Service layer

Data

The primary database for parties, items, documents, transactions, settings and access records.

MySQL 8
Data layer

Also in the stack: JWT for signed authentication tokens, Puppeteer for PDF rendering, and optional Redis rate limiting in front of the API.

The stock, billing and books
your team can trust.