5.9 KiB
Etapa 0 — Hallazgos y decisiones de arquitectura
Proyecto: Plataforma de Automatización Financiera · Balam Estado: borrador para cerrar con la validación del prototipo Última actualización: 2026-07-15
1. Resultado del Discovery
El flujo operativo confirmado es:
Jira ITSM → cotización en BIND → prefactura → validación humana → CFDI → envío según reglas del cliente → cobranza
Reglas de negocio principales:
- Toda factura debe partir de una cotización en BIND.
- La prefactura es obligatoria antes de timbrar.
- PPD es el método predeterminado; PUE requiere una decisión consciente.
- IVA esperado: 16 % en operación nacional y 0 % para operación extranjera sin efectos fiscales, sujeto a las excepciones fiscales que confirme Balam.
- El alta de un cliente nuevo es un flujo separado y requiere definición final de Arturo.
- Los recordatorios se desean para todos los clientes; los correos automáticos externos permanecen fuera del MVP original (Anexo B) hasta confirmar alcance.
- La cobranza se controla por factura y folio. Debe tolerar diferencias por comisiones/fees conforme a la regla que confirme Arturo.
2. Resultado de la validación de BIND
La prueba del 6-jul realizó 117 solicitudes exclusivamente GET contra la cuenta real, sin persistir datos de Balam.
Confirmado:
- Saldo por factura viable con
Total - Payments - CreditNotes. - Cotizaciones, prefacturas, facturas, clientes, impuestos, PPD/PUE, vencimientos y PDF son consultables.
- Aging y alertas internas son viables sin consultar pagos individuales.
- El volumen proyectado de sincronización consume aproximadamente 5 % del límite de 20,000 solicitudes diarias.
Restricciones:
- No se encontró endpoint de pagos individuales ni complementos de pago (REP).
- BIND no expone el vínculo cotización→factura; la plataforma deberá conservarlo.
- Algunos campos clave solo aparecen en el detalle de cada factura.
- No hay webhooks confirmados; el diseño base usará sincronización incremental por polling.
- El token está acotado a una sola empresa.
- La cuenta actual es de producción y puede tener privilegios elevados; no se autoriza escritura todavía.
Detalle técnico: ../bind-api-sandbox/VALIDACION-API.md.
3. Decisiones de arquitectura
ADR-001 · Lectura primero y escritura controlada
Decisión: operar inicialmente en modo solo lectura. Toda escritura futura requiere autorización expresa, dry-run, confirmación humana y feature flag desactivado por defecto.
Motivo: Balam no cuenta con sandbox y una operación incorrecta puede tener efecto fiscal.
ADR-002 · Sincronización incremental
Decisión: persistir en PostgreSQL el último punto de sincronización y consultar únicamente registros nuevos o modificados. Paginar siempre con lotes de hasta 100.
Motivo: BIND no ofrece conteos ni nextLink; PPD/PUE y días de crédito requieren consultas de detalle.
ADR-003 · Trazabilidad propia
Decisión: almacenar las relaciones ticket Jira → cotización BIND → factura BIND en la base de datos de la plataforma.
Motivo: la API de BIND no expone de forma confiable el vínculo cotización→factura.
ADR-004 · Detección de pagos
Decisión: para el MVP, detectar pagos mediante cambios de estatus y saldo residual. Registrar la fecha de detección, no presentarla como fecha valor.
Motivo: no se encontró un recurso de pagos/REP. La fecha contable real requerirá información adicional o una ampliación.
ADR-005 · Separación por empresa
Decisión: el MVP opera únicamente con la empresa Balam asociada al token. Multiempresa queda fuera del alcance.
Motivo: cada empresa requiere su propia cuenta/token de BIND.
ADR-006 · Integración Jira→BIND pendiente de alcance
Decisión: diseñar el modelo para conservar el identificador del ticket, pero no comprometer todavía la automatización que crea cotizaciones desde Jira.
Motivo: el Discovery confirmó a Jira como entrada del proceso, pero la integración automática no estaba incluida explícitamente en el MVP. Antes de desarrollarla se requiere:
- Confirmación de alcance.
- Cuenta técnica y acceso API/OAuth a Jira.
- Webhook o regla de automatización.
- Mapeo de campos y estatus disparador.
- Acceso controlado de escritura a BIND.
4. Preguntas que deben cerrarse
Con Arturo / CEO — sesión del 22-jul
- Flujo definitivo de alta de cliente nuevo.
- Tratamiento en BIND de diferencias por comisión/fee.
- Particularidades de envío por cliente.
- Estatus de Jira que autoriza crear una cotización.
- Campos obligatorios y manejo de tickets incompletos.
Con Pedro / Noé
- Endpoint de pagos individuales o REP.
- Mapeo interno de
CFDIUsea clave SAT. - Formato de respuesta de
/{id}/xml. - Disponibilidad de webhooks en BIND.
- Token utilizado por Power BI y decisión sobre usuario de solo lectura.
- Permisos e identidad técnica para Jira, si se aprueba la integración.
5. Dependencias de infraestructura
| Dependencia | Estado al 15-jul | Impacto |
|---|---|---|
| Token BIND | Entregado; uso solo lectura | Desbloquea consultas y cliente BIND |
| Repositorio privado GitHub | Autorizado por Noé; invitación pendiente | Necesario para publicar backend/frontend |
| Azure | Programado para semana del 21-jul | No bloquea desarrollo local |
| CI/CD y secretos | Actividad separada para 24-jul | Depende de repo y Azure |
| Jira técnico | No solicitado todavía | Solo bloquea integración automática Jira→BIND |
6. Criterio de cierre de Etapa 0
La Etapa 0 se cierra cuando:
- Balam valida el prototipo o registra ajustes.
- Se incorporan las decisiones de la sesión del 22-jul.
- Se valida el prototipo en la sesión del 23-jul.
- Este documento se actualiza con las respuestas finales.
- Se emite un plan refinado con alcance explícito para Jira, recordatorios externos y escritura en BIND.