
What is a PAC in Mexico and why you need one
July 19, 2026
Every e-invoice in Mexico is certified before it becomes valid. The certifier is a PAC (Proveedor Autorizado de Certificación, a SAT-authorized provider that stamps CFDIs) or, when you invoice from the free portal of the SAT (Mexico's tax authority, Servicio de Administración Tributaria), the SAT itself. No invoice skips that step, from the corner store's invoice to the million CFDIs (Mexico's electronic invoices) a retailer issues every month. And yet most people who invoice every day couldn't answer "what is a PAC in Mexico?" or explain exactly what it does with their invoices. If you're integrating invoicing into a system, that conceptual gap costs you. Understanding the PAC's role is understanding why stamping (the certification by a SAT-authorized provider that makes a CFDI valid) fails when it fails.
What is a PAC in Mexico
A PAC is an authorized certification provider: a private company that the SAT authorizes to validate and certify CFDIs in Mexico. When you issue an invoice, the PAC checks that the XML meets Anexo 20 (the SAT technical standard that defines the CFDI: its XML structure, catalogs, and validation rules). Then it assigns the invoice's UUID (folio fiscal, the unique ID the PAC assigns when it stamps a CFDI), seals it with its own certificate, and reports the CFDI to the SAT. That process is stamping.
Here's the part that surprises people: outside its free portal, the SAT doesn't stamp invoices. It has delegated that job to PACs since 2011, when the volume of invoices made it impossible for the authority to validate everything directly. The SAT authorizes, audits, and can revoke PACs, but a private company certifies every CFDI your system issues.
What a PAC does when it stamps your invoice
Stamping takes milliseconds, but several things happen inside it, in strict order. The PAC validates the XML structure against Anexo 20. It verifies your digital seal, the signature generated with your CSD (Certificado de Sello Digital, the digital seal certificate used to sign CFDIs). It confirms that the catalog keys exist and are consistent with each other. Then it assigns the UUID, adds the TimbreFiscalDigital node with its own seal, and sends a copy of the certified CFDI to the SAT.
If any of those checks fails, the PAC rejects the stamping with an error code. That's why "the PAC rejected my invoice" is almost never the PAC's fault: it's the messenger for a SAT rule your XML didn't meet. The full technical detail of the process is in the CFDI stamping guide.
The PAC is required to deliver the certified CFDI to the SAT and to keep evidence. When the SAT portal "can't find" a newly stamped invoice, it's almost always the sync lag between the PAC and the SAT (minutes or hours), not an invalid invoice.
PAC, SAT, and your system: who does what
The full e-invoicing chain in Mexico has three actors, and their roles don't overlap:
| Actor | Role | What it doesn't do |
|---|---|---|
| Your system | Generates the CFDI and seals it with your CSD | Doesn't assign the UUID or certify the CFDI |
| The PAC | Validates, assigns the UUID, stamps, and reports to the SAT | Doesn't fix your data or generate your XML |
| The SAT | Authorizes PACs, receives CFDIs, publishes their status | Doesn't stamp the CFDIs your system issues |
This split explains a common misunderstanding: canceling an invoice isn't a procedure "with the PAC." Cancellation is a request filed with the SAT (even if your provider handles it for you), and the CFDI's final status lives at the SAT, not at the PAC that stamped it.
Do I need a direct contract with a PAC?
It depends on what you're building. Contracting with a PAC directly means meeting its integration requirements: implementing the full Anexo 20 standard, building the XML, sealing it, handling the validation error codes, and keeping your implementation current with every change to the Resolución Miscelánea Fiscal (the SAT's annual tax rules). It's the right path for companies that invoice enormous volumes and have a team dedicated to maintaining tax-compliance code.
For everyone else, there's a middle layer: platforms that run on authorized PACs and expose invoicing as a high-level API. That's where Fiscalapi fits. Your system sends JSON, and the platform builds the XML, validates it, handles sealing with your CSD, and stamps it through an authorized PAC under SAT regulations. The tax result is identical (a certified CFDI, fully valid for tax purposes); the difference is how many months of development it takes to get there. You can compare the scope on the CFDI invoicing API page or go straight to the technical documentation.
The key question for deciding: do you want to build and maintain an invoicing engine, or do you want your product to invoice? If it's the second, integrate an API and keep your team on your product. The SAT standard changes several times a year, and that maintenance doesn't set your business apart.
How to choose a PAC or invoicing platform
The criteria that matter in production, in order of how much it hurts when they're missing:
Proven uptime. Stamping is the final step of your sale: if the service goes down, your operation stops. Look for published uptime numbers and a real-time status channel, not brochure promises.
Useful error handling. The difference between a bare "CFDI40108" error and one that tells you which field failed and why is hours of debugging per incident. Evaluate the quality of the error messages before you sign, not after.
A serious test environment. You need to stamp hundreds of test cases at no cost before you go to production. Cover CFDI types (the TipoDeComprobante key: I income, the regular sales invoice; E credit note; T transfer, moves goods without a sale; N payroll; P payment), complements (complementos, XML extensions the SAT defines for specific operations), cancellations, and deliberately triggered errors. A test environment identical to production is the minimum requirement, not a luxury.
Support for your complements. Carta Porte (the CFDI complement that documents the transport of goods in Mexico), Comercio Exterior (the CFDI foreign trade complement for exports), payroll: if your operation needs them, check that they're supported natively and not "on the roadmap."
The SAT publishes the official list of currently authorized PACs on its portal (sat.gob.mx); any serious provider can show you which authorized PAC it works with.