Documentación de XmlPeruDev
Infraestructura de firma electrónica CPE para SUNAT (Perú). Envías JSON o XML, firmamos, validamos y emitimos; recibes el CDR.
URL base
La API pública v1 se monta en la raíz del host api. (sin el /api intermedio — el subdominio ya cumple ese rol):
https://api.xmlperu.dev/v1/cpeLos ejemplos de código de cada endpoint (cURL, PHP, JavaScript, Python) ya usan esta base. La capa de compatibilidad —para migrar desde otro proveedor sin tocar tu código— vive bajo /api/cpe/* — ver Migración.
Autenticación
Casi todas las peticiones requieren un token en el header Authorization:
Authorization: Bearer TU_TOKENHay dos ámbitos de token: firma (por empresa, ability cpe:sign) para emitir, y cuenta (ability empresas:manage) para administrar empresas. Genéralos desde el panel, en Tokens de API. Ver Autenticación.
Dos caminos para emitir
| Camino | Cuándo usarlo |
|---|---|
| API v1 (JSON) | Recomendado. Envías un JSON simple; generamos el UBL, validamos (XSD + reglas SUNAT) y firmamos. Nombres en inglés, external_id estable. |
| Compat (XML) | Migración drop-in desde otro proveedor: envías el XML UBL ya armado. Ver Migración. |
Si integras desde cero, empieza por Primeros pasos.
Colección de Postman
61 peticiones con sus comprobaciones y una casuística real por caso: factura y boleta, exportación, exonerada e inafecta, descuento global, detracción, retención, pago en cuotas, las notas de crédito y débito con todos sus motivos, y las guías de remisión. Los payloads están validados contra el mismo generador que firma en producción.