ZATCA POS Direct — Odoo e-Invoicing Module

Odoo 19 · Python · WebCrypto · UBL XML

ZATCA-compliant POS, 70% faster

ZATCA POS Direct — Odoo e-Invoicing Module

The problem

High-volume retail can’t afford to wait on ZATCA clearance at every sale. The standard flow adds latency and database load at the worst possible moment — checkout.

What I built

A direct ZATCA Phase 2 integration for Odoo POS, focused on simplified (B2C) invoices. Invoices generate locally and instantly; QR codes and digital signatures are produced client-side with the WebCrypto API; and submission to ZATCA happens asynchronously through a background job queue within the 24-hour window. Built on UBL XML, fully Phase 2 compliant, and tuned for high-volume environments.

The result

Compliant simplified invoices at the speed of a normal sale — about 70% faster than the traditional method, with minimal database impact during POS operations.