Saltar al contenido

Cómo funciona

De la factura a la retención: qué falta en el flujo de ServiWare

Por Eduardo Gallegos · Publicado el 20 de septiembre de 2026

Este es un recorrido de producto, no el caso de ningún despacho real: describe qué pasa dentro de ServiWare cuando se timbra una factura de honorarios a un cliente persona moral, sin cifras inventadas ni un cliente en particular. La pregunta que resuelve es simple: si tu factura debería traer una retención de ISR y de IVA, ¿el sistema la calcula sola, o la tienes que restar tú a mano después de que el dinero ya llegó?

Esquema del recorrido · ilustración, no es una pantalla del sistema

  1. 1. Se arma la facturaEl proyecto o la iguala acumula horas y gastos; de ahí sale un borrador con los renglones a facturar.
  2. 2. Se timbra el CFDIServiWare calcula el IVA trasladado (16%) por renglón y lo envía al PAC. El régimen fiscal del receptor se captura y se copia al comprobante.
  3. 3. El cliente pagaSi el cliente retiene ISR e IVA (cuando le corresponde), lo que deposita es menor al total de la factura.
  4. 4. ¿Y la retención?El CFDI nunca mostró ninguna retención, y el sistema tampoco registró que se esperaba una: el despacho tiene que reconciliar la diferencia a mano.

1. El timbrado, verificado en el código

En medware-servicios, el adaptador que timbra ante el PAC (facturama-cfdi-provider.ts) arma cada concepto de la factura con un solo impuesto: { Name: 'IVA', Rate: input.taxRate, ..., IsRetention: false }. El valor IsRetention: false está escrito directamente en el código, no como una opción que alguien desactivó: no existe ningún camino en el sistema que produzca una retención, sea de ISR o de IVA.

Agenda una demo gratis

2. El régimen del cliente se guarda, pero no se usa

Al construir el comprobante, ServiWare sí captura y envía el régimen fiscal del receptor (receiverFiscalRegime) — es un dato obligatorio de cualquier CFDI 4.0. Pero ese dato viaja únicamente hacia el nodo Receiver del comprobante: en ningún punto del código se compara contra el régimen del propio despacho para decidir si, entre un emisor persona física y un receptor persona moral, corresponde aplicar una retención. El dato está, la decisión no.

3. El total de la factura tampoco tiene concepto de retención

El cálculo interno de totales (computeInvoiceTotals, en packages/shared/src/facturacion.ts) sólo conoce dos números por factura: el subtotal y el IVA trasladado, sumados. No hay un campo para ISR retenido ni para IVA retenido en el modelo de datos de la factura — no es que el cálculo esté mal, es que ese concepto simplemente no existe todavía en la estructura que arma cada comprobante.

4. Lo que esto le cuesta al despacho

El resultado práctico son dos costos, no uno. El primero es de conciliación: cuando el cliente retiene por su cuenta (porque la ley lo obliga, con o sin aviso en la factura), lo que llega a la cuenta del despacho es menor a lo que dice el CFDI, y hoy nadie en el sistema explica esa diferencia — se investiga a mano, factura por factura. El segundo es de simplificación perdida: el art. 106 de la Ley del ISR permite que la propia factura del despacho, si trae la retención señalada, sustituya el comprobante de retención que en otro caso tendría que emitir el cliente por separado. Sin ese dato en el CFDI, el despacho no puede ofrecerle esa comodidad a sus propios clientes.

Preguntas frecuentes

¿ServiWare calcula la retención de ISR o IVA hoy?
No. El proveedor de timbrado marca cada impuesto como no-retención (IsRetention: false) y no hay ningún camino en el código que agregue un renglón de retención al CFDI.

¿El sistema sabe si mi cliente es persona moral?
Captura su régimen fiscal como dato obligatorio del CFDI, pero hoy no lo usa para decidir si corresponde una retención.

¿Dónde queda la diferencia entre lo facturado y lo que deposita el cliente?
En ningún lado dentro del sistema: se concilia manualmente fuera de ServiWare.

Fundamento legal completo en retención de ISR e IVA por honorarios: la casilla que tu CFDI nunca marca.

Ve el flujo completo en una demo

Te mostramos cómo timbra ServiWare hoy y qué parte de la reconciliación por retenciones todavía vive fuera del sistema.

Agenda una demo gratis
Agendar 30 min
Contacta a un especialista
Ventas y Proyectos (abre en una ventana nueva) Soporte Técnico (abre en una ventana nueva)