Skip to content

feat(sdk): webhooks, XML, KuDE en cinta y ciudades por departamento - #5

Merged
mijhaels merged 2 commits into
mainfrom
feat/endpoints-faltantes
Oct 26, 2026
Merged

mijhaels merged 2 commits into
mainfrom
feat/endpoints-faltantes

Conversation

@mijhaels

@mijhaels mijhaels commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Regenera src/generado/types.gen.ts contra el OpenAPI actual, que ya incluye los tipos de webhooks. Con esto, el SDK cubre todo el OpenAPI de integración, salvo el plan-consumo deprecado.

 new Sifende(…)
   documentos
     emitir, consultarEstado, descargarKude, cancelar, nominar, inutilizar, …
+    descargarXml(cdc)                                   → string
+    descargarKudeTicket(cdc, { ancho, resumen })        → Uint8Array (PDF)
+    descargarKudeTicketImagen(cdc, { puntos, resumen }) → Uint8Array (PNG)
   catalogos
     departamentos, distritos, ciudades
+    ciudadesDeDepartamento(id)
+  webhooks
+    listar, crear, consultar, actualizar, eliminar, rotarSecreto, listarEntregas

crear y rotarSecreto no admiten Idempotency-Key, así que viajan sin clave y el SDK no los repite ante un corte. Esto sigue la regla que ya existía: sin clave, solo se reintentan las consultas. Solicitud agrega acepta, para fijar el Accept de cada descarga, y los métodos PUT y DELETE.

Es el mismo cambio que ithdev/sifende-go#1.

Evidence

  • Before: 46 tests, y types.gen.ts sin los tipos de webhooks.
    After: 57 tests. lint, typecheck, build y publint pasan. Entre los nuevos:
    crear / rotarSecreto ante un corte          → 1 llamada, SifendeConexionError
    descargarKudeTicket('0180', { ancho: 58, resumen: true }) → ?ancho=58&resumen=true
    listar → consultar → actualizar → eliminar  → GET, GET, PUT, DELETE /contribuyente/webhooks[/7]
    
    Desde dist/ contra api.sifende.com.py: ciudadesDeDepartamento(11) devuelve 387 ciudades, y webhooks.listar() con una clave inválida da SifendeApiError 401.

Merge Danger

Door: two-way

Solo agrega métodos y exports. Los tipos regenerados quitan alias que el SDK no usaba (por ejemplo NominarByCdcData) y actualizan otros al spec actual. Un consumidor que importara esos alias generados de @sifende/sdk tendría que ajustarlos.

Blast Radius: tipos

No cambia nada en runtime para quien ya usa el SDK. Se publica en npm recién al crear un Release v0.2.0 con el package.json actualizado.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

mijhaels and others added 2 commits October 26, 2026 19:14
Regenera los tipos desde el OpenAPI actual y agrega los endpoints que el
SDK no cubría:

- webhooks: listar, crear, consultar, actualizar, eliminar, rotar el
  secreto y listar entregas. crear y rotarSecreto no admiten
  Idempotency-Key, así que un corte de conexión no los repite.
- documentos.descargarXml, descargarKudeTicket y descargarKudeTicketImagen.
- catalogos.ciudadesDeDepartamento.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@mijhaels
mijhaels merged commit dd7f89f into main Oct 26, 2026
2 checks passed
@mijhaels
mijhaels deleted the feat/endpoints-faltantes branch October 26, 2026 22:18
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