FISCALISTO / API
API de facturación
Timbre CFDI 4.0 desde su sistema con una sola llamada: facturas, pagos, notas de crédito, nómina y retenciones, con las revisiones del SAT de Fiscalisto.
La API de Fiscalisto timbra comprobantes fiscales (CFDI 4.0) desde su servidor. Usted manda los datos de la factura en JSON; Fiscalisto llena lo que tiene un valor usual, revisa las reglas del SAT antes de gastar un timbre, la sella con el certificado del emisor, la timbra con el PAC y le contesta con la factura timbrada, su UUID, el PDF y el XML.
Los nombres de la API están en inglés, como en cualquier API (customer, items, unit_price); los textos, los errores y estas guías están en español.
Su primera factura en un minuto
- Abra una cuenta API en Fiscalisto (selector de empresa › Nueva cuenta API). Al crearla le damos una llave de pruebas que empieza con
fk_test_y un emisor de pruebas listo para timbrar. - Guarde la llave en una variable de entorno de su servidor:
export FISCALISTO_API_KEY="fk_test_..."- Timbre una factura:
curl https://api.fiscalisto.com/v1/invoices \
-H "Authorization: Bearer $FISCALISTO_API_KEY" \
-H "Idempotency-Key: pedido-A-1042" \
-H "Content-Type: application/json" \
-d '{
"customer": {
"tax_id": "ICV060329BY0",
"legal_name": "INMOBILIARIA CVA",
"tax_system": "601",
"zip": "33826"
},
"payment_form": "03",
"items": [
{ "description": "Mensualidad", "product_key": "86121700", "quantity": 2, "unit_price": 2500 }
]
}'La respuesta es la factura timbrada (201):
{
"id": "inv_OufpKqnrvx9p0Nfbydl9jG4UNGeTYcvdrg",
"object": "invoice",
"livemode": false,
"status": "valid",
"uuid": "5F1E8C2A-3B7D-4C9E-A1B2-C3D4E5F60718",
"folio": "1",
"subtotal": 5000,
"taxes": { "iva": 800, "ieps": 0, "iva_withheld": 0, "isr_withheld": 0, "local_transferred": 0, "local_withheld": 0 },
"total": 5800,
"...": "..."
}- Descargue el PDF o el XML:
curl https://api.fiscalisto.com/v1/invoices/inv_OufpKqnrvx9p0Nfbydl9jG4UNGeTYcvdrg/pdf \
-H "Authorization: Bearer $FISCALISTO_API_KEY" -o factura.pdfNo mandó el uso del CFDI, el método de pago, la moneda, la unidad, el objeto de impuesto ni el IVA: tienen su valor usual (uso G03, PUE, MXN, unidad E48, objeto 02, IVA 16%). Mande solo lo que cambia.
Con TypeScript, Python, PHP, Go, Java o C#, los SDKs le dan tipos para cada campo y la Idempotency-Key sin pensarlo:
import { Fiscalisto } from "fiscalisto";
const fiscalisto = new Fiscalisto(process.env.FISCALISTO_API_KEY);
const invoice = await fiscalisto.invoices.create({ customer, payment_form: "03", items });Lo que necesita saber
- Pruebas y producción. Las llaves
fk_test_timbran gratis en el ambiente de pruebas del SAT; lasfk_live_timbran CFDI reales y usan un timbre cada una. Vea Pruebas y producción. - Idempotency-Key. Todo lo que timbra la pide. Si la respuesta se pierde, repita la solicitud con la misma: nunca se timbra dos veces. Vea Idempotencia.
- Errores claros. Cada error dice qué campo corregir (
param), cómo (message) y, si el SAT lo rechazó, su código (sat_code). Vea Errores. - Webhooks. Las cancelaciones que el cliente acepta días después, las facturas que el PAC tardó en timbrar y los lotes le llegan como eventos firmados. Vea Webhooks.
Qué puede timbrar
| Comprobante | Ruta |
|---|---|
| Factura de ingreso, global o de traslado (con complementos) | POST /v1/invoices |
| Complemento de pago (tipo P) | POST /v1/payments |
| Nota de crédito (tipo E) | POST /v1/credit_notes |
| Anticipo y su aplicación | POST /v1/advances |
| Recibo de nómina (tipo N) | POST /v1/payroll_receipts |
| Constancia de retenciones | POST /v1/retentions |
| Hasta 1,000 facturas de una vez | POST /v1/invoice_batches |
Para agentes y herramientas
- Para que un agente de código (Claude Code, Cursor, Codex…) integre Fiscalisto, conecte el servidor MCP de esta documentación y dele la guía en una página: vea Fiscalisto para agentes de IA.
- El documento OpenAPI 3.1 completo está en
https://api.fiscalisto.com/v1/openapi.json, sin llave. Cada campo tiene su descripción y su nombre en el XML del SAT. - Cada página de estas guías existe también en Markdown: agregue
.mda su dirección (por ejemplo/docs/api/idempotencia.md). /docs/api/llms.txtes el índice de todas las páginas, y/docs/api/llms-full.txtlas guías completas en un solo archivo.