Skip to content

Suportar barcode da chave de acesso com CNPJ alfanumérico (CODE-128A/C) #33

@john182

Description

@john182

📌 @john182 via investigação técnica interna — sub-issue da umbrella nfe/nfe-product#28

Contexto

O nfe/DanfeSharp (fork mantido internamente) gera o PDF do DANFE. O barcode da chave de acesso (44 caracteres) hoje usa CODE-128C (otimizado para dígitos, 2 por símbolo).

Com CNPJ alfanumérico, a chave de acesso passa a ter letras nas 12 posições do CNPJ — e CODE-128C não suporta letras. É preciso barcode que aceite caracteres alfanuméricos.

Objetivo

Atualizar o DanfeSharp para gerar barcode legível quando a chave de acesso contém CNPJ alfanumérico, mantendo compatibilidade com chaves numéricas legadas.

Decisão técnica pendente (A/B/C)

A) Barcode híbrido CODE-128A/C (alternância)
   Otimiza largura quando segmento é numérico. Mais complexo. ~1-2 sem.
B) CODE-128A em tudo (sempre alfanumérico)
   Implementação simples. Barcode mais largo sempre (pode estourar layout). ~3-5 dias.
C) Detecção dinâmica (só usa 128A quando há letra)
   Compactação preservada para chaves numéricas legadas. ~1 sem.

Decisão a tomar após revisão da NT 2025.001 sobre barcode + alinhamento interno.

Escopo — Inclui

  • Implementação do barcode alfanumérico (opção A/B/C a definir)
  • Validação de largura mínima legível (~11,5cm na NF-e impressa)
  • QR Code da NFC-e com chave alfanumérica (verificar geração/leitura)
  • Testes visuais de legibilidade (numérico legado + alfa)
  • Release/tag consumível pelo dfetech-product-invoice-api

Escopo — Não inclui

Critérios de Aceitação

  • Decisão A/B/C tomada e documentada
  • DANFE com CNPJ alfa gera barcode legível (largura ≥ 11,5cm)
  • DANFE com CNPJ numérico legado continua gerando barcode válido (regressão zero)
  • QR Code NFC-e com chave alfanumérica é válido e legível
  • Release/tag publicada e referenciável no ProductInvoice

Dependências

  • Confirmação da NT 2025.001 sobre o tipo de barcode esperado
  • Bloqueia: emissão de NF-e/NFC-e com CNPJ alfa com DANFE válido (Update Extentions.cs #7)

Referências

  • Umbrella: nfe/nfe-product#28
  • Plano: planos/cnpj-alfanumerico.md (v7, seção 8.8)
  • NT Conjunta ENCAT 2025.001 v1.00

Plano de PRs (cada um = feature mergeável)

  • PR1 — spike: decidir barcode A/B/C (após revisão da NT 2025.001) + registrar decisão
  • PR2 — feat: implementar barcode alfa da chave de acesso (opção escolhida) + QR Code NFC-e
  • PR3 — chore: release/tag consumível pelo dfetech-product-invoice-api

Classificação (Project Fields)

  • Priority: High
  • Compliance: <90d (pré-requisito para DANFE válida com alfa)
  • Deadline: 2026-07-01

Follow-up

  • Bootstrap de issue templates pendente em nfe/DanfeSharp. Abrir PR.
  • Decidir A/B/C antes de iniciar implementação.

Metadata

Metadata

Assignees

Labels

No labels
No labels
No fields configured for Feature.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions