Guía rápida
De cero a un comprobante aceptado por SUNAT, en cuatro pasos.
Antes de empezar
1. Genera tu API key
Crea una key con permisos invoices.create y invoices.send_sunat desde Configuración → API Keys. Guárdala, solo se muestra una vez.
2. Emite el comprobante
Envía un POST a /comprobantes/emitir con el cliente, la moneda y los ítems, dentro de documento. Con webhook: false (el valor por defecto), Facto valida los datos, crea el comprobante y lo transmite a SUNAT en la misma llamada — sin un paso de envío aparte. Ver la referencia completa de campos en Crear comprobante y el significado de webhook en Webhook.
curl -X POST https://api.facto.com.pe/api/v1/comprobantes/emitir \
-H "Authorization: Bearer sk_live_51H8f9s0aB3cD4eF5gH6i" \
-H "Content-Type: application/json" \
-d '{
"webhook": false,
"documento": {
"fechaEmision": "2026-09-17",
"sunatTransaccion": "0101",
"tipoComprobante": "01",
"serie": "F001",
"moneda": "PEN",
"formaPago": "CREDITO",
"fechaVencimiento": "2026-09-30",
"cliente": {
"tipoDocumento": "6",
"numeroDocumento": "20600123450",
"denominacion": "EMPRESA DE SERVICIOS S.A.C.",
"direccion": "AV. LIMA 123 - LIMA - LIMA - LIMA",
"correo": "cliente@empresa.com"
},
"items": [
{
"unidadMedida": "NIU",
"descripcion": "SERVICIO DE CONSULTORÍA",
"cantidad": 2,
"precioUnitario": 590,
"tipoIgv": "10"
}
],
"cuotas": [
{ "monto": 590, "fechaVencimiento": "2026-09-18" },
{ "monto": 590, "fechaVencimiento": "2026-09-30" }
]
}
}'{
"success": true,
"message": "El comprobante fue emitido correctamente.",
"data": {
"entorno": "demo",
"documento": {
"id": "9b4a3d90-2af7-4d40-af24-e52d3a5ab273",
"estado": "ACEPTADA",
"serie": "F001",
"correlativo": "F001-00000003",
"tipo": "FACTURA",
"totales": { "gravada": "1000", "igv": "180", "total": "1180" }
},
"enlaces": {
"consulta": "/invoices/9b4a3d90-2af7-4d40-af24-e52d3a5ab273"
}
}
}Revisa el campo data.documento.estado de la respuesta — aquí, ACEPTADA — ver Estados de documento. Si el comprobante se creó pero el envío a SUNAT falló, la respuesta trae un shape distinto con una ruta para reintentar — ver Crear comprobante.
3. Confirma el estado
Como el paso anterior es síncrono, ya conoces el resultado en esa misma respuesta — vuelve a consultar el comprobante solo si necesitas revisarlo más tarde.
curl https://api.facto.com.pe/api/v1/invoices/{id} \
-H "Authorization: Bearer sk_live_51H8f9s0aB3cD4eF5gH6i"4. Descarga el PDF
Una vez aceptado, descarga el PDF (o el XML UBL 2.1) para compartirlo con tu cliente.
curl https://api.facto.com.pe/api/v1/invoices/{id}/pdf \
-H "Authorization: Bearer sk_live_51H8f9s0aB3cD4eF5gH6i" \
-o factura.pdfSiguientes pasos
- Emite otros tipos de comprobante — exonerada, gratuita, al crédito, en dólares — ver variantes de Facturas.
- Anula un comprobante ya aceptado en Anular factura o Anular boleta.
- Prellena datos del cliente consultando su RUC en Consultar RUC.
- Revisa el formato de errores de la API en Errores.