RF64: Sistema analiza facturas
Descripción
El sistema analiza las facturas (CFDI) que el usuario ingresa (RF66): valida su estructura, extrae los datos relevantes (emisor, receptor, conceptos, impuestos, total), clasifica el gasto/ingreso y determina su deducibilidad, para alimentar la declaración anual (RF63).
| Campo | Valor |
|---|---|
| Módulo | Accounting Module |
| Actor | Sistema (worker de análisis) |
| Endpoint | Interno: worker disparado al ingresar una factura (RF66) |
| Precondiciones | Existe al menos una factura CFDI ingresada |
| Prioridad | Baja (post-MVP) |
| Etapa | Por definirse |
| Requisitos relacionados | RF66, RF63, RF20 |
Reglas de negocio
- RN-64.1 — Se valida la estructura del CFDI (XML) y, cuando aplica, su vigencia/estatus ante el SAT.
- RN-64.2 — Se extraen emisor (RFC), receptor (debe coincidir con el RFC del usuario), conceptos, impuestos y total.
- RN-64.3 — Una factura cuyo receptor no coincide con el RFC del usuario se marca como no atribuible.
- RN-64.4 — Se clasifica el gasto/ingreso y se determina deducibilidad según catálogo.
- RN-64.5 — Se deduplican facturas por UUID fiscal (folio fiscal).
- RN-64.6 — Los datos fiscales se almacenan cifrados; el análisis no expone datos sensibles en logs.
Validaciones / consideraciones
| Aspecto | Regla |
|---|---|
| Estructura | XML CFDI válido (esquema SAT). |
| Receptor | RFC del receptor = RFC del usuario. |
| Dedupe | Por UUID/folio fiscal. |
| Estatus | Verificar cancelación cuando sea posible. |
Criterios de aceptación
Escenario 1: Análisis de factura válida
Dado que ingreso un CFDI válido cuyo receptor es mi RFC, Cuando el sistema lo analiza, Entonces extrae y clasifica sus datos, Y determina su deducibilidad, Y lo deja disponible para la declaración anual (RF63).
Escenario 2: CFDI con estructura inválida
Dado que ingreso un archivo que no es un CFDI válido, Cuando el sistema lo analiza, Entonces lo marca como inválido, Y lo excluye del cálculo informando el motivo.
Escenario 3: Receptor distinto al RFC del usuario
Dado que el CFDI tiene un receptor distinto a mi RFC, Cuando se analiza, Entonces se marca como no atribuible y no se considera deducible.
Escenario 4: Factura duplicada (idempotencia)
Dado que ingreso dos veces el mismo folio fiscal, Cuando el sistema analiza, Entonces no la duplica.
Escenario 5: Factura cancelada
Dado que una factura previamente válida fue cancelada ante el SAT, Cuando el sistema verifica su estatus, Entonces la marca como cancelada y la excluye del cálculo.
Criterios no funcionales
- Datos fiscales cifrados; análisis asíncrono.
- Sin datos fiscales sensibles en logs; comunicación TLS 1.2+.