피드로 돌아가기
Factur-X EN 16931 from scratch: PDF/A-3 + CII XML in Node.js / TypeScript
Dev.toDev.to
Backend

500라인의 TypeScript로 구현한 고효율 Factur-X 엔진

Factur-X EN 16931 from scratch: PDF/A-3 + CII XML in Node.js / TypeScript

Erwan Bargain2026년 4월 20일14intermediate

Context

EU 및 프랑스의 전자 송장 규제 도입에 따른 기계 판독 가능 문서 생성 필요성 증대. 기존 상용 SDK의 고비용 구조와 방대한 XML 스키마 문서로 인한 구현 진입 장벽 존재.

Technical Solution

  • PDF/A-3 내부에 CII XML을 첨부하는 Hybrid 구조 설계를 통한 인간 가독성과 기계 판독성 동시 확보
  • EN 16931 표준의 복잡한 식별자를 인간 중심의 인터페이스로 추상화하여 데이터 모델 단순화
  • VAT Category 및 Unit Code의 엄격한 매핑을 통한 세무 감사 수준의 Semantic 정합성 유지
  • Line-item 기반의 자동 합산 로직을 구축하여 헤더 총액과 상세 내역 간의 정밀한 데이터 일치 구현
  • pdf-lib 라이브러리 기반의 Zero-dependency 지향 설계를 통한 런타임 오버헤드 최소화

Key Takeaway

복잡한 표준 스펙의 핵심은 도구의 성능보다 도메인 모델의 정확한 추상화와 데이터 정합성 검증에 있음.


- EU B2B 송장 발행 시 EN 16931 표준 준수 여부 및 Factur-X 프로파일(BASIC 등) 적정성 검토 - XML 데이터와 PDF 시각 정보 간의 데이터 불일치를 방지하는 Single Source of Truth 기반의 생성 파이프라인 구축 - 국가별 VAT 세율 및 세무 카테고리(S, E, AE 등)의 매핑 테이블 정밀 설계

원문 읽기