Validación CPE

Valida el estado de comprobantes de pago electrónicos (facturas, boletas, notas) en SUNAT.

Validación CPE

Consulta el estado de un Comprobante de Pago Electrónico (CPE) directamente en los servicios de SUNAT.

Endpoint

POST /api/cpe/validar

Headers

HeaderRequeridoDescripción
X-API-KEYTu API Key de KipuDev
Content-Typeapplication/json

Body de la solicitud

{
  "rucEmisor": "20123456789",
  "tipoComprobante": "01",
  "serie": "F001",
  "numero": 12345,
  "rucSolicitante": "20987654321",
  "usuarioSol": "MODDATOS",
  "claveSol": "CLAVE123"
}

Parámetros

CampoTipoRequeridoDescripción
rucEmisorstringRUC del emisor del comprobante (11 dígitos)
tipoComprobantestringCódigo del tipo de comprobante
seriestringSerie del comprobante (ej: F001, B001)
numeronumberNúmero correlativo del comprobante
rucSolicitantestringTu RUC para la consulta
usuarioSolstringUsuario secundario de SUNAT
claveSolstringClave del usuario secundario

Tipos de comprobante

CódigoTipo
01Factura
03Boleta de Venta
07Nota de Crédito
08Nota de Débito

Credenciales SOL

Este endpoint requiere credenciales de usuario secundario de SUNAT (Clave SOL). Nunca uses tu clave principal.

Ejemplo de solicitud

curl -X POST "https://api.kipudev.com/api/cpe/validar" \
  -H "X-API-KEY: tu-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "rucEmisor": "20123456789",
    "tipoComprobante": "01",
    "serie": "F001",
    "numero": 12345,
    "rucSolicitante": "20987654321",
    "usuarioSol": "MODDATOS",
    "claveSol": "CLAVE123"
  }'

Respuesta exitosa

{
  "codigo": "0",
  "mensaje": "La consulta del comprobante ha sido aceptada",
  "estado": "Aceptado",
  "esValido": true
}

Campos de respuesta

CampoTipoDescripción
codigostringCódigo de respuesta de SUNAT
mensajestringMensaje descriptivo
estadostringEstado del comprobante
esValidobooleanIndica si el CPE es válido

Códigos de estado

CódigoEstadoDescripción
0AceptadoEl comprobante existe y está aceptado
2AnuladoEl comprobante fue anulado
4En ProcesoAún no ha sido procesado
98No ExisteNo se encontró el comprobante
99ErrorError en la consulta

Estados posibles

EstadoDescripción
AceptadoCPE válido y registrado en SUNAT
AnuladoCPE fue dado de baja
No ExisteCPE no encontrado en SUNAT
En ProcesoCPE pendiente de procesamiento
ErrorError al consultar

Errores

CódigoErrorDescripción
400Datos incompletosFaltan campos requeridos
400RUC inválidoRUC mal formado
401Credenciales SOL inválidasUsuario o clave incorrectos
500Error SUNATEl servicio de SUNAT no responde
{
  "error": "Credenciales SOL inválidas",
  "code": "INVALID_SOL_CREDENTIALS"
}

Si ingresas credenciales SOL incorrectas múltiples veces, SUNAT puede bloquear temporalmente tu usuario.

Ejemplo en código

interface CpeRequest {
  rucEmisor: string;
  tipoComprobante: "01" | "03" | "07" | "08";
  serie: string;
  numero: number;
  rucSolicitante: string;
  usuarioSol: string;
  claveSol: string;
}

interface CpeResponse {
  codigo: string;
  mensaje: string;
  estado: string;
  esValido: boolean;
}

async function validarCpe(data: CpeRequest): Promise<CpeResponse> {
  const response = await fetch("https://api.kipudev.com/api/cpe/validar", {
    method: "POST",
    headers: {
      "X-API-KEY": process.env.KIPUDEV_API_KEY,
      "Content-Type": "application/json",
    },
    body: JSON.stringify(data),
  });

  if (!response.ok) {
    const error = await response.json();
    throw new Error(error.error);
  }

  return response.json();
}

// Uso
const resultado = await validarCpe({
  rucEmisor: "20123456789",
  tipoComprobante: "01",
  serie: "F001",
  numero: 12345,
  rucSolicitante: "20987654321",
  usuarioSol: "MODDATOS",
  claveSol: "CLAVE123",
});

if (resultado.esValido) {
  console.log("✅ CPE válido:", resultado.mensaje);
} else {
  console.log("❌ CPE no válido:", resultado.estado);
}

Rate Limiting

Este endpoint consume 1 consulta de tu cuota diaria.

La validación de CPE depende de los servicios de SUNAT. En horarios de alta demanda, la respuesta puede tardar algunos segundos.

Casos de uso

  • Recepción de facturas: Validar que las facturas recibidas sean legítimas
  • Auditoría: Verificar comprobantes antes de registrarlos contablemente
  • Sistemas ERP: Integración automática de validación de CPEs