Timbra CFDI 4.0 desde tu código o desde tu agente
La infraestructura de facturación detrás de CFDI Express, ahora como API para la era de los agentes. Facturas PUE, PPD y globales, complementos de pago, cancelaciones y PDF del SAT — con convenciones estilo Stripe para tu backend, una skill para que tu agente escriba la integración y un servidor MCP para que facture solo. Sandbox gratis.
$ npx skills add CFDI-Express/skillsLa skill oficial para Claude Code, Cursor, Codex y OpenCode.
Skill para agentes · Referencia de la API · Docs interactivas · Agendar una demo
# Timbra una factura PUE $ curl https://api.cfdi.express/v1/invoices \ -H "Authorization: Bearer sk_test_…" \ -H "Idempotency-Key: orden-1042" \ -d '{ "merchantId": "mer_…", "receptor": { "rfc": "XAXX010101000", … }, "conceptos": [ … ] }' # ← 201 Created { "id": "inv_9f2…", "status": "stamped", "uuid": "A1B2C3…", "pdfUrl": "https://…", "xmlUrl": "https://…" }
Todo el ciclo de vida del CFDI, en una API
De la emisión a la cancelación. Sin portales, sin Excel, sin calcular impuestos a mano.
Facturas PUE, PPD y Globales
Timbrado CFDI 4.0 nominativo y global (público en general) con las reglas del SAT validadas del lado del servidor. Motor de impuestos incluido: tú no calculas nada.
Complementos de Pago REP
Pagos 2.0 con numParcialidad y saldos calculados en servidor. Sobrepagos, pagos fuera de secuencia y facturas liquidadas se rechazan solos.
Cancelaciones con Acuse
Motivos 01–04, folioSustitucion cuando aplica y el acuse XML del SAT guardado con URL firmada. Cancelar un REP restaura el saldo de la factura.
PDF y XML Propios
PDF Anexo 20 con QR, sellos y cadena original, generado por nosotros. XML, PDF y ZIP servidos como URLs firmadas de 15 minutos.
Catálogos SAT Locales
52,513 claves de producto (con sinónimos), 2,418 unidades, usos CFDI, regímenes fiscales y formas de pago. Sin lookups externos.
Multi-CSD y Multi-RFC
Varios emisores por cuenta, cada uno con su CSD validado (vigencia, llave↔cert, RFC) y encriptado con AES-256-GCM. Todos activos a la vez.
Idempotencia Real
Idempotency-Key persistente por cuenta y modo: un replay devuelve la respuesta original, duplicados concurrentes reciben 409 y misma llave con otro body, 422.
Skill Oficial para Agentes
npx skills add CFDI-Express/skills y tu agente de código ya conoce la autenticación, la idempotencia, los errores y los 31 endpoints. Cero adivinanzas con los campos del SAT.
Convenciones Estilo Stripe
Llaves sk_test_/sk_live_, livemode en cada recurso, errores problem+json, IDs opacos y paginación por cursor. Si usaste Stripe, ya sabes usar esto.
OpenAPI + Docs Interactivas
Spec OpenAPI generada del código con docs interactivas para probar cada endpoint desde el navegador. Errores con subcódigos específicos.
De registro a timbre, en minutos
Crea tu cuenta
Regístrate en dash.cfdi.express y obtén tu llave sk_test_ al instante, con saldo de prueba para el sandbox.
Sube tu CSD
POST /v1/merchants con tus archivos .cer y .key. Validamos vigencia, llave↔cert y RFC antes de guardarlos encriptados.
Timbra tu primer CFDI
POST /v1/invoices con emisor, receptor y conceptos. El motor de impuestos calcula todo por ti.
Entrega XML y PDF
Recibe URLs firmadas del XML, PDF y ZIP listas para enviar a tu cliente o guardar en tu sistema.
¿Vas a integrar con un agente de código? Empieza por npx skills add CFDI-Express/skills y deja que él haga los cuatro pasos — ver cómo funciona la skill
Requests predecibles, respuestas claras
JSON en, JSON out. Errores problem+json con subcódigos específicos para que tu código sepa exactamente qué pasó.
{
"merchantId": "mer_8xk2…",
"tipoDeComprobante": "I",
"metodoPago": "PUE",
"formaPago": "03",
"receptor": {
"rfc": "EKU9003173C9",
"nombre": "ESCUELA KEMPER URGATE",
"regimenFiscal": "601",
"domicilioFiscal": "76000",
"usoCfdi": "G03"
},
"conceptos": [{
"claveProdServ": "01010101",
"claveUnidad": "E48",
"descripcion": "Desarrollo de software",
"cantidad": 1,
"valorUnitario": 1500.00,
"objetoImp": "02"
}]
}{
"id": "inv_9f2c41…",
"livemode": false,
"status": "stamped",
"uuid": "A1B2C3D4-…-000000000042",
"serie": "FA",
"folio": "1042",
"total": "1740.00",
"chargedCentavos": 100,
"pdfUrl": "https://files.cfdi.express/…?sig=…",
"xmlUrl": "https://files.cfdi.express/…?sig=…",
"zipUrl": "https://files.cfdi.express/…?sig=…",
"created": "2026-08-01T18:22:10.512Z"
}Endpoints que resuelven el ciclo completo
Estos son los más usados. La referencia completa, con ejemplos por endpoint, cubre los 31 endpoints de la API.
Un comando y tu agente ya sabe integrar la API
Publicamos la skill de CFDI Express en abierto. Instálala en tu agente de código y describe lo que necesitas: él escribe la integración con la autenticación, la idempotencia, el manejo de errores y los endpoints correctos, sin adivinar campos del SAT.
$ npx skills add CFDI-Express/skillsCompatible con Claude Code, Cursor, Codex, OpenCode y cualquier agente soportado por skills.
# La skill completa $ npx skills add CFDI-Express/skills # O sólo esta skill, para un agente en específico $ npx skills add CFDI-Express/skills \ --skill cfdi-express-api -a claude-code
Integra CFDI Express en este proyecto: cuando una orden se marque como pagada, timbra un CFDI PUE con el RFC del cliente y guarda el UUID, el XML y el PDF. Usa mi llave sk_test_ y manda un Idempotency-Key con el id de la orden.
Las convenciones, ya resueltas
URL base, llaves sk_test_/sk_live_, Idempotency-Key, paginación por cursor y errores problem+json con su código estable. El agente no tiene que inferirlas del ejemplo de un blog.
Lee el esquema, no lo inventa
La skill lo manda al OpenAPI y a la referencia en markdown (llms.txt por endpoint) antes de escribir código. Menos campos alucinados, menos rechazos del SAT.
Todo el ciclo CFDI
El mapa de los 31 endpoints: emisores y CSD, facturas PUE/PPD/globales, notas de crédito, complementos de pago REP, cancelaciones, catálogos del SAT y saldo.
Se combina con el MCP
La skill es para escribir la integración; el servidor MCP es para que el agente facture en vivo. Instala una, conecta el otro y tienes las dos mitades.
La skill es de código abierto en github.com/CFDI-Express/skills y se instala con skills, el gestor de skills de Vercel Labs.
Tu agente de IA también puede facturar
La otra mitad: si la skill hace que tu agente escriba la integración, el servidor MCP (Model Context Protocol) lo deja facturar en vivo. Conéctalo a claude.ai, ChatGPT, Claude Code, Cursor o a tu agente propio y pídele en lenguaje natural que timbre facturas, registre pagos o cancele CFDIs.
Míralo una vez y factura por chat el mismo día
Grabamos el proceso completo sin cortes: desde una cuenta nueva hasta un CFDI 4.0 timbrado ante el SAT, pidiéndolo en español a Claude. Sin terminal, sin instalar nada, sin escribir código.
- Conectar el MCP: copiar una URL y dar permiso. 2 minutos.
- Timbrar la primera factura hablándole normal a tu agente.
- Registrar un pago REP y cancelar un CFDI con la misma conversación.
Todo el tutorial corre en modo de pruebas: puedes seguirlo paso a paso sin gastar un peso.
Agrégalo como conector personalizado con esta URL e inicia sesión con tu cuenta del dashboard. Sin llaves, sin configuración:
https://api.cfdi.express/mcp¿Solo quieres experimentar? Conecta https://api.cfdi.express/mcp/test y tu agente timbra contra el sandbox del SAT, gratis.
# Claude Code
claude mcp add --transport http cfdi \
https://api.cfdi.express/mcp \
--header "Authorization: Bearer sk_test_…"
// Cursor / Windsurf — mcp.json
{
"mcpServers": {
"cfdi": {
"url": "https://api.cfdi.express/mcp",
"headers": {
"Authorization": "Bearer sk_test_…"
}
}
}
}14 herramientas que cubren el ciclo CFDI completo:
Modo test para experimentar
Conecta /mcp/test (o usa tu llave sk_test_) y tu agente timbra contra el sandbox del SAT gratis, sin gastar saldo. Cambia a /mcp cuando estés listo para producción.
Errores que el agente entiende
Cada error regresa el código estable del API (validation_error, insufficient_credits, sat_rejected…), punteros por campo y una pista de reintento — el agente se autocorrige solo.
Idempotencia también aquí
Las herramientas que timbran aceptan idempotency_key: si el agente reintenta, recibe el documento original sin gastar otro timbre. Cero dobles timbres, también con IA.
Alcance controlado
El agente puede timbrar, cancelar y consultar, pero los CSDs no se administran por MCP: tus certificados solo se suben y validan desde el dashboard.
Hecha para producción, no para demos
La misma infraestructura que timbra para las tiendas Shopify de CFDI Express, endurecida bajo pruebas de ráfaga.
Cero dobles timbres
Los timbres nunca se reintentan a ciegas: una falla ambigua con el PAC marca el documento para reconciliación manual y mantiene tu saldo reservado. Verificado con 35 timbres concurrentes: contabilidad exacta.
Saldo con reembolso automático
Cada timbre reserva saldo y lo confirma al timbrar. Si el SAT rechaza o el PAC falla, el reembolso es automático — con ledger completo para auditar cada centavo.
Rate limit y guardrails
300 requests por minuto por llave con 429 + Retry-After, límite de body de 1 MB y un registro de auditoría en cada mutación. Predecible bajo carga.
CSDs encriptados
Tus certificados se guardan con encriptación de sobre AES-256-GCM. La validación es local: vigencia, match llave↔certificado, RFC y rechazo de FIEL con subcódigos claros.
Paga solo por lo que timbras
Sin mensualidad, sin mínimos, sin contratos. Saldo prepagado que recargas cuando lo necesitas.
Pay as you go
Para cualquier volumen
- Descuentos por volumen automáticos
- Sandbox gratis e ilimitado con sk_test_
- Facturas PUE, PPD y globales
- Complementos de pago y cancelaciones incluidos
- PDF + XML + ZIP con URLs firmadas
- Reembolso automático si el SAT rechaza
- Multi-CSD y multi-RFC sin costo extra
- Catálogos SAT sin límite de consultas
¿Vendes en Shopify? La app tiene planes desde $15 USD/mes — ver planes de la app
Todo lo que necesitas saber
Tu primer timbre, en minutos.
Sandbox gratis. Sin tarjeta. Llaves sk_test_ al instante.
Skill para agentes · Referencia de la API · Docs interactivas · Agendar una demo
