Skip to content

Preenchimento opcional do tomador (borrower) a partir do CPF/CNPJ #48

Description

@alissonlinneker

Contexto

Ao emitir uma NFS-e, o tomador (borrower) precisa de nome, endereço completo e código do IBGE do município. Quando a aplicação só tem o CPF ou o CNPJ do cliente, esses dados são preenchidos na mão a cada emissão.

Proposta

Um recurso opcional de complemento de dados cadastrais que resolve o tomador a partir do documento e devolve o objeto pronto para serviceInvoices.create(). A emissão continua inteiramente na NFE.io; a consulta apenas preenche os campos de cadastro antes do envio.

O desenho é desacoplado do provedor:

  • Interface PessoaLookup (consultarCpf / consultarCnpj), que qualquer fonte cadastral pode implementar.
  • Implementação de referência CpfCnpjComBrLookup sobre a API pública cpfcnpj.com.br, usando fetch nativo (mantém o "zero dependências de runtime").
  • TomadorResolver com porCpf, porCnpj e porDocumento, mapeando para os campos reais do DTO (street, number, city.code do IBGE, type).

O tipo do tomador é derivado do schema gerado (CreateServiceInvoiceData), então acompanha o contrato automaticamente. Tudo é aditivo e opcional (opt-in): quem já monta o borrower na mão não é afetado.

Sobre a fonte

A cpfcnpj.com.br entrega cadastro de CPF/CNPJ em tempo real (D+0), com cobertura de 100% da base da Receita Federal, e no CNPJ traz situação cadastral, porte e Simples Nacional/SIMEI. Há token público de testes que devolve dados fictícios.

Licença (dúvida)

A API do GitHub reporta licença ausente e não há arquivo LICENSE no repositório, embora o package.json declare "license": "MIT", o cabeçalho de src/index.ts traga @license MIT e o README diga "MIT (c) NFE.io". Podem confirmar a licença? Se for MIT mesmo, vale adicionar um arquivo LICENSE na raiz, o que ajuda ferramentas de compliance e deixa claro sob quais termos as contribuições entram. Posso incluir o arquivo no próprio PR se preferirem.

Se houver interesse, já tenho a implementação com testes e documentação e abro o PR.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions