The 10 Most Common CFDI Errors and How to Fix Them
The guide every accountant and business in Mexico needs. Learn to identify, understand, and fix the errors SAT rejects.
The 10 most common CFDI 4.0 errors
Based on thousands of real validations processed by ALCE Fiscal.
Invalid digital seal
SAT rejects the CFDI because the issuer's seal doesn't match the certificate or the original chain was altered after stamping.
Solution: Verify the CSD is current and no system modified the XML after stamping. Re-stamp if necessary.
Arithmetic errors in subtotal and total
The sum of line items doesn't match SubTotal, or Total doesn't equal SubTotal + Taxes - Discounts.
Solution: Recalculate with 6 decimals before rounding to 2. ALCE Fiscal fixes this automatically and generates the corrected XML.
Invalid receiver RFC
The RFC doesn't exist in SAT's registry, or the name and zip code don't match the Tax Status Certificate.
Solution: Request the updated Tax Status Certificate from the receiver and verify all 3 fields: RFC, name, and zip code.
UsoCFDI incompatible with tax regime
The selected CFDI usage isn't allowed for the receiver's tax regime according to SAT's catalog.
Solution: Check SAT's c_UsoCFDI catalog. G03 (General expenses) is the most versatile and rarely causes rejection.
Currency and exchange rate error
A foreign currency was used without exchange rate, or the exchange rate exceeds the allowed DOF variation.
Solution: MXN requires no exchange rate. For USD/EUR, use the DOF exchange rate from the day before issuance.
Payment complement 2.0 errors
Missing TrasladosDR node, partial payments don't match previous payments, or EquivalenciaDR is incorrect.
Solution: Verify each DoctoRelacionado has its DR taxes calculated proportionally to the amount paid.
Payroll CFDI errors
Total perceptions don't match the sum of line items, or ISR deductions exceed SAT's tables.
Solution: Recalculate using current Annex 8 tables. Verify TotalPercepciones = TotalSueldos + TotalExento.
CFDI cancelled without replacement
An income CFDI was cancelled without issuing a replacement, or the cancellation reason is incorrect.
Solution: Use reason '01' with the replacement UUID. For cancellations without replacement, use '02' only when applicable.
Credit note without proper relation
The expense CFDI has no CfdiRelacionado or references an invalid/cancelled UUID.
Solution: Relate with TipoRelacion '01' (Credit note) and verify the original CFDI's UUID is active.
Incorrect EquivalenciaDR in payments
In payments with currency different from the document, EquivalenciaDR doesn't reflect the correct exchange rate.
Solution: EquivalenciaDR = exchange rate of document currency to payment currency. Maximum 10 decimals.
Want to detect these errors automatically?
ALCE Fiscal validates your CFDI in seconds and explains each error in plain language.
Validate my CFDI for free