Saltar al contenido
Krezkadev

Primeros pasos

Emite tu primera factura electrónica válida ante SUNAT con la API de Krezka en minutos.

Bienvenido a Krezka Facturación Electrónica: emite facturas, boletas y notas de crédito válidas ante SUNAT desde tu propio sistema, sin XML ni certificados. No necesitas usar el sistema Krezka: todo se hace desde la consola y la API.

Lo que necesitas (5 minutos, gratis)

  1. Crea tu cuenta en la consola.
  2. En Mis empresas, agrega tu empresa con su RUC: traemos sus datos de SUNAT y queda en prueba.
  3. En Claves, crea una clave de prueba (sk_test_…). Con ella todo se valida de verdad y nada se emite ni se cobra.
  4. Cuando tu integración funcione, pasa la empresa a producción y usa una clave sk_live_….

Cómo funciona

  1. Envías el comprobante en JSON: cliente, líneas y condición de pago. Nada de XML.
  2. Krezka asigna el correlativo, firma el XML y lo envía a SUNAT. La respuesta es inmediata, con status: pending.
  3. SUNAT responde en segundos. Te avisamos por webhook (invoice.accepted o invoice.rejected) y dejamos listos el XML, el CDR y el PDF.

Emite tu primera factura

Obtén tu emisor

Cada factura se emite por un emisor (un RUC). Lista los tuyos:

Terminal
Terminal
curl https://api.krezka.com/api/v1/invoicing/issuers \
  -H "Authorization: Bearer $KREZKA_API_KEY"

Guarda el id del emisor (iss_…) y revisa que su status sea active.

Envía el comprobante

Terminal
Terminal
curl -X POST https://api.krezka.com/api/v1/invoicing/invoices \
  -H "Authorization: Bearer $KREZKA_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "issuer_id": "iss_8Kp2Qm3x",
    "document_type": "invoice",
    "customer": {
      "document_type": "ruc",
      "document_number": "20601234567",
      "name": "COMERCIAL ANDINA S.A.C.",
      "email": "compras@andina.pe"
    },
    "items": [
      { "description": "Servicio de consultoría — octubre 2026", "quantity": 1, "unit": "ZZ", "unit_value": 1000.00 }
    ],
    "payment_terms": { "type": "cash" },
    "external_id": "INV-10482"
  }'

La respuesta llega con el correlativo ya asignado y status: pending:

JSON
JSON
{
  "id": "inv_3xK8p2Qm",
  "object": "invoice",
  "full_number": "F001-00001234",
  "status": "pending",
  "totals": { "taxable": 1000.00, "tax": 180.00, "total": 1180.00 },
  "external_id": "INV-10482"
}

Recibe la respuesta de SUNAT

Registra un endpoint y suscríbete a invoice.accepted e invoice.rejected:

Terminal
Terminal
curl -X POST https://api.krezka.com/api/v1/invoicing/webhook_endpoints \
  -H "Authorization: Bearer $KREZKA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "url": "https://tu-app.com/webhooks/krezka", "events": ["invoice.accepted", "invoice.rejected"] }'

Si prefieres consultar, GET /invoices/{id} devuelve el estado y su historial.

Descarga los archivos

Cuando el estado sea accepted, pide los enlaces firmados:

Terminal
Terminal
curl https://api.krezka.com/api/v1/invoicing/invoices/inv_3xK8p2Qm/pdf \
  -H "Authorization: Bearer $KREZKA_API_KEY"

Lo mismo con /xml y /cdr. Los enlaces duran 15 minutos; pídelos cada vez que los necesites.

Siguiente

Autenticación

API keys por entorno y cómo rotarlas.

El ciclo SUNAT

Qué significa cada estado y qué hacer en cada uno.

Precios

S/ 0.05 por comprobante. Sin costo de integración.