Generating ZRA-compliant Smart Invoices in Odoo combines modern ERP functionality with Zambia’s mandatory electronic invoicing requirements. This tutorial walks you through creating, validating, and submitting invoices that automatically comply with ZRA regulations.
Prerequisites
Before generating your first ZRA Smart Invoice, ensure you have the TMR Computing Smart Invoice Connector installed (Odoo 16, 17, or 18), VSDC deployed and connected to ZRA, company TPIN configured, VAT rates set (16% standard and zero-rated), and products with correct tax classifications.
The Invoice Generation Workflow
Draft invoices are created by the system with information coming from other documents like sales orders or contracts, and accountants validate and send invoices in batch. For ZRA compliance, confirmation triggers automatic real-time transmission to ZRA servers, receiving Mark ID and QR code validation within seconds.
Method 1: Generate Invoice from Sales Order
This is the most common method for selling products or services.
Step 1: Create Sales Order - Navigate to Sales app and click “Create.” Select customer (ensure VAT-registered customers have their TPIN entered in contact records). Add products—Odoo applies configured tax rates automatically. Verify correct tax displays (16% VAT, zero-rated, or exempt). Click “Confirm” to convert quotation to sales order.
Step 2: Create Invoice - Click “Create Invoice” button at the top of the confirmed sales order. Choose “Regular invoice” for full orders or down payment options for deposits. Click “Create Draft Invoice”—Odoo pulls all sales order data including customer TPIN, products with ZRA codes, quantities, prices, and tax rates.
Step 3: Review Draft - Verify customer name and TPIN (required for VAT-registered customers), product descriptions, quantities, tax rates (16% VAT on taxable items), and total amounts. The invoice remains “Draft” with no accounting impact or ZRA transmission yet.
Step 4: Confirm and Submit to ZRA - Click “Confirm.” Odoo assigns invoice number, posts accounting entries, and the Smart Invoice connector automatically transmits to ZRA via VSDC. Within seconds, the invoice updates with ZRA-issued Mark ID and QR code. Status changes to “Posted” and becomes uneditable.
Step 5: Deliver to Customer - Click “Send & Print” to email or “Print Invoice” for PDF. The document includes all ZRA elements: Mark ID, QR code, company and customer TPINs, and tax calculations.
Method 2: Create Invoice Directly
For transactions without sales orders (consulting, ad-hoc services):
Navigate to Accounting → Customers → Invoices and click “Create.” Select customer, set invoice and due dates, and add invoice lines with products or manual entries. Verify tax categories on each line (16% VAT, zero-rated, or exempt). Review “Other Info” tab for fiscal position and payment terms. Click “Confirm” to trigger automatic ZRA submission and receive Mark ID and QR code.
Method 3: Invoice Based on Delivery
For retail/wholesale where delivered quantities may differ from ordered quantities:
Configure products with “Invoicing Policy” set to “Delivered quantities” (Sales → Products → Products). Create sales order, process delivery, validate delivery order with actual quantities, then create invoice. Invoice reflects actual delivered quantities and submits to ZRA upon confirmation.
Understanding ZRA Validation Elements
Mark ID: ZRA’s unique identifier code proving invoice submission and validation. Required for VAT claims. Never manually create or modify—generated exclusively by ZRA.
QR Code: Enables instant verification via mobile scanning. Confirms invoice authenticity, transaction amount, tax details, and prevents tampering. Automatically generated by ZRA and embedded in invoices.
Handling Special Scenarios
Zero-Rated Sales: Ensure products have “0% VAT (Zero-Rated)” tax configuration. Invoice submits to ZRA showing zero tax with Mark ID confirming zero-rated status.
Mixed Tax Rates: Invoices can include 16% VAT, zero-rated, and exempt items. Odoo calculates each separately and reports correctly to ZRA with tax breakdowns by rate.
Credit Notes: To correct errors in posted invoices, click “Add Credit Note” on the original invoice, choose refund type, enter reason, and click “Reverse.” The credit note receives its own Mark ID. Then create new correct invoice.
Foreign Currency: Create invoices in foreign currency for international transactions. ZRA submission includes both original and converted amounts.
Troubleshooting Common Issues
Invoice hangs on confirmation: Check VSDC connectivity, internet connection, and that VSDC application is running.
“Missing customer TPIN” error: Edit customer record, navigate to Accounting tab, and enter TPIN. Required for VAT-registered customers.
“Invalid tax configuration” error: Verify product tax settings—16% VAT for standard items, 0% VAT (Zero-Rated) for zero-rated, separate exempt category for exempt items.
Missing Mark ID/QR code: Confirm Smart Invoice connector is active, check VSDC transmission logs, and contact implementation partner if issues persist.
Best Practices
Verify all day’s invoices show Mark IDs and QR codes before closing. Maintain accurate TPIN records for VAT-registered customers. Regularly audit product tax settings for consistency. Never manually override ZRA-validated invoice numbers. Ensure VSDC server backups run regularly for rare connectivity failures.
Monitoring Compliance
Invoice Dashboard: Navigate to Accounting → Customers → Invoices for complete invoice lists. Filter by status (Draft, Posted, Paid) and search by number, customer, or date.
Submission Logs: Smart Invoice connector maintains logs of all ZRA transmissions accessible through connector settings for reviewing successes, investigating failures, and monitoring response times.
VAT Reports: Generate monthly reports showing all ZRA-submitted invoices, tax collected by rate, input VAT claims, and net VAT payable—reconciling with ZRA records.
Conclusion
Generating ZRA Smart Invoices in Odoo streamlines compliance while maintaining efficient operations. The automated integration eliminates manual entry, reduces errors, ensures real-time reporting, maintains audit trails, and provides immediate validation.
Whether invoicing from sales orders, creating directly, or invoicing on delivery, the Smart Invoice connector handles ZRA communication seamlessly. Your team serves customers while the system ensures automatic compliance, protecting from penalties and supporting growth in Zambia’s digital economy.