ZATCA e-lasku QR (Saudi FATOORA)
ZATCA (Zakat, Tax and Customs Authority) Saudi-Arabiassa velvoittaa QR-koodin jokaiseen verolaskuun kuningaskunnassa. Vaihe 1 on yksinkertaistettu TLV; Vaihe 2 lisää kryptografisen sinetöinnin FATOORA-alustan integroinnin kautta. Vaatimustenvastaiset laskut hylkää ostajan kirjanpito-ohjelmisto, eivätkä ne kelpaa ALV-palautukseen.
Kanoninen spesifikaatio:ZATCA E-Invoicing Resolution & Implementing Regulations, voimassa vuoteen 2026.
Vaihe 1 (generointi): Voimassa 4. joulukuuta 2021 lähtien. Kaikkien ALV-rekisteröityjen yritysten on annettava digitaaliset laskut QR:n kanssa.
Vaihe 2 (integraatio): Käyttöönotto yrityksen koon mukaisissa aalloissa 1. tammikuuta 2023 lähtien. Lisää digitaalisen allekirjoituksen + ZATCA-selvityksen standardilaskuille ja reaaliaikaisen raportoinnin yksinkertaistetuille laskuille.
Vaihe 1 (generointi): Voimassa 4. joulukuuta 2021 lähtien. Kaikkien ALV-rekisteröityjen yritysten on annettava digitaaliset laskut QR:n kanssa.
Vaihe 2 (integraatio): Käyttöönotto yrityksen koon mukaisissa aalloissa 1. tammikuuta 2023 lähtien. Lisää digitaalisen allekirjoituksen + ZATCA-selvityksen standardilaskuille ja reaaliaikaisen raportoinnin yksinkertaistetuille laskuille.
Mitä se on
QR koodaa Base64-merkkijonon. Pura Base64 saadaksesi binaarisen TLV-sekvenssin, jossa on 5 pakollista kenttää kiinteässä järjestyksessä:
| Tag | Kenttä | Tyyppi | Huomiot |
|---|---|---|---|
01 | Myyjän nimi | UTF-8-merkkijono | Myyjän kaupallinen nimi. Arabialainen ja latinalainen molemmat hyväksytään. |
02 | ALV-rekisteröintinumero | 15 numeroa | Alkaa 3:lla saudiyhteisöille. Muoto: 3XXXXXXXXXXXXX3. |
03 | Laskun aikaleima | ISO 8601 | Esim. 2026-04-18T10:30:00Z. Sisällytettävä aikavyöhyke. |
04 | Laskun kokonaissumma (ALV:n kanssa) | Desimaalimerkkijono | Esim. 115.00. Valuutta on implisiittisesti SAR. |
05 | ALV-summa | Desimaalimerkkijono | Esim. 15.00. Tällä hetkellä 15 % standardisati. |
06 | Laskun hajautusarvo (Vaihe 2) | Base64 SHA-256 | Kanonisen laskun XML:n SHA-256. |
07 | Digitaalinen allekirjoitus (Vaihe 2) | Base64 | ECDSA laskun hajautusarvolle myyjän CSID-sertifikaatilla. |
08 | Julkinen avain (Vaihe 2) | Base64 X.509 | Myyjän ECDSA-julkinen avain (CSID:stä). |
09 | ZATCA-leima (Vaihe 2) | Base64 | ZATCA:n vastakirjoitus. Läsnä vain ZATCA-selvityksen jälkeen. |
Jokainen TLV-tietue on 1 tag-tavu + 1 pituus-tavu + <pituus> arvotavua. Koko sekvenssi Base64-koodataan QR-hyötykuormaksi.
Vaihe 1 (yksinkertaistettu) vs Vaihe 2 (integraatio)
| Näkökohta | Vaihe 1 | Vaihe 2 |
|---|---|---|
| QR-sisältö | Vain tagit 01–05 | Tagit 01–05 sekä 06, 07, 08, valinnaisesti 09 |
| ZATCA-integraatio | Ei mitään, offline | Reaaliaikainen API yksinkertaistetuille laskuille, selvitysvirta standardilaskuille |
| Sertifikaatit vaadittu | Ei | Kyllä, CSID (Cryptographic Stamp Identifier) ZATCA:n myöntämä |
| Voimaantulopäivä | 2021-12-04 (kaikki yritykset) | 2023-01-01 (rullaavat aallot liikevaihdon mukaan) |
| Laskun laajuus | B2C (yksinkertaistettu) + B2B (standardi) | B2C yksinkertaistettu: reaaliaikaraportti. B2B standardi: selvitys (esivalidointi) ennen myöntämistä. |
Kanoniset testvektorit
Esimerkki TLV (ennen Base64:ta):
01 0A "Acme Saudi" 02 0F "300000000000003" 03 14 "2026-04-18T10:30:00Z" 04 06 "115.00" 05 05 "15.00"Base64-koodauksen jälkeen:
AQpBY21lIFNhdWRpAg8zMDAwMDAwMDAwMDAwMDMDFDIwMjYtMDQtMThUMTA6MzA6MDBaBAYxMTUuMDAFBTE1LjAw| Tapaus | Syötteet | Base64-etuliite |
|---|---|---|
| Vaihe 1, minimaalinen yksinkertaistettu | seller=Acme Saudi | AQpBY21lIFNhdWRp... |
| Arabialainen myyjänimi | seller=شركة أكمي | Myyjänimi UTF-8-koodattu TLV:n sisällä ennen Base64:ta. |
| Vaihe 2 standardilasku | Kaikki yllä oleva plus hash=<SHA-256 Base64> | Paljon pidempi Base64. Dekoodereiden on siedettävä ylimääräiset tagit 05:n jälkeen. |
Yleiset sudenkuopat
- ALV-numeron pituus. ZATCA:n ALV-numerot ovat täsmälleen 15 numeroa, alkavat ja loppuvat
3:lla. Mikä tahansa muu epäonnistuu validoinnissa lasku-ingest-puolella. - Aikaleima ilman aikavyöhykettä. Spesifikaatio vaatii ISO 8601:tä eksplisiittisellä vyöhykkeellä (
Ztai+03:00). Naiivit paikalliset aikaleimat hylätään. - Koodausjärjestys. TLV-kenttien täytyy ilmestyä taginumerojärjestyksessä (01, 02, 03, 04, 05, …). Uudelleenjärjestely saa QR:n dekoodautumaan onnistuneesti, mutta jotkin validaattorit merkitsevät sen ei-kanoniseksi.
- Desimaalimuotoilu. Laskun kokonaissumma ja ALV-summa käyttävät pistepistettä (
115.00), ei pilkkudesimaalia (115,00). Ei myöskään tuhaterottimia. - Valuutta on implisiittisesti SAR. Ulkomaanvaluutan laskut muunnetaan silti SAR:ksi QR-kenttään. Taustalla oleva XML voi sisältää alkuperäisen valuutan; QR ei.
- Vaihe 2 selvityshäiriöt. ZATCA:n selvitys-API:lle lähetetty standardilasku voidaan hylätä (huono CSID, viallinen XML, väärin laskettu verotus). Lasku on laillisesti virheellinen, kunnes se on selvitetty. Pidä uudelleenyrityssilmukka eksponentiaalisella peruutuksella; älä myönnä laskua ennen kuin selvitys onnistuu.
- CSID-sertifikaatin kierto. Vaiheen 2 CSID:t vanhenevat (tyypillisesti 1 vuosi). Rakenna uudistumistarkistus sähköisen laskutuksen järjestelmääsi tai lopetat äkillisesti laskujen myöntämisen.
Skanneriyhteensopivuus
| Lukija | Tuki | Huomiot |
|---|---|---|
| ZATCA FATOORA -sovellus | Natiivisti | Virallinen ministeriösovellus; vahvistaa Vaiheen 2 allekirjoitukset ZATCA PKI:ta vasten. |
| Saudi-arabialainen kirjanpito-ohjelmisto (SAP B1, Oracle, Microsoft Dynamics) | Natiivisti (2023 jälkeen) | Lokalisoidut Saudi-arabian versiot sisältävät ZATCA-jäsentämisen AP-putkistossa. |
| iOS-kamera | Raaka Base64 | Ei tunnistettu verolaskuksi. Käyttäjän on avattava FATOORA-sovellus. |
| Android-kamera / Google Lens | Raaka Base64 | Sama, ei natiivi jäsentämistä. |
| Kolmannen osapuolen auditointityökalut (PwC, KPMG, Deloitten Saudi-yksiköt) | Natiivisti | Auditointitekniikkapaketit jäsentävät ja vahvistavat Vaiheen 2 allekirjoituksia. |
Katso myös
- /zatca-saudi-einvoice-qr-code/, generaattori.
- /standards/, takaisin standardien hakemistoon.
- ZATCA:n kehittäjäportaali, viralliset resurssit ja FATOORA-hiekkalaatikko.