Tipos de Errores
Los errores de SUNAT se clasifican en:- Serie 2000: Errores de validación de datos
- Serie 3000: Errores de certificados y autenticación
- Serie 4000: Errores de formato XML
- Serie 5000: Errores de lógica de negocio
Los errores aparecen en el campo
mensaje_sunat de la venta y se registran en storage/logs/laravel.log.Errores Comunes (Serie 2000)
2010: El RUC del cliente no existe
Mensaje completo:- El RUC o DNI ingresado no está en el padrón de SUNAT
- El documento tiene dígitos incorrectos
-
Verifique el número de documento en la consulta RUC de SUNAT:
-
Si el RUC es correcto pero SUNAT no lo reconoce, use tipo de documento 0 (sin documento) para ventas menores:
-
Corrija el documento en el cliente y regenere el XML:
Aceptado con observaciones: Si el comprobante fue aceptado con código
0001 y este mensaje como observación, el comprobante es VÁLIDO. Solo es una advertencia.2024: El tipo de documento del cliente no es válido
Mensaje completo:- RUC (11 dígitos) con tipo de documento DNI (1)
- DNI (8 dígitos) con tipo de documento RUC (6)
SunatService::buildClient() (línea 127-157) se detecta automáticamente:
tipo_doc en la tabla clientes sea correcto o null (para detección automática).
2100: El monto no coincide con la suma de los ítems
Mensaje completo:- Error de redondeo en el cálculo de IGV
- Descuentos aplicados incorrectamente
SunatService::buildSaleDetails() (línea 956-999):
- Recalcule los montos en la venta
- Regenere el XML
- Reenvíe
2335: El certificado no es válido
Mensaje completo:- Certificado .pem expirado
- Certificado no corresponde al RUC
- Certificado mal formado
-
Verificar vigencia:
Salida:
-
Verificar RUC del certificado:
Salida:
- Si expiró: Renueve el certificado y reemplace el archivo .pem Ver: Configurar Certificados
2800: El comprobante ya fue informado
Mensaje completo:- Se intentó enviar el mismo comprobante dos veces
- Ya existe en SUNAT con el mismo RUC, serie y número
- Si fue enviado por error: No requiere acción. El comprobante ya está aceptado.
-
Si necesita modificar el comprobante:
- NO se puede modificar un comprobante ya aceptado
- Debe emitir una Nota de Crédito para anularlo
- Luego emitir un nuevo comprobante con número diferente
-
Verificar en la base de datos:
Si ya está marcado como aceptado, actualice el estado en el sistema sin reenviar.
Errores de Certificado (Serie 3000)
3001: La firma digital es inválida
Mensaje completo:- El certificado no incluye la llave privada
- El archivo .pem está corrupto
- El XML fue modificado después de firmarse
-
Verificar contenido del .pem:
-
Si falta la llave privada: Regenere el .pem desde el .pfx:
- Reemplace el archivo y reintente
3100: Error de autenticación SOL
Mensaje completo:- Credenciales
user_soloclave_solincorrectas - Cuenta SOL bloqueada por intentos fallidos
-
Verifique credenciales en la tabla
empresas: -
Verifique en SUNAT Operaciones en Línea:
- Intente ingresar con las mismas credenciales
- Si está bloqueada, restablezca la clave
-
En modo beta: Verifique que use las credenciales de prueba:
Errores de Formato XML (Serie 4000)
4000: El formato del XML es inválido
Mensaje completo:- XML mal formado (tags sin cerrar, caracteres especiales sin escapar)
- Estructura no cumple con el estándar UBL 2.1
-
Validar el XML generado:
Si hay errores, mostrará la línea específica.
-
Caracteres especiales en descripciones:
-
Validar contra el XSD de SUNAT:
Descargue los esquemas XSD desde SUNAT y valide:
4100: Campo obligatorio faltante
Mensaje completo:- Falta información requerida (ej: dirección del cliente, motivo de nota de crédito)
- Facturas: Dirección del cliente obligatoria
- Boletas: Dirección opcional (solo si monto > S/. 700)
- Notas de Crédito: Motivo obligatorio (código SUNAT + descripción)
Errores de Lógica (Serie 5000)
5000: Operación no permitida
Mensaje completo:- Horario no permitido (comunicaciones de baja tienen horarios restringidos)
- RUC suspendido temporalmente
- Mantenimiento de SUNAT
-
Verificar horarios:
- Resúmenes diarios: 24/7
- Comunicaciones de baja: No entre 22:00 - 01:00
- Verificar estado del RUC: Consulte en SUNAT si el RUC está activo y habilitado para emitir comprobantes.
- Reintentar más tarde
Errores de Guías de Remisión (GRE)
Error: “El ubigeo de partida no es válido”
Causa:- Código de ubigeo incorrecto (debe ser 6 dígitos)
SunatService::generarGuiaRemisionXml() (línea 590-591):
Error: “Datos del conductor incompletos”
Causa:- Falta licencia de conducir o tipo de documento
Reintentos y Recuperación
Estrategia de Reintentos
Panel de Monitoreo de Errores
Consulte comprobantes con errores:Logs y Depuración
Habilitar Logging Detallado
En.env:
SunatService.php, los errores se registran automáticamente:
Revisar Logs
Recursos Adicionales
Documentación Oficial de SUNAT
- Manual de Usuario OSE: https://cpe.sunat.gob.pe/sites/default/files/inline-files/Manual_Emisor_OSE.pdf
- Catálogo de Códigos de Error: https://cpe.sunat.gob.pe/sites/default/files/inline-files/Anexo_V_Catalogo_Errores_2.1.pdf
- Esquemas XSD: https://cpe.sunat.gob.pe/node/88
Contacto SUNAT
- Mesa de Ayuda: 0-801-12-100
- Email: [email protected]
- Chat en línea: Disponible en SUNAT Virtual
Checklist de Diagnóstico
Antes de contactar soporte:- Verifique que el certificado .pem exista y no haya expirado
- Verifique que las credenciales SOL sean correctas
- Revise el mensaje de error completo en
storage/logs/laravel.log - Valide el XML generado con
xmllint - Verifique conectividad a
https://e-factura.sunat.gob.pe - Consulte el estado del RUC en SUNAT
- Revise que los datos del cliente sean correctos
- Verifique los montos y cálculos del comprobante