Skip to content

Guide

PPD invoices with no payment complement: finding them before you close

How to spot, among hundreds of XML files, which instalment invoices were left without their payment complement.

Published August 26, 2026 · Updated September 1, 2026

The short answer

An invoice marked PPD needs a payment complement (REP) for every instalment it receives. When one is missing, the receipt is incomplete for deducting the expense and for crediting VAT. You find them by crossing each PPD invoice's UUID against the IdDocumento field of every complement you have.

The cross-check takes a minute to understand. What costs you is running it over six hundred XML files from twelve clients, when the payment for a March invoice arrived in July and got filed in another folder.

Below is the manual cross-check, with Power Query and with validators, and where each one gets stuck. At the end we say where Wurz comes in; the manual method works without it.

Why it matters

A PPD invoice without its REP isn't a filing detail

When payment is deferred or split into installments, the issuer marks the invoice as PPD (pago en parcialidades o diferido) and takes on an extra duty: stamping a separate CFDI for every payment received, the payment receipt complement, or REP. That complement references the original invoice's tax folio and records how much was paid. Without that reference, for the SAT —Mexico's tax authority— the invoice is still open.

The general deduction rule asks for a complete tax receipt, and in a PPD invoice the REP is part of what completes it: it's the piece that proves the payment happened. Crediting the VAT on that invoice sits in the same place.

There is a deadline to stamp it. You won't find it in this guide, because it changes with every Resolución Miscelánea Fiscal and a stale figure here would hurt you more than the gap does: check the rule in force for the year you're closing. What doesn't move is the order. The money comes in first, the REP is stamped after.

None of this is unusual: it's how CFDI works with deferred payments. What turns it into a problem is scale. A firm doesn't review one PPD invoice, it reviews the ones from every client across several months, and a payment can land in a different period from the invoice, or in a different folder from the one you're closing. Finding by hand which ones never got their complement is tedious before it's hard, and tedious is where a file slips past you.

By hand

How they're found today, and where each path gets stuck

If your firm already solved this with a macro of its own that works, this part tells you nothing new: skip straight down to the questions.

There are two paths, and neither is a tool that takes a folder and hands back the list. The first one you build yourself in Excel. The second, CFDI validators, answers a different question.

01

Cross-checking the UUID against IdDocumento in Excel

The logic is crossing two lists: the UUIDs of the invoices marked as PPD, and the UUIDs each payment complement references in its IdDocumento field. Any UUID of a PPD invoice that never shows up as an IdDocumento in a REP is an invoice with no complement.

Steps

  1. Pull the data from inside the XML, not from the file name: from each invoice you want the UUID, the payment method (PUE or PPD), the total, and the date.
  2. Do the same with the payment complements: from each REP you want the IdDocumento it references and the amount paid.
  3. Power Query reads XML by folder, and that's enough to build both tables. A script that walks the files and dumps the fields into a sheet does the same.
  4. Cross the two lists and add up the amounts per UUID. What never shows up, and what shows up without covering the invoice total, is what's still open.

Where it gets stuck

  • Power Query with nested XML doesn't come together in five minutes, and the CFDI 4.0 namespaces break the import when the query isn't set up right.
  • The payment can arrive in a different month from the invoice, sometimes the following year. If you only cross the folder for the period you're closing, you'll flag as pending an invoice whose REP is filed somewhere else.
  • A PPD invoice takes several complements, one per installment, and stays open until they add up to the total. Counting whether at least one REP exists isn't enough: you have to add up amounts.
  • With hundreds of files per client, a half-exported UUID breaks the cross-check silently. The error doesn't show until the SAT notices it.
02

Online CFDI validators

Validators, the SAT's own and third-party ones, confirm that an XML is well-formed and stamped: valid tax folio, correct seal, valid structure. They answer "is this receipt valid?", which is a different question from "does this PPD invoice have its complement?".

Steps

  1. Use them for what they're for: checking the XML that just arrived and that you have doubts about.

Where it gets stuck

  • They work one file at a time. None of them takes a client folder and hands you back the list of PPD invoices with no complement.
  • Even if one validated a thousand files at once, you'd still be building the invoice-to-complement cross-check yourself.

So they don't get mixed up

PUE and PPD, how they differ

The payment-method mark decides whether the invoice needs anything else after it's stamped. PUE means payment in a single instalment: it's settled on issue and the paperwork ends there. PPD means payment in instalments or deferred: the money arrives later, and each instalment drags its own complement behind it.

Differences between a PUE invoice and a PPD invoice
CriterionPUEPPD
When it's paidAt the moment the invoice is issued, in one goLater, in one or several installments
Which CFDIs are neededThe invoice aloneThe invoice plus a payment complement for each installment received
When it closesWhen the invoice is stampedWhen the complements add up to the invoice total
What you check at closingThat the receipt exists and is validThat, and that no complement is missing

Whoever issued the invoice chose the mark, and it's that mark that triggers the duty to issue the complement. If something went out as PPD and ended up paid in one go, the REP is still needed: a stamped CFDI isn't edited, it's cancelled and issued again.

When the cross-check outgrows a spreadsheet

Where Wurz comes in

With few clients and few PPD invoices a month, the Excel cross-check is workable and you need nothing else. The problem shows up with volume: every new client is more XML, more folders, and more months in which the payment could have landed.

You ask Wurz, about one client's documents and one period, which PPD invoices have no payment complement. The answer comes with its citation: which XML it is and the exact excerpt each figure came from, so you check it against the original before it goes into your closing.

And the point a firm doesn't negotiate: documents aren't handed over to Wurz for it to keep. They keep living in your Drive, your Dropbox, or your OneDrive.

What Wurz does not do, so there's no confusion: it doesn't stamp invoices, it doesn't post entries, it doesn't file returns, and it doesn't interpret the law. It finds and cites what your documents already say; what to do with that list is your call. There's a free plan to try it with real XML files.

If you'd rather have the result already assembled as a repeatable working paper, instead of a one-off question, the full catalogue is here: the commands and their working papers.

Common questions

What people ask most about this

What happens if a PPD invoice never gets its payment complement?

The receipt stays incomplete for deducting the expense and for crediting VAT: the general rule asks for a complete tax receipt, and in a PPD invoice that includes the REP proving the payment. Without it, the expense and the VAT on that invoice are exposed to being rejected by the SAT, Mexico's tax authority, in an audit.

What's the difference between a PUE and a PPD invoice?

PUE means payment in a single instalment: the invoice is settled when it's issued and needs no further receipt. PPD means payment in instalments or deferred: the money arrives later, in one or several payments, and each one needs its own payment complement (REP) referencing the original invoice's tax folio.

Can I deduct a PPD invoice without the payment complement?

Under the general rule, no: the receipt isn't complete without the REP backing the payment. Always check the rule in force for your case, because the criteria change with the current resolution.

How long do I have to issue the payment complement?

There is a deadline, but it changes with every Resolución Miscelánea Fiscal, so check the rule in force instead of trusting a date you read somewhere else. What doesn't change is the order: the REP is stamped after the payment is received, never before.

How do I find PPD invoices with no payment complement without opening every XML?

By crossing each PPD invoice's UUID against the IdDocumento field of every payment complement you have, and adding up amounts when there are several partial payments. By hand, in Excel, it works at low volume. With hundreds of XML files per client and several months in between, tools like Wurz let you ask for it directly and get the list with each document's citation.

Try it with your real documents

Upload a handful of receipts from your most demanding client and ask the question that normally takes you half an hour. That's how you'll know if it's worth it.

No credit card. Nothing to install.