Errores Comunes
Esta guía te ayudará a resolver los problemas más frecuentes al integrar con SUNAT.Errores de Conexión
Error: No se pudo conectar con SUNAT
Síntomas:- Timeout al enviar comprobantes
- Error de conexión SSL/TLS
- No hay respuesta del servidor
-
Verificar conectividad:
-
Verificar certificados SSL del servidor:
-
Verificar firewall:
- Permitir conexiones salientes al puerto 443 (HTTPS)
- Permitir conexiones a dominios
*.sunat.gob.pe
-
Verificar extensión PHP:
Los servicios de SUNAT pueden tener mantenimientos programados. Verifica el estado en la página oficial de SUNAT.
Error: SSL certificate problem
Mensaje:-
Actualizar el archivo
cacert.pemen tu instalación de PHP: -
Configurar
php.ini:
Errores de Certificado Digital
Error: No se encontró certificado PEM
Mensaje:-
Verificar que el certificado exista:
-
Verificar permisos del archivo:
-
Si tienes un certificado
.pfx, convertirlo a.pem:
Error: El certificado digital ha expirado
Código SUNAT:1033
Solución:
- Renovar el certificado digital con tu proveedor (PSE)
- Actualizar el archivo
.pemcon el nuevo certificado - Verificar fecha de expiración:
Error: El RUC del certificado no coincide
Código SUNAT:2324
Mensaje:
- El certificado digital está a nombre de un RUC diferente
- Estás usando el certificado de prueba en producción
- El modo de la empresa no coincide (beta vs production)
-
Verificar que el RUC en el certificado coincida con el de la empresa:
-
Verificar el modo de la empresa:
Errores de Credenciales
Error: Credenciales SOL incorrectas
Código SUNAT:1033, 0151
Mensaje:
-
Verificar formato del usuario SOL:
-
Verificar credenciales en SUNAT:
- Ingresa a SUNAT Operaciones en Línea
- Verifica o regenera tu Clave SOL
-
En ambiente beta, usar las credenciales de prueba:
Error: Token GRE inválido o expirado
Para guías de remisión electrónicas (GRE API): Solución:-
Verificar credenciales OAuth en
.env: - Verificar que las credenciales sean para el RUC correcto
- El token se obtiene automáticamente en cada request, no es necesario guardarlo
Errores de Validación de Documentos
Error: El comprobante ya existe
Código SUNAT:2283, 1032
Mensaje:
- Ya enviaste un comprobante con la misma serie y número
- No reenvíes comprobantes ya aceptados por SUNAT
- Verifica el correlativo antes de generar un nuevo comprobante
- Si necesitas corregir, usa una nota de crédito
Error: Serie o número inválido
Código SUNAT:2108, 2109
Mensajes:
- Facturas:
F001,F002, etc. - Boletas:
B001,B002, etc. - Notas de crédito factura:
FC01,FC02 - Notas de crédito boleta:
BC01,BC02 - Guías de remisión:
T001,T002,V001
Error: Datos del cliente inválidos
Código SUNAT:2017, 2800, 2801
Mensajes:
-
Validar tipo de documento:
- Para facturas (tipo 01), el cliente DEBE tener RUC válido
- Para boletas (tipo 03), puede ser DNI o RUC
Error: Monto total no coincide
Código SUNAT:2802, 3035
Mensaje:
SunatService maneja estos cálculos automáticamente, pero verifica que los totales en la venta sean correctos.
Códigos de Error CDR (Constancia de Recepción)
Códigos de Aceptación
| Código | Descripción | Acción |
|---|---|---|
0 | Aceptado | Comprobante válido y aceptado |
0100 | Aceptado con observaciones | Revisar observaciones pero es válido |
Códigos de Rechazo Comunes
| Código | Descripción | Solución |
|---|---|---|
1033 | Credenciales SOL incorrectas | Verificar usuario y clave SOL |
2017 | Cliente con RUC no válido | Verificar RUC del cliente en SUNAT |
2108 | Serie no corresponde al tipo | Usar formato correcto de serie |
2283 | Comprobante ya existe | No reenviar, usar nota de crédito |
2324 | RUC del certificado no coincide | Usar certificado del RUC correcto |
2335 | Fecha de emisión inválida | No emitir documentos con fecha futura |
2802 | Error en cálculo de IGV | Verificar montos y redondeos |
3035 | Suma de totales incorrecta | Verificar cálculo de subtotal + IGV |
Códigos de Proceso
| Código | Descripción | Acción |
|---|---|---|
98 | En proceso | Esperar y consultar nuevamente |
99 | Error temporal | Reintentar más tarde |
Errores de Guías de Remisión (GRE)
Error: Ticket en proceso (código 98)
Mensaje:- Es normal, el procesamiento puede tardar unos segundos
- Consultar nuevamente después de 2-5 segundos:
Error: Datos del transportista inválidos
Código:3001, 3002
Solución:
- Verificar datos según modalidad de transporte:
Error: Peso total no puede ser cero
Solución:Errores de Resumen Diario y Comunicación de Baja
Error: Ya existe un resumen para esta fecha
Solución:- Cada correlativo de resumen debe ser único por día
- Incrementar el correlativo:
Error: Ticket no encontrado o expirado
Solución:- Los tickets expiran después de cierto tiempo
- Consultar el ticket antes de medianoche
- Guardar el ticket en la base de datos para consultarlo después
Cómo Leer las Respuestas de SUNAT
Respuesta Exitosa (CDR)
Cuando SUNAT acepta un comprobante:- Código de respuesta
- Mensaje descriptivo
- Firma digital de SUNAT
- Observaciones (si las hay)
Respuesta con Error
Respuesta con Observaciones
Algunos comprobantes son aceptados pero con observaciones:Las observaciones no invalidan el comprobante, pero es recomendable corregirlas para futuros documentos.
Logs y Debugging
Revisar Logs de Laravel
Todos los errores de SUNAT se registran automáticamente:Logs de SunatService
El servicio registra errores con contexto:Habilitar Debugging de Greenter
Para ver el XML generado y las respuestas SOAP:Verificación de Estado de Servicios SUNAT
Si tienes problemas de conexión, verifica el estado de los servicios:- Portal SUNAT: https://www.sunat.gob.pe/
- Operaciones en Línea: https://e-menu.sunat.gob.pe/
- Estado de Servicios: Buscar anuncios de mantenimiento programado
Problemas de Rendimiento
Timeout en envío de comprobantes
Solución:-
Aumentar timeout de PHP:
-
Para grandes volúmenes, usar colas:
- Verificar latencia de red a servicios SUNAT
Muchos comprobantes pendientes de envío
Solución:-
Implementar cola de procesamiento:
-
Procesar en lotes:
Preguntas Frecuentes
¿Puedo eliminar un comprobante enviado a SUNAT?
No. Una vez aceptado por SUNAT, el comprobante no se puede eliminar. Debes usar:- Nota de crédito: Para anular boletas y facturas
- Comunicación de baja: Solo para facturas (proceso asíncrono)
¿Cuánto tiempo debo guardar los XML y CDR?
Según la normativa tributaria peruana, mínimo 5 años.¿Puedo corregir un comprobante después de enviarlo?
No directamente. Debes:- Emitir una nota de crédito para anular el comprobante original
- Emitir un nuevo comprobante con los datos correctos
¿Qué hago si SUNAT no responde?
Verifica:- Estado de los servicios de SUNAT
- Tu conexión a internet
- Logs de error en
storage/logs/laravel.log - Intenta más tarde (puede ser mantenimiento)
Recursos Adicionales
Ambiente Beta
Prueba en el ambiente de desarrollo
Producción
Configura el ambiente de producción
Soporte Técnico
Si los problemas persisten:- Documentación oficial de SUNAT:
- Greenter (biblioteca usada):
- Mesa de ayuda de tu PSE (proveedor del certificado digital)
-
Logs del sistema: