Skip to main content

ZRA tax invoice requirements

ZRA specifies the minimum fields that must appear on every tax invoice issued by a VAT-registered business. DishInk prints all of them automatically — no configuration required beyond the initial device setup. This page explains what each field means, where it comes from, and why ZRA requires it.
ZRA Tax Invoice

A complete ZRA-compliant DishInk tax invoice

Complete receipt structure

Here is a full example of a ZRA-compliant DishInk receipt with annotations: ═══════════════════════════════════════════ MAMA MIA RESTAURANT ← Business name (required) Lusaka, Zambia ← Business address (required) TPIN: 1234567890 ← Business TPIN (required) ═══════════════════════════════════════════ TAX INVOICE ← Must say TAX INVOICE (required) ─────────────────────────────────────────── DATE: 15/01/2025 14:32:00 ← Date and time (required) RECEIPT NO: TXN-20250115-1234 ← Internal reference number CIS INVOICE NO: CIS-000042 ← Consecutive ZRA sequence (required) ─────────────────────────────────────────── 2x Grilled Chicken ZMW 120.00 ← Item description (required) 1x Coca Cola ZMW 25.00 ← Quantity and unit price (required) 1x Chips ZMW 35.00 ← Line total (required) ─────────────────────────────────────────── SUBTOTAL (EXCL TAX): ZMW 155.17 TAX SUMMARY ← Tax breakdown (required) A — Standard VAT (16%): ZMW 24.83 TOTAL TAX: ZMW 24.83 TOTAL: ZMW 180.00 ← Total including tax (required) ─────────────────────────────────────────── TENDERED: ZMW 200.00 CHANGE: ZMW 20.00 PAYMENT METHOD: CASH ─────────────────────────────────────────── INVOICE MODE: ZRA_LIVE VSDC ID: VSDC0001234 ← ZRA device ID (required) FISCAL ID: ZRA-00000042 ← ZRA receipt number (required) SIGNATURE: ABC123XYZ… ← Digital signature (required) text [■■■■■■■■■■■■■■■] [■ ■] [■ ■■■■■■■■■ ■] ← QR code (required) [■ ■] [■■■■■■■■■■■■■■■] SCAN TO VERIFY — ZRA FISCAL RECEIPT ═══════════════════════════════════════════ Thank you for dining with us! Powered by dishink.com ═══════════════════════════════════════════ text

Section by section

Business header

MAMA MIA RESTAURANT Lusaka, Zambia TPIN: 1234567890 text
Required by ZRA spec item 19(ii)
Your restaurant name as configured in DishInk Settings. Appears at the top in bold.
Required by ZRA spec item 19(ii)
Your location or address from DishInk Settings.
Required by ZRA spec item 19(ii)
Your 10-digit Taxpayer Identification Number. Comes from the device registration — specifically device.tpin stored when the device was initialized with ZRA. This is the TPIN that was actually used to submit the receipt to ZRA, which may differ from what is in your restaurant profile if you have multiple locations with different TPINs.

Receipt header

TAX INVOICE text
Required by ZRA spec item 19(i)
ZRA requires these exact words to appear prominently on every VAT invoice. DishInk uses bold, centered text. Non-VAT receipts show “SALES RECEIPT” instead.Variants:
  • TAX INVOICE — standard fiscalised receipt
  • TAX INVOICE (PENDING ZRA SYNC) — fiscalised offline, awaiting ZRA submission
  • LOCAL INTERNAL STORE RECEIPT — sandbox or no active device
  • SALES RECEIPT — non-VAT (turnover tax or exempt) businesses

Transaction details

DATE: 15/01/2025 14:32:00 RECEIPT NO: TXN-20250115-1234 CIS INVOICE NO: CIS-000042 CUSTOMER TPIN: 4567890123 (B2B only) text
Required by ZRA spec item 19(v)
The server timestamp at the moment of payment. Uses the server clock — not the device clock — to prevent manipulation.
Internal reference
DishInk’s internal transaction reference. Format: TXN-YYYYMMDD-XXXXXX. Useful for locating a specific transaction in DishInk’s history.
Required by ZRA spec item 19(iv) and 17*
A consecutive, unmodifiable sequence number assigned server-side. ZRA requires invoice numbers to be sequential and gap-free. Format: CIS-000001, CIS-000002, etc. Cashiers cannot influence or skip this number.
Required for B2B — ZRA spec item 19(iii)
The customer’s TPIN. Only appears when the cashier enters a customer TPIN at checkout. Required when selling to another VAT-registered business. For regular dine-in customers (B2C), this field is omitted.

Line items

2x Grilled Chicken ZMW 120.00 1x Coca Cola ZMW 25.00 1x Chips ZMW 35.00 text
Required by ZRA spec item 19(vi)
The menu item name. ZRA requires a description of the goods or services sold. DishInk uses the menu item name as configured in Menu Management.
Required by ZRA spec item 19(vii)
How many units were sold.
Required by ZRA spec item 19(vii)
The price per unit including VAT (VAT-inclusive pricing).
Required by ZRA spec item 19(vii)
Quantity × unit price.
On 58mm paper, long item names wrap across lines rather than truncating. DishInk automatically adjusts the layout based on your configured paper width.

Tax summary

