Use this skill with your AI agent
Paste this skill into your AI agent's context, or save the file to your project. Works with any AI agent that reads markdown.
| 1 | --- |
| 2 | name: mx-return-assembly |
| 3 | description: > |
| 4 | Use this skill when assembling or reviewing a Mexican persona física annual tax return (declaración anual). Trigger on phrases like "declaración anual México", "ISR anual", "return assembly Mexico", "cross-check CFDI", "IVA reconciliation", "provisional vs annual", "RESICO annual", "AEP annual return", or any task involving the compilation, verification, or filing of a Mexican individual's annual income tax return. This skill orchestrates cross-checks between ISR, IVA, IMSS, and CFDI data. ALWAYS read this skill before assembling any Mexican annual return. |
| 5 | version: 1.0 |
| 6 | jurisdiction: MX |
| 7 | category: orchestrator |
| 8 | depends_on: |
| 9 | - mx-freelance-intake |
| 10 | verified_by: pending |
| 11 | --- |
| 12 | |
| 13 | # Mexico Return Assembly -- Orchestrator Skill v1.0 |
| 14 | |
| 15 | --- |
| 16 | |
| 17 | ## Section 1 -- Quick Reference |
| 18 | |
| 19 | | Field | Value | |
| 20 | |---|---| |
| 21 | | Country | Mexico (Estados Unidos Mexicanos) | |
| 22 | | Tax | ISR (Impuesto Sobre la Renta) -- Declaración Anual | |
| 23 | | Currency | MXN (Peso Mexicano) only | |
| 24 | | Tax year | Calendar year (1 January -- 31 December) | |
| 25 | | Primary legislation | Ley del Impuesto Sobre la Renta (LISR), Código Fiscal de la Federación (CFF) | |
| 26 | | Tax authority | Servicio de Administración Tributaria (SAT) | |
| 27 | | Filing portal | sat.gob.mx -- Declaraciones | |
| 28 | | Filing deadline | April 30 of following year (personas físicas) | |
| 29 | | Required credential | e.firma (FIEL) or Contraseña SAT | |
| 30 | | Validated by | Pending — requires sign-off by a Mexican Contador Público | |
| 31 | | Skill version | 1.0 | |
| 32 | |
| 33 | ### ISR Annual Table -- Actividad Empresarial y Profesional (Art. 152 LISR, 2025) |
| 34 | |
| 35 | | Lower Limit (MXN) | Upper Limit (MXN) | Fixed Quota (MXN) | Rate on Excess | |
| 36 | |---|---|---|---| |
| 37 | | 0.01 | 8,952.49 | 0.00 | 1.92% | |
| 38 | | 8,952.50 | 75,984.55 | 171.88 | 6.40% | |
| 39 | | 75,984.56 | 133,536.07 | 4,461.94 | 10.88% | |
| 40 | | 133,536.08 | 155,229.80 | 10,723.55 | 16.00% | |
| 41 | | 155,229.81 | 185,852.57 | 14,194.54 | 17.92% | |
| 42 | | 185,852.58 | 374,837.88 | 19,682.13 | 21.36% | |
| 43 | | 374,837.89 | 590,795.99 | 60,049.40 | 23.52% | |
| 44 | | 590,796.00 | 1,127,926.84 | 110,842.74 | 30.00% | |
| 45 | | 1,127,926.85 | 1,503,902.46 | 271,981.99 | 32.00% | |
| 46 | | 1,503,902.47 | 4,511,707.37 | 392,294.17 | 34.00% | |
| 47 | | 4,511,707.38 | En adelante | 1,414,947.85 | 35.00% | |
| 48 | |
| 49 | ### RESICO Annual ISR Table (Art. 113-E LISR) |
| 50 | |
| 51 | | Annual Income (MXN) | Rate | |
| 52 | |---|---| |
| 53 | | Up to $300,000 | 1.00% | |
| 54 | | Up to $600,000 | 1.10% | |
| 55 | | Up to $1,000,000 | 1.50% | |
| 56 | | Up to $2,500,000 | 2.00% | |
| 57 | | Up to $3,500,000 | 2.50% | |
| 58 | |
| 59 | --- |
| 60 | |
| 61 | ## Section 2 -- Assembly Workflow |
| 62 | |
| 63 | ### Phase 1: Data Gathering |
| 64 | |
| 65 | ``` |
| 66 | 1. Download CFDI emitidos (issued) from SAT portal -- full year XML set |
| 67 | 2. Download CFDI recibidos (received) from SAT portal -- full year XML set |
| 68 | 3. Obtain bank statements (all accounts, all institutions) |
| 69 | 4. Obtain acuses de declaraciones provisionales (ISR + IVA, all months) |
| 70 | 5. Obtain constancias de retenciones (employers, clients with retention, platforms) |
| 71 | 6. Obtain IMSS payment receipts (if voluntary or employer) |
| 72 | 7. Obtain prior year declaración anual (for comparison) |
| 73 | ``` |
| 74 | |
| 75 | ### Phase 2: CFDI Revenue Reconciliation |
| 76 | |
| 77 | | Step | Check | Action if Mismatch | |
| 78 | |---|---|---| |
| 79 | | 2.1 | Sum all CFDI emitidos (subtotal, before IVA) | This = gross revenue for ISR | |
| 80 | | 2.2 | Compare CFDI total vs bank deposits | Bank > CFDI = possible undeclared income | |
| 81 | | 2.3 | Verify método de pago (PUE vs PPD) | PPD: income = when complemento de pago issued | |
| 82 | | 2.4 | Check for cancelled CFDI (status = cancelado) | Exclude cancelled from totals | |
| 83 | | 2.5 | Verify RFC of all clients on CFDI | Flag any RFC genérico (XAXX010101000) > $50,000 | |
| 84 | | 2.6 | Cross-reference CFDI vs client payments | Identify unpaid invoices (for PPD accounting) | |
| 85 | |
| 86 | **RESICO Special Rule:** Income is recognised on cash basis (efectivamente cobrado). Only CFDI with confirmed payment count. PPD CFDI without complemento de pago = not yet income. |
| 87 | |
| 88 | **AEP Rule:** Income recognised on accrual basis (devengado) for general regime, OR cash basis if elected under Art. 196 CFF. Verify which method the client uses. |
| 89 | |
| 90 | ### Phase 3: CFDI Expense Reconciliation (AEP Only) |
| 91 | |
| 92 | | Step | Check | Action if Mismatch | |
| 93 | |---|---|---| |
| 94 | | 3.1 | Sum all CFDI recibidos (deductible expenses) | Verify each has valid RFC, correct régimen fiscal | |
| 95 | | 3.2 | Verify requisitos de deducibilidad (Art. 27 LISR) | Payment via banked method >$2,000 MXN | |
| 96 | | 3.3 | Check IVA on each CFDI recibido | IVA trasladado = IVA acreditable | |
| 97 | | 3.4 | Verify payment method | Cash payments >$2,000 = NOT deductible | |
| 98 | | 3.5 | Check timing | Expense must be in same fiscal year | |
| 99 | | 3.6 | Verify proportionality | If mixed use, apply proportion | |
| 100 | |
| 101 | **Deductibility Requirements (Art. 27 LISR):** |
| 102 | - Strictly indispensable for the business activity |
| 103 | - Backed by valid CFDI |
| 104 | - Paid by transfer, cheque, credit/debit card, or electronic wallet (>$2,000) |
| 105 | - Withholding obligations met (if applicable) |
| 106 | - Properly registered in accounting |
| 107 | |
| 108 | ### Phase 4: Provisional ISR vs Annual ISR Cross-Check |
| 109 | |
| 110 | | Step | Check | Expected Outcome | |
| 111 | |---|---|---| |
| 112 | | 4.1 | Sum all provisional ISR payments made | Total from acuses | |
| 113 | | 4.2 | Sum all ISR retained by clients (retenciones) | From constancias de retenciones | |
| 114 | | 4.3 | Calculate annual ISR liability | Using Art. 152 table (AEP) or Art. 113-E (RESICO) | |
| 115 | | 4.4 | Annual ISR - provisionals - retentions | = ISR a cargo (to pay) or ISR a favor (refund) | |
| 116 | | 4.5 | If saldo a favor > 30% of ISR annual | Flag -- high refund ratio triggers SAT review | |
| 117 | |
| 118 | **RESICO Cross-Check:** |
| 119 | - Annual ISR = total income × applicable RESICO rate |
| 120 | - Credit: sum of monthly provisional payments |
| 121 | - Credit: retenciones (1.25% retained by personas morales) |
| 122 | - Result = a cargo or a favor |
| 123 | |
| 124 | **AEP Cross-Check:** |
| 125 | - Annual ISR = progressive table on (revenue - deductions - personal deductions) |
| 126 | - Credit: provisional payments (Art. 106 method) |
| 127 | - Credit: retenciones |
| 128 | - Credit: estímulos fiscales (if applicable) |
| 129 | |
| 130 | ### Phase 5: IVA Monthly Reconciliation |
| 131 | |
| 132 | | Step | Check | Expected Outcome | |
| 133 | |---|---|---| |
| 134 | | 5.1 | IVA trasladado (charged to clients) | 16% × revenue (or 8% border, 0% applicable) | |
| 135 | | 5.2 | IVA acreditable (paid on expenses) | Sum IVA on deductible CFDI recibidos | |
| 136 | | 5.3 | IVA retenido (retained by clients) | From constancias de retenciones (2/3 IVA common) | |
| 137 | | 5.4 | Monthly: trasladado - acreditable - retenido | = IVA a cargo or a favor | |
| 138 | | 5.5 | Cross-check vs monthly declaraciones filed | Verify consistency | |
| 139 | | 5.6 | Annual IVA total | Should = sum of 12 monthly declarations | |
| 140 | |
| 141 | **Common IVA Retentions:** |
| 142 | - Persona moral paying persona física: retains 2/3 of IVA (Art. 1-A LIVA) |
| 143 | - Digital platform: retains 100% IVA |
| 144 | - Government entities: retain 100% IVA |
| 145 | |
| 146 | ### Phase 6: IMSS Cuotas Check |
| 147 | |
| 148 | | Item | Check | |
| 149 | |---|---| |
| 150 | | Voluntary (Modalidad 40) | Verify 12 monthly payments made | |
| 151 | | Employer (patrón) | Verify SUA/IDSE bimestral payments (6 periods) | |
| 152 | | Cuotas amount | Verify base declared × contribution rate | |
| 153 | | Deductibility | AEP: deductible as personal deduction (Art. 151-V). RESICO: NOT deductible. | |
| 154 | |
| 155 | ### Phase 7: Personal Deductions (AEP Annual Return) |
| 156 | |
| 157 | | Deduction (Art. 151 LISR) | Limit | Notes | |
| 158 | |---|---|---| |
| 159 | | Medical/dental/hospital expenses | No global limit per item | Must be for taxpayer, spouse, ascendants, descendants | |
| 160 | | Funeral expenses | 1 UMA anual ($41,273.52) | Per event | |
| 161 | | Donations | Up to 7% of prior year base (4% to gobierno) | Must be to donatarias autorizadas | |
| 162 | | Mortgage interest (real, vivienda) | Up to 750,000 UDIS of credit | Only habitual residence | |
| 163 | | Voluntary retirement savings (Afore/PPR) | 10% of income, max 5 UMA anuales ($206,367.60) | Deductible contribution to Plan Personal de Retiro | |
| 164 | | Health insurance premiums | No specific sub-limit | Complementary medical insurance | |
| 165 | | School transportation | Per child | Only if mandatory | |
| 166 | | Local taxes on property | Actual paid | Predial on property owned | |
| 167 | |
| 168 | **Global Personal Deduction Limit:** The lesser of 15% of total income OR 5 UMA anuales (MXN$206,367.60 for 2025). |
| 169 | |
| 170 | --- |
| 171 | |
| 172 | ## Section 3 -- Computation Engine |
| 173 | |
| 174 | ### RESICO Annual Computation |
| 175 | |
| 176 | ``` |
| 177 | A. Total CFDI emitidos efectivamente cobrados (excl. IVA) ___________ |
| 178 | B. Apply RESICO annual table rate ___________ |
| 179 | C. ISR del ejercicio (A × rate from table) ___________ |
| 180 | D. Less: Pagos provisionales ISR ___________ |
| 181 | E. Less: Retenciones ISR (1.25% from personas morales) ___________ |
| 182 | F. ISR a cargo / (a favor) = C - D - E ___________ |
| 183 | ``` |
| 184 | |
| 185 | ### AEP Annual Computation |
| 186 | |
| 187 | ``` |
| 188 | A. INGRESOS ACUMULABLES |
| 189 | A1. CFDI emitidos (net of IVA) ___________ |
| 190 | A2. Other income (interest, etc.) ___________ |
| 191 | A3. Total income ___________ |
| 192 | |
| 193 | B. DEDUCCIONES AUTORIZADAS |
| 194 | B1. Purchases and cost of sales ___________ |
| 195 | B2. Operating expenses (backed by CFDI) ___________ |
| 196 | B3. Depreciation (inversiones -- Art. 31--38 LISR) ___________ |
| 197 | B4. Insurance premiums ___________ |
| 198 | B5. Sueldos y salarios (employees) ___________ |
| 199 | B6. Cuotas IMSS patronales ___________ |
| 200 | B7. Total deducciones autorizadas ___________ |
| 201 | |
| 202 | C. UTILIDAD FISCAL (A3 - B7) ___________ |
| 203 | |
| 204 | D. PÉRDIDAS FISCALES DE EJERCICIOS ANTERIORES ___________ |
| 205 | |
| 206 | E. BASE GRAVABLE (C - D) ___________ |
| 207 | |
| 208 | F. DEDUCCIONES PERSONALES (Art. 151) ___________ |
| 209 | |
| 210 | G. BASE PARA TARIFA (E - F) ___________ |
| 211 | |
| 212 | H. ISR (apply Art. 152 table to G) ___________ |
| 213 | |
| 214 | I. Less: Subsidio para el empleo (if applicable) ___________ |
| 215 | J. Less: Pagos provisionales ___________ |
| 216 | K. Less: Retenciones ___________ |
| 217 | |
| 218 | L. ISR A CARGO / (A FAVOR) = H - I - J - K ___________ |
| 219 | ``` |
| 220 | |
| 221 | --- |
| 222 | |
| 223 | ## Section 4 -- Cross-Check Matrix |
| 224 | |
| 225 | | Cross-Check | Source A | Source B | Tolerance | Flag If | |
| 226 | |---|---|---|---|---| |
| 227 | | Revenue integrity | CFDI emitidos total | Bank deposits total | ±5% | Bank > CFDI by >5% | |
| 228 | | Expense backing | CFDI recibidos total | Declared deductions | Exact | Deduction without CFDI | |
| 229 | | IVA consistency | Monthly IVA filed | CFDI-derived IVA | Exact | Mismatch any month | |
| 230 | | Provisional ISR | Sum of acuses | SAT portal query | Exact | Missing month | |
| 231 | | Retentions | Constancias received | Annual pre-filled data | Exact | Amount differs | |
| 232 | | IMSS cuotas | SUA receipts | Declared personal deduction | Exact | Over-claimed | |
| 233 | | DIOT consistency | Monthly DIOT filed | CFDI recibidos | ±1% | Material difference | |
| 234 | |
| 235 | --- |
| 236 | |
| 237 | ## Section 5 -- Filing Procedure |
| 238 | |
| 239 | ### Pre-Filing Checklist |
| 240 | |
| 241 | ``` |
| 242 | [ ] All 12 provisional ISR declarations filed (or complementarias submitted) |
| 243 | [ ] All 12 IVA monthly declarations filed |
| 244 | [ ] All 12 DIOT submissions filed |
| 245 | [ ] All constancias de retenciones obtained |
| 246 | [ ] CFDI emitidos reconciled to bank |
| 247 | [ ] CFDI recibidos reconciled to expenses |
| 248 | [ ] Personal deductions verified with documentation |
| 249 | [ ] Prior year pérdidas fiscales confirmed (if carrying forward) |
| 250 | [ ] Opinión de cumplimiento 32D positive (recommended) |
| 251 | ``` |
| 252 | |
| 253 | ### Filing Steps (SAT Portal) |
| 254 | |
| 255 | 1. Log into sat.gob.mx with e.firma or Contraseña |
| 256 | 2. Navigate to Declaraciones > Anuales > Personas Físicas |
| 257 | 3. Select ejercicio fiscal |
| 258 | 4. SAT pre-fills income from CFDI and retentions -- VERIFY |
| 259 | 5. Enter deductions, personal deductions, other income |
| 260 | 6. System calculates ISR a cargo / a favor |
| 261 | 7. If a cargo: generate línea de captura (payment reference) |
| 262 | 8. If a favor: elect devolución (refund via CLABE) or compensación |
| 263 | 9. Sign with e.firma and submit |
| 264 | 10. Download acuse de recibo (proof of filing) |
| 265 | |
| 266 | ### Payment Options (ISR a Cargo) |
| 267 | |
| 268 | | Method | Deadline | Notes | |
| 269 | |---|---|---| |
| 270 | | Single payment | April 30 | Full amount, no surcharge | |
| 271 | | Pago en parcialidades | Within 30 days of filing | Up to 6 instalments; generates recargos | |
| 272 | | Línea de captura | Valid 5 business days | Generated at filing; must pay before expiry | |
| 273 | |
| 274 | ### Refund Process (ISR a Favor) |
| 275 | |
| 276 | | Amount | Process | Timeline | |
| 277 | |---|---|---| |
| 278 | | ≤MXN$150,000 | Automatic via Contraseña | 5--40 business days | |
| 279 | | >MXN$150,000 | Requires e.firma signature | 40 business days max (legal) | |
| 280 | | >MXN$500,000 | SAT may request additional documentation | Up to 90 days with audit | |
| 281 | | Refund not received | Verify CLABE matches RFC holder | Check estatus at sat.gob.mx | |
| 282 | |
| 283 | --- |
| 284 | |
| 285 | ## Section 6 -- Edge Cases |
| 286 | |
| 287 | ### Dual Régimen in Same Year (RESICO → AEP Transition) |
| 288 | |
| 289 | - If income exceeds $3.5M mid-year, recalculate entire year under AEP |
| 290 | - Credit all RESICO provisional payments against AEP annual liability |
| 291 | - File declaración complementaria for all provisional months |
| 292 | - Update Constancia de Situación Fiscal |
| 293 | |
| 294 | ### Multiple Income Chapters (Acumulación) |
| 295 | |
| 296 | When taxpayer has income from multiple chapters: |
| 297 | - Sueldos y salarios (Cap. I) + AEP (Cap. II): accumulate both in annual |
| 298 | - RESICO + Sueldos: RESICO is separate (no accumulation unless >$300,000 combined) |
| 299 | - Arrendamiento + AEP: both accumulate in annual declaration |
| 300 | - Apply progressive table to total accumulated base |
| 301 | |
| 302 | ### Pérdidas Fiscales (Tax Losses) |
| 303 | |
| 304 | - AEP losses carry forward up to 10 years (Art. 109 LISR) |
| 305 | - Update for inflation annually (factor de actualización) |
| 306 | - Cannot offset losses against RESICO income |
| 307 | - RESICO does NOT generate tax losses (no deductions allowed) |
| 308 | |
| 309 | ### Estímulos Fiscales (Tax Incentives) |
| 310 | |
| 311 | | Incentive | Article | Benefit | |
| 312 | |---|---|---| |
| 313 | | Technological research/development | Art. 202 LISR | 30% credit on R&D spending | |
| 314 | | Film/theatre production | Art. 189-190 LISR | Credit against ISR | |
| 315 | | Northern border region | Decree 2019 | ISR rate reduced to 20%; IVA 8% | |
| 316 | | Donations to trusts | Art. 151 LISR | 7% limit | |
| 317 | |
| 318 | --- |
| 319 | |
| 320 | ## Section 7 -- Red Flags and Audit Triggers |
| 321 | |
| 322 | | Indicator | SAT Risk Level | Action | |
| 323 | |---|---|---| |
| 324 | | Bank deposits > CFDI revenue by >20% | HIGH | Investigate -- potential discrepancia fiscal | |
| 325 | | ISR refund > 40% of annual liability | MEDIUM | Document thoroughly; expect SAT query | |
| 326 | | Zero CFDI for months with bank activity | HIGH | File complementarias or explain | |
| 327 | | CFDI to RFC genérico > $50,000 individual | MEDIUM | SAT flags for review | |
| 328 | | Provisional payments all in ceros despite income | HIGH | Immediate regularisation needed | |
| 329 | | Deductions > 60% of revenue | MEDIUM | Verify each deduction meets Art. 27 | |
| 330 | | Personal deductions near global limit | LOW | Normal -- just document properly | |
| 331 | | Year-over-year revenue drop > 50% | MEDIUM | SAT may compare to CFDI history | |
| 332 | |
| 333 | --- |
| 334 | |
| 335 | ## Section 8 -- Penalties Reference |
| 336 | |
| 337 | | Infraction | Penalty | Legal Basis | |
| 338 | |---|---|---| |
| 339 | | Late annual filing | MXN$1,810 -- $22,400 per requerimiento | CFF Art. 82 | |
| 340 | | Omitted income (discovered by SAT) | 55% -- 75% of omitted tax | CFF Art. 76 | |
| 341 | | Failure to issue CFDI | MXN$19,700 -- $112,650 per CFDI | CFF Art. 84 | |
| 342 | | Late payment (recargos) | CCP rate × 1.5 (approximately 1.47%/month in 2025) | CFF Art. 21 | |
| 343 | | False CFDI (operations simuladas) | 55% -- 75% + criminal liability | CFF Art. 69-B, 113 Bis | |
| 344 | | Failure to file DIOT | MXN$10,490 -- $20,970 | CFF Art. 81-82 | |
| 345 | |
| 346 | --- |
| 347 | |
| 348 | ## Section 9 -- Reference Material |
| 349 | |
| 350 | | Topic | Reference | |
| 351 | |---|---| |
| 352 | | ISR personas físicas | LISR Título IV | |
| 353 | | RESICO | LISR Art. 113-E to 113-J | |
| 354 | | AEP | LISR Título IV, Cap. II, Sección I | |
| 355 | | Annual progressive table | LISR Art. 152 | |
| 356 | | Deductibility requirements | LISR Art. 27, 28 | |
| 357 | | Personal deductions | LISR Art. 151 | |
| 358 | | Tax losses | LISR Art. 109, 110 | |
| 359 | | IVA | LIVA Art. 1--43 | |
| 360 | | CFDI | CFF Art. 29, 29-A; RMF 2.7.x | |
| 361 | | Penalties | CFF Art. 76--82 | |
| 362 | | Recargos | CFF Art. 21 | |
| 363 | | DIOT | LIVA Art. 32 | |
| 364 | | SAT portal | sat.gob.mx | |
| 365 | | RMF 2025 | Resolución Miscelánea Fiscal 2025 (DOF) | |
| 366 | |
| 367 | --- |
| 368 | |
| 369 | ## Disclaimer |
| 370 | |
| 371 | This skill and its outputs are provided for informational and computational purposes only and do not constitute tax, legal, or financial advice. Open Accountants and its contributors accept no liability for any errors, omissions, or outcomes arising from the use of this skill. All outputs must be reviewed and signed off by a qualified professional (such as a Contador Público Certificado, or equivalent licensed practitioner in your jurisdiction) before filing or acting upon. |
| 372 | |
| 373 | The most up-to-date, verified version of this skill is maintained at [openaccountants.com](https://openaccountants.com). Log in to access the latest version, request a professional review from a licensed accountant, and track updates as tax law changes. |
| 374 |
Run this skill, then get an accountant to check it
After running the full skill pack in your AI agent, sign up and upload your worksheet. We'll connect you with a trusted accountant in our network who can review your numbers before you file.
Verification status
Research-verified
Drafted from authoritative sources (tax authority sites, Big-4 summaries). Awaiting credentialed sign-off.
Needs section-by-section practitioner review to reach accountant-verified.
Section review progress
About
Use this skill when assembling or reviewing a Mexican persona física annual tax return (declaración anual). Trigger on phrases like "declaración anual México", "ISR anual", "return assembly Mexico", "cross-check CFDI", "IVA reconciliation", "provisional vs annual", "RESICO annual", "AEP annual return", or any task involving the compilation, verification, or filing of a Mexican individual's annual income tax return. This skill orchestrates cross-checks between ISR, IVA, IMSS, and CFDI data. ALWAYS read this skill before assembling any Mexican annual return.
Use this skill
This skill is open source and free to use in any AI agent. Copy it, download it, or clone the repo. If you find an error, report an issue — a licensed accountant will review.