Referencia de la API
Lista completa de endpoints para ambos productos CrateAPI: ejemplos curl, respuestas, autenticación, límites. Las rutas de endpoint, los ejemplos curl, los nombres de parámetros y perfiles, y los payloads JSON permanecen en inglés en todas partes - el código para copiar y pegar no necesita traducción.
Autenticación
URL base de facturación electrónica: https://api.crateapi.com/v1. URL base de herramientas documentales: https://api.crateapi.com (rutas /pdf, /screenshot, /email, /extract). Envía tu clave como X-API-Key: <tu clave>. Los endpoints marcados gratis no necesitan ninguna clave - es intencionado, no una prueba: la validación permanece gratuita para siempre.
curl -X POST https://api.crateapi.com/v1/validate/ubl \ -H "Content-Type: application/xml" \ --data-binary @invoice.xml {"profile":"peppol","valid":true,"counts":{"fatal":0,"warning":0},"findings":[],"duration_ms":12}
curl -X POST https://api.crateapi.com/v1/generate/ubl?profile=peppol \ -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \ -d @invoice.json -o invoice.xml
API de facturación electrónica
EN 16931: UBL/Peppol BIS, CII, Factur-X, FatturaPA (Italia: facturas y notas de crédito/débito TD01/TD04/TD05, códigos Natura incl. forfettario), Facturae (España: facturas del sector público) y Order-X (pedidos de compra). Especificación OpenAPI completa: /openapi.json · documentación interactiva: /docs (Swagger UI).
| Endpoint | Autenticación | Notas |
|---|---|---|
POST /v1/validate/ubl | gratis | Valida una factura UBL. `profile`: en16931, peppol, xrechnung, ro, fr, fr-extended. |
POST /v1/validate/cii | gratis | Valida una factura CII. `profile`: en16931, xrechnung, fr, fr-extended. |
POST /v1/validate/facturapa | gratis | Solo validación estructural XSD para FatturaPA (no existe un conjunto oficial de reglas schematron que vendorizar). |
POST /v1/validate/orderx | gratis | Order-X Basic - validación XSD completa + schematron oficial. |
POST /v1/pdfa/validate | gratis | Validación PDF/A (veraPDF). `flavour`: auto|1a|1b|2a|2b|2u|3a|3b|3u|4|4e|4f. |
GET /validator | gratis | Validador drag-and-drop en el navegador, mismo motor, sin registro. |
POST /v1/generate/ubl | requiere X-API-Key | Modelo de factura JSON → XML UBL. `profile`: en16931, peppol, xrechnung, ro. |
POST /v1/generate/cii | requiere X-API-Key | Modelo de factura JSON → XML CII. `profile`: en16931, xrechnung. |
POST /v1/generate/facturx | requiere X-API-Key | Nuestro PDF visual mínimo + XML CII incrustado (EN16931). |
POST /v1/generate/facturx/embed | requiere X-API-Key | Tu PDF de marca + JSON de factura → PDF/A-3 con CII incrustado (multipart). |
POST /v1/generate/facturapa | requiere X-API-Key | XML FatturaPA (Italia): facturas TD01, notas de crédito/débito TD04/TD05, códigos Natura de exención de IVA (incl. forfettario N2.2), ritenuta/bollo/cassa opcionales. |
POST /v1/generate/orderx | requiere X-API-Key | XML de pedido de compra Order-X Basic (no es una factura). |
POST /v1/convert/ubl-to-cii | requiere X-API-Key | Sin pérdidas o rechazado: 422 con detalles en lugar de una degradación silenciosa. |
POST /v1/convert/cii-to-ubl | requiere X-API-Key | Misma garantía, dirección contraria. |
POST /v1/render/html | requiere X-API-Key | XML de factura → HTML legible (visualización oficial de KoSIT). |
POST /v1/render/pdf | requiere X-API-Key | XML de factura → PDF. `style`: compact (por defecto, 1 página) o kosit (formulario de auditoría). |
POST /v1/pdfa/convert | requiere X-API-Key | Cualquier PDF → PDF/A-3b, con archivos incrustados opcionales. |
POST /v1/pdfa/consistency | requiere X-API-Key | Factur-X: ¿coincide el XML incrustado con el texto visible del PDF? |
POST /v1/repair/ubl | requiere X-API-Key | Auto-reparación best-effort: fechas no-ISO, desviaciones aritméticas en los totales. |
POST /v1/repair/cii | requiere X-API-Key | Lo mismo, sintaxis CII. |
API de Herramientas de Documentos
PDF, capturas de pantalla, validación de email, extracción de contenido. Autenticación: contáctanos para acceso directo. Especificaciones por API: /pdf/openapi.json, /screenshot/openapi.json, /email/openapi.json, /extract/openapi.json.
| API | Endpoint | Notas |
|---|---|---|
POST /pdf/merge | Combina 2 o más PDFs, en el orden de subida. | |
POST /pdf/split | Extrae páginas, p. ej. `pages=1-3,5`. | |
POST /pdf/watermark | Superposición de texto diagonal - `text`, `opacity`, `color`, `font_size`. | |
POST /pdf/protect | Cifrado con contraseña AES-256. | |
POST /pdf/compress | Recompresión Ghostscript - `level`: low|medium|high; nunca devuelve un archivo más grande que el original. | |
POST /pdf/from-html | HTML en bruto → PDF (Chromium headless). | |
POST /pdf/from-url | URL pública → PDF, misma protección anti-SSRF que /screenshot. | |
POST /pdf/to-images | Páginas → PNG/JPEG, devueltas como ZIP. | |
POST /pdf/extract-text | Extracción de texto sensible al maquetado (poppler, fallback a pypdf). | |
POST /pdf/metadata | Número de páginas, indicador de cifrado, campos de información del documento. | |
| screenshot | GET /screenshot/take | URL → PNG/JPEG. `block_ads`, `block_trackers`, `block_cookie_banners`, `cache_ttl`, `full_page`, `delay_ms`. |
GET /email/validate | Señales de sintaxis + MX + desechable + cuenta de rol + proveedor gratuito, con una puntuación. | |
POST /email/validate-batch | Hasta 100 direcciones, cuerpo JSON. | |
POST /email/validate-bulk | Subida CSV, hasta 5.000 direcciones; `format=json` o `format=csv` (resultados añadidos). | |
| extract | GET /extract/article | URL → texto de artículo limpio + metadatos, sin elementos superfluos. |
| extract | POST /extract-html | HTML en bruto → texto limpio (sin fetch). |
Límites
Facturación electrónica: cuerpo XML limitado a 2 MB, subidas PDF a 10 MB. La cuota mensual por clave (calibrada por plan, generosa por defecto - ver precios) se aplica a todos los endpoints excepto /validate/* y /pdfa/validate, que permanecen sin medir.
Herramientas documentales: 100 solicitudes/mes en el plan gratuito, hasta 50.000/mes en Ultra - ver precios. La validación masiva de email está limitada a 5.000 direcciones / 2 MB por subida.
Servidor MCP (agentes de IA)
Autoalojado, funciona ya hoy con tu propia clave API - sin esperar a un endpoint alojado:
{"mcpServers": {"crateapi-einvoicing": { "command": "python", "args": ["-m", "einvoicing.mcp_server"], "env": {"EINVOICE_API_KEY": "your-key-here"}}}}
Herramientas: validate_invoice (gratuita), repair_invoice, generate_invoice, convert_invoice. Resumen legible por máquina de toda esta página: /llms.txt · /ai (JSON).