Este documento describe todo lo que MyFinAI contabiliza, proceso por proceso: qué lo dispara, qué asiento produce, qué controla y qué deja como evidencia. Es la referencia para tu contador o CPA cuando pregunta «¿y esto cómo queda registrado?».
Cómo leerlo. Cada proceso aparece como *disparador → asiento → control*. Los códigos de cuenta que se muestran son los del plan genérico de negocio (1000 Banco, 1100 CxC, 2000 CxP…); el sistema no trabaja con códigos fijos: resuelve cada cuenta por su nombre en el plan del espacio, de modo que un plan PUC colombiano (Decreto 2650 de 1993) usa 1105/1305/2205/2408 y el asiento es el mismo. Donde falta una cuenta obligatoria (retención, impuesto sobre ventas, diferencia en cambio), el sistema la crea con su nombre y su base legal en vez de perder el registro.
libro: ΣDébitos = ΣCréditos, calculado en decimal (nunca en coma flotante). Un asiento que no cuadra se rechaza; no existe «cuadrarlo después».
derivan del mayor. Si un número aparece en un tablero, se puede abrir hasta el asiento que lo sustenta.
en la base de datos por fila (RLS). El libro del negocio y el del hogar nunca se mezclan, aunque sea la misma persona la que entra.
Puerto Rico y Estados Unidos, pesos en Colombia. Un documento en otra moneda se convierte con la tasa oficial de la fecha del documento y guarda el original, la tasa y la fecha.
calculan y preparan. Ninguna herramienta que mueva dinero se expone a un agente: el pago, el cobro, la remesa y el cierre los confirma un humano con rol suficiente.
Nada se postea solo. El barrido automático que corre cada seis horas solo lee (genera alertas, enlaza identidades y entiende movimientos); no escribe un asiento. Cuando pulsas ↻ Postear al mayor, el sistema corre los procesos en orden de dependencia dentro de una sola transacción: movimientos → facturas → reconocimiento diferido → recepciones de inventario → cuentas por pagar → cobros → pagos → capital → propiedades → costo de ventas → nómina. Si algo no cuadra, no entra nada.
Idempotencia. Cada asiento se marca con el tipo y el identificador del documento que lo originó (bill, invoice, bill_payment, pay_run, depreciation…), así que reprocesar un documento nunca lo contabiliza dos veces. Los asientos de un solo disparo —préstamo, arrendamiento, remesa fiscal, asiento manual, causación de período— se registran cada vez que los confirmas: para corregir uno, se reversa desde el mayor (queda marcado como reversado, no se borra).
| Paso | Qué hace |
|---|---|
| Plantilla | Al crear el espacio se provisiona el plan: negocio (genérico), hogar o PUC para un negocio colombiano (Decreto 2650 de 1993). La elección sale de la jurisdicción del espacio, no de un texto escrito a mano. |
| Resolución por nombre | El motor busca «cuentas por pagar», «impuesto sobre ventas», «retención en la fuente», «diferencia en cambio»… por nombre, con las variantes de cada país. Así el mismo código funciona sobre un plan PR y sobre un PUC. |
| Auto-creación citada | Si falta una cuenta obligatoria, se crea con su nombre y su ley: retenciones por pagar (2340 en PR, Sec. 1062.03), retención en la fuente / reteIVA / reteICA (2365/2367/2368 en Colombia), IVA por pagar (2408), diferencia en cambio (421020 / 530525 en PUC). |
| Apertura de libros | Los saldos iniciales entran como un asiento de apertura balanceado contra Saldos de apertura (3900). Es el único asiento que puede «inventar» patrimonio, y queda marcado como apertura. |
Disparador: emites la factura (manual, desde una suscripción, desde horas facturadas o desde el lector de timesheets).
| Cuenta | Importe | |
|---|---|---|
| DR | 1100 Cuentas por cobrar | total (base + impuesto) |
| CR | 4000/4050/4100 Ingreso (el de cada línea) | base |
| CR | 2300 Impuesto sobre ventas por pagar (IVU/IVA) | impuesto de las líneas |
Controles: una factura en borrador no reconoce ingreso; el impuesto por línea se separa del ingreso y si el plan no tiene cuenta de impuesto sobre ventas se crea (nunca se «disuelve» el impuesto en el ingreso); el total del encabezado se reconcilia con sus líneas.
Una factura anual reconoce ingreso diferido y lo libera por período según su calendario de reconocimiento: DR ingreso diferido / CR ingreso del mes. Es el tratamiento de ASC 606 para lo cobrado por adelantado.
Disparador: registras el cobro (o lo trae el conciliador desde el banco, o lo lee el buzón de comprobantes).
| Cuenta | Importe | |
|---|---|---|
| DR | 1000 Banco / cuenta de depósito | neto recibido |
| DR | 1355 Anticipo de impuestos y retenciones (a favor) | retención que te practicó el cliente |
| DR | Gasto de comisiones | comisión de la pasarela |
| CR | 1100 Cuentas por cobrar | bruto de la factura |
Controles: la retención sufrida nunca se pierde: queda como activo tributario a tu favor (1355 en el PUC); el bruto salda la cuenta por cobrar aunque al banco llegue menos; se crea el movimiento de banco correspondiente (idempotente) para que Movimientos y el mayor cuenten lo mismo; se genera el comprobante de ingreso en PDF con la razón social del espacio.
El agente de cobro prioriza lo vencido por antigüedad de saldos, propone los recordatorios y deja registro de cada gestión. El incobrable se da de baja como tal (no se borra la factura).
Disparador: subes la factura del proveedor, llega al buzón invoicing@, la importas del reporte de documentos de la DIAN o la capturas a mano. El lector entiende PDF, imagen, Word, Excel, CSV o el cuerpo del correo, identifica al proveedor o consultor como una sola entidad y propone la cuenta de gasto.
| Cuenta | Importe | |
|---|---|---|
| DR | Cuenta de gasto (líneas o cuenta del documento) | base |
| DR | 2408 IVA descontable (Colombia) | IVA de la compra |
| CR | 2000 Cuentas por pagar | total |
Si la cuenta está ligada a una orden de compra con mercancía ya recibida, el asiento releva Mercancía recibida no facturada (GRNI 2150) en vez de volver a reconocer el gasto.
Controles: una cuenta sin cuenta de gasto no se postea (el sistema no adivina); el documento original queda guardado y visible; el duplicado se detecta por parte + número o por monto + fecha + parte; el borrador no reconoce nada; en moneda distinta a la de libros se convierte con la tasa exacta de su fecha.
La orden registra lo pedido; la recepción registra lo recibido (y capitaliza inventario); la factura no puede exceder lo recibido — el cuadre a tres bandas bloquea, no solo avisa.
Disparador: un humano registra el pago (con su método, cuenta, fecha y recibo) o lo dispara por PayPal Payouts.
| Cuenta | Importe | |
|---|---|---|
| DR | 2000 Cuentas por pagar | bruto |
| CR | 2340 Retenciones por pagar (PR) · 2365/2367/2368 (Colombia) | retención practicada |
| DR | Gasto de comisiones | comisión del medio de pago |
| CR | 1000 Banco | neto + comisión |
| DR/CR | Diferencia en cambio (ganancia o pérdida) | si la factura estaba en otra moneda |
Controles: la retención se calcula sola (porcentaje del proveedor o montos digitados en el pago) y cada tipo va a su pasivo; en Colombia el porcentaje único del proveedor es retención en la fuente sobre la base (2365), nunca la retención de Puerto Rico; doble control: un pago por encima del umbral del espacio queda pendiente de aprobación antes de postear; el pago genera el comprobante de pago en PDF (con el recibo adjunto si llegó por paymentReceipt@) y el aviso al proveedor; se crea el movimiento de banco idempotente; el bruto salda la cuenta por pagar.
Flujo: borrador → enviado → aprobado → pagado. Las líneas solo se editan en borrador y para enviar el reporte todas deben estar clasificadas. Al aprobar, el reporte se convierte en una cuenta por pagar a nombre de la persona: así el reembolso sale por el mismo camino que cualquier pago (con su comprobante, su retención si aplica y su movimiento de banco) y no por una puerta lateral. El reembolso propiamente dicho es su asiento: DR el pasivo con la persona / CR banco.
Lo capitalizable pasa a activo en vez de gasto, con el umbral expresado en la moneda del espacio. Nadie aprueba su propio gasto: quien somete no aprueba, salvo que el dueño habilite explícitamente la auto-aprobación para principales; un empleado nunca puede. Reabrir un reporte ya aprobado anula su cuenta por pagar (o registra un asiento de reversa en los reportes anteriores al enlace con AP), y se rehúsa si ya está pagado.
La caja chica lleva su propio registro de control con apertura, reposiciones, gastos, ajustes y arqueos (saldo de libro contra lo contado); es un auxiliar de control y no postea al mayor por sí solo. Las tarjetas registran cargos, pagos y fecha de corte: el cargo entra como movimiento con origen «tarjeta» y acredita el pasivo de la tarjeta, y pagarla desde el banco es un traslado de pasivo, no un gasto (un error clásico que el sistema evita por diseño).
| Proceso | Asiento |
|---|---|
| Recategorizar un movimiento ya posteado | el asiento anterior queda reversado (se conserva para auditoría) y se postea el nuevo |
| Incobrable | DR gasto por deuda mala / CR cuentas por cobrar |
| Baja de activo | DR banco (lo recibido) + DR depreciación acumulada / CR costo del activo, con la ganancia o pérdida de la venta |
| Causación de fin de período | DR gasto de lo ordenado y recibido / CR pasivo acumulado, con su reversa automática al día siguiente |
| Causación de un tributo (Colombia) | DR el gasto del tributo / CR su propio pasivo — solo para los que se causan a mano (ICA y timbre); IVA y retenciones nacen de las facturas y los pagos |
| Paso | Qué hace |
|---|---|
| Carga | El lector multi-archivo entiende los timesheets reales y recuerda la asignación persona → consultor. |
| Guardia de doble conteo | Antes de confirmar, detecta totales de período cargados como un día, re-subidas del mismo archivo y horas ya cargadas; la decisión es humana y queda registrada. |
| Una sola regla de tarifa | La tarifa de venta y el costo salen de una única jerarquía (hora → asignación → consultor → proyecto); solo las horas aprobadas se facturan. |
| Devengo | Al aprobar: DR 1250 Trabajo en curso (WIP) / CR 4050 Ingresos por horas, con la porción de cada hora estampada en el asiento. |
| Facturación | Al facturar esas horas se releva el devengo (DR 4050 / CR 1250) y la factura hace su propio asiento — el ingreso no se cuenta dos veces. |
| Costo del consultor | La cuenta de cobro del consultor entra como cuenta por pagar y liquida las horas cubiertas. |
| Reparto del margen | La compensación por proyecto reparte el margen (venta − costos) entre los participantes y se liquida como cuenta por pagar a cada uno. |
El régimen sale de la jurisdicción del espacio, no de una casilla suelta.
Puerto Rico / Estados Unidos. FICA 7.65% exacto del lado del empleado (6.2% Seguro Social + 1.45% Medicare), retención federal y estatal como porcentaje revisable.
| Cuenta | |
|---|---|
| DR | Gasto de nómina (bruto) |
| CR | Retenciones de nómina por pagar (federal, estatal, FICA) |
| CR | Nómina por pagar (neto) |
Colombia (Ley 100 de 1993 y CST). Empleado: salud 4% + pensión 4% + retención en la fuente. Empleador: salud 8,5%, pensión 12%, ARL (Decreto 1607 de 2002) y parafiscales; prestaciones sociales: cesantías 8,33%, intereses ≈1%, prima 8,33% y vacaciones 4,17%. Auxilio de transporte cuando aplica.
| Cuenta | |
|---|---|
| DR | 5105 Gastos de personal |
| CR | 2370 Aportes a la seguridad social por pagar |
| CR | 2365 Retención en la fuente por pagar |
| CR | 2610 Prestaciones sociales por pagar |
| CR | 2505 Nómina por pagar (neto) |
El pago del neto es su propio asiento (DR nómina por pagar / CR banco) y lo dispara un humano. El portal del empleado muestra su recibo con los conceptos de su país (federal/estatal/FICA y W-2 / 499R en PR; salud, pensión y retención con el certificado de ingresos y retenciones, formulario 220 de la DIAN, en Colombia).
| Proceso | Asiento |
|---|---|
| Recepción de mercancía | DR Inventario / CR 2150 GRNI (mercancía recibida no facturada) |
| Costo de ventas | DR 5000 Costo de ventas / CR Inventario |
Las existencias se derivan de los movimientos de inventario (no de un contador paralelo) y la valuación es promedio ponderado, mantenido por la propia base de datos en cada movimiento. La venta genera su movimiento de inventario desde la línea de la factura (idempotente por línea), y el módulo de operaciones añade multi-ubicación, demanda (velocidad, ABC, cobertura), reabastecimiento sugerido, órdenes de venta, lotes con vencimiento y traslados entre ubicaciones.
| Proceso | Asiento / tratamiento |
|---|---|
| Capitalización | Un gasto por encima del umbral (expresado en la moneda del espacio) entra como activo, no como gasto. |
| Depreciación | Línea recta con modelo de alcance: cada corrida postea exactamente lo que falta para que la depreciación acumulada sea la correcta a la fecha (DR gasto de depreciación / CR depreciación acumulada), idempotente por activo. |
| Propiedades | El auxiliar de la propiedad (renta, gastos, hipoteca) se lleva al mayor, de modo que el patrimonio neto y el P&L cuadran con el libro. |
| Préstamos | Desembolso: DR banco / CR préstamo por pagar. Pago: DR préstamo (capital) + DR gasto de interés + DR gastos / CR banco. |
| Arrendamientos | Reconocimiento del derecho de uso y su pasivo, y cada pago separado en capital e interés. |
| Capital de socios | Aportes y distribuciones al mayor (DR banco / CR capital; DR distribuciones / CR banco), solo posteriores al asiento de apertura para no duplicar la historia. |
| Paso | Qué hace |
|---|---|
| Entrada | Importas el estado de cuenta (CSV o PDF, lo lee la IA) o conectas el banco por Plaid — MyFinAI nunca toca tus credenciales. |
| Idempotencia | Cada movimiento trae una huella; reimportar el mismo estado no duplica nada. |
| Entendimiento | Un lector determinista separa comercio, canal, lugar, titular y referencia del descriptor bancario, y lo liga a la contraparte registrada (proveedor, cliente, consultor, empleado, miembro del hogar) con su historial. |
| Categorización | Regla del espacio o propuesta de IA; el humano confirma. |
| Asiento | DR/CR según la dirección del movimiento y su cuenta, con dimensiones (clase, ubicación, departamento) si están definidas. |
| Traslados | Entre cuentas propias se emparejan y postean como traslado, no como ingreso ni gasto. |
| Conciliación bancaria | Marcas lo que aparece en el estado, registras el saldo y la fecha del estado y concilias; cada cuenta muestra «conciliado hasta» y lo pendiente desde entonces. |
| Conciliación de auxiliares | Un reporte compara cuentas por cobrar contra las facturas abiertas, cuentas por pagar contra las cuentas abiertas, el inventario contra su valuación y cada banco contra su saldo, y marca cualquier diferencia mayor a un centavo. |
contado de su fecha — TRM oficial para el peso colombiano (Banco de la República / Superintendencia Financiera, serie pública) y tasas de referencia del BCE para las demás; entre dos monedas que no son el dólar, el cruce pasa por dólar. Nunca se aproxima: si falta la tasa, el documento queda marcado para revisión en vez de registrarse mal.
hasta siete días antes (si no, se busca la exacta — de lo contrario un recibo de julio tomaría la tasa de junio), y cada moneda tiene una banda de sensatez: una lectura fuera de banda se rechaza en vez de corromper los saldos.
la del día del pago va a ganancia o pérdida cambiaria (en un plan PUC, 421020 / 530525 — Decreto 2650 de 1993).
se propone en modo ensayo y se postea cuando el humano lo aprueba.
E.T. arts. 21-1 y 288 para el efecto fiscal; ASC 830-20-30-1 en Puerto Rico y Estados Unidos.
MyFinAI solo muestra —y solo permite— lo que aplica al espacio. La regla es única: Colombia es país CO o moneda COP; vacío se trata como Puerto Rico.
Puerto Rico. IVU por línea de factura al pasivo de impuesto sobre ventas; retención sobre servicios (Sec. 1062.03) al pagar → 2340; estimado de patente municipal y contribución sobre ingresos desde el mayor posteado; exportación 480.6 e IVU; borradores de 941, 499R-1B y W-2PR desde las corridas de nómina; póliza y declaración de nómina de la CFSE (Ley 45 de 1935) con su vencimiento del 15 de agosto.
Colombia. IVA (19%/5%/exento) con IVA descontable en compras; retención en la fuente, reteIVA y reteICA cada una a su cuenta; catálogo de 16 tributos con su código, base legal y cuenta del PUC; calendario e importación del reporte de documentos de la DIAN. La facturación electrónica con CUFE está modelada pero no transmite sin las credenciales y la resolución de numeración del cliente.
Remesa fiscal. Pagar el impuesto o la retención a la autoridad es su propio asiento (DR el pasivo fiscal / CR banco) y solo acepta un pasivo fiscal — no se puede «remesar» a un proveedor como si fuera impuesto. Cada tributo tiene su cuenta y su ley citada en el marco regulatorio que se mantiene junto al código (docs/regulatory-framework.md).
| Paso | Qué hace |
|---|---|
| Estado del cierre | Lista de verificación antes de cerrar: movimientos, facturas y cuentas sin postear a la fecha de corte, la diferencia de la balanza, el resultado del período y si el período ya está cerrado. |
| Cerrar | Postea lo pendiente y bloquea el período. Rehúsa cerrar si la balanza no cuadra, y avisa —dejándote forzar con criterio— si más del 5% de los movimientos del período están sin conciliar. Un asiento con fecha en o antes del bloqueo se rechaza; reversar un asiento de un período cerrado también. |
| Bloqueo de períodos | La fecha de bloqueo vive en la configuración del espacio y debe ser pasada (una fecha futura congelaría la operación). |
| Cierre de año | Traslada el resultado del ejercicio a resultados acumulados (patrimonio), con modo ensayo antes de postear, y mueve el bloqueo al 31 de diciembre sin retrocederlo nunca. |
restricción que se dispara al confirmar la transacción y rechaza cualquier asiento descuadrado, incluso si entrara por fuera del motor (una migración mala, una inserción directa, un error nuevo).
(hash = sha256(hash_anterior ‖ contenido)): alterar un registro rompe la cadena y se detecta. La verificación reporta por separado el encadenamiento (autoritativo) y la reproducción del contenido (indicativa, porque el formato JSON de la base no es reproducible byte a byte). La bitácora tiene revocado el permiso de actualizar y borrar a nivel de base de datos.
editan ni se borran: una corrección es un evento nuevo que apunta al anterior.
un segundo humano antes de postear, y quien lo retiene es la propia base de datos (un disparador marca el pago como pendiente al insertarlo), no solo la aplicación.
espacio activo; los agregadores de plataforma se sellan cuando el espacio activo es un demo.
lectura sobre datos reales: doble entrada por asiento y global, auxiliares contra el mayor, cada pago con su movimiento de banco y su retención, unicidad de identidad, horas con su llave al consultor, y moneda del documento con su tasa. Un fallo bloquea el despliegue; «0 casos» se reporta como vacío, nunca como aprobado.
invariantes (tenants ≥ 1, ΣDR − ΣCR = 0,00) antes de darlo por bueno.
| Salida | Dónde |
|---|---|
| Mayor y detalle de cada asiento | Contabilidad → Mayor (clic en el asiento abre sus líneas) |
| Balanza de comprobación (plan completo, solo lo posteado, con las cuentas en cero) | Contabilidad → Mayor (sello ✓ cuadrado) |
| Estado de resultados con período, comparable anterior, tendencia de 12 meses y márgenes | Estados |
| Balance y flujo de caja, este último por método directo e indirecto (el indirecto parte del resultado, suma la depreciación y los cambios en cobrar / inventario / pagar) | Estados |
| Estados en formato NIIF (Colombia): Estado de Situación Financiera (corriente / no corriente), Estado de Resultado Integral, Estado de Cambios en el Patrimonio y notas | Estados (espacios de Colombia) |
| P&L por dimensión (clase, ubicación, departamento, proyecto, fondo) y por rango de fechas | Reportes |
| Consolidado de varias empresas del grupo | Consolidación |
| Antigüedad de saldos: lo vencido por tramos y el siguiente paso de cobranza | Cobranza y Pagar (AP) |
| Impuestos: planillas, pasivos fiscales por cuenta (con su detalle por sujeto de retención) y estimados | Impuestos |
| Conciliación de auxiliares contra el mayor y exposición cambiaria | Conciliaciones e Impuestos |
| Documentos: factura en PDF, comprobante de pago, comprobante de ingreso, certificación de horas | En cada módulo, con la razón social y el logo del espacio |
| Exportaciones: estados en PDF y Excel, 480.6 / IVU (PR), lote bancario para dispersión, catálogo de impuestos CO, CSV de cualquier tabla | Estados, Impuestos y Pagar (AP) |
Toda tabla de la aplicación trae buscador, filtros, orden y totales del conjunto filtrado; cada tarjeta e indicador es navegable hasta el dato que lo sustenta.
Cónclave (orquesta), Lente (lee documentos), Libro (contabilidad), Espejo (conciliación), Cobro (cobranza), Mecenas (pagos), Salario (nómina), Fisco (impuestos), Caudal (flujo de caja), Guardián (anomalías), Norte (plan) y Mayor (cierre y auditoría).
Lo que sí hacen: leer, extraer, clasificar, emparejar, calcular, avisar y preparar la acción. Lo que nunca hacen: mover dinero, aprobar su propia propuesta, radicar ante una autoridad o alterar un asiento cerrado. Cada intervención queda en el registro de acciones con su valor y el tiempo ahorrado.
Lo que MyFinAI no hace hoy, dicho sin adornos:
CFSE, calendario DIAN); la radicación la hace una persona en el portal de la autoridad.
transmisión requiere las credenciales y la resolución de numeración del cliente.
contador o CPA valida y firma.
confirmación es siempre de una persona en la aplicación.
parafiscales completos; la exoneración para trabajadores de menos de 10 salarios mínimos requiere declarar el tipo de contribuyente y el salario mínimo del año — está en la lista de pendientes.
período, conciliación de auxiliares) todavía usan códigos fijos del plan genérico en vez de resolver la cuenta por nombre; en un plan PUC hay que revisar la cuenta antes de confirmar. Está identificado y en cola de generalización.
| Proceso | Módulo del código |
|---|---|
Motor de asientos, todos los post_*, revaluación, cierre de año | app/posting.py |
| Depreciación | app/depreciation.py |
| Moneda de libros y tasas | app/fx.py |
| Jurisdicción, calendario y pasivos fiscales | app/compliance.py |
| Catálogo de impuestos de Colombia | app/co_taxes.py |
| Lectura de documentos (facturas, recibos, comprobantes, timesheets) | app/felipe.py, app/ap_intake.py, app/expense_intake.py |
| Horas, tarifas y duplicados | app/hours_rates.py, app/hours_dupes.py |
| Contraparte del movimiento bancario | app/txn_parse.py, app/txn_enrich.py |
| Identidad única de personas y empresas | app/identity.py |
| Comprobantes y avisos en PDF | app/payments.py |
| Controles de aseguramiento | infra/assurance.py |
Para el detalle de cada norma citada —artículo, vigencia y enlace oficial— ve al marco regulatorio del repositorio (docs/regulatory-framework.md). Para el paso a paso de tu rol, abre tu manual en el Centro de documentación.