4. Módulo Contable
OCR + asientos automáticos + conciliación + cierres con trazabilidad.
AutomatizaOCR + reglas
CalidadBloqueos
VelocidadConciliación
Visión del módulo
Contabilidad oficial con automatización desde documentos y bancos. Incluye cierres, bloqueos por periodo, libros e informes.
Objetivos
- Reducir carga manual con OCR y reglas por proveedor/cliente.
- Garantizar consistencia para alimentar fiscalidad (bases/retenciones).
- Asegurar cierres por periodo con trazabilidad y reaperturas controladas.
- Conciliación bancaria asistida para acelerar el cierre.
Alcance
- Plan contable, asientos, diarios y mayores.
- OCR: extracción de datos + propuesta de asiento.
- Conciliación: matching facturas ↔ banco ↔ asientos.
- Amortizaciones, provisiones y periodificaciones.
- Libros e informes exportables.
Personas y roles
| Rol | Necesidad / uso principal |
|---|---|
| Gestor contable | Contabilizar rápido con OCR y reglas; conciliar sin fricción. |
| Gestor fiscal | Datos fiables para calcular impuestos. |
| Cliente | Visión económica e informes (si se habilita). |
Diseño funcional
Flujos principales
Entrada de factura con OCR
Cliente sube factura o llega por integración (email/R2/ERP).
- Documento entra en cola OCR y se extraen campos (proveedor, NIF, fecha, bases, IVA).
- Validación: totales y consistencia (NIF, duplicidad).
- Asignación de regla (si proveedor conocido) → propuesta de cuentas.
- Gestor aprueba propuesta → se crea asiento y se vincula documento.
- Se marca el documento como 'Contabilizado'.
Salida: Asiento creado con documento vinculado y trazabilidad.
Conciliación bancaria
Importación diaria/semanal de extractos.
- Importar movimientos bancarios.
- Matching automático por importe/fecha/referencia/proveedor.
- Gestor revisa excepciones y confirma.
- Generar asiento si falta (comisiones, ingresos).
- Bloquear periodo al completar conciliación.
Salida: Banco conciliado y periodo listo para cierre.
Cierre de periodo
Fin de mes/trimestre.
- Ejecutar validaciones (cuadres, saldos, conciliación completada).
- Generar amortizaciones/periodificaciones.
- Marcar periodo como bloqueado (solo lectura).
- Emitir informes y snapshots para fiscalidad.
Salida: Periodo cerrado con evidencias y consistencia fiscal.
Pantallas (UI)
- Bandeja OCR: pendientes, propuesta, aprobación.
- Asientos: editor + trazabilidad + vínculo al documento.
- Conciliación: vista de matching y excepciones.
- Cierres: checklist y bloqueo de periodos.
Diseño técnico
Entidades y modelo de datos (mínimo)
| Entidad | Campos principales / notas |
|---|---|
| Account | code, name, type, parent_code, active |
| JournalEntry | id, date, memo, lines[], source(doc/bank/manual), locked |
| JournalLine | entry_id, account_code, debit, credit, vat_code?, third_party_id? |
| Invoice | id, supplier_id, number, date, totals, status, doc_id |
| BankTransaction | id, bank_account_id, date, amount, description, matched_ref |
| PeriodLock | company_id, period, locked_by, locked_at, reason |
Permisos y seguridad (RBAC)
- Edición de asientos bloqueada en periodos cerrados; reapertura solo supervisor.
- Reglas OCR/contabilización solo admin/supervisor (para evitar descontrol).
- Auditoría obligatoria en asientos editados/eliminados (idealmente no borrar, reversar).
Validaciones y reglas
- Prohibir borrado duro: usar asientos de reversión/corrección.
- Detectar duplicados de factura por proveedor + número + fecha + importe.
- Conciliación requerida para cierre fiscal (configurable).
APIs sugeridas (API-first)
GET /api/v1/accounts?company_id=...
POST /api/v1/journal-entries
GET /api/v1/journal-entries?period=...
POST /api/v1/invoices/import
POST /api/v1/ocr/jobs # encola OCR
POST /api/v1/banks/transactions/import
POST /api/v1/banks/reconcile # matching
PATCH /api/v1/periods/{id}/lock
PATCH /api/v1/periods/{id}/unlock
Eventos y auditoría
- ocr.completed
- accounting.entry.created/updated
- bank.transaction.imported
- bank.reconciled
- period.locked/unlocked
Impacto de negocio
Beneficio para la gestoría
- Ahorra horas en contabilización y conciliación.
- Menos errores al vincular documento-asiento y bloquear periodos.
- Mejor base para fiscal: cálculos más fiables.
Beneficio para el cliente
- Contabilidad al día; informes más rápidos y claros.
- Menos solicitudes de correcciones por duplicados.
Riesgos / puntos críticos
- OCR requiere control de calidad; sin revisión humana hay riesgo de errores.
- Conciliación mal diseñada genera frustración; requiere buen matching y UX.
- Bloqueos demasiado rígidos deben tener reapertura controlada.