FOLIO § 04CÓMO FUNCIONA / COMPROBACIÓN

Comprobación del gasto.

La dispersión deja el dinero en la cuenta del beneficiario. Pero el ciclo no cierra hasta que el beneficiario comprueba en qué se gastó. DCD modela esa comprobación como CFDIs subidos por la A.C. beneficiaria, atados al ingreso por UUID — no como reportes textuales ni como promesas.

A · UploadQué sube el beneficiario.

El beneficiary_admin entra a /beneficiario/facturas/crear y sube el XML del CFDI 4.0 (o 3.3 — ambos soportados) que emitió su proveedor cuando le compró: despensa, transporte, medicamentos, materiales, lo que corresponda a la causa. Opcionalmente adjunta el PDF representativo. Selecciona a qué causa aplica.

B · ParserQué extrae DCD del XML.

El parser extrae vía XPath: UUID, RFC emisor, RFC receptor, monto total, fecha de emisión, conceptos, FormaPago, MetodoPago, UsoCFDI, LugarExpedicion. Se cross-validan cuatro reglas:

UUID único
Un mismo CFDI no puede subirse dos veces dentro del tenant. El índice (tenant_id, uuid) lo previene a nivel BD.
RFC receptor
Debe coincidir con el RFC del beneficiario. Previene que se acrediten CFDIs de gastos personales del director.
Fecha de emisión
No puede ser futura. Si es anterior a la aprobación del beneficiario o a la primera dispersión recibida, se marca como advertencia (no bloqueante — puede ser legítimo).
Monto
Si excede el saldo dispersado a la causa, se marca como "excess documentation" (advertencia).

Los flags se persisten como JSON en la factura. El admin del tenant los ve codificados por color al revisar.

C · AprobaciónQuién decide qué cuenta.

El CFDI sube en estado pending. El tenant_admin lo revisa en /admin/facturas y aprueba o rechaza. Solo CFDIs aprobados cuentan para el trust score. El XML se guarda en disco no público; las descargas son gated por permisos.

D · Verificación SATLo que aún no validamos.

Significa que un CFDI cancelado por el emisor podría seguir contando en DCD hasta que el tenant lo detecte manualmente — por ahora es responsabilidad operativa del tenant verificar antes de aprobar.