When to use the payment complement?
When you issue an invoice with payment method PPD (Installment or Deferred Payment), you are indicating that the client will pay later. For each payment you receive, you must issue a Payment Complement.If the client pays at the time of purchase, use PUE and you do not need a
payment complement.
Full flow
1
Issue the invoice with PPD
PaymentForm: "99" (to be defined) when you don’t yet know how the client will pay.2
The client makes the payment
Whether by transfer, check, card, etc.
3
Issue the Payment Complement
Create a CFDI of type
P related to the original invoice.- Do not include concepts or the
Itemsnode. - Do not include
PaymentMethod. - Do not include
PaymentForm. - Do not include
Currency. CfdiTypemust be"P"(Payment).- In the
Receivernode,CfdiUsemust be"CP01".
Issue the payment complement
Example using API Web.Full example
NameId: "14" sets the PDF name to “Complemento de pago”.
Payment complement elements
string
required
Date and time the beneficiary receives the payment.
string
required
Code of the form in which the payment is made.
string
required
Code of the currency used to make the payment, per the ISO 4217 specification.
number
Exchange rate of the currency on the date the payment was made. Conditional attribute: it is required when
Currency is other than MXN.number
required
Payment amount.
string
Check number, authorization number, reference number, SPEI tracking key, capture line, or any similar reference number that identifies the operation covering the payment.
Extra information
string
RFC of the entity issuing the source account: the operator, the bank, the financial institution, or the electronic wallet issuer. If the entity is foreign, register
XEXX010101000.string
Number of the account the payment was made from.
string
Number of the account where the payment was received.
string
Name of the originating bank.
string
RFC of the entity operating the destination account: the operator, the bank, the financial institution, or the electronic wallet issuer.
Payments in foreign currency
If the payment is in USD or another currency, useCurrency and include the exchange rate in ExchangeRate:
Related document elements
string
required
Required attribute that expresses the identifier of the document related to the payment.
number
required
Required attribute that expresses the installment number corresponding to the payment.
string
Optional attribute that specifies the voucher series for the taxpayer’s internal control.
string
Optional attribute that specifies the voucher folio for the taxpayer’s internal control.
string
required
Required attribute that identifies the currency code used in the amounts of the related document.
number
Conditional attribute that expresses the exchange rate for the currency registered in the related document. It is required when the currency of the related document differs from the payment currency.
number
required
Required attribute that expresses the outstanding balance of the previous installment.
number
required
Required attribute that expresses the amount paid for the related document.
number
required
Required attribute that expresses the difference between the previous balance and the payment amount.
string
required
Required attribute that expresses whether the payment of the related document is subject to tax.
object[]