SaaS / Fintech
Kvit — E-Business & Invoicing Platform
A Nilado product: a ground-up rebuild of the invoicing, fiscalization and bookkeeping interface for businesses in Bosnia and Herzegovina — a new experience on top of the same certified engine.
0%
of the interface rebuilt
0
fiscal re-certifications needed
0
currencies on the central-bank rate list
The problem
The client already had the hardest part: a bookkeeping and e-invoicing backend that was certified for fiscal compliance and trusted with real businesses' data. What it lacked was an interface worth using. Screens had accreted around the API rather than being designed around a bookkeeper's day — an invoice took too many steps, clients and items were retyped across documents, and nothing told an owner how the business was doing.
The constraint mattered as much as the goal: the backend and its fiscal integration could not change. The rebuild had to be invisible to the certification and obvious to every user.
What we built
Invoices & pre-invoices
Create, fiscalize, convert, print and cancel from one document view.
Fiscalization in one dialog
Document type, payment method and transaction type (sale or refund) are chosen together, right before issuing.
PDF & email
Invoices render to PDF in the browser and go out as email attachments.
Shared codebooks
Clients and items live in one directory and are reused on every document.
Exchange rates
The central bank's rate list, so foreign-currency totals calculate themselves.
Dashboard & obligations
Revenue, top clients and upcoming tax deadlines — none of which existed before.
Invoicing in fewer steps
The core loop — invoice a client — is where the old interface lost the most time. Now it's: pick the client from the codebook, add items with price and VAT worked out for you, choose how to fiscalize, done.
A pre-invoice becomes an invoice with a single confirmation. When the certified backend answers, the user lands on a clear result with two obvious next moves: review the document, or start a new one.
Documents that leave the building
The invoice PDF carries everything a customer and a tax inspector expect: the fiscal block with the QR code returned by the certified backend, a VAT breakdown per rate, the amount in words, and the payment due date. It's generated in the browser, then printed, downloaded, or sent.
Sending opens a composer with recipient, CC and BCC, a subject, a message and the PDF already attached; delivery runs through a transactional email service.
Clients and items, entered once
Clients and items/services sit side by side in one directory with search and a single “add” action. Every invoice, pre-invoice and receipt draws from the same two lists, so the second invoice to the same client takes seconds instead of minutes.
Multi-currency without the math
Invoices in a foreign currency need a rate. Kvit shows the Central Bank of Bosnia and Herzegovina's list — buying, middle and selling rate for 16 currencies — and uses it when totals are calculated, so nobody converts by hand or by calculator.
Know how the business is doing
The old interface had no analytics at all. The new dashboard compares this month's revenue with last month's, charts the year by month for issued or received invoices, and ranks your top five clients — by invoiced amount or by expenses — for any year.
Beside it sits an obligations panel: tax filing deadlines, reconciliation requests and contribution payments, each with a due date and the files needed to act on it attached.
Architecture
A Next.js 16 / React 19 frontend with a thin server layer in front of the client's existing backend. The server layer owns the session, forwards a fixed set of API calls, and keeps a small database of its own for the things the old system never tracked, such as agreement acceptance and licence status.
- 01
Next.js UI
React 19 with Material UI and Radix components
- 02
Server layer
Session cookies, request gate, API allowlist
- 03
Certified backend
Invoices, fiscalization and authentication — unchanged
Alongside
Postgres
Agreement acceptance and licence status
Transactional email
Invoices delivered as PDF attachments
In-browser PDF
Invoices and pre-invoices rendered client-side
Modernizing without breaking what already worked
Replacing a production frontend while its backend stays live and fiscally certified means every session, token and API contract must keep behaving exactly as before. We treated the backend as a fixed contract.
Its access tokens are larger than a single browser cookie can hold, so the server layer splits them across several httpOnly cookies and reassembles them on each request — the browser's JavaScript never sees a token. A request gate checks expiry before any page renders and sends expired sessions to sign-in, remembering where the user was headed.
The proxy forwards only an explicit allowlist of API paths; anything else is a 404. The surface that talks to the certified system is exactly as wide as the product needs, and no wider.
Fewer steps, same compliance
Multi-currency invoicing from a maintained rate list, PDF and email from the same screen, QR codes on payment slips, and shared client and item codebooks across every document.
All of it aims at shortening the distance between “I need to invoice this client” and “done and sent” — without touching anything the backend requires to stay compliant.
Results
Live and in daily use by businesses in Bosnia and Herzegovina, running a modernized interface on top of the same trusted, already-certified backend — with zero fiscal re-certification and no disruption to live compliance.
An AI-powered bookkeeping assistant, Smart Bookkeeper (“Pametni knjigovođa”), is the newest layer, now rolling out.