Ifriqa Validator

Validate ZATCA (Fatoora) e-invoices before you submit

Check your Saudi UBL 2.1 e-invoice XML against core EN 16931 and BR-KSA rules — and catch common compliance issues before submission, in plain language. Built for ERP vendors and integrators.

Glissez-déposez votre fichier XML ici

ou parcourir

XML uniquement · 1 Mo max · 20 transactions

Exemples de démonstration

Utilisez-les uniquement pour prévisualiser l'expérience de diagnostic. Votre propre XML reste le flux de travail principal.

Préférez les téléchargements ? XML valide

Les fichiers sont traités en mémoire uniquement — rien n'est stocké ni transmis à des tiers.

EN 16931 core

BR-KSA rules

Readable diagnostics

No account required

Pas seulement de la validation XML

A valid XSD is not a compliant ZATCA invoice.

ZATCA rejects invoices for EN 16931 and BR-KSA business-rule reasons XSD never checks. Ifriqa combines structure checks, EN 16931 rules, KSA-specific rules and readable reports.

CoucheCe que ça détecte
UBL 2.1 structureRequired elements, well-formedness
Règles EN 16931Invoice number, dates, type code, parties, currency
BR-KSA rulesSAR tax currency, seller VAT format, building number (SA), Previous Invoice Hash
Explanation layerHuman-readable diagnostics and machine-readable JSON

Profils supportés

Standard tax invoice (388)Debit note (383)Credit note (381)EN 16931 coreBR-KSA extensions

Built for the ZATCA Phase 2 wave

Pre-check the UBL XML your ERP or middleware produces against EN 16931 + BR-KSA before it reaches the ZATCA clearance/reporting API — and get readable reasons for every failure.

Cryptographic signature, QR content and clearance are out of scope — this is a pre-submission validator, not a generator.

Diagnostics lisibles

ErreurExplication
Missing UUID / PIHZATCA requires a UUID and a Previous Invoice Hash (hash chain) on every invoice.
Tax currency not SARThe tax currency code must be SAR for KSA invoices.
Missing building number (SA)When the party country is SA, the postal address must include a building number (BR-KSA-63).

Guides & Référence

Référence technique

Structure du document

16 champs · 3 règles · 1 tables
▸
invoice//*[local-name()='Invoice']
◦invoice.profileIdProfileID
ID
◦invoice.idInvoice number
ID
◦invoice.uuidInvoice UUID
ID
◦invoice.issueDateIssue date
ISO_DATE_EXTENDED
◦invoice.typeCodeInvoice type code
CODE
◦invoice.currencyCodeDocument currency code
CURRENCY_CODE
◦invoice.taxCurrencyCodeTax currency code
CURRENCY_CODE
◦invoice.pihPrevious Invoice Hash (PIH)
TEXT
◦invoice.qrQR code (base64 TLV)
TEXT
◦seller.nameSeller name
TEXT
◦seller.vatSeller VAT registration number
VAT_KSA
◦seller.countryCodeSeller country code
COUNTRY_CODE
◦seller.buildingNumberSeller building number
TEXT
◦buyer.nameBuyer name
TEXT
◦buyer.countryCodeBuyer country code
COUNTRY_CODE
◦buyer.buildingNumberBuyer building number
TEXT

Champs

16 définis
IdentifiantLibelléTypeObligatoire
invoice.profileIdProfileIDID—
invoice.idInvoice numberID—
invoice.uuidInvoice UUIDID—
invoice.issueDateIssue dateISO_DATE_EXTENDED—
invoice.typeCodeInvoice type codeCODE—
invoice.currencyCodeDocument currency codeCURRENCY_CODE—
invoice.taxCurrencyCodeTax currency codeCURRENCY_CODE—
invoice.pihPrevious Invoice Hash (PIH)TEXT—
invoice.qrQR code (base64 TLV)TEXT—
seller.nameSeller nameTEXT—
seller.vatSeller VAT registration numberVAT_KSA—
seller.countryCodeSeller country codeCOUNTRY_CODE—
seller.buildingNumberSeller building numberTEXT—
buyer.nameBuyer nameTEXT—
buyer.countryCodeBuyer country codeCOUNTRY_CODE—
buyer.buildingNumberBuyer building numberTEXT—

Règles de validation

3 règles
ZATCA-KSA-01WARNING

Ifriqa pre-check (advisory): when the buyer country is SA, ZATCA expects a building number (cbc:BuildingNumber) in the buyer address (BR-KSA-63). The official Schematron flags this as a warning, but it is required for submission.

Quand

Buyer country code = "SA"

Assertion

Buyer building number est obligatoire

ZATCA-KSA-02WARNING

Ifriqa pre-check (advisory): when the seller country is SA, ZATCA expects a building number (cbc:BuildingNumber) in the seller address (BR-KSA-37). The official Schematron flags this as a warning, but it is required for submission.

Quand

Seller country code = "SA"

Assertion

Seller building number est obligatoire

ZATCA-KSA-03WARNING

Ifriqa pre-check (advisory): a ZATCA invoice should reference the Previous Invoice Hash (AdditionalDocumentReference ID="PIH"); the first invoice uses an empty base hash (BR-KSA-61). The official Schematron flags this as a warning, but the hash chain is required for reporting/clearance.

Assertion

Previous Invoice Hash (PIH) est obligatoire

Tables de référence

1 listes

ZATCA invoice type codes (UNTDID 1001)

zatca-invoice-type-codes
388383381386

Conçu pour

  • ERP and accounting software vendors serving KSA clients
  • Integrators and middleware connecting ERPs to ZATCA
  • Developers implementing ZATCA Phase 2 export
  • Consultants debugging ZATCA rejections
FonctionnalitéGratuitPayant
Single invoice validationOuiOui
EN 16931 + BR-KSA diagnosticsOuiOui
Full business explanationPartielOui
JSON/API reportPreviewOui
Traitement par lot / ZIPNonOui
Full BR-KSA coverageCoreOui
History / saved reportsNonOui
Accès APINonOui

Need batch validation or an API for your ERP?

API access, ZIP/batch processing, saved reports and full BR-KSA coverage are planned for paid usage.

Contacter Ifriqa
Ifriqa Validator