Saltar al contenido

Cumplimiento fiscal

ServiWare siempre timbra PUE y nunca genera el complemento de pago

Por Eduardo Gallegos · Publicado el 20 de septiembre de 2026

Tablero de ServiWare con facturación CFDI 4.0 y cuentas por cobrar.

Este hallazgo corrige dos artículos previos de este mismo blog. En de la iguala a la factura: el flujo completo en ServiWare y en complemento de pago (REP): el plazo y la multa describimos el timbrado en pago en parcialidades o diferido (PPD) y la generación del complemento de pago (REP) como si ya funcionaran en el producto. Al verificarlo directamente en el código de ServiWare (repo medware-servicios) encontramos que no es así: el sistema siempre timbra en pago en una sola exhibición (PUE) y no existe ninguna función, en ningún punto del código, que genere un complemento de pago. Ya corregimos esos dos artículos; este documenta el hallazgo completo, con archivo y línea.

Lo que exige la Ley cuando el pago no llega completo al momento de facturar

El Código Fiscal de la Federación (CFF, texto vigente publicado por la Cámara de Diputados, última reforma DOF 09-04-2026) regula esto en el artículo 29-A, fracción VII, que fija dos rutas según cómo se cobre la operación:

"a) Cuando la contraprestación se pague en una sola exhibición, en el momento en que se expida el comprobante fiscal digital por Internet correspondiente a la operación de que se trate, se señalará expresamente dicha situación [...]

b) Cuando la contraprestación no se pague en una sola exhibición, o pagándose en una sola exhibición, ésta se realice de manera diferida del momento en que se emite el comprobante fiscal digital por Internet que ampara el valor total de la operación, se emitirá un comprobante fiscal digital por Internet por el valor total de la operación en el momento en que ésta se realice y se expedirá un comprobante fiscal digital por Internet por cada uno del resto de los pagos que se reciban [...], los cuales deberán señalar el folio del comprobante fiscal digital por Internet emitido por el total de la operación."

En términos simples: si el cliente paga completo al momento de facturar, la factura se marca como pago en una sola exhibición (PUE). Si el cliente va a pagar después —en abonos, o completo pero en una fecha posterior—, la factura debe marcarse como pago en parcialidades o diferido (PPD), y cada pago que se reciba después exige su propio comprobante adicional: el complemento de pago, conocido como REP (Recibo Electrónico de Pago) en el Anexo 20 del SAT.

Agenda una demo gratis

La sanción: infracción del art. 83, multa del art. 84, ambos del CFF

Emitir un comprobante que no cumple los requisitos del artículo 29-A —incluido el correcto método de pago de la fracción VII— cae en la infracción del artículo 83, fracción VII: "expedirlos sin que cumplan los requisitos señalados en este Código". El artículo 84, fracción IV, fija dos rangos de multa según el supuesto:

"a) De $22,300.00 a $127,530.00. En caso de reincidencia, las autoridades fiscales podrán, adicionalmente, clausurar preventivamente el establecimiento del contribuyente por un plazo de tres a quince días [...]

d) De $450.00 a $670.00 por cada comprobante fiscal que se emita y no cuente con los complementos que se determinen mediante las reglas de carácter general, que al efecto emita el Servicio de Administración Tributaria."

El inciso d) es el que aplica directamente al caso de un comprobante sin su complemento de pago; el inciso a) cubre el supuesto general de un CFDI que no cumple los requisitos de forma, incluido el método de pago mal marcado. Ambos montos están actualizados por resolución miscelánea fiscal, DOF 28-12-2025 —vigentes para 2026—.

ElementoQué dice la norma
Cuándo usar PUEArt. 29-A, fr. VII, inciso a), CFF — pago completo al momento de facturar
Cuándo usar PPD y generar el complemento de pagoArt. 29-A, fr. VII, inciso b), CFF — pago no recibido completo al momento, o diferido
Infracción por CFDI que no cumple los requisitosArt. 83, fracción VII, CFF
Multa general por comprobanteArt. 84, fr. IV, inciso a): $22,300.00 a $127,530.00, con posible clausura preventiva en reincidencia
Multa específica por comprobante sin el complemento exigidoArt. 84, fr. IV, inciso d): $450.00 a $670.00 por comprobante

Verificado en el código: PUE está fijo, y el complemento de pago no existe

