Guía rápida — Primera factura en 5 pasos
Desde cero hasta tu primera respuesta ACEPTADA de SUNAT en menos de 10 minutos. Usa el entorno demo (sk_test_) para probar sin consecuencias.
Crea tu empresa
Usa tu token de usuario (user_sk_...) para llamar a POST /empresas con el RUC, razón social y datos de tu empresa. Consulta la sección Crear empresa para el payload completo.
Obtén tu token de empresa
Al crear la empresa recibes automáticamente un sk_test_... para demo y un sk_live_... para producción. Guárdalos en variables de entorno. Nunca los expongas en código frontend.
Construye el payload
El mínimo para una factura gravada es: tipoComprobante, serie, correlativo, receptor y al menos un item con precioUnitario y tipoIgv: "10". El IGV (18%) se calcula solo.
{
"documento": {
"tipoComprobante": "01",
"serie": "F001",
"correlativo": "1",
"fechaEmision": "2026-06-14",
"tipoMoneda": "PEN",
"sunatTransaccion": "0101",
"formaPago": "CONTADO",
"receptor": {
"tipoDocumento": "6",
"numeroDocumento": "20100070970",
"razonSocial": "EMPRESA CLIENTE S.A.C.",
"direccion": "Av. Principal 123, Lima"
},
"items": [
{
"descripcion": "Servicio de consultoría",
"cantidad": 1,
"precioUnitario": 100.00,
"tipoIgv": "10"
}
]
}
}Envía el POST
Usa sk_test_... para probar sin afectar SUNAT real. La respuesta llega síncrona en segundos.
curl -X POST https://api.facturalo.pe/api/v3/documentos/enviar \
-H "Authorization: sk_test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"documento": {
"tipoComprobante": "01",
"serie": "F001",
"correlativo": "1",
"fechaEmision": "2026-06-14",
"tipoMoneda": "PEN",
"sunatTransaccion": "0101",
"formaPago": "CONTADO",
"receptor": {
"tipoDocumento": "6",
"numeroDocumento": "20100070970",
"razonSocial": "EMPRESA CLIENTE S.A.C.",
"direccion": "Av. Principal 123, Lima"
},
"items": [
{
"descripcion": "Servicio de consultoría",
"cantidad": 1,
"precioUnitario": 100.00,
"tipoIgv": "10"
}
]
}
}'Verifica el estado
Revisa data.estado: ACEPTADA = éxito. RECHAZADA = revisa sunat.codigoRespuesta. Los PDFs, XMLs y CDRs de enlaces son públicos.
{
"success": true,
"message": "Documento enviado y aceptado por SUNAT",
"data": {
"estado": "ACEPTADA",
"entorno": "demo",
"documento": {
"id": "018f2a3b-...",
"serie": "F001",
"correlativo": "1",
"total": "118.00"
},
"sunat": {
"codigoRespuesta": "0",
"descripcion": "La Factura numero F001-1, ha sido aceptada"
},
"enlaces": {
"pdf": "https://api.facturalo.pe/api/v3/documentos/018f2a3b-....pdf",
"xml": "https://api.facturalo.pe/api/v3/documentos/018f2a3b-....xml",
"cdr": "https://api.facturalo.pe/api/v3/documentos/018f2a3b-....cdr"
}
}
}sk_live_... y asegúrate de configurar un webhook para recibir las respuestas de SUNAT de forma asíncrona.