Enviaste una factura y tu sistema te devolvió un número: 2017, 1033, 2600. Sin más contexto, ese número no dice nada. Pero cada código de error de SUNAT corresponde a una validación concreta, y saber leerlo es la diferencia entre corregir el comprobante en dos minutos o pasarte la mañana adivinando.
En esta guía te explicamos cómo funciona el catálogo de errores de SUNAT, qué significa cada rango de códigos, cómo leer la respuesta que devuelve SUNAT y cuáles son los errores que más aparecen en la facturación electrónica peruana, con su solución concreta. Al final encontrarás nuestro buscador de errores SUNAT, donde puedes consultar los 1,710 códigos del catálogo escribiendo el número o describiendo el problema con tus palabras.
Dónde está el código de error: la Constancia de Recepción
Cuando tu sistema envía un comprobante al servicio de SUNAT, la respuesta no es un mensaje suelto: es un archivo ZIP que contiene la Constancia de Recepción (CDR), un XML cuyo nombre empieza con R-. Ese archivo es el documento que acredita lo que pasó con tu comprobante, y dentro de él hay tres etiquetas que te interesan:
- cbc:ResponseCode → el código de respuesta. Si vale
0, tu comprobante fue aceptado. Cualquier otro valor es un rechazo o una observación. - cbc:Description → el texto oficial del error, tal como lo define SUNAT.
- cbc:Note → aparece cuando el comprobante fue aceptado pero con observaciones.
Hay un caso en el que no llega ningún CDR: cuando SUNAT devuelve una excepción antes de procesar el documento. En ese escenario tu sistema recibe un error del servicio (un SOAP Fault) con su propio código, y el comprobante se considera no informado.
Los tres tipos de respuesta de SUNAT
El rango numérico del código te dice de inmediato la gravedad del problema. Esta es la clasificación que usa el catálogo de errores:
Excepciones: códigos 0100 a 1999
El envío falla antes de que el comprobante llegue a registrarse. SUNAT no emite constancia y el documento se considera no informado. Esto tiene una consecuencia práctica muy útil: puedes corregir el XML y reenviarlo con la misma serie y el mismo correlativo. No pierdes numeración.
En este rango entran los problemas de conexión y autenticación (usuario SOL mal configurado, certificado sin permisos), los problemas del archivo ZIP o XML (nombre incorrecto, archivo corrupto) y las validaciones de estructura más básicas.
Errores que generan rechazo: códigos 2000 a 3999
SUNAT sí procesa el comprobante, pero lo rechaza mediante un CDR. El documento no tiene validez tributaria y, lo más importante, el correlativo se consume: no puedes volver a usar esa serie y número. Tienes que corregir el problema y emitir un comprobante nuevo con el siguiente correlativo.
Aquí está el grueso del catálogo: datos del receptor, montos que no cuadran, catálogos desactualizados, notas que apuntan a comprobantes inexistentes, guías de remisión incompletas.
Observaciones: códigos 4000 en adelante
El comprobante fue aceptado y tiene validez tributaria. La observación es un aviso: hay un dato que SUNAT considera incorrecto o incompleto, pero no lo suficiente como para invalidar el documento. No necesitas reemitir nada, pero sí conviene corregir el origen del dato, porque muchas observaciones de hoy se convierten en rechazos mañana.
El ejemplo más claro es el código de producto: hoy un código inválido genera la observación 4332, y a partir del 1 de enero de 2027 pasará a rechazar el comprobante con el error 3496. Lo explicamos en detalle en nuestro artículo sobre el Código de Producto SUNAT y el Catálogo N.° 25.
Rechazado u observado: qué hacer en cada caso
Esta es la duda que más se repite, y conviene tenerla clara antes de tocar nada:
- Comprobante rechazado. No existe para SUNAT. No emitas una nota de crédito (no hay nada que anular): simplemente corrige el error y emite un comprobante nuevo con el siguiente número. La serie rechazada queda inutilizada.
- Comprobante observado. Existe y es válido. No lo reemitas ni lo anules; corrige el dato en tu sistema para las próximas emisiones.
- Excepción. No llegó a SUNAT. Corrige y reenvía con el mismo número.
Si no estás seguro de en qué estado quedó un comprobante, no adivines: consúltalo directamente con nuestra consulta de validez de CPE ante SUNAT.
Los errores de SUNAT más frecuentes (y cómo se resuelven)
El catálogo tiene más de mil setecientos códigos, pero en la práctica el 90 % de los rechazos se concentra en un puñado. Estos son los que más vemos.
Autenticación y conexión
- 0102 — Usuario o contraseña incorrectos. Casi siempre es un problema de formato: el usuario se envía como RUC + usuario secundario, todo junto y sin espacios (por ejemplo
20123456789MODDATOS). - 0111 — No tiene el perfil para enviar comprobantes electrónicos. El usuario secundario existe, pero le falta el permiso. Asígnale desde Clave SOL los accesos del rubro de comprobantes de pago electrónicos.
- 0100 — El sistema no puede responder su solicitud. No es tu comprobante: es una caída temporal del servicio. Reintenta en unos minutos antes de tocar el XML.
Archivo y firma digital
- 0151 / 0159 — Nombre del archivo incorrecto. El ZIP y el XML deben llamarse
RUC-TipoDoc-Serie-Correlativo(por ejemplo20123456789-01-F001-00000123.zip) y coincidir entre sí. - 1059 — El XML no contiene firma digital. Revisa que tu certificado digital esté vigente y correctamente instalado. Puedes comprobar la vigencia con nuestro validador de certificado digital.
- 2335 — El documento electrónico ha sido alterado. El XML se modificó después de firmarse. La firma siempre va al final del proceso: si tu sistema reformatea el archivo después de firmar, la firma deja de validar.
Datos del receptor
- 2017 — El documento de identidad del receptor debe ser RUC. En una factura el cliente necesita RUC. Si no lo tiene, lo que corresponde es una boleta de venta, no una factura.
- 2801 — El DNI ingresado no cumple con el estándar. Ocho dígitos exactos. Un DNI de 7 dígitos guardado sin el cero inicial es una causa clásica de rechazo masivo.
- 2022 — La razón social no cumple el estándar. No puede ir vacía ni tener menos de 3 caracteres.
Numeración y duplicidad
- 1033 / 2109 — El comprobante fue registrado previamente con otros datos. Ya enviaste ese tipo, serie y número con información distinta. SUNAT conserva siempre el primer envío. Si el comprobante original está mal, se corrige con una nota de crédito o una comunicación de baja, nunca reenviando el mismo número.
- 1001 — La serie y correlativo no cumplen el formato. Las facturas usan serie
F###y las boletasB###, con correlativo de hasta 8 dígitos.
Plazos
- 2600 — El comprobante fue enviado fuera del plazo permitido. Es el error más evitable de toda la lista y el que más dinero cuesta, porque obliga a reemitir. La solución no es técnica: programa el envío automático apenas se emite el documento, en lugar de acumular envíos.
Catálogos e ítems
- 3206 — El tipo de operación no corresponde a un valor esperado. Revisa que el código provenga del Catálogo N.° 51 vigente.
- 2027 — Falta la descripción del ítem. Toda línea del comprobante necesita descripción del bien o servicio.
- 4332 — El código de producto SUNAT no es válido. Hoy es solo una observación, pero conviene corregirla ya. Busca el código correcto de 8 dígitos en nuestro catálogo de código de producto SUNAT.
- Y si el rechazo viene por la unidad de medida, tenemos una guía dedicada a los códigos de unidad de medida SUNAT.
Cinco hábitos que eliminan la mayoría de los rechazos
- Valida antes de enviar. Un buen sistema de facturación revisa RUC, montos y catálogos antes de que SUNAT lo haga. Cada validación local es un rechazo que no ocurre.
- Vigila el certificado digital. Un certificado vencido detiene toda la facturación de golpe. Ponle recordatorio con 30 días de anticipación.
- Envía en el momento de emitir. Acumular comprobantes para enviarlos al cierre es lo que produce el error 2600.
- Mantén los catálogos actualizados. Unidades de medida, tipos de operación y códigos de producto cambian; un maestro de productos desactualizado genera rechazos en cadena.
- Lee el CDR, no lo archives. Las observaciones son avisos anticipados. Corregirlas cuesta minutos; ignorarlas hasta que se conviertan en rechazo cuesta días.
Busca cualquier error de SUNAT
Para el resto de códigos preparamos una herramienta gratuita: el buscador de errores SUNAT. Escribe el número que te devolvió SUNAT y obtienes al instante su significado, el tipo de respuesta (excepción, rechazo u observación) y el área afectada. También puedes buscar por texto, así que si solo recuerdas que el problema era «la firma» o «el plazo», escribe eso y el buscador filtra mientras escribes. Funciona íntegramente en tu navegador: no envía tus datos a ningún lado.
¿Necesitas dejar de pelear con los rechazos?
En PeruSoftware Developers S.A.C. desarrollamos e integramos sistemas de facturación electrónica que validan el comprobante antes de enviarlo, reintentan los envíos fallidos y te avisan cuando algo queda rechazado u observado. Si hoy estás corrigiendo errores de SUNAT a mano, escríbenos y lo revisamos contigo.
Preguntas frecuentes
¿Qué significan los códigos de error de SUNAT?
Cada código identifica una validación concreta sobre tu comprobante electrónico. El rango indica la gravedad: de 0100 a 1999 son excepciones (el comprobante no llega a registrarse), de 2000 a 3999 son errores que generan rechazo mediante un CDR, y de 4000 en adelante son observaciones sobre un comprobante que sí fue aceptado.
¿Cuál es la diferencia entre un comprobante rechazado y uno observado?
Un comprobante rechazado no tiene validez tributaria y su correlativo se consume: debes corregir el error y emitir uno nuevo con el siguiente número. Un comprobante observado sí es válido y quedó registrado en SUNAT; la observación es un aviso para corregir el dato en las siguientes emisiones.
¿Puedo reenviar un comprobante con el mismo número después de un error?
Solo si el error fue una excepción (códigos 0100 a 1999), porque en ese caso SUNAT no llegó a registrar el comprobante. Si el error generó rechazo (2000 a 3999), el correlativo ya se consumió y debes emitir un comprobante nuevo.
¿Dónde veo el código de error que me devolvió SUNAT?
En la Constancia de Recepción (CDR), el XML con prefijo R- que llega dentro del ZIP de respuesta. El código está en el tag cbc:ResponseCode y el texto en cbc:Description. Si el código es 0, el comprobante fue aceptado.
¿Qué es el error 2600 de SUNAT?
Significa que el comprobante se envió fuera del plazo permitido desde su fecha de emisión, por lo que SUNAT lo rechaza. Se evita programando el envío automático apenas se emite el documento, en lugar de acumular comprobantes para enviarlos al cierre.