Cisma Fact

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-KeyIdentifica tu cuenta. Te lo entrega Cisma Fact.
X-Api-SecretTu clave secreta. No la compartas públicamente.
Content-Typeapplication/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.