Confirmamos el hallazgo directamente en el código de ServiWare (repo medware-servicios). Los tres puntos donde se crea una factura —manual, desde horas facturables de un proyecto, y desde una corrida de iguala— comparten el mismo esquema de validación, y los tres fijan el método de pago con el mismo valor por omisión: paymentMethod: z.string().max(3).default('PUE') (packages/shared/src/facturacion.ts:86, :98 y :110). No hay ninguna condición en el código que evalúe si el cliente pagará al momento o después para decidir entre PUE y PPD: siempre es PUE.

El adaptador que envía la factura al proveedor de timbrado (Facturama) confirma el mismo punto desde el otro extremo: construye el cuerpo de la petición con CfdiType: 'I' fijo (apps/services/facturacion/src/pac/facturama-cfdi-provider.ts:85) —"Ingreso", el tipo de comprobante normal— y en ningún punto de ese archivo, ni de ningún otro archivo del repositorio (búsqueda exhaustiva de "REP", "complemento de pago" y "CfdiType: 'P'"), existe código que arme y envíe un comprobante de tipo "P" —Pago—, que es el que corresponde al complemento de pago. Las dos únicas rutas que registran un cobro, markPaid() (invoices.service.ts:520) y confirmarCobroWebhook() (invoices.service.ts:643), sólo actualizan el estatus de la factura a "pagada" e insertan una fila en la tabla interna de pagos; ninguna de las dos llama al proveedor de timbrado para generar un comprobante adicional.

Esto no es un caso de "pago siempre completo al momento": el propio modelo de datos de ServiWare contempla lo contrario. La factura tiene un campo dueDate (fecha de vencimiento) y existe todo un módulo de cuentas por cobrar (Receivable, invoices.service.ts:683-755) con antigüedad de saldos ("1-30", "31-60", "60+" días) y recargo por atraso —funciones que sólo tienen sentido si, de hecho, muchas facturas se cobran después de emitidas. La única etiqueta para "PPD" que existe en todo el código está en un diccionario de traducciones de la interfaz (apps/web-admin/lib/labels.ts:210): un texto para mostrar, no una función que decida usarla.

Agenda una demo gratis

Qué corregimos, y qué sigue pendiente en el producto

Ya corregimos los dos artículos que describían el PPD y el complemento de pago como funcionalidad existente: de la iguala a la factura y complemento de pago (REP): el plazo y la multa ahora describen el estado real. Lo que sigue pendiente es en el producto: mientras ServiWare siempre timbre PUE y no genere el complemento de pago, cada despacho que use el sistema para facturar un cobro que en realidad llega después tiene que decidir el método de pago correcto y generar el REP por su cuenta, fuera del sistema, para cada pago que reciba. Puedes estimar la exposición de este hallazgo, con tus propios números, en la calculadora de exposición a multas por REP sin generar.

Preguntas frecuentes

¿ServiWare timbra en PPD cuando el cliente va a pagar después?
No hoy. Los tres puntos de creación de factura fijan el método de pago en PUE por omisión, y no hay ninguna lógica en el código que lo cambie a PPD según cómo vaya a pagar el cliente.

¿ServiWare genera el complemento de pago (REP) cuando se cobra una factura?
No. Ni el registro manual de un cobro ni la confirmación automática por webhook llaman al proveedor de timbrado para generar un comprobante adicional; sólo actualizan el estatus interno de la factura.

¿Esto aplica sólo a facturas por iguala, o también a las de proyecto?
A las tres formas de generar una factura en ServiWare: manual, desde horas facturables de un proyecto, y desde una corrida de iguala. Las tres comparten el mismo valor por omisión de PUE.

¿Cuál es la multa exacta?
El CFF prevé dos supuestos: de $450.00 a $670.00 por comprobante que se emite sin el complemento exigido (art. 84, fr. IV, inciso d), o de $22,300.00 a $127,530.00 en el supuesto general de un CFDI que no cumple los requisitos de forma (inciso a), con posible clausura preventiva de 3 a 15 días en reincidencia. El monto concreto dentro de cada rango lo determina la autoridad fiscal caso por caso.

Fuentes consultadas: Código Fiscal de la Federación, texto vigente publicado por la Cámara de Diputados del H. Congreso de la Unión, última reforma DOF 09-04-2026, artículos 29-A, 83 y 84. Montos de la multa del art. 84, fracción IV, actualizados por resolución miscelánea fiscal, DOF 28-12-2025. Este artículo es orientativo y no sustituye una revisión de tu caso por tu contador o asesor fiscal.

Ve el estado real de la facturación en tu propia demo

Te mostramos en vivo cómo ServiWare timbra hoy la factura y registra el cobro, y qué parte del complemento de pago todavía corre 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)