Validar comprobate
Esta ruta de la api valida y regulariza un comprobante. Ejm: si en la api el comprobante esta en registrado, y aun asi intentes reenviarlo SUNAT no responde; es posible que el comprobante ya se encuentre como aceptado en SUNAT, puedes usar esta ruta de api para verificar el estado real en SUNAT y actualizar el estado en el sistema.
Para usar esta opción debe tener configurado las credenciales de SUNAT, siga este tutorial: Obtener y configurar credenciales de SUNAT para consultar validez de comprobantes de forma masiva
POST /api/documents/validate-document
Headers
Key | Value |
|---|---|
| application/json |
| Bearer |
Body
{
"document_type_id": "01",
"series": "F001",
"number": 43
//"date_of_issue": "2026-10-22", //Opcional: fecha de emisión
//"total": 118.00 //Opcional: Total del comprobante
}Ejemplos
Consultar Comprobante
Response 200 OK
1. Consulta OK — CPE aceptado (sin regularizar)
{
"success": true,
"message": "Consulta realizada correctamente.",
"data": {
"state_type_id": "05",
"state_type_description": "Aceptado",
"code_sunat": "1",
"message_sunat": "Operation Success! ",
"state_ruc": "ACTIVO",
"condition_ruc": "HABIDO",
"regularize": {
"requested": false,
"updated": false,
"message": "",
"system_state_type_id": "01",
"previous_state_type_id": null
}
}
}2. Regularize — estado actualizado
{
"success": true,
"message": "Consulta realizada correctamente.",
"data": {
"state_type_id": "05",
"state_type_description": "Aceptado",
"code_sunat": "1",
"message_sunat": "Operation Success! ",
"state_ruc": "ACTIVO",
"condition_ruc": "HABIDO",
"regularize": {
"requested": true,
"updated": true,
"message": "El estado del CPE fue actualizado",
"system_state_type_id": "05",
"previous_state_type_id": "01"
}
}
}3. Regularize — estado ya igual
{
"success": true,
"message": "Consulta realizada correctamente.",
"data": {
"state_type_id": "05",
"state_type_description": "Aceptado",
"code_sunat": "1",
"message_sunat": "Operation Success! ",
"state_ruc": "ACTIVO",
"condition_ruc": "HABIDO",
"regularize": {
"requested": true,
"updated": false,
"message": "Estado de sunat igual al del sistema",
"system_state_type_id": "05",
"previous_state_type_id": null
}
}
}4. Regularize — CPE no está en BD
{
"success": true,
"message": "Consulta realizada correctamente.",
"data": {
"state_type_id": "05",
"state_type_description": "Aceptado",
"code_sunat": "1",
"message_sunat": "Operation Success! ",
"state_ruc": "ACTIVO",
"condition_ruc": "HABIDO",
"regularize": {
"requested": true,
"updated": false,
"message": "No se encontró el comprobante en la base de datos para regularizar.",
"system_state_type_id": null,
"previous_state_type_id": null
}
}
}5. Consulta OK — CPE no existe en SUNAT
{
"success": true,
"message": "Consulta realizada correctamente.",
"data": {
"state_type_id": "-1",
"state_type_description": "No existe",
"code_sunat": "0",
"message_sunat": "Operation Success! ",
"state_ruc": "",
"condition_ruc": "",
"regularize": {
"requested": true,
"updated": false,
"message": "No existe en Sunat",
"system_state_type_id": "01",
"previous_state_type_id": null
}
}
}6. Consulta OK — CPE anulado
{
"success": true,
"message": "Consulta realizada correctamente.",
"data": {
"state_type_id": "11",
"state_type_description": "Anulado",
"code_sunat": "2",
"message_sunat": "Operation Success! ",
"state_ruc": "ACTIVO",
"condition_ruc": "HABIDO",
"regularize": {
"requested": true,
"updated": true,
"message": "El estado del CPE fue actualizado",
"system_state_type_id": "11",
"previous_state_type_id": "05"
}
}
}7. Error — no autenticado
{
"success": false,
"message": "No se encuentra autenticado"
}8. Error — faltan fecha/total y no está en BD
{
"success": false,
"message": "No se encontró el comprobante en la base de datos. Envíe date_of_issue y total, o verifique tipo/serie/número."
}