Skip to content

Feature/consulta cte#18

Merged
andrekutianski merged 3 commits intodevelopfrom
feature/consulta-cte
Feb 14, 2026
Merged

Feature/consulta cte#18
andrekutianski merged 3 commits intodevelopfrom
feature/consulta-cte

Conversation

@andrekutianski
Copy link
Member

Esta solicitação de pull introduz suporte para Faturas de Transporte (CT-e) no SDK Node.js da NFE.io, juntamente com uma refatoração da configuração da chave de API para serviços de dados/consultas. As alterações incluem nova documentação, scripts de exemplo e atualizações nos nomes das variáveis ​​de ambiente e opções de configuração. As atualizações mais significativas são a adição do recurso de API CT-e, a nova configuração dataApiKey substituindo addressApiKey e documentação abrangente com exemplos de uso.

Suporte para Faturas de Transporte (CT-e)

  • Adicionado TransportationInvoicesResource ao SDK, incluindo novos campos de cliente e cliente HTTP para operações CT-e (src/core/client.ts). [1] [2] [3]

  • ​​Introduzido um script de exemplo completo para operações CT-e (examples/transportation-invoices.js).

  • Documentação expandida em docs/API.md e README.md para abranger o uso do CT-e, pré-requisitos e referência da API. [1] [2] [3]

Refatoração da Configuração da Chave de API

  • Substituímos addressApiKey por dataApiKey na configuração do cliente, documentação e exemplos para todos os serviços de dados/consultas (Endereços, CT-e, CNPJ, CPF). [1] [2] [3] [4] [5] [6]
  • Nomes de variáveis ​​de ambiente atualizados de NFE_ADDRESS_API_KEY para NFE_DATA_API_KEY em toda a documentação e scripts de exemplo. [1] [2] [3]

Documentação e Exemplos

  • Adicionadas notas de uso, pré-requisitos e instruções de configuração do CT-e em README.md e docs/API.md. [1] [2]
  • Exemplos atualizados e esclarecidos para pesquisa de endereço para usar dataApiKey e novos nomes de variáveis ​​de ambiente (examples/address-lookup.js). [1] [2] [3]

Essas alterações fornecem uma abordagem unificada para configurar serviços de dados/consultas e introduzem suporte robusto para operações CT-e no SDK.

…ource

- Introduced `cteApiKey` in NfeConfig and RequiredNfeConfig interfaces for CT-e API key management.
- Added TransportationInvoicesResource for handling CT-e operations, including enabling/disabling automatic searches, retrieving settings, and managing events.
- Implemented comprehensive unit tests for TransportationInvoicesResource covering all functionalities and edge cases.
- Updated NfeClient to support multi-API key configuration, including fallback mechanisms for CT-e API key.
- Regenerated OpenAPI types and updated generated files with new timestamps.
Consolida as chaves de API separadas para serviços de consulta
(addressApiKey e cteApiKey) em uma única propriedade dataApiKey,
simplificando a configuração do SDK e refletindo a arquitetura
real da API NFE.io (duas categorias: fiscal e consulta).

Motivação:
- A API NFE.io utiliza apenas duas categorias de chave: uma para
  operações fiscais (NFS-e, Companies, etc.) e outra para todos
  os serviços de consulta (Endereços, CT-e, CNPJ, CPF)
- Ter chaves separadas (addressApiKey, cteApiKey) adicionava
  complexidade desnecessária sem benefício real
- A unificação prepara o SDK para futuros serviços de consulta
  que usarão a mesma chave

Alterações em tipos (src/core/types.ts):
- NfeConfig: remove addressApiKey e cteApiKey, adiciona dataApiKey
- RequiredNfeConfig: idem, mantendo tipagem string | undefined

Alterações no client (src/core/client.ts):
- Remove resolveAddressApiKey() e resolveCteApiKey()
- Adiciona resolveDataApiKey() com cadeia de fallback:
  config.dataApiKey → config.apiKey → NFE_DATA_API_KEY → NFE_API_KEY
- getAddressHttpClient() e getCteHttpClient() usam resolveDataApiKey()
- validateAndNormalizeConfig() normaliza dataApiKey ao invés de duas
- updateConfig() preserva cache de dataApiKey ao invés de duas
- Mensagens de erro atualizadas para referenciar dataApiKey
- JSDoc atualizado nos getters addresses e transportationInvoices

Alterações em resources:
- addresses.ts: JSDoc atualizado para referenciar dataApiKey
- transportation-invoices.ts: JSDoc atualizado para referenciar dataApiKey

Alterações em testes:
- tests/unit/client-multikey.test.ts: reescrito (38 testes)
  - Testa cadeia de fallback para Addresses e CT-e via dataApiKey
  - Testa que ambos services resolvem a mesma chave
  - Testa uso isolado de dataApiKey sem apiKey
  - Testa que NFE_ADDRESS_API_KEY e NFE_CTE_API_KEY não são mais
    reconhecidas (breaking change documentada)
- tests/integration/addresses.integration.test.ts: atualizado

Alterações em documentação:
- README.md: config examples, tabela env vars (2 vars ao invés de 3),
  notas sobre Address API e CT-e
- docs/API.md: NfeConfig type, nota do recurso CT-e

Alterações em exemplos:
- examples/setup.js: template .env.test usa NFE_DATA_API_KEY
- examples/address-lookup.js: config e env vars atualizados
- examples/transportation-invoices.js: config e env vars atualizados

Arquivos gerados (src/generated/):
- Timestamps atualizados pela regeneração do openapi-typescript

Validação:
- TypeScript: zero erros (npx tsc --noEmit)
- Testes: 381 passed, 47 skipped (integration)
- Build: ESM + CJS + DTS gerados com sucesso

BREAKING CHANGE: addressApiKey e cteApiKey foram removidos de NfeConfig.
Use dataApiKey para configurar a chave de serviços de consulta.
As variáveis de ambiente NFE_ADDRESS_API_KEY e NFE_CTE_API_KEY foram
substituídas por NFE_DATA_API_KEY.
@andrekutianski andrekutianski self-assigned this Feb 14, 2026
@andrekutianski andrekutianski merged commit 4a86ee8 into develop Feb 14, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant