Enterprise 에디션
인보이스
한눈에 보기
섹션 제목: “한눈에 보기”NextPDF Enterprise는 ZUGFeRD / Factur-X / Peppol-UBL 구조화 하이브리드 송장을 생성하고, 송장 XML을 EN 16931 데이터 모델 및 Schematron 규칙 세트에 대해 검증합니다. EN 16931에 정의된 데이터 모델에 부합하는 구조화 송장을 생성할 뿐, 세무 당국 검증기가 아니며 어떤 문서도 인증하지 않습니다.
가용성 및 라이선스
섹션 제목: “가용성 및 라이선스”이 기능은 NextPDF Enterprise(nextpdf/enterprise)에 제공되며 Enterprise 등급 라이선스 봉투로 활성화됩니다. 해당 권한이 없는 배포는 이 기능의 클래스를 로드하지 않습니다. 에디션 비교 및 라이선스 받기.
composer require nextpdf/enterprise:^3Schematron 엔진은 PHP ext-xsl 확장을 사용합니다. Schematron 검증을 실행하기 전에 이를 설치하고 활성화하십시오.
개념 개요
섹션 제목: “개념 개요”Invoice 모듈에는 세 가지 독립적인 표면이 있습니다. 구조화 송장 임베딩, EN 16931 XML 검증, 그리고 Schematron 규칙 실행입니다.
임베딩. ZugferdEmbedder는 호출자가 제공한 ZUGFeRD 2.4 / Factur-X 1.08 UN/CEFACT CII XML 페이로드를 PDF/A 캐리어에 첨부하여 하이브리드 송장을 생성합니다. 두 가지 캐리어 형식이 지원됩니다. 선호되는 최신 캐리어인 PDF/A-4f(ISO 19005-4:2020)와 하위 호환성을 위한 PDF/A-3b(ISO 19005-3:2012)입니다. ZugferdXmpSchema는 캐리어에 필요한 Factur-X XMP 확장 스키마 선언을 주입합니다. PeppolEmbedder는 호출자가 제공한 Peppol BIS Billing 3.0 UBL 2.1 송장 또는 대변표 XML에 대해 동일한 역할을 수행하며, 올바른 연결 파일 관계 및 MIME 타입으로 이를 첨부합니다. NextPDF는 송장 XML을 합성하지 않습니다. 호출자가 유효한 XML을 제공하며 송장 발행자로 남습니다.
검증. InvoiceXmlValidator는 EN 16931 비즈니스 규칙 BR-1이 요구하는 BT-24 사양 식별자를 포함하여, 송장 XML을 EN 16931 시맨틱 데이터 모델 및 ZUGFeRD / Factur-X 컨테이너 요건에 대해 검사합니다. 두 가지 모드 중 하나로 실행됩니다. COMPAT(기본값. 기존 픽스처의 하위 호환성을 유지하기 위해 경계선상의 EN 16931 카디널리티 발견 사항을 경고로 보고함)와 STRICT(외부 검증기 시맨틱을 반영하여 BT-24 카디널리티를 하드 오류로 처리함)입니다. 모드는 호출별, 환경 재정의, 또는 적합성 정책으로 선택할 수 있습니다.
Schematron. SchematronValidator는 사전 컴파일된 Schematron 규칙 세트(빌드 시 XSLT로 컴파일된 CEN EN 16931 .sch 규칙)를 인프로세스 PHP XSLT 프로세서를 사용하여 송장 XML에 대해 실행하고, SVRL 보고서를 구조화된 발견 사항으로 파싱합니다. ZugferdProfile enum은 적합성 프로파일을 모델링합니다 — MINIMUM, BASIC WL, BASIC, EN 16931, EXTENDED, 그리고 EN 16931 위에 정의된 독일 XRechnung B2G CIUS입니다.
이 모듈이 주장하는 것과 주장하지 않는 것
섹션 제목: “이 모듈이 주장하는 것과 주장하지 않는 것”이 모듈은 구조화된 송장 데이터를 생성하고 검사합니다. 어떤 문서가 법적으로 적합한 송장이라거나, 세무 당국의 승인을 받았다거나, 어떤 당국이 반드시 수용한다고는 주장하지 않습니다.
- 검증기는 EN 16931 시맨틱 모델과 ZUGFeRD / Factur-X / UBL 컨테이너만 검사합니다. 세무 당국 검증기가 아닙니다. 국가별 확장과 청산 플랫폼 — 예를 들어 이탈리아 SDI, 프랑스 Chorus Pro, 독일 XRechnung 전송 — 은 전송 수준에서 범위 밖입니다.
- EN 16931-1 자체가 명시하듯이, 핵심 시맨틱 모델은 전자 송장이 법적 및 재정적 적합성을 뒷받침하는 데 필요한 핵심 정보를 담습니다. 송장 발행자가 관련 법령의 규칙을 충족할 책임을 집니다. 이것은 세무 당국 검증기가 아닙니다.
- 표준에 대한 지원은 그 표준에 대한 적합성과 같지 않습니다. 귀하의 관할권에서 규제 충족성을 판단하려면 세무 및 준수 자문에게 문의하십시오.
이렇게 동작하는 이유
섹션 제목: “이렇게 동작하는 이유”이 모듈은 의도적으로 송장 XML을 절대 합성하지 않습니다. 임베딩, EN 16931 검증, 그리고 Schematron 실행은 호출자가 제공하고 소유하는 XML에 대한 세 가지 독립적인 표면입니다. 이렇게 하면 NextPDF는 생산자이자 검증기로 남고, 결코 발행자가 되지 않습니다. 법적 책임은 라이브러리에 위임될 수 없기 때문입니다. 검증은 COMPAT을 기본값으로 하므로, 경계선상의 카디널리티 발견 사항은 회귀가 아니라 경고가 됩니다. 외부 검증기 시맨틱이 필요할 때는 STRICT를 선택적으로 활성화합니다. 그 결과는 깔끔한 분리입니다. NextPDF는 관찰한 것을 보고하고, 발행자는 문서가 법을 충족하는지 결정합니다.
설계 배경: 송장 및 전자 송장.
API 표면
섹션 제목: “API 표면”| Class | Responsibility |
|---|---|
ZugferdEmbedder | ZUGFeRD / Factur-X CII XML을 PDF/A-4f 또는 PDF/A-3b 캐리어에 첨부함. |
ZugferdXmpSchema | Factur-X XMP 확장 스키마 선언을 주입함. |
ZugferdProfile | 적합성 프로파일 enum (MINIMUM … EXTENDED, XRECHNUNG). |
PeppolEmbedder | Peppol BIS 3.0 UBL 송장 / 대변표 XML을 PDF/A 캐리어에 첨부함. |
InvoiceXmlValidator | XML을 EN 16931 데이터 모델에 대해 검사함; COMPAT 또는 STRICT 모드. |
InvoiceValidatorMode | 검증 모드 enum: COMPAT(기본값) 또는 STRICT. |
SchematronValidator | 사전 컴파일된 Schematron 규칙 세트를 실행함; SVRL 발견 사항을 파싱함. |
InvoiceValidationResult / SchematronResult | 구조화된 결과: 프로파일, 발견 사항, 심각도. |
코드 샘플 — 빠른 시작
섹션 제목: “코드 샘플 — 빠른 시작”use NextPDF\Enterprise\Invoice\ZugferdEmbedder;use NextPDF\Enterprise\Invoice\ZugferdProfile;
$pdf = ZugferdEmbedder::basic($pdfAManager, $fileAttachment, $ciiXml) ->embed(ZugferdProfile::EN16931);코드 샘플 — 프로덕션
섹션 제목: “코드 샘플 — 프로덕션”use NextPDF\Enterprise\Invoice\InvoiceXmlValidator;use NextPDF\Enterprise\Invoice\InvoiceValidatorMode;
$result = $validator->validate($ciiXml, InvoiceValidatorMode::STRICT);
foreach ($result->findings as $finding) { $logger->warning('invoice.finding', [ 'rule' => $finding->ruleId, 'severity' => $finding->severity->value, ]);}// A clean result is one input to your decision, not a compliance verdict.// The invoice issuer remains responsible for relevant legislation.엣지 케이스 및 함정
섹션 제목: “엣지 케이스 및 함정”- 인식 가능한 송장 페이로드를 담지 않은 정상 형식의 PDF는 예외를 던지는 대신 “송장이 아님” 결과를 산출합니다.
COMPAT이 기본 검증 모드입니다. BT-24 사양 식별자가 누락되면 경고로 보고되므로, 불리언 유효성 플래그로 게이트하는 호출 위치는 회귀하지 않습니다. BT-24를 외부 KoSIT / Mustang 시맨틱과 일치하는 하드 오류로 만들려면STRICT를 사용하십시오.- 호출자가 송장 XML을 제공합니다. NextPDF는 이를 생성하거나 수정하지 않습니다. 발견 사항 목록이 비어 있다고 해서 비적합 페이로드가 적합해지는 것은 아닙니다.
- Schematron 엔진에는
ext-xsl이 필요합니다. 규칙 세트는 빌드 시 컴파일되며, 런타임은 사전 컴파일된 XSLT만 실행합니다.
검증 비용은 임베드된 XML 크기와 Schematron 규칙 수에 따라 증가합니다. 임베딩 비용은 캐리어 크기에 따라 증가하며 PDF/A 직렬화가 좌우합니다. 페이지 성능 예산은 송장 처리량이 아니라 문서 렌더링을 반영합니다.
보안 참고
섹션 제목: “보안 참고”모든 XML 파싱은 강화된 XML 가드를 통해 라우팅됩니다. 외부 엔티티 해석이 비활성화되고(XXE 안전), DOCTYPE이 거부되며, 압축 해제가 한정됩니다. XSLT 프로세서는 네트워크 및 파일 시스템 리소스 로딩이 비활성화된 상태로 실행되며 PHP 함수를 등록하지 않으므로, document(), xsl:include, xsl:import, result-document가 네트워크나 디스크에 도달할 수 없습니다. 신뢰할 수 없는 출처의 송장 XML은 적대적인 것으로 취급하십시오.
데이터 레지던시 및 PII 완화
섹션 제목: “데이터 레지던시 및 PII 완화”송장 XML에는 개인, 상업, 재무 데이터가 포함될 수 있습니다. 처리는 인프로세스이며 로컬에서 수행됩니다. 모듈은 임베딩이나 검증 중에 아웃바운드 네트워크 호출을 수행하지 않습니다. 추출된 XML과 발견 사항에는 자체 보존 및 최소화 통제를 적용하십시오.
안전한 텔레메트리 및 로그 스크러빙
섹션 제목: “안전한 텔레메트리 및 로그 스크러빙”발견 사항과 검증 로그에는 규칙 식별자와 태그 값이 포함될 수 있습니다. 전체 송장 페이로드는 포함하지 않습니다. 해당 값이 민감하다면 로그를 공유 싱크로 전달하기 전에 필드 값을 스크러빙하거나 편집하십시오.
적합성
섹션 제목: “적합성”| Behavior | Reference | Status |
|---|---|---|
| 핵심 송장 시맨틱 모델 | EN 16931-1:2026 §4 | 기반으로 구축됨; 발행자가 관련 법령에 대한 책임을 유지함 |
| 사양 식별자(BT-24) | EN 16931-1:2026 BR-1 | 검사됨(COMPAT에서 경고, STRICT에서 오류) |
| UN/CEFACT CII 구문 바인딩 | CEN/TS 16931-3-3:2020 | 임베드 지원됨 |
| UBL 2.1 구문 바인딩 | CEN/TS 16931-3-2:2020 | 임베드 지원됨 |
| PDF/A-3 연결 파일 | ISO 19005-3:2012 §6.7.8 | 캐리어 지원됨 |
| PDF/A-4f 임베드 파일 | ISO 19005-4:2020 Annex A | 캐리어 지원됨 |
이 표는 NextPDF Enterprise가 기반으로 구축된 사양과 검사하는 항목을 기록합니다. 인증, 세무 당국 승인, 또는 규제 충족성에 대한 진술이 아닙니다. 송장 발행자가 관련 법령의 규칙을 충족할 책임을 집니다. 이것은 세무 당국 검증기가 아닙니다.
FIPS 모드 동작
섹션 제목: “FIPS 모드 동작”이 모듈은 암호화 서명을 수행하지 않습니다. 하이브리드 송장 서명과 FIPS 모드 키 보관은 여기서 범위 밖입니다. Signature 모듈을 참조하십시오.
위협 모델
섹션 제목: “위협 모델”신뢰할 수 없는 송장 XML이 주요 입력입니다. 완화책은 XXE 안전 파싱, DOCTYPE 거부, 한정된 압축 해제, 네트워크 및 파일 리소스 로딩이 비활성화된 XSLT 프로세서, 그리고 주장 합성 없음입니다 — 호출자가 송장 콘텐츠를 제공하고 소유합니다.
동작 계약
섹션 제목: “동작 계약”ZugferdEmbedder/PeppolEmbedder는 호출자가 제공한 송장 XML을 PDF/A-4f 또는 PDF/A-3b 캐리어에 첨부합니다. NextPDF는 송장 XML을 절대 합성하지 않습니다.InvoiceXmlValidator는COMPAT(기본값. 경계선상의 EN 16931 카디널리티는 경고) 또는STRICT(BT-24 카디널리티는 하드 오류)로 실행됩니다.SchematronValidator는 인프로세스 XSLT 프로세서를 통해 사전 컴파일된 규칙 세트를 실행하고 SVRL 발견 사항을 파싱합니다. 발견 사항 목록이 비어 있다고 해서 비적합 페이로드가 적합해지는 것은 아닙니다.- 모든 XML 파싱은 XXE 안전입니다. 외부 엔티티 해석 비활성화,
DOCTYPE거부, 한정된 압축 해제입니다.
발행 경계
섹션 제목: “발행 경계”이 페이지는 외부에서 관찰 가능한 동작과 지원되는 공개 API 표면만 설명합니다. 내부 네임스페이스 경로, 헬퍼 클래스, 메커니즘 표, 런북 파일명, 티켓 접두사는 범위 밖입니다.
Core 폴백
섹션 제목: “Core 폴백”NextPDF Core는 구조화된 송장을 생성하거나 검증하지 않습니다. Core 전용 배포는 PDF를 생성할 수 있지만, ZUGFeRD / Factur-X / Peppol 임베딩, EN 16931 검증기, Schematron 엔진이 없습니다.
Pro 폴백
섹션 제목: “Pro 폴백”Pro 전용 배포에서 지원되는 표면은 Factur-X / ZUGFeRD 페이로드의 Pro 등급 전자 송장 감지 및 검증입니다. Pro는 ZUGFeRD / Factur-X 또는 Peppol-UBL 하이브리드 캐리어를 생성하지 않으며, XRechnung CIUS 프로파일을 추가하지 않고, 인프로세스 Schematron 엔진을 실행하지 않습니다. Pro 전용 배포에서 생성, XRechnung CIUS 프로파일, 또는 Schematron을 요청하는 구성에는 이를 충족할 Enterprise 구성 요소가 없습니다. Pro 감지 및 검증 표면은 Pro Compliance를 참조하십시오.
Enterprise 경계 참고
섹션 제목: “Enterprise 경계 참고”내부 메커니즘 세부 사항은 소스 저장소의 내부 문서에 남아 있으며 이 매뉴얼의 범위 밖입니다.
배포 경계
섹션 제목: “배포 경계”Schematron 엔진에는 ext-xsl PHP 확장이 필요합니다. 이를 프로비저닝하고 활성화하는 것은 운영자의 책임입니다. 처리는 인프로세스이며 로컬에서 수행됩니다. 모듈은 임베딩이나 검증 중에 아웃바운드 네트워크 호출을 수행하지 않습니다. 국가별 전자 송장 전송, 청산 플랫폼, 보관 시스템은 이 모듈 외부에 있으며 운영자의 책임입니다.
법률 준수 경계
섹션 제목: “법률 준수 경계”NextPDF는 EN 16931에 정의된 데이터 모델에 부합하는 구조화 송장을 생성하고 규칙 발견 사항을 보고합니다. “법적으로 적합한 송장”을 생성하지 않으며, “세무 당국 승인” 출력을 제공하지 않고, 어떤 송장이 세무 당국, 법원, 또는 등기소에 의해 수용된다고 보장하지 않습니다. 송장 발행자가 관련 법령의 규칙을 충족할 책임을 집니다. 이것은 세무 당국 검증기가 아닙니다. 국가별 전자 송장 플랫폼, 청산 모델, 보관 의무, 디지털 서명 요건은 관할권에 따라 다르며 발행자의 책임입니다. 세무 및 법률 자문에게 문의하십시오.
함께 보기
섹션 제목: “함께 보기”- Invoice 참조 — 임베더, 검증기, Schematron 엔진에 대한 API 수준 참조.
- Pro Compliance — Pro 등급 전자 송장 감지 및 검증.
- Document E-Filing — 법원/등기소 전달 최적화.
- Enterprise 개요
- Core, Pro, Enterprise 기능 매트릭스