Published 2026-11-06, by Nabin Babu Uranw
BS dates, VAT and bills: what a Nepali business website needs
Practical notes on Bikram Sambat dates, VAT-ready invoices and receipts when building a website or business system for a company in Nepal.
Two calendars in one system
Most business software I build for Nepal has to work with two calendars. Customers and staff often think in Bikram Sambat months, while databases and most APIs store Gregorian (AD) dates. Deciding this at the start saves rework later.
Store one date, show the other
Store the date once in a single form, usually AD in the database, and convert to BS when you display it. Keep the BS month names exact, because people read Shrawan, Bhadra and the rest on receipts and ledgers.
The Nepali Date project I published is a small BS to AD converter and library for this job.
Design the bill around the required fields
A VAT-ready bill usually shows the seller and buyer details, a sequential invoice number, the date, each line with quantity, rate and amount, and the VAT shown on its own line. Chukta is built around this layout.
Check the exact required fields with your accountant or the tax office guidance before you rely on any template, including mine.
Keep invoice numbers gap-free
Invoice and receipt numbers should follow one sequence with no gaps and no reuse. Generate the number on the server inside a database transaction, not in the browser, so two clicks cannot produce the same number.
Track who has not paid
A receivables view that lists open bills, how old each one is and the balance per customer is usually more useful to a business than another chart. It is the first screen I build for a billing system.
More from this blog
How I check a static Next.js site before it goes liveWhere a small website loses time: Core Web Vitals in practiceAll articles