What a ZATCA-compliant tax invoice must contain: every required field, and the code that catches it
A field-by-field reference for Saudi e-invoicing: the seller block, the buyer block, the document fields, the line fields and the QR code — each with the validation rule that catches it and whether that rule rejects the invoice or is returned alongside acceptance.
Credit notes and debit notes in Saudi e-invoicing: correcting an invoice you have already sent
An invoice that has been cleared or reported cannot be edited and cannot be deleted. It is corrected by issuing a second document that references it: a credit note (381) if the buyer now owes less, a debit note (383) if they owe more. Plus the one situation that needs no note at all.
ZATCA Phase 2 e-invoicing in Saudi Arabia: what it actually requires
Clearance, reporting, the hash chain and the six compliance invoices — a plain-English walkthrough of what the Zakat, Tax and Customs Authority requires from a business connecting to Phase 2, and what usually goes wrong.
Connecting your own system to ZATCA: what a direct integration really involves
A full accounting of what it takes to talk to the Fatoora platform yourself — CSR, compliance CSID, the compliance documents, UBL 2.1, XAdES signing, the ICV counter and PIH chain, clearance versus reporting, and certificate renewal forever — and an honest comparison with sending JSON to an API instead.
Standard vs simplified tax invoice in Saudi Arabia: which one you must issue
A standard tax invoice must be cleared by the Authority before you hand it over and must carry the buyer VAT number; a simplified one is given to the buyer immediately and reported within 24 hours. Getting it backwards costs your customer their input VAT deduction.
Our company is outside Saudi Arabia. Does ZATCA e-invoicing apply to us?
The rules attach to a VAT-registered taxpayer in the Kingdom, not to a head office address. Which entity issues the invoice decides almost everything — and this is what changes for a foreign-built system once that entity is in scope.