Ifriqa Validator

Validate ZATCA (Fatoora) e-invoices before you submit

Check your Saudi UBL 2.1 e-invoice XML against EN 16931 and core BR-KSA rules — and see exactly what will be rejected, in plain language. Built for ERP vendors and integrators.

Ziehen Sie Ihre XML-Datei hierher

oder zum Durchsuchen klicken

Nur XML · max. 1 MB · 20 Transaktionen

Geführte Demo-Beispiele

Verwenden Sie diese nur, um die Diagnoseansicht vorab zu testen. Ihre eigene XML-Datei bleibt der Hauptablauf.

Downloads bevorzugt? gültige XML

Dateien werden nur im Arbeitsspeicher verarbeitet — nichts wird gespeichert oder an Dritte übertragen.

EN 16931 core

BR-KSA rules

Readable diagnostics

No account required

Mehr als nur XML-Validierung

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.

EbeneWas erkannt wird
UBL 2.1 structureRequired elements, well-formedness
EN-16931-RegelnInvoice 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

Unterstützte Profile

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.

Lesbare Diagnosen

FehlerErklärung
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).

Anleitungen & Referenz

Technische Referenz

Dokumentstruktur

16 Felder · 14 Regeln · 1 Tabellen
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

Felder

16 definiert
KennungBezeichnungTypPflichtfeld
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

Validierungsregeln

14 Regeln
ZATCA-PROF-001ERROR

A ZATCA invoice must carry a ProfileID (cbc:ProfileID), e.g. "reporting:1.0".

Assertion

ProfileID ist erforderlich

ZATCA-HDR-001ERROR

An invoice shall have an invoice number (cbc:ID). (EN16931 BR-02)

Assertion

Invoice number ist erforderlich

ZATCA-HDR-002ERROR

A ZATCA invoice must carry a unique identifier (cbc:UUID).

Assertion

Invoice UUID ist erforderlich

ZATCA-HDR-003ERROR

An invoice shall have an issue date (cbc:IssueDate). (EN16931 BR-03)

Assertion

Issue date ist erforderlich

ZATCA-HDR-004ERROR

An invoice shall specify a document type code (cbc:InvoiceTypeCode). (EN16931 BR-04)

Assertion

Invoice type code ist erforderlich

ZATCA-HDR-005ERROR

The invoice type code must be one of the accepted ZATCA UNTDID 1001 codes (388 tax invoice, 383 debit note, 381 credit note, 386 prepayment).

Wenn

Invoice type code ist vorhanden

Assertion

Invoice type code ∈ ZATCA invoice type codes (UNTDID 1001): {388, 383, 381, 386}

ZATCA-CUR-001ERROR

An invoice shall specify the document currency code (cbc:DocumentCurrencyCode).

Assertion

Document currency code ist erforderlich

ZATCA-CUR-002ERROR

The tax currency code (cbc:TaxCurrencyCode) must be SAR for ZATCA invoices. (BR-KSA)

Wenn

Tax currency code ist vorhanden

Assertion

Tax currency code = "SAR"

ZATCA-SEL-001ERROR

An invoice shall contain the seller name (PartyLegalEntity/RegistrationName). (EN16931 BR-06)

Assertion

Seller name ist erforderlich

ZATCA-SEL-002ERROR

The seller VAT registration number (PartyTaxScheme/CompanyID) is required and must be 15 digits starting and ending with 3.

Assertion

Seller VAT registration number ist erforderlich

ZATCA-BUY-001ERROR

An invoice shall contain the buyer name (PartyLegalEntity/RegistrationName). (EN16931 BR-07)

Assertion

Buyer name ist erforderlich

ZATCA-KSA-01ERROR

When the buyer country is SA, the buyer postal address must include a building number (cbc:BuildingNumber). (BR-KSA-63)

Wenn

Buyer country code = "SA"

Assertion

Buyer building number ist erforderlich

ZATCA-KSA-02ERROR

When the seller country is SA, the seller postal address must include a building number (cbc:BuildingNumber). (BR-KSA)

Wenn

Seller country code = "SA"

Assertion

Seller building number ist erforderlich

ZATCA-KSA-03ERROR

A ZATCA invoice must reference the Previous Invoice Hash (AdditionalDocumentReference ID="PIH"); the first invoice uses an empty base hash. (BR-KSA hash chain)

Assertion

Previous Invoice Hash (PIH) ist erforderlich

Referenztabellen

1 Listen

ZATCA invoice type codes (UNTDID 1001)

zatca-invoice-type-codes
388383381386

Entwickelt für

  • 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
FunktionKostenlosKostenpflichtig
Single invoice validationJaJa
EN 16931 + BR-KSA diagnosticsJaJa
Full business explanationTeilweiseJa
JSON/API reportPreviewJa
Stapel / ZIPNeinJa
Full BR-KSA coverageCoreJa
History / saved reportsNeinJa
API-ZugriffNeinJa

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.

Ifriqa kontaktieren