v5.1.0
[5.1.0] - 2026-07-03
Correção do contrato de webhooks contra a API real, provado por sonda ao vivo
(2026-07-02/03, três contas). O contrato correto sempre esteve nos specs oficiais
(openapi/spec/nf-servico-v1.yamle equivalentes) — o recurso manuscrito havia
divergido deles.
Corrigido
createAccountWebhookfuncionava 0% das vezes: a API exige o request
envelopado em{ "webHook": {...} }(sem ele responde
400 "missing required properties including: 'webHook'") e devolve a resposta
também envelopada. O SDK agora envelopa o request (create/update) e desembrulha
as respostas (create/retrieve/update), com fallback defensivo para corpo cru.listAccountWebhooks/retrieveAccountWebhook/updateAccountWebhookagora
tipados com o shape real do recurso (verAccountWebhookabaixo).
Adicionado
- Tipo
AccountWebhookcom o shape real da API:uri,contentType,
secret(32–64 caracteres, ecoado no create e omitido nas leituras),filters,
insecureSsl,headers,properties,status,createdOn,modifiedOn.
Nota: o spec declaracontentType/statuscomo enums inteiros, mas a API
serializa strings ("json","Active") — o tipo segue o fio real. - Tipo
WebhookEventType(união aberta) com os 46 event types reais de
GET /v2/webhooks/eventTypes(service_invoice.issued_successfully, etc.). - Teste de alinhamento (
tests/types/account-webhook-alignment.test-d.ts)
amarrando oAccountWebhookao schema gerado do spec oficial — um sync de spec
que mude o contrato de webhooks quebra onpm run test:typesem vez de driftar. - JSDoc do
createAccountWebhookdocumenta a verificação de URI na criação
(a NFE.io faz um ping e exige resposta 2xx). - JSDoc do
updateAccountWebhookdocumenta que oPUTé substituição integral
(confirmado ao vivo em 2026-07-03): campos omitidos voltam ao padrão — update
semstatusdesativa o webhook. Envie o objeto completo (parta do retrieve).
Deprecado
- Métodos company-scoped de webhooks (
list,create,retrieve,update,
delete,testsobre/v1/companies/{id}/webhooks): a rota retorna 404
na API atual (confirmado em três contas, 2026-07-02/03). Use os equivalentes
account-scoped. O comportamento não mudou; remoção fica para a próxima major. - Tipos
WebhookeWebhookEvent: shapes que a API real rejeita. Use
AccountWebhookeWebhookEventType.