Full width home advertisement

Facturacion CFDi

CFDi en Java

Post Page Advertisement [Top]

 

Codigo fuente Complemento de pago Cfdi PHP  Mysql 

 

El Complemento de Pago CFDI 4.0 es uno de los puntos donde más proyectos de facturación fallan.
 

No porque sea imposible, sino porque:

  • la guía del SAT es extensa y poco clara

  • mezcla conceptos fiscales con técnicos

  • muchos ejemplos están incompletos

  • y casi nadie explica el flujo completo, desde la base de datos hasta la cancelación

Si eres desarrollador y estás construyendo tu propio sistema de facturación en PHP y MySQL, este artículo está pensado para ti.

 

CODIGO FUENTE PHP COMPLEMETO DE PAGO CFDI

 


El problema real: no es el XML, es la lógica

Uno de los errores más comunes es pensar que el complemento de pago es solo:

“otro XML que se timbra”

En realidad, el complemento de pago es un registro financiero, no solo fiscal.

Debe reflejar exactamente:

  • cuánto se debía

  • cuánto se pagó

  • cuándo se pagó

  • cuánto quedó pendiente

  • y en qué parcialidad va la factura

Si la lógica interna no es correcta, el XML nunca va a cuadrar, aunque esté bien formado.


¿Cuándo se debe usar un Complemento de Pago?

El complemento de pago se usa únicamente cuando la factura se emitió con:

  • Método de pago: PPD (Pago en Parcialidades o Diferido)

Cada pago posterior:

  • parcial o total

  • en una fecha distinta a la emisión

obliga a generar un complemento de pago.

Si la factura es PUE, no aplica.


La importancia de la base de datos

Antes de pensar en timbrar, necesitas una estructura clara en tu base de datos.

Un buen diseño separa claramente:

  • Facturas

  • Complementos de pago

  • Pagos aplicados a facturas

Cada pago debe existir como registro independiente, incluso si:

  • varios pagos se incluyen en un mismo complemento

  • una factura tiene muchas parcialidades

Esto permite:

  • controlar saldos correctamente

  • cancelar pagos sin perder historial

  • cumplir reglas del SAT sin trucos


Parcialidades: el detalle que casi todos ignoran

El SAT exige que cada pago indique su número de parcialidad.

Este número:

  • no es opcional

  • no es aleatorio

  • no se reinicia

Debe ser:

el número consecutivo de pagos que ya tiene la factura

Si una factura ya tuvo dos pagos, el siguiente siempre será el tercero.

Este detalle es una de las principales causas de rechazo del CFDI.


Manejo correcto de impuestos en el complemento

Aquí está uno de los puntos más delicados.

En los documentos relacionados

Se pueden desglosar:

  • impuestos trasladados

  • impuestos retenidos

  • con base, tasa y tipo factor

Pero en el nodo de Totales del complemento…

⚠️ NO se repite ese desglose

El SAT solo permite totales específicos, como:

  • total de retenciones por tipo de impuesto

  • totales de IVA trasladado por tasa

  • bases exentas

Nada más.

Si envías:

  • tablas detalladas

  • mezclas de tasas

  • campos no permitidos

el complemento será rechazado.


Cancelar un complemento de pago: más que un UUID

Cancelar un complemento no es solo una llamada al PAC.

Internamente debes:

  1. Marcar el complemento como cancelado

  2. Marcar los pagos asociados como cancelados

  3. Revertir los montos en la factura:

    • restar lo pagado

    • aumentar nuevamente la deuda

  4. Si la factura tenía deuda cero y vuelve a tener saldo, marcarla como no pagada

Nunca se deben borrar registros.
El SAT exige historial completo y consistente.


Reglas del SAT que debes respetar sí o sí

Algunas reglas clave que suelen pasarse por alto:

  • No se cancela la factura original, se cancela el complemento

  • Un complemento cancelado invalida los pagos registrados

  • Los montos deben cuadrar exactamente con la factura

  • Los totales deben estar redondeados correctamente

  • El tipo de cambio aplica incluso si es 1

Ignorar una sola regla puede causar rechazo o inconsistencias fiscales.


¿Por qué muchos desarrolladores se frustran?

Porque intentan:

  • implementar el complemento “rápido”

  • copiar ejemplos incompletos

  • resolver errores solo cuando el SAT rechaza

El complemento de pago no se improvisa, se diseña.

Una vez que entiendes la lógica completa:

  • el timbrado deja de ser un problema

  • los errores desaparecen

  • y el sistema escala sin dolores de cabeza


Conclusión

El Complemento de Pago CFDI 4.0 no es complicado, pero sí es estricto.

Si:

  • separas bien los datos

  • respetas las reglas del SAT

  • y piensas primero en la lógica financiera

puedes implementarlo correctamente en PHP y MySQL sin depender de soluciones cerradas.

Y lo mejor:

una vez bien hecho, ya no tienes que tocarlo otra vez. 

 

Codigo fuente Complemento de pago Cfdi PHP  Mysql 

No hay comentarios:

Publicar un comentario

Bottom Ad [Post Page]

| Designed by Colorlib