Nuevo · Skill + MCP para agentes de IA

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.

Que tu agente la integre por ti
$ npx skills add CFDI-Express/skills

La skill oficial para Claude Code, Cursor, Codex y OpenCode.

tu-primer-timbre.sh
# 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://…" }
1.57sp95 de timbrado verificado bajo ráfaga
52k+claves de producto SAT en catálogo local
$1MXN por timbre, menos con volumen
0dobles timbres en 35 stamps concurrentes

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.

🧾Core

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.

💳Core

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.

Core

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.

📄Core

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.

📚Core

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.

🏢Pro

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.

🔁Pro

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.

🤖DX

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.

🔐DX

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.

DX

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

01

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.

02

Sube tu CSD

POST /v1/merchants con tus archivos .cer y .key. Validamos vigencia, llave↔cert y RFC antes de guardarlos encriptados.

03

Timbra tu primer CFDI

POST /v1/invoices con emisor, receptor y conceptos. El motor de impuestos calcula todo por ti.

04

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ó.

POST /v1/invoicesRequest
{
  "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"
  }]
}
201 CreatedResponse
{
  "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.

POST/v1/invoicesTimbra facturas PUE, PPD o globales
GET/v1/invoicesLista con filtros y paginación por cursor
POST/v1/invoices/{id}/paymentsComplemento de pago REP (Pagos 2.0)
POST/v1/invoices/{id}/cancelCancela con motivo y acuse del SAT
POST/v1/merchantsRegistra un emisor y sube su CSD
GET/v1/catalogs/products52k+ claves de producto del SAT
GET/v1/balanceSaldo, precio por timbre y timbres restantes
POST/v1/billing/checkout_sessionsRecarga saldo con tarjeta vía Stripe

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.

Instala la skill
$ npx skills add CFDI-Express/skills

Compatible con Claude Code, Cursor, Codex, OpenCode y cualquier agente soportado por skills.

Claude Code · Cursor · Codex · OpenCodeInstalar
# 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
Y luego pídeselo normalPrompt
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.

Tutorial · 15 minutos

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.

claude.ai · Claude Desktop · ChatGPTOAuth

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 · Cursor · Windsurf · MCP SDKAPI key
# 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:

create_invoicecreate_credit_noteget_invoicelist_invoicescancel_invoicecreate_paymentget_paymentlist_paymentscancel_paymentlist_merchantssearch_product_codessearch_unit_codesget_catalogget_balance
🧪

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.

Sandbox gratis

Pay as you go

Para cualquier volumen

$1MXN / timbre
Recargas de $100 a $50,000 MXN con tarjeta, vía Stripe. Descuentos por volumen: entre más timbras, menos pagas por timbre.
  • 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
Crear cuenta gratis

¿Vendes en Shopify? La app tiene planes desde $15 USD/mes — ver planes de la app

Todo lo que necesitas saber

No. La API de CFDI Express es independiente de Shopify: cualquier sistema que pueda hacer HTTPS puede timbrar — ERPs, tiendas propias, apps móviles o backends internos. Si vendes en Shopify, la app ya incluye todo integrado.

Tu primer timbre, en minutos.

Sandbox gratis. Sin tarjeta. Llaves sk_test_ al instante.