Skip to main content

Invoices — Id

What it is

One invoice on the company letterhead: who it is billed to, its lines, the tax breakdown, what has been paid, and what is still outstanding. It is also the launch point for every document that comes after an invoice — shipping bill, packing list, delivery challan, e-POD and credit note.

A WIRED (PENDING) or PAID IN FULL badge sits beside the actions when either applies.

Who can open it

Any signed-in staff account that is active. Two gates, both in proxy.ts: account status, then the finance.invoices feature grant while FEATURE_GRANULAR_RBAC is on, with the owner bypassing.

Before you start

🔴 The "Bill To" block on this screen always shows the customer's own name and address — it does not read the billing party recorded on the invoice. An invoice deliberately billed to an alternate address will therefore look wrong here, while the printed invoice and the e-invoice both carry the correct party. Check the print view, not this screen, when the billing party matters.

⚠️ There is no Tally export on this screen. The inventory lists one (A2Z-F239) and marks it ORPHANED"imported but never rendered" — which is accurate: the button is imported by the page and never placed on it. Export to Tally from the Invoices list, by ticking the invoice and using ⬇ Tally XML. That is also the only path that records the invoice as exported.

Every control on the page

Top bar:

ControlWhat it does
← Back to InvoicesThe list.
✎ Edit RecordThe invoice editor.
✉ EmailSends the invoice with its PDF. Only shown when the customer has an email address. Reads Sent! afterwards.
WhatsAppSends via WhatsApp. Needs a number on the customer record.
🖨 Print InvoiceProduces the PDF.
⋯ (overflow)Export Excel, Certificate of Origin, Export IRN JSON (only for an INR invoice on an India-registered entity), Print as HTML.

e-Invoice block — for Indian entities: the IRN status, the IRN itself, acknowledgement number and date, the QR data, any last error, and cancellation details when the IRN has been cancelled.

Generate bar — deep links that start the next document, pre-filled from this invoice:

ButtonCreates
📑 BillA shipping bill.
📦 ListA packing list.
🚚 ChallanA delivery challan.
✍️ Generate e-PODA delivery note for signature on delivery. This one acts immediately — it is a link straight to the create endpoint, not a form.
↩ Create Credit NoteA credit note against this invoice. Over-crediting is refused.

Bill To / dates block — customer name and address (see the warning above), invoice date, due date, PO number and vessel where present.

Items tab — Description, Remarks, Qty (with unit), Price, Amount, then the totals:

  • Gross Net, then Discount and Taxable Amount when a discount applies.
  • GST at each rate, only on INR invoices and only where GST is actually charged. The tax is worked out per line against the discounted taxable amount, so a discount reduces the GST.
  • Total Amount, then Credit Notes (as a deduction, when any are issued), Paid, Wired (Unconfirmed) where money has been wired but not confirmed, and Outstanding.

Documents tab — everything generated from this invoice, oldest first: shipping bills, packing lists, delivery challans and e-PODs, each linked. An e-POD shows SIGNED or PENDING.

History — the audit trail and activity timeline for the invoice.

What it writes

ActionWhat it writes
✉ EmailPOST /api/invoices/[id]/send-email — sends the invoice and its PDF.
WhatsAppSends through the WhatsApp route with this invoice's id.
✍️ Generate e-PODGET /api/delivery-notes/create?invoice_id=...creates the delivery note as soon as you click it.
📑 Bill / 📦 List / 🚚 ChallanNavigate to those create screens pre-filled. Nothing is written until you save there.
↩ Create Credit NoteNavigates to the credit-note form; the credit note is written when you save it.
Export Excel / CoO / IRN JSON / PrintDownload only — nothing is written.

When it goes wrong

The Bill To block names the wrong party. Known — see "Before you start". The printed invoice and the e-invoice are the authoritative view.

There is no Email button. No email address on the customer record.

No GST lines on an invoice you expect tax on. GST is only shown for INR invoices, and only where a line carries a rate. Check the lines in the editor.

The Export IRN JSON entry is missing. It only appears for an INR invoice belonging to an entity registered in India.

A credit note is refused. The credit would exceed what is left on the invoice.

You cannot find the Tally export. It is not on this screen. Use the list's ⬇ Tally XML.

An e-POD was created by accident. The button creates one on click, with no confirmation.