XmlPeruDevDocs

Primeros pasos

Del token a tu primer comprobante firmado en minutos.

En 3 pasos emites tu primera factura firmada en el entorno demo.

1. Obtén un token de empresa

Desde el panel, en tu empresa → Tokens API, genera un token (permiso cpe:sign). Cópialo: solo se muestra una vez.

export TOKEN="pega-aqui-tu-token"

2. Prepara el comprobante en JSON

Guarda una factura mínima como factura.json (ejemplo resumido):

{
  "tipoDoc": "01",
  "serie": "F001",
  "correlativo": "123",
  "tipoMoneda": "PEN",
  "emisor": {
    "ruc": "20123456789",
    "razonSocial": "MI EMPRESA SAC",
    "establecimiento": {
      "ubigeo": "150101", "departamento": "LIMA", "provincia": "LIMA",
      "distrito": "LIMA", "direccion": "AV. EJEMPLO 123"
    }
  },
  "cliente": { "tipoDoc": "6", "numDoc": "20111111111", "nombre": "CLIENTE SAC" },
  "items": [
    { "descripcion": "Servicio", "cantidad": 1, "valorUnitario": 100, "afectacionIgv": "10", "porcentajeIgv": 18 }
  ]
}

3. Emite

curl -X POST https://api.xmlperu.dev/v1/cpe \
  -H "Authorization: Bearer $TOKEN" \
  -H "Idempotency-Key: fac-F001-123" \
  -H "Content-Type: application/json" \
  -d @factura.json

Respuesta:

{ "success": true, "estado": "ACEPTADO", "external_id": "…", "hash": "a3f1…9e2c" }

Tip · En demo (environment = 01) no se consume cupo ni se inicia la vigencia del certificado. Cuando estés listo, pasa la empresa a producción (02).

¿Prefieres Postman?

Descarga la colección Postman del API v1 e impórtala (File → Import). Solo tienes que rellenar token_cuenta y token_empresa en las variables de la colección: external_id se rellena solo al emitir, así que puedes emitir y consultar sin copiar nada a mano.

Trae 61 peticiones, cada una con su comprobación, y una casuística real por caso: factura y boleta, exonerada, inafecta, exportación, dólares, descuento global, detracción, retención, pago al contado y en cuotas, los trece motivos de nota de crédito, los seis de nota de débito y las guías de remisión —remitente en transporte público y privado, vehículo M1/L y guía del transportista—. Los payloads van en español y están validados contra el mismo generador que firma en producción, así que son ejemplos que funcionan, no plantillas.

Siguiente: Autenticación · Emitir en detalle · Errores y respuestas