Skip to main content
Los asientos contables (también conocidos como Rubricas) mapean una acción de transacción y una dirección de ruta a un code y una description contables. Anotan una operación después de la resolución de la ruta. Las reglas de la ruta de operación y los tramos de la transacción determinan las cuentas participantes.

Qué son los asientos contables


Una rúbrica mapea una acción de transacción y una dirección de ruta a una clasificación contable. En lugar de calcular cada clasificación a mano, registras las rúbricas una vez. Midaz las resuelve después de forma automática mientras procesa las transacciones. Cada rúbrica lleva:
  • code: un código contable (por ejemplo, 1.1.1.001).
  • description: una etiqueta legible para el asiento (p. ej., Customer checking — outbound).
  • Un conjunto de mapeos de acción: un asiento por tipo de acción, cada uno con su propia rúbrica de débito y/o de crédito.
Cuando el motor procesa una transacción con la validación de rutas (accounting.validateRoutes) habilitada y una rúbrica coincidente registrada, resuelve la rúbrica de cada operación. Registra en la operación el routeCode y el routeDescription resultantes. Esto te da un registro de auditoría completo desde la transacción hasta la operación y la rúbrica. Tus equipos pueden rastrear exactamente qué regla contable se aplicó a cada movimiento.
Configura las rúbricas por acción en cada ruta de operación. Para las acciones direct y commit, las rutas de origen requieren la rúbrica de débito y las rutas de destino requieren la rúbrica de crédito. Las rúbricas dedicadas block y unblock son opcionales. Si están ausentes, Midaz resuelve la rúbrica direct para esas acciones. Las acciones hold y cancel del lado del origen requieren ambas rúbricas, y overdraft requiere ambas en cada tipo de ruta admitido. Las rutas bidireccionales siempre requieren ambas.

Los 8 tipos de acción


Cada acción es un evento transaccional distinto. Las primeras cinco acciones cubren el ciclo de vida de la transacción. Las últimas tres cubren los movimientos de sobregiro, bloqueo y desbloqueo. Una sola rúbrica puede mapear distintas clasificaciones de débito y crédito para cada acción. Así, cada etapa de una operación recibe la anotación contable correcta. Sobregiro clasifica las operaciones acompañantes que el motor genera de forma automática durante el uso y el pago del sobregiro. Para cada tipo de ruta y dirección admitidos, configura tanto la rúbrica de débito como la de crédito. Bloqueo y desbloqueo pueden usar rúbricas dedicadas para las operaciones que producen los endpoints de transacción de bloqueo y desbloqueo. Sin esas rúbricas, esas acciones usan la rúbrica direct. Cuando sea necesario, registra rúbricas dedicadas para estas acciones de la misma forma que para las demás acciones.
Cada acción puede apuntar a distintas clasificaciones contables de débito y crédito dentro de la misma rúbrica. Mapea solo las acciones que usa una ruta. Si habilitas la validación estricta (abajo), cubre cada acción que emiten tus transacciones.

Configurar los asientos contables


Registras las rúbricas mediante la API como parte de tus rutas de operación. El bloque accountingEntries de una ruta define un asiento por acción. Cada asiento lleva su rúbrica debit y/o credit:
Administras estos asientos mediante los endpoints de ruta de operación. Consulta Crear una ruta de operación y Actualizar una ruta de operación. Para el flujo de configuración completo, consulta Enrutamiento de transacciones.

Modos de validación


Midaz reacciona ante una rúbrica ausente según la configuración contable del Ledger. Dos controles distintos rigen este comportamiento:

Predeterminado (tolerante)

De forma predeterminada (accounting.validateRoutes deshabilitado), Midaz no resuelve ninguna rúbrica: la transacción avanza con normalidad y los campos routeCode y routeDescription quedan vacíos (nil) en cada operación. No lanza ningún error.

Estricto (activación explícita)

Define accounting.validateRoutes en true en la configuración del Ledger para aplicar la validación de rutas. En modo estricto, una acción solicitada sin rutas en la caché de rutas de transacción devuelve 0157 ErrNoRoutesForAction. 0117 ErrAccountingRouteNotFound aplica cuando un ID de ruta de operación está ausente de esa caché.
En modo estricto, no trates 0117 ErrAccountingRouteNotFound como el error de cada acción no mapeada: aplica cuando un ID de ruta de operación está ausente de la caché de rutas de transacción. Una acción solicitada sin rutas en esa caché devuelve 0157 ErrNoRoutesForAction.
Usa el modo estricto en ledgers de producción donde cada tipo de transacción necesita una clasificación contable. El valor predeterminado tolerante ayuda mientras incorporas rutas. En producción, puede dejar movimientos sin clasificación de forma silenciosa.
Cuando Midaz encuentra una rúbrica coincidente, anota la operación con dos campos:
  • routeCode: el code de la AccountingRubric resuelta para esa acción y dirección.
  • routeDescription: la descripción de la rúbrica resuelta, que se completa junto con routeCode.