ZATCA 전자세금계산서 QR(사우디 FATOORA)
사우디아라비아의 ZATCA(자카트·세금·관세청)는 왕국에서 발행되는 모든 세금 인보이스에 QR을 의무화합니다. 1단계는 간소화된 TLV이고, 2단계는 FATOORA 플랫폼과의 통합을 통한 암호화 봉인을 추가합니다. 비준수 인보이스는 구매자의 회계 소프트웨어에서 거부되며 VAT 환급도 무효가 됩니다.
표준 사양:ZATCA E-Invoicing Resolution & Implementing Regulations, 2026년까지 유효.
1단계 (생성): 2021년 12월 4일부터 시행. VAT 등록 모든 사업자는 QR이 포함된 디지털 인보이스를 발행해야 합니다.
2단계 (통합): 2023년 1월 1일부터 기업 규모별 단계적 시행. 표준 인보이스에 디지털 서명 + ZATCA 승인, 간소화 인보이스에 실시간 보고를 추가합니다.
1단계 (생성): 2021년 12월 4일부터 시행. VAT 등록 모든 사업자는 QR이 포함된 디지털 인보이스를 발행해야 합니다.
2단계 (통합): 2023년 1월 1일부터 기업 규모별 단계적 시행. 표준 인보이스에 디지털 서명 + ZATCA 승인, 간소화 인보이스에 실시간 보고를 추가합니다.
개요
QR은 Base64 문자열을 인코딩합니다. Base64를 디코딩하면 고정 순서로 5개의 필수 필드가 있는 이진 TLV 시퀀스를 얻을 수 있습니다.
| 태그 | 필드 | 유형 | 참고 |
|---|---|---|---|
01 | 판매자 이름 | UTF-8 문자열 | 판매자의 상호. 아랍어와 라틴어 모두 허용. |
02 | VAT 등록 번호 | 15자리 | 사우디 법인은 3으로 시작. 형식: 3XXXXXXXXXXXXX3. |
03 | 인보이스 타임스탬프 | ISO 8601 | 예: 2026-04-18T10:30:00Z. 시간대를 포함해야 합니다. |
04 | 인보이스 합계 (VAT 포함) | 소수 문자열 | 예: 115.00. 통화는 암묵적으로 SAR. |
05 | VAT 금액 | 소수 문자열 | 예: 15.00. 현재 표준 세율 15%. |
06 | 인보이스 해시 (2단계) | Base64 SHA-256 | 표준 인보이스 XML의 SHA-256. |
07 | 디지털 서명 (2단계) | Base64 | 판매자의 CSID 인증서를 사용한 인보이스 해시에 대한 ECDSA. |
08 | 공개 키 (2단계) | Base64 X.509 | 판매자의 ECDSA 공개 키 (CSID에서). |
09 | ZATCA 스탬프 (2단계) | Base64 | ZATCA의 부서명. ZATCA 승인 후에만 존재. |
각 TLV 레코드는 1바이트 태그 + 1바이트 길이 + <길이>바이트 값입니다. 전체 시퀀스는 Base64로 인코딩되어 QR 페이로드가 됩니다.
1단계 (간소화) vs 2단계 (통합)
| 항목 | 1단계 | 2단계 |
|---|---|---|
| QR 내용 | 태그 01–05만 | 태그 01–05 + 06, 07, 08, 선택적으로 09 |
| ZATCA 통합 | 없음, 오프라인 | 간소화 인보이스용 실시간 API, 표준 인보이스용 승인 플로우 |
| 필요 인증서 | 없음 | 있음, ZATCA가 발급하는 CSID (암호화 스탬프 식별자) |
| 시행일 | 2021-12-04 (모든 사업자) | 2023-01-01 (매출 기준 단계적 적용) |
| 인보이스 범위 | B2C (간소화) + B2B (표준) | B2C 간소화: 실시간 보고. B2B 표준: 발행 전 승인 (사전 검증). |
표준 테스트 벡터
TLV 예시 (Base64 이전):
01 0A "Acme Saudi" 02 0F "300000000000003" 03 14 "2026-04-18T10:30:00Z" 04 06 "115.00" 05 05 "15.00"Base64 인코딩 후:
AQpBY21lIFNhdWRpAg8zMDAwMDAwMDAwMDAwMDMDFDIwMjYtMDQtMThUMTA6MzA6MDBaBAYxMTUuMDAFBTE1LjAw| 케이스 | 입력 | Base64 접두사 |
|---|---|---|
| 1단계, 최소 간소화 | seller=Acme Saudi | AQpBY21lIFNhdWRp... |
| 아랍어 판매자 이름 | seller=شركة أكمي | 판매자 이름은 Base64 전에 TLV 내에서 UTF-8로 인코딩됩니다. |
| 2단계 표준 인보이스 | 위의 모든 항목에 hash=<SHA-256 Base64> | 훨씬 긴 Base64. 디코더는 05 이후의 추가 태그를 허용해야 합니다. |
흔한 실수
- VAT 번호 길이. ZATCA VAT 번호는 정확히 15자리이며
3으로 시작하고 끝납니다. 다른 값은 인보이스 수신 측에서 검증이 실패합니다. - 시간대 없는 타임스탬프. 사양에서는 명시적 시간대(
Z또는+03:00)가 포함된 ISO 8601을 요구합니다. 로컬 타임스탬프는 거부됩니다. - 인코딩 순서. TLV 필드는 태그 번호 순서(01, 02, 03, 04, 05, …)로 나타나야 합니다. 순서를 바꾸면 QR 디코딩은 성공하지만 일부 검증기가 비표준으로 표시합니다.
- 소수점 형식. 인보이스 합계와 VAT 금액은 점 소수점(
115.00)을 사용하며 쉼표 소수점(115,00)은 사용하지 않습니다. 천 단위 구분 기호도 없습니다. - 통화는 암묵적으로 SAR. 외화 인보이스도 QR 필드에는 SAR로 변환됩니다. 기반 XML에는 원래 통화가 포함될 수 있지만 QR에는 포함되지 않습니다.
- 2단계 승인 실패. ZATCA 승인 API에 제출된 표준 인보이스가 거부될 수 있습니다 (잘못된 CSID, 불량 XML, 세금 계산 오류). 승인될 때까지 인보이스는 법적으로 무효입니다. 지수 백오프가 있는 재시도 루프를 유지하고 승인이 성공할 때까지 인보이스를 발행하지 마세요.
- CSID 인증서 교체. 2단계 CSID는 만료됩니다 (보통 1년). 전자 인보이스 시스템에 갱신 확인을 구축하지 않으면 갑자기 인보이스를 발행할 수 없게 됩니다.
스캐너 호환성
| 리더 | 지원 | 참고 |
|---|---|---|
| ZATCA FATOORA 앱 | 네이티브 | 공식 부처 앱. ZATCA PKI에 대해 2단계 서명을 검증합니다. |
| 사우디 회계 소프트웨어 (SAP B1, Oracle, Microsoft Dynamics) | 네이티브 (2023년 이후) | 현지화된 사우디 빌드는 AP 파이프라인에 ZATCA 파서를 포함합니다. |
| iOS 카메라 | 원시 Base64 | 세금 인보이스로 인식되지 않습니다. 사용자가 FATOORA 앱을 열어야 합니다. |
| Android 카메라 / Google Lens | 원시 Base64 | 동일, 네이티브 파싱 없음. |
| 서드파티 감사 도구 (PwC, KPMG, Deloitte 사우디 유닛) | 네이티브 | 감사 기술 제품군이 2단계 서명을 파싱하고 검증합니다. |
참고 항목
- /zatca-saudi-einvoice-qr-code/, 생성기.
- /standards/, 표준 인덱스로 돌아가기.
- ZATCA 개발자 포털, 공식 리소스와 FATOORA 샌드박스.