Skip to content

feat: tabla de rechazos de ARCA con qué hacer (REV-26) - #101

Open
LcsGrz wants to merge 1 commit into
mainfrom
feat/rechazos-arca
Open

LcsGrz wants to merge 1 commit into
mainfrom
feat/rechazos-arca

Conversation

@LcsGrz

@LcsGrz LcsGrz commented Nov 5, 2026

Copy link
Copy Markdown
Owner

Qué cambia

Cuando ARCA rechaza o deja una observación, sugerencias (y el panel de la salida humana) ahora dice qué pasó, qué hacer y el link a la guía, para los códigos más comunes:

Código Qué pasó
10005/11002 Punto de venta que no es de web service (ya estaba; ahora suma el link)
10016 El número o la fecha no es el próximo a autorizar (otro emitido en el medio, o fecha anterior al último)
10152 Fecha fuera del rango de ARCA
10243 IVA receptor no válido para la letra
10174 CBU de la FCE no registrado a nombre del emisor
10119 Cotización fuera del 2%–400% de la oficial
10038 Con --misma-moneda, la cotización ya no es la oficial exacta
10017/10217 Observación de padrón: no es un rechazo

Siguen reconociéndose por el mensaje los que no traen código: receptor igual al emisor (nuevo), Transacción Activa, CUIT receptor inexistente y detalle de IVA obligatorio. Si no hay coincidencia y el comprobante fue rechazado, sigue la sugerencia genérica de antes.

  • Una sola tabla: src/modules/billing/arca-rejections.ts, en el mismo estilo que arca-codes.ts y currency-codes.ts. Reemplaza los if sueltos de billing-response.ts.
  • Códigos de las observaciones: antes solo se miraban los de Errors; ahora también los de Observaciones, que es donde ARCA suele mandar el motivo de un rechazo de un comprobante.
  • Troubleshooting: suma la tabla "Rechazos de ARCA por código". Un test verifica que cada código de la tabla tenga su fila ahí y que cada link apunte a un título que existe.

Los códigos y textos salen de lo que ya documentan validation-rules.md, troubleshooting.md y limitations.md; no se agregó ninguno que no estuviera en el repo. WSFEX (export.response.ts) ya tiene sus propias sugerencias y quedó igual.

Por qué

REV-26 del backlog: billing-response.ts reconocía pocos patrones, y ante un rechazo la sugerencia solía ser "revisá observaciones y errores".

Contrato público

  • No cambia comandos, flags, claves de config ni el --json. sugerencias sigue siendo un array de textos; cambian y se suman textos, que no son contrato.
  • Cambia el contrato y está avisado en CHANGELOG.md (si rompe compatibilidad, explicá por qué hace falta)

Checklist

  • Tests nuevos o ajustados si cambia el comportamiento (arca-rejections.test.ts: tabla vs. docs, links, códigos de observaciones, observación de padrón en un aprobado, fallback)
  • Documentación al día según la tabla de CONTRIBUTING (troubleshooting)
  • Entrada en "Sin publicar" de CHANGELOG.md si le afecta a quien usa el CLI
  • yarn typecheck, yarn lint y yarn test pasan (1095 tests)
  • Sin certificados, claves, tickets, CUITs reales ni respuestas de --bruto en el código, los tests o las capturas

🤖 Generated with Claude Code

Las sugerencias de una respuesta de WSFE salen de una tabla (arca-rejections.ts): código o mensaje -> qué pasó, qué hacer y el link a troubleshooting. Ahora también se leen los códigos de las observaciones, no solo de los errores. Cada código tiene su fila en docs/troubleshooting.md y un test lo verifica. La forma del JSON no cambia.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
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