CFDI40105

El campo FormaPago no contiene el valor "99" (…, MetodoPago PPD).

In English With MetodoPago PPD (paid in instalments or later), FormaPago must be 99 (to be defined): the actual payments go in payment receipts.

error: the document is invalid

Why it fails

  • The invoice is paid later, but the software fills FormaPago with the form the customer usually pays with (03, transfer).

How to fix it

Give FormaPago 99 with PPD, and issue a payment receipt (Pagos 2.0) with the real form when the money arrives; or use PUE if the invoice is paid when issued.

What the rule checks

As the rule set's publisher wrote it. The rule runs on every element the context matches, and fails where the test is false; the validator reports the line of that element.

Context
/cfdi:Comprobante
Test
not(@MetodoPago = 'PPD') or not(@FormaPago) or @FormaPago = '99'

Checked with CFDI 4.0