멕시코 CFDI 인보이스 데이터 추출
엑셀 가이드 (2026)
멕시코 CFDI 인보이스는 VAT 번호가 적힌 PDF가 아닙니다. 이는 SAT에서 실시간으로 검증된 XML 문서로, 36자리 UUID, 양 당사자의 RFC, 과세 제도 코드, 그리고 PPD 결제의 경우 원본 인보이스를 참조하는 별도의 Complemento de Pago를 포함합니다. 이 데이터를 엑셀로 추출하려면 사람이 읽기 쉬운 보고 형식이 아닌 세무 신고를 위해 설계된 구조를 처리해야 합니다. 법적으로 유효한 형식은 XML이며, 받은 편지함에 PDF가 도착하더라도 마찬가지입니다.
핵심 요약
- 받은 편지함의 CFDI PDF는 장식용 출력물일 뿐 법적으로 유효한 문서가 아니며, XML을 버리고 PDF만 보관할 경우 건당 인보이스 금액의 5~10%에 해당하는 세무 감사 벌금이 부과됩니다.
- PPD 인보이스의 경우 결제일과 정산 금액은 UUID로만 연결된 별도의 Complemento de Pago 문서에 있으며, 대부분의 AP팀은 이를 추출하지 않아 인보이스가 결제 참조 없이 원장에 떠 있습니다.
- ImageToTable.ai는 XML, PDF, 스캔본에서 보완 필드를 포함한 CFDI 데이터를 추출하며, 공급업체가 사용하는 인보이스 소프트웨어와 관계없이 모든 공급업체에서 동일한 열 이름을 사용합니다.
CFDI 전자세금계산서란 무엇이며, 데이터 추출이 일반적인 경우와 다른 이유
CFDI(Comprobante Fiscal Digital por Internet)는 멕시코의 의무 전자 세금계산서 형식으로, 2014년부터 SAT(세무행정청)에 의해 시행되었습니다. 미국이나 유럽 공급업체의 PDF처럼 취급할 수 있는 문서가 아닙니다. 모든 CFDI는 3자 승인 모델을 거칩니다: 발행자가 XML을 생성하면, PAC(공인 인증 기관)이 이를 검증하고 전자 서명(이 과정을 팀브라도라고 함)하며, SAT는 실시간으로 사본을 수신합니다. PAC가 전자 서명을 적용한 후에야 세금계산서가 법적으로 유효해집니다.
현재 버전인 CFDI 4.0은 2023년 4월 1일부터 모든 납세자에게 의무화되었으며, 수취인 검증이 강화되었습니다: 수취인의 RFC, 법인명, 세무 주소 우편번호가 SAT의 납세자 등록부와 정확히 일치해야 합니다. 버전 3.3 세금계산서는 더 이상 SAT 시스템에서 수락되지 않습니다. 멕시코 공급업체의 세금계산서를 처리하는 모든 기업은 인지 여부와 관계없이 모든 문서가 버전 4.0입니다.
CFDI에는 일반 세금계산서에는 없는 필드가 포함됩니다: Uso CFDI(수취인이 세무 목적으로 세금계산서를 어떻게 사용할지 선언하는 코드 — G01: 취득, G03: 비용, P01: 미지급), Régimen Fiscal(발행자의 세무 체계 코드), 그리고 UUID(Folio Fiscal)는 SAT가 할당한 36자 고유 식별자로, 멕시코 세무 인프라의 모든 시스템에서 해당 거래의 영구 참조 번호가 됩니다. 지급 조정, DIOT(제3자 거래 신고) 제출, 또는 감사 준비를 하는 경우 UUID가 모든 것을 연결하는 필드입니다.
그리고 XML이 있습니다. 멕시코 세법에 따라 XML 파일이 법적으로 유효한 문서이며, PDF 표현은 부차적이고 정보 제공용입니다. 발행자와 수취인 모두 CFF 제30조에 따라 XML을 최소 5년간 보관해야 합니다. CFDI를 적절히 보관하지 않으면 건당 세금계산서 금액의 5~10%에 해당하는 벌금이 부과됩니다. PDF를 "세금계산서"로 취급하고 XML을 폐기하는 기업은 SAT가 기록을 요청할 때까지 알지 못할 감사 위험을 안고 있습니다.
대부분의 멕시코 관련 AP 팀은 세금계산서 데이터가 부족한 것이 아닙니다. 회계 시스템이 수용할 수 있는 형식으로 데이터를 확보하지 못한 것입니다. XML은 구조화되어 있지만 계층적이고, PDF는 읽을 수 있지만 비정형적입니다. 데이터는 동일하지만, 이를 Excel 열로 변환하는 과정에서 문제가 발생합니다.
실제로 받게 될 세 가지 CFDI 형식 — 각 형식이 데이터 추출에 미치는 영향
실제로 멕시코 공급업체 송장은 AP팀에 세 가지 형태 중 하나로 도착합니다. 각 형식은 동일한 CFDI 데이터를 포함하지만, 근본적으로 다른 추출 접근 방식이 필요합니다.
| 형식 | 도착 방식 | 추출 과제 | 법적 효력 |
|---|---|---|---|
| XML | 이메일 첨부, SAT 포털 다운로드, PAC 다운로드 | 계층적 스키마(Anexo 20); 중첩된 complementos는 XPath 또는 스키마 인식 파싱 필요 | 법적 확정본 |
| 이메일 첨부, 공급업체 포털 | 시각적 레이아웃만 존재; 구조화된 데이터 없음; QR 코드에 UUID 포함되나 외부 조회 필요 | XML의 정보 제공용 표현 | |
| 스캔본 / 사진 | 오프라인 공급업체, 현장 영수증, WhatsApp | 디지털 데이터 없음; 인쇄된 CFDI 레이아웃의 시각적 인식에 전적으로 의존 | 없음 — XML 기록과 매칭 필수 |
XML 추출은 간단해 보입니다 — 게시된 스키마(SAT의 Anexo 20 버전 4.0, XSD로 정의)가 있는 구조화된 형식이기 때문입니다. 하지만 CFDI XML은 깊은 계층 구조를 가집니다: 루트 노드에는 발행자와 수취자 데이터가 포함되고, 각 라인 항목(Concepto)은 수량, 단위 코드, 제품/서비스 코드(SAT의 c_ClaveProdServ 카탈로그 기준), 단가, 세금 내역을 중첩합니다. 원본 송장이 PPD(부분 또는 연기 지급) 방식으로 발행된 경우 필수인 Complemento de Pago는 원본 CFDI의 UUID를 참조하고 어떤 지급이 어떤 송장을 언제, 얼마만큼 정산했는지 상세히 기술하는 별도의 XML 문서입니다. 이를 플랫한 Excel 행으로 추출하려면 트리 구조를 탐색하고 문서 간 참조를 해결해야 합니다.
PDF 추출은 가장 일반적인 실제 시나리오입니다. 멕시코 공급업체는 보통 원시 XML이 아닌 PDF 표현을 이메일로 보내기 때문입니다. PDF는 사람이 읽을 수 있는 렌더링입니다 — 동일한 데이터지만 구조화된 태그는 없습니다. 모든 필드는 시각적 위치나 텍스트의 의미적 이해를 통해 식별되어야 합니다. 이것이 템플릿 기반 OCR 도구가 실패하는 지점입니다: Grupo Bimbo의 CFDI PDF는 CONTPAQi Factura Electrónica를 사용하는 소규모 서비스 제공업체의 것과 전혀 다르게 보입니다.
스캔 또는 촬영된 CFDIs는 이미지 품질 저하(기울어짐, 그림자, 저해상도 폰 카메라)를 유발합니다. 이는 인보이스를 출력해 배송 기사에게 전달하는 소규모 공급업체나, WhatsApp으로 영수증을 촬영하는 현장 직원으로부터 발생합니다. 데이터는 여전히 CFDI 데이터(UUID, RFC, IVA 내역)이지만, 추출하려면 XML 파서가 절대 인식하지 못하는 픽셀을 다뤄야 합니다.
형식 다양성을 이해하는 것이 첫 단계입니다. 두 번째 단계는 회계에 정확히 필요한 필드와 해당 SAT 카탈로그 코드 매핑을 아는 것입니다.
Excel 출력에 필요한 CFDI 필드 — 각각이 중요한 이유
CFDI의 모든 필드가 Excel에 포함되어야 하는 것은 아닙니다. 완전한 Anexo 20 호환 XML에는 60개 이상의 데이터 포인트가 포함될 수 있습니다. AP 조정, 회계 입력, 세무 신고를 위해 다음 필드가 컬럼 공간을 차지할 가치가 있습니다:
| 필드 | 스페인어 명칭 | 설명 | 필요한 이유 |
|---|---|---|---|
| UUID | Folio Fiscal | SAT에서 timbrado 시 할당하는 36자리 고유 식별자 | 감사, DIOT 신고, 지불 조정 및 취소 추적의 최종 참조 |
| 발행자 RFC | RFC Emisor | 공급업체의 13자리 세금 ID (법인의 경우 문자 4자리 + 숫자 6자리 + 영숫자 3자리) | ERP에서 공급업체 식별; 구매 시 VAT에 대한 DIOT 보고에 필요 |
| 수취인 RFC | RFC Receptor | SAT에 등록된 귀사 세금 ID | CFDI 4.0에서는 SAT 등록과 정확히 일치해야 함; 불일치 시 CFDI 공제 무효 |
| 발행일 | Fecha | 발행 및 PAC 인증의 ISO 8601 타임스탬프 | IVA가 속한 과세 기간 결정; 회계에서 발생 시점 결정 |
| CFDI 사용 코드 | Uso CFDI | SAT 카탈로그 코드: G01(취득), G02(반품), G03(비용), P01(지불 보류) 등 | 공제 가능성 범주 결정; SAT는 사용 코드를 수취인의 세금 체계와 교차 확인 |
| 지불 방법 | Método de Pago | PUE(일시불) 또는 PPD(분할 또는 연기 지불) | PPD는 Complemento de Pago 필요성을 유발; 별도 지불 XML과 일치 여부 결정 |
| 지불 형태 | Forma de Pago | SAT 카탈로그 01–99: 01(현금), 02(수표), 03(계좌이체), 04(신용카드) 등 | 은행 조정 및 SAT 지불 추적에 필요 |
| 과세 체계 | Régimen Fiscal | 발행자의 과세 체계에 대한 SAT 코드 (601: 일반 법인, 612: 사업 활동을 하는 개인, 626: 간이 신탁 체계 등) | 원천징수 의무 결정; SAT는 체계를 활동 유형과 대조 검증 |
| 소계 | SubTotal | IVA 적용 전 과세 금액 | 회계 입력 기준 금액이며, 라인 항목 합계와 일치해야 함 |
| IVA / 세금 | Impuestos / IVA | VAT 금액(일반 16%)이며, 세율별(16%, 접경지역 8%, 수출/기본재 0%)로 구분 | 월별 IVA 신고 시 공제 가능한 매입 VAT, 세율별로 별도 관리 |
| 합계 | Total | 소계 + IVA + 원천징수액(ISR, IVA retenido) | 지급 금액이며, AP 연령 분석에 반영되는 금액 |
| 제품/서비스 코드 | ClaveProdServ | 각 라인 항목을 분류하는 SAT 카탈로그 코드(예: 회계 서비스의 경우 84111506) | DIOT 상세 보고에 필수, SAT는 제품 코드를 신고된 활동과 대조 |
이 12개 필드는 멕시코 인보이스 관련 모든 AP 워크플로우의 최소 필수 데이터 세트를 구성합니다. UUID가 없으면 SAT 포털에서 인보이스를 확인하거나 취소 상태를 추적할 수 없습니다. Uso CFDI가 없으면 비용을 잘못된 공제 범주에 기록할 수 있습니다. Régimen Fiscal이 없으면 공급업체의 IVA가 원천징수 대상인지(IVA 금액의 일반적으로 6%에 해당하는 retención de IVA, 특정 체제의 공급업체에 적용) 확인할 수 없습니다.
헤더 수준 필드 외에도 라인 항목에는 수량, 측정 단위(SAT의 c_ClaveUnidad 카탈로그 기준), 설명, 단가, 항목별 세금 내역 등 자체 구조화된 데이터가 포함됩니다. 3자 매칭(PO → 입고 → CFDI)을 수행하는 기업의 경우, 라인 항목 추출이 CFDI를 구매 주문서와 라인별로 비교 가능하게 만듭니다.
필드는 명확히 정의되어 있습니다. 과제는 이를 문서에서 추출하여 스프레드시트에 넣는 것이며, 이 과정은 시작 형식에 크게 좌우됩니다.
CFDI 데이터를 Excel로 추출하는 방법: 단계별 워크플로우
Excel로 CFDI 데이터를 가져오는 방법은 네 가지가 있으며, 실제 AP 업무에서 흔한 순서대로 나열했습니다. 어떤 방법을 선택할지는 XML, PDF, 이미지 중 어떤 파일을 가지고 있는지, 그리고 처리해야 할 인보이스가 한 건인지 백 건인지에 따라 달라집니다.
방법 1: XML 파싱 (원본 CFDI 파일이 있는 경우)
공급업체가 XML을 제공하거나 SAT 포털에서 다운로드한 경우, 프로그래밍 방식으로 구조화된 데이터를 추출할 수 있습니다. Python의 lxml이나 전용 CFDI 라이브러리(cfdipython, PyCFDI) 같은 도구를 사용하면 Anexo 20 스키마를 탐색하고 XPath로 필드를 가져올 수 있습니다. 단, 코드를 작성할 수 있어야 하고, 네임스페이스가 적용된 XML(모든 CFDI 요소는 SAT 정의 네임스페이스에 있음)을 처리할 수 있어야 하며, 카탈로그 업데이트에 맞춰 파싱 로직을 유지 관리해야 합니다. SAT는 정기적으로 카탈로그를 업데이트합니다. c_RegimenFiscal과 c_UsoCFDI 코드가 변경되므로 하드코딩된 매핑은 곧 구식이 됩니다.
Complemento de Pago 조정(지급을 원본 인보이스와 매칭)의 경우, UUID 참조로만 연결된 두 개의 XML 문서를 다루기 때문에 XML 파싱이 훨씬 어려워집니다. 단일 PPD 인보이스는 여러 달에 걸쳐 여러 번의 지급으로 결제될 수 있으며, 각 지급마다 자체 Complemento de Pago가 생성됩니다. 조정 로직(어떤 지급이 어떤 인보이스를 충당했는지, 각 시점의 미결제 잔액은 얼마였는지)은 단순한 필드 추출이 아니라 관련 문서 간의 재무 계산입니다.
방법 2: 템플릿 기반 도구를 사용한 PDF 추출
샘플 문서의 각 필드 주위에 경계 상자를 그리고 해당 좌표를 향후 인보이스에 재적용하는 템플릿 기반 OCR 도구는 CFDI PDF에서 작동하지 않습니다. 그 이유는 간단합니다. 공급업체마다 다른 인보이스 소프트웨어를 사용하기 때문입니다. CONTPAQi Factura Electrónica로 생성된 CFDI는 Aspel FACTURAe, Alegra 또는 맞춤형 ERP 통합으로 생성된 CFDI와 다르게 렌더링됩니다. UUID, RFC, IVA 내역은 위치, 글꼴 크기, 주변 텍스트가 모두 다릅니다. Walmart 부가 규격을 준수하는 CFDI용으로 구축된 템플릿은 소규모 공급업체의 CFDI에서 실패하며 그 반대도 마찬가지입니다.
이는 데이터 구조는 표준화되어 있지만(Anexo 20) 시각적 레이아웃은 그렇지 않은 문서 유형에 좌표 기반 추출을 적용할 때의 근본적인 한계입니다.
경로 3: AI 기반 의미 추출 (모든 형식에서 작동)
의미 추출(ImageToTable.ai가 사용하는 방식)은 좌표를 보지 않습니다. 사람이 문서를 읽는 방식, 즉 각 텍스트 조각이 페이지의 어디에 있는지가 아니라 무엇을 의미하는지 이해하여 문서를 읽습니다. "UUID", "RFC Emisor", "SubTotal", "IVA 16%" 등 원하는 필드를 도구에 알려주기만 하면, AI가 레이아웃과 관계없이 문서 어디에서든 해당 개념을 인식하여 각 값을 찾아냅니다.
이 메커니즘을 사용자 정의 열 추출이라고 합니다. 출력 스프레드시트에 원하는 열 이름을 입력하면, AI가 시각적 언어 이해를 사용하여 각 페이지에서 해당 데이터를 찾습니다. 사각형을 그리거나 템플릿을 만들 필요가 없으며, 필드가 페이지의 어디에 나타나는지 알 필요도 없습니다. 동일한 열 이름 세트가 다른 공급업체의 CFDI PDF, 스캔본, XML 파일에서도 작동합니다. AI가 "좌표 (430, 210)에 있는 상자의 숫자"가 아니라 "IVA 16%는 16% 세율의 세금 금액"임을 인식하기 때문입니다.
단계별 워크플로는 다음과 같습니다:
CFDI 파일 업로드
XML, PDF 또는 이미지 파일을 드래그 앤 드롭하세요. 단일 송장 또는 일괄 처리 모두 가능합니다. 이 도구는 세 가지 형식을 모두 처리하므로 유형별로 미리 분류할 필요가 없습니다. 일괄 처리의 경우 모든 공급업체 CFDI를 한 번에 업로드하면 AI가 각 파일을 독립적으로 처리하고 결과를 하나의 Excel로 병합합니다.
열 이름 정의
필요한 필드를 열 이름으로 입력하세요. 예: "UUID", "RFC Emisor", "RFC Receptor", "Fecha", "Uso CFDI", "Método de Pago", "Régimen Fiscal", "SubTotal", "IVA", "Total". 입력한 열 이름이 출력 스프레드시트의 정확한 헤더가 됩니다. 품목별 추출의 경우 "Cantidad", "ClaveProdServ", "Descripción", "Precio Unitario", "Importe"를 지정하세요.
계산 열 및 추론 열 추가 (선택 사항)
16% 세율과 별도로 8%(국경 지역 세율)의 IVA가 필요하신가요? 계산 열을 정의하세요. AI가 추출 중에 계산을 수행하고 결과를 직접 출력합니다. 공급업체의 Régimen Fiscal을 기준으로 각 CFDI를 범주별로 분류하길 원하시나요? 추론 열을 사용하세요. "Tipo Proveedor (옵션: Gran Contribuyente / PYME / Persona Física)"를 지정하면 AI가 CFDI 데이터를 읽고 올바른 범주를 할당합니다. 문서 자체에는 "Tipo Proveedor" 필드가 없더라도 가능합니다. 이를 통해 추출과 분류를 한 번에 완료할 수 있습니다.
Excel 파일 다운로드
XLSX, CSV 또는 JSON으로 내보냅니다. 날짜는 일관된 형식으로 정규화되고, 금액은 숫자(통화 기호 문자열 아님)로 표시되며, UUID는 Excel의 자동 서식으로 인한 문자 손실 없이 보존됩니다. 출력 데이터는 CONTPAQi Contabilidad, Aspel COI, Alegra, SAP 또는 구조화된 데이터를 허용하는 모든 ERP로 바로 가져올 수 있습니다.
파일은 안전하게 처리되며 저장되지 않습니다.
CFDI 송장을 대량 처리하는 팀에게 일괄 처리는 경제성을 완전히 바꿉니다. 20개든 200개든 모든 수신 CFDI를 한 번에 업로드하면 도구가 병렬로 처리하여, 송장당 한 행씩 모든 추출 데이터를 단일 엑셀 파일로 병합합니다. 수동 입력(송장당 약 3분)과 AI 추출(페이지당 5~10초) 간의 18배 속도 차이는 볼륨이 커질수록 더 커집니다. 수동 키 입력으로 5시간이 걸릴 100개의 CFDI가 10분 미만에 완료됩니다. 월별 AP 마감 주기에서 이 차이는 제때 조정을 마치는 것과 다음 기간으로 넘어가는 것의 차이입니다.
헤더 수준 필드는 기본입니다. 그러나 특히 PPD로 발행된 상당수의 CFDI 송장에는 대부분의 추출 가이드가 완전히 무시하는 복잡성 계층이 있습니다.
보충자료(Complementos) 처리: 지급, 급여, 해외 거래
보충자료(Complemento)는 CFDI에 포함되거나 연결된 구조화된 XML 부가 문서입니다. 기본 CFDI 스키마로는 다루지 않는 특정 거래 유형에 필요한 데이터를 포함합니다. AP 팀에게 특히 중요한 세 가지 보충자료는 다음과 같습니다:
지급 보충자료(Complemento de Pago)
CFDI가 PPD(분할 또는 연기 지급) 지급 방식으로 발행된 경우, 송장 자체는 지급이 나중에 이루어질 것임을 명시합니다. 지급 보충자료(Complemento de Pago)는 실제 지급 이벤트를 문서화하는 별도의 CFDI(TipoDeComprobante = "P")입니다. 원본 송장의 UUID를 참조하며 지급일, 지급액, 다른 통화로 지급된 경우 환율, 그리고 이 지급으로 정산된 원본 송장(여러 개 가능)을 명시합니다.
Excel로 추출할 때 이는 일대다 관계를 생성합니다: 하나의 PPD 송장 → 시간 경과에 따른 여러 지급 보충자료. 수동으로 조정하려면 각 지급 보충자료 XML을 열고, 참조하는 UUID를 확인한 후, 추적 스프레드시트를 업데이트해야 합니다. 추출 도구는 교차 문서 참조 해결을 처리해야 합니다. 즉, 보충자료에서 지급일과 금액을 읽고 동일한 출력 행의 원본 송장 데이터와 연결해야 합니다.
급여 보충자료(Complemento de Nómina)
급여 CFDI에는 직원 수준의 세부 정보가 포함됩니다: 근로자의 RFC, CURP(고유 인구 등록 코드), 사회보장번호(NSS), 직무 위험 범주, 근무 일수, 그리고 수당(급여, 상여금) 및 공제(ISR, IMSS, INFONAVIT)의 상세 내역입니다. 멕시코 직원이 있는 회사는 아웃소싱 또는 PEO(전문 고용주 조직) 관계의 일부로 이를 수령합니다. 급여 보충자료 데이터를 Excel로 추출하면 회계 입력 및 인건비 분석을 위해 기간별 직원 수준 비용을 통합할 수 있습니다.
Complemento Carta Porte (운송 보완)
2024년 1월부터 Carta Porte 보완 버전 2.0에서는 이전에 선택 사항이었던 필드(세관 신고 코드, 수출업체 세부 정보, 출발지/목적지 데이터)가 필수로 변경되었습니다. 화물 관련 CFDIs를 수령하는 물류 및 공급망 팀은 표준 인보이스 데이터와 함께 차량 번호판, 운송 유형, 경로 출발지 및 목적지와 같은 운송 관련 필드를 추출해야 합니다. 이러한 필드는 SAT 검증 및 통관에 필요합니다.
저희가 가장 흔히 보는 CFDI 추출 누락은 보완 데이터가 남겨지는 경우입니다. AP 팀은 헤더 필드(UUID, RFC, 총액)를 추출하지만 결제 보완 데이터는 절대 가져오지 않아, PPD 인보이스가 결제일이나 정산 참조 없이 조정 스프레드시트에 떠다니게 됩니다. 데이터는 보완 XML에 존재합니다. 단지 Excel로 옮겨지지 않았을 뿐입니다.
국경 간 CFDI: 구매자가 멕시코에 없는 경우
멕시코 공급업체로부터 구매하는 외국 기업은 추가적인 복잡성에 직면합니다. CFDI 4.0에 따라 수취인의 RFC 및 세무 주소 우편번호는 SAT의 납세자 등록부와 일치해야 합니다. 멕시코 세무 등록이 없는 미국 또는 유럽 구매자는 RFC를 제공할 수 없지만, CFDI 시스템에서는 여전히 RFC가 필요합니다.
실제로는 일반 외국인 RFC(법인의 경우 XEXX010101000, 개인의 경우 XAXX010101000)를 사용하고 별도 필드에 수취인의 목적지 국가 세금 ID를 지정하여 해결합니다. CFDI는 Uso CFDI 코드 S01(Sin efectos fiscales — 세금 효과 없음)로 발행되며, 이는 인보이스가 상업적 기록 보관을 위해 존재하지만 구매자에게 IVA 공제나 공제 가능성을 생성하지 않음을 의미합니다.
외국 AP 팀의 경우 추출 목표가 변경됩니다. SAT 제출용 데이터가 아닌 내부 회계, 결제 승인 및 비용 추적을 위한 데이터를 추출하는 것입니다. 중요한 필드는 공급업체 이름, 인보이스 금액, 라인 항목, 결제 방법과 같은 상업적 필드이며, 세금 관련 코드가 아닙니다. 잘 구성된 추출은 여전히 UUID를 캡처해야 합니다. SAT에 제출하지 않더라도 UUID는 이 인보이스가 존재하고 검증되었음을 definitively 증명하는 유일한 전역 고유 식별자입니다.
수출 작업은 또 다른 차원을 추가합니다. Exportacion 필드가 "01"(definitiva) 또는 "02"(temporal)로 설정된 CFDI에는 세관 데이터(통관 번호(pedimento), 수출업체 RFC, INCOTERM)가 포함된 Complemento de Comercio Exterior가 포함됩니다. 화물 인보이스를 세관 신고와 조정하는 국경 간 물류 팀의 경우, 추출은 단일 출력에서 CFDI 데이터와 대외 무역 보완 필드를 모두 캡처해야 합니다.
추출 방식 비교: 수동 입력, XML 파싱, 템플릿, AI
팀마다 데이터 양, 기술 리소스, 수신 형식에 따라 다른 방식을 선택합니다. CFDI 데이터 추출에 중요한 기준으로 주요 옵션을 비교하면 다음과 같습니다.
| 방식 | XML 처리 | PDF 처리 | 스캔본 처리 | Complementos 처리 | 속도 (100건 기준) |
|---|---|---|---|---|---|
| 수동 입력 | ✓ (값 읽기) | ✓ (값 읽기) | ✓ (값 읽기) | ✓ (수동 대조) | 약 5시간 |
| XML 파싱 (Python) | ✓ (기본 지원) | ✗ | ✗ | 부분 지원 (별도 로직 필요) | 약 수초 (XML만 해당) |
| 템플릿 기반 OCR | ✗ | 부분 지원 (템플릿당 레이아웃 1개) | ✗ | ✗ | 상이 (공급업체별 템플릿 설정 필요) |
| AI 의미 기반 추출 | ✓ | ✓ | ✓ | ✓ (complemento 필드 인식) | 약 10분 |
XML 파싱은 XML만 수신하고 카탈로그 업데이트에 맞춰 파싱 코드를 유지보수할 내부 개발 역량이 있는 팀에 적합합니다. 그러나 멕시코의 일반적인 AP 팀은 XML을 보내는 공급업체, PDF를 보내는 공급업체, 그리고 소수(주로 소규모 업체나 현장 직원)는 사진을 보내는 등 다양한 형식을 접합니다. XML 파싱만 사용하면 XML이 아닌 모든 CFDI의 데이터를 수동으로 입력하거나, 해당 형식을 위한 별도 추출 경로를 유지해야 합니다.
템플릿 기반 OCR은 공급업체 수에 비례하여 유지보수 부담이 증가합니다. CFDI 레이아웃이 다른 새 공급업체가 추가될 때마다 새 템플릿이 필요합니다. CFDI 4.0은 데이터 필드를 표준화했지만 시각적 표현 방식은 표준화하지 않았으며, 템플릿 관리 비용은 공급업체 수에 따라 선형적으로 증가합니다.
AI 기반 의미 추출은 데이터의 위치가 아닌 의미를 분석하므로 형식 문제를 해결합니다. UUID, RFC Emisor, IVA, Total 등 동일한 열 정의가 모든 공급업체의 모든 CFDI 형식에서 작동합니다. 이는 월말 마감 시 AP팀이 각기 다른 송장 시스템을 사용하는 50~200개 공급업체의 인바운드 송장을 회계 기간 마감 전에 처리해야 하는 CFDI 일괄 조정에 특히 유용합니다.
FAQ: CFDI 데이터 엑셀 추출
PDF만 있고 XML 없이 CFDI 데이터를 추출할 수 있나요?
네. AI 기반 추출은 사람이 하는 것과 같은 방식으로 PDF의 시각적 콘텐츠를 읽습니다. 즉, 텍스트를 인식하고 그 의미를 이해합니다. XML 구조가 필요하지 않습니다. 추출된 필드(UUID, RFC, IVA 등)는 XML 구문 분석에서 얻는 것과 동일합니다. 실제적인 한계는 PDF에서 디지털 서명(sello)을 독립적으로 확인할 수 없다는 점입니다. 암호화 인장은 XML에만 포함되어 있지만, AP 조정 및 회계 입력을 위한 상업 데이터 추출은 충분합니다.
CFDI가 PPD(Pago en Parcialidades o Diferido)를 사용하면 어떻게 되나요?
PPD CFDI는 지불이 나중에 이루어지며, 별도의 Complemento de Pago로 문서화됩니다. 원본 청구서의 Método de Pago 필드는 "PPD"로 표시되고 Total은 전체 청구서 금액입니다. 조정하려면 원본 청구서의 UUID를 참조하는 지불 보완서를 처리하고 지불 날짜, 지불 금액 및 통화를 추출해야 합니다. 지불은 여러 원본 청구서를 결제할 수 있으며, 하나의 원본 청구서는 여러 지불로 결제될 수 있습니다. 이 조정은 UUID로 연결된 문서 간의 데이터를 페어링해야 합니다. AI 추출은 원본 청구서 데이터와 함께 보완서 필드를 읽고 동일한 행에 둘 다 출력할 수 있습니다.
추출 시 다른 세율(16%, 8%, 0%)의 IVA를 처리할 수 있나요?
네. CFDI는 여러 품목에 대해 다양한 IVA 세율을 적용할 수 있습니다. 대부분의 상품 및 서비스에는 16%, 국경 지역(franja fronteriza) 거래에는 8%, 수출 및 기본 식품에는 0%가 적용됩니다. CFDI의 세금 내역(Impuestos)은 각 세율을 해당 과세 기준 및 세액과 함께 분리합니다. 각 세율에 대한 열("IVA 16%", "IVA 8%", "IVA 0%")을 정의하면 추출 도구가 세금 내역을 읽고 각 열에 올바른 금액을 채웁니다. 계산된 열을 사용하여 검증을 자동화할 수도 있습니다. "IVA 차이(Total - SubTotal + IVA 16% + IVA 8%)"를 정의하여 추출 중 불일치를 표시할 수 있습니다.
저희 회사는 외국 기업으로 SAT에 등록되지 않았습니다. 그래도 CFDI 데이터를 Excel로 추출할 수 있나요?
네. 추출 과정은 회사에 RFC가 있는지 여부와 관계없이 동일합니다. 도구는 공급업체 이름, RFC Emisor, UUID, 금액, 품목 등 표시된 데이터 필드를 읽고 구조화된 Excel을 출력합니다. 유일한 차이점은 CFDI에 일반 외국인 RFC(XEXX010101000 또는 XAXX010101000)와 Uso CFDI S01(세금 효력 없음)이 포함된다는 점입니다. 내부 회계에는 영향을 미치지 않습니다. 상업 데이터는 동일합니다. IVA 공제나 SAT 신고에 CFDI를 사용하지 않을 뿐입니다.
도구가 품목을 추출할 수 있나요, 아니면 헤더 수준 필드만 추출할 수 있나요?
둘 다 가능합니다. 품목 필드(Cantidad, ClaveProdServ, Descripción, Precio Unitario, Importe)를 지정하면 도구가 CFDI에서 모든 품목을 추출하고 Excel에서 품목당 하나의 행을 출력합니다. 각 행에는 헤더 필드(UUID, RFC Emisor, Fecha)도 포함되어 모든 라인이 해당 모 청구서로 추적 가능합니다. 3방향 매칭(구매 주문 vs. 입고 vs. CFDI)의 경우 구매 주문과 유사한 라인 수준 세부 정보를 제공합니다.
CFDI 취소 관련 — 추출한 인보이스가 여전히 유효한지 어떻게 알 수 있나요?
CFDI 취소는 수신자 동의 모델을 사용합니다: 발행자가 사유 코드(Motivo de Cancelacion)와 함께 취소 요청을 제출하면, 수신자는 72시간 이내에 Buzón Tributario(SAT의 전자 세금 우편함)를 통해 승인 또는 거부할 수 있습니다. 수신자가 아무 조치도 취하지 않으면 72시간 후 자동으로 취소가 승인됩니다. MXN 1,000 미만의 CFDI는 수신자 승인 없이 취소할 수 있습니다. 추출 도구는 취소 상태를 확인하지 않습니다 — 이는 UUID로 SAT 포털을 조회해야 합니다 — 하지만 Excel에 UUID가 있으면 필요할 때 일괄 검증이 가능합니다. 2026년부터 새로운 세제 개혁에 따라, 수신자가 승인할 경우 취소 기간이 연간 ISR 신고 제출 월까지 연장되었습니다.
DIOT(제3자 거래 정보 신고)에 사용할 수 있나요?
네. DIOT는 SAT에 제출하는 월간 제3자 거래 보고서로, 다음 달 17일까지 제출해야 합니다. 필요 항목: 공급자 RFC, 인보이스 UUID, 인보이스 날짜, IVA 금액, IVA 세율. 이는 모두 추출 도구가 캡처하는 표준 CFDI 필드입니다. 모든 CFDI를 하나의 Excel 파일로 추출하면, 각 인보이스에서 데이터를 다시 입력하는 대신 열을 SAT 제출 템플릿에 맞게 서식 지정하여 DIOT 보고서를 생성할 수 있습니다.
데이터를 Excel로 추출했는데도 XML을 보관해야 하나요?
네. CFF 제30조에 따라 발행자와 수신자 모두 CFDI XML 파일을 최소 5년간 보관해야 합니다. 추출된 Excel은 작업 데이터일 뿐이며 법적 보관 의무를 대체하지 않습니다. XML은 SAT가 감사 중에 요청하는 파일입니다. Excel은 개별 XML 파일을 열지 않고도 검색, 필터링, 조정이 가능하여 감사 준비를 더 빠르게 만듭니다.
추출이 문제의 절반에 불과한 이유
CFDI 처리에서 흔히 언급되는 병목 현상은 데이터 입력입니다. 하지만 데이터 입력은 눈에 보이는 병목일 뿐입니다. 한 달 동안 더 많은 시간을 소모하는 숨겨진 병목은 그 후에 이루어지는 조정 작업입니다. PPD 결제를 원본 송장과 매칭하고, CFDI의 IVA가 회계 시스템의 금액과 일치하는지 확인하며, 마지막 확인 이후 취소된 CFDI를 식별하고, 공급업체 마스터의 모든 RFC가 SAT에 등록된 정보와 일치하는지 확인하는 작업입니다.
추출은 문서에서 데이터를 꺼내 작업 가능한 구조로 만듭니다. 이렇게 구조화된 데이터가 DIOT 준비, CONTPAQi 가져오기, 공급업체 조정, 월말 발생액 등 다운스트림 프로세스에 추출과 실행 사이에 수동 재입력 단계 없이 직접 연결될 때 그 가치는 배가됩니다.
CFDI는 표준 송장보다 더 많은 데이터를 포함하며 상업적 기록 보관을 넘어 규정 준수 목적을 수행합니다. 제대로 된 추출은 CFDI를 본질 그대로, 즉 엄격한 구조를 가진 세무 문서로 취급합니다. 이 문서는 정부 기관에 의해 실시간으로 검증되며, 오류 시 법적 결과를 초래할 수 있는 필드를 포함합니다. 데이터를 엑셀로 가져오는 것은 첫 단계일 뿐입니다. 이를 활용하여 AP, 세무 신고 및 감사 추적의 일관성을 유지하는 것이 지속적인 결과입니다.