Overview
For Mexican CFDI,payment_method describes payment timing. payment_form
describes the payment instrument. Neither field is proof that money reached your account.
Payment Methods Table
PUE vs PPD: Key Differences
A CFDI’s fiscal status and a payment’s collection status belong to different records. An issued invoice can havestatus: "valid" before the customer pays. Do not require
invoice status to be paid, partial_payment, or pending_payment: those are not
the invoice completion states used by the documented recipes.
Read the payment record and, for a PPD invoice, the linked complements and remaining
balance. CFDI in five minutes explains the separate records.
What We See
The income-invoice request accepts exactlyPUE and PPD for payment_method.
Colombian issuers use those same API values with a different provider mapping;
this page explains Mexico. See Colombia for its compatibility rules.
How to Use It
For the ordinary already-paid sale, send the actual payment instrument withPUE.
For the ordinary unpaid sale, the tutorials use PPD with payment_form: "99".
These are worked cases, not a complete account of every fiscal exception. Consult the
SAT’s CFDI and payment-complement filling guides for the actual transaction.
Implementation Examples
PUE Invoice
Request fragment, placed at the top level of an income invoice or draft body:PPD Invoice
Request fragment, placed at the top level of an income invoice or draft body:invoice wrapper.
Business Scenarios
Payment Complement Requirements (PPD Only)
In the automatic PPD recipe,ppd_invoice_id is the original
income invoice’s SAT UUID. Payment registration can finish before the complement
stamps. Verify the linked complement UUID and parent invoice balance before marking
the fiscal task complete.
Do not also call Create payment complement for
the same payment when automatic complement handling was requested. Choose one flow.
Common Implementation Patterns
Save the income UUID, each actual payment ID, and each resulting complement UUID. Keep one stable duplicate key per payment. After an ambiguous response, look up the existing payment and complement before retrying; do not generate a fresh key.Important Considerations
A fiscal code does not collect money, change a customer’s payment terms, or establish a tax deduction. Select it from the transaction and applicable SAT guidance.PUE and PPD are timing codes, not payment-record or invoice-status enums.