SUBTOTAL (EXCL TAX): ZMW 155.17 TAX SUMMARY A — Standard VAT (16%): ZMW 24.83 TOTAL TAX: ZMW 24.83 TOTAL: ZMW 180.00 text
Required by ZRA spec item 19(viii)
The taxable amount before VAT is added. For VAT-inclusive pricing (standard in Zambia), this is derived by extracting VAT from the gross total.
Required by ZRA spec item 19(viii)
A breakdown of tax by VAT category. When all items share the same category, a single line appears. When items span multiple categories, each appears separately: TAX SUMMARY A — Standard VAT (16%): ZMW 24.83 D — Exempt: ZMW 0.00 TOTAL TAX: ZMW 24.83textVAT categories:
Required by ZRA spec item 19(ix)
The final amount including all taxes. This is what the customer pays.

Tips

When a tip is included: TOTAL: ZMW 180.00 TIP (STAFF GRATUITY): ZMW 20.00 GRAND TOTAL: ZMW 200.00 text Tips are displayed separately from the fiscal total. The fiscalised amount with ZRA is the pre-tip total. Tips are tracked separately for staff payroll purposes.

Payment details

TENDERED: ZMW 200.00 CHANGE: ZMW 20.00 PAYMENT METHOD: CASH text Payment method codes submitted to ZRA:
This is the legally critical section. Every field comes directly from ZRA’s response to the fiscal submission. INVOICE MODE: ZRA_LIVE VSDC ID: VSDC0001234 FISCAL ID: ZRA-00000042 SIGNATURE: ABC123XYZ…DEF456 text
Internal indicator
Shows which mode was used:
  • ZRA_LIVE — submitted to ZRA’s live servers
  • LOCAL — not submitted (no device, sandbox, or error)
  • NON_VAT — business is not VAT-registered
Required by ZRA spec item 19(x)
The SDC ID assigned to your device by ZRA during initialization. Identifies which device fiscalised this receipt.
Required by ZRA spec item 19(x)
The unique receipt number issued by ZRA. This is the definitive proof that ZRA accepted and recorded this transaction. A receipt without this number is not a valid tax invoice.
Required by ZRA spec item 19(xi)
A digital signature generated by ZRA’s VSDC confirming the receipt data has not been tampered with. The full signature is printed; the QR code includes a truncated version for efficient scanning.

The QR code

text [■■■■■■■■■■■■■■■] SCAN TO VERIFY — ZRA FISCAL RECEIPT text
Required by ZRA spec item 19(xii)
A scannable QR code encoding the fiscal data in ZRA’s verified format. ZRA inspectors scan this to instantly verify the receipt is genuine.QR payload format: TPIN|BranchCode|ReceiptNumber|DeviceID|Signature|DateTimetextExample: 1234567890|000|ZRA-00000042|VSDC0001234|ABC123XYZ|2025-01-15T14:32:00textThe QR code only appears on receipts where fiscalisation was successful (Fiscal Receipt ID is present). Pending or local receipts do not include the QR code since there is no verified data to encode.
A receipt without the Fiscal Receipt ID and QR code is not a legally valid tax invoice. If a customer requires a valid VAT receipt, ensure the fiscalisation job succeeded before providing the final copy.

Receipt variants

Standard sale receipt

The full receipt as described above. Most common for dine-in table service.

Quick sale receipt

When the cashier processes a direct payment without a table session, the items list shows the items charged. The fiscal structure is identical to a standard receipt.

Split bill — portion receipt

Each payer in a split bill receives their own receipt showing their portion: SPLIT PORTION: Guest 1 · Payer 1 of 3 · ZMW 60.00 SHARED CIS INVOICE NO: CIS-000042 text The fiscal details (receipt number, QR code) reference the ZRA submission made for the overall table total. Only the first portion triggers the ZRA submission — subsequent portions reference that shared fiscal record.

Refund / credit note receipt

CREDIT NOTE Original Invoice: ZRA-00000042 Reason: Customer returned item text Refunds are submitted to ZRA as credit notes. The orgIncNo field in the ZRA submission references the original receipt number. The receipt clearly shows it is a credit, the original invoice number, and the refund reason.

Offline-buffered receipt

When ZRA was unreachable at the time of sale: TAX INVOICE (PENDING ZRA SYNC) DATE: 15/01/2025 14:32:00 RECEIPT NO: TXN-20250115-1234 CIS INVOICE NO: CIS-000042 [items and totals as normal] FISCAL STATUS: Queued — awaiting ZRA connectivity text The QR code and Fiscal Receipt ID are absent. Once the fiscalisation job succeeds, reprint the receipt — it will include the full fiscal footer.

Paper widths

The standard thermal receipt width. DishInk uses 48 characters per line.Item names up to about 36 characters fit on one line alongside the price. Longer names wrap to the next line with the price right-aligned below.Most thermal receipt printers support 80mm paper. This is the recommended setting.

Reprinting receipts

Any past receipt can be reprinted from DishInk’s transaction history with full fiscal details intact (as long as the fiscalisation job succeeded).
  1. Go to POS → Transactions (or the relevant report)
  2. Find the transaction
  3. Tap the receipt icon or Reprint
The reprinted copy carries the same ZRA receipt number, signature, and QR code as the original.

ZRA Integration

Device setup and TPIN configuration.

Fiscalisation Queue

Monitoring job status and retrying failures.

Item Mapping

UNSPSC codes and VAT categories.

FAQ

Common questions and troubleshooting.
Last modified on August 17, 2026