Documentación de la API
Integra la facturación electrónica de Cisma Fact en tu sistema, ERP o tienda online. Emite facturas, boletas, notas y guías directo a SUNAT desde tu código.
1. Introducción
La API es REST y responde en JSON. Toda petición se hace sobre la URL base:
https://cismafact.alwaysdata.net/api
Funciona con cualquier lenguaje de programación. Al ser una API REST sobre HTTP con JSON, la puedes consumir desde
PHP, JavaScript/Node.js, Python, Java, C#/.NET, Ruby, Go y cualquier otro lenguaje que pueda hacer peticiones HTTP. No necesitas instalar nada especial: solo enviar las cabeceras de autenticación.
Ambientes: con un token de pruebas (sandbox) emites a SUNAT beta (documentos sin valor legal) para probar sin riesgo. En producción, con tu propio certificado y RUC, los comprobantes son reales ante SUNAT.
2. Autenticación
Cada petición debe enviar tus credenciales en las cabeceras (headers). No hay login ni tokens que expiran por sesión: usas siempre estos dos valores.
| X-Api-Key | Identifica tu cuenta. Te lo entrega Cisma Fact. |
| X-Api-Secret | Tu clave secreta. No la compartas públicamente. |
| Content-Type | application/json al enviar datos (POST). |
Para verificar que tus credenciales funcionan, prueba este endpoint:
GET https://cismafact.alwaysdata.net/api/empresa
3. Endpoints disponibles
Rutas relativas a la URL base. Cada tipo de comprobante sigue el mismo patrón.
Conexión
| GET | /empresa | Probar credenciales y ver datos de la empresa |
Boletas
| GET | /boletas | Listar boletas |
| POST | /boletas | Emitir una boleta |
| GET | /boletas/{id} | Ver una boleta |
| POST | /boletas/{id}/send-sunat | Reenviar a SUNAT |
| GET | /boletas/{id}/download-pdf | Descargar PDF |
| GET | /boletas/{id}/download-xml | Descargar XML firmado |
| GET | /boletas/{id}/download-cdr | Descargar CDR de SUNAT |
Facturas
| GET | /facturas | Listar facturas |
| POST | /facturas | Emitir una factura |
| GET | /facturas/{id} | Ver / descargar (mismo patrón que boletas) |
Notas de crédito / débito
| POST | /notas-credito | Emitir nota de crédito |
| POST | /notas-debito | Emitir nota de débito |
Guías de remisión
| POST | /guias-remision | Emitir guía de remisión |
| POST | /guias-remision/{id}/check-status | Consultar estado (flujo asíncrono) |
Otros
| POST | /resumenes | Resumen diario de boletas |
| POST | /anulaciones | Comunicación de baja / anulación |
| POST | /consulta-cpe/boleta/{id} | Consultar estado en SUNAT |
4. Ejemplos de código
Probar la conexión (curl)
curl https://cismafact.alwaysdata.net/api/empresa \
-H "X-Api-Key: TU_API_KEY" \
-H "X-Api-Secret: TU_API_SECRET"
Emitir una boleta (curl)
curl -X POST https://cismafact.alwaysdata.net/api/boletas \
-H "X-Api-Key: TU_API_KEY" \
-H "X-Api-Secret: TU_API_SECRET" \
-H "Content-Type: application/json" \
-d '{
"serie": "B001",
"cliente": {
"tipo_documento": "1",
"numero_documento": "70057895",
"razon_social": "JUAN PEREZ"
},
"items": [
{ "descripcion": "LAPTOP", "cantidad": 1, "valor_unitario": 1200.00 }
]
}'
El formato exacto de los campos te lo confirma tu contacto en Cisma Fact según el tipo de comprobante. La respuesta incluye el estado SUNAT y los enlaces a PDF / XML / CDR.
PHP
$ch = curl_init('https://cismafact.alwaysdata.net/api/empresa');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'X-Api-Key: TU_API_KEY',
'X-Api-Secret: TU_API_SECRET',
],
]);
$respuesta = curl_exec($ch);
echo $respuesta;
Python
import requests
resp = requests.get(
"https://cismafact.alwaysdata.net/api/empresa",
headers={
"X-Api-Key": "TU_API_KEY",
"X-Api-Secret": "TU_API_SECRET",
},
)
print(resp.json())
JavaScript / Node.js
const resp = await fetch("https://cismafact.alwaysdata.net/api/empresa", {
headers: {
"X-Api-Key": "TU_API_KEY",
"X-Api-Secret": "TU_API_SECRET",
},
});
const data = await resp.json();
console.log(data);
¿Listo para integrar? Crea tu cuenta o solicita un token de pruebas (sandbox) para empezar sin compromiso.