Error 0159 SUNAT: El nombre del archivo XML es incorrecto

Fuente: Reglas de validación de SUNAT, actualizado al 26.08.2026. Los mensajes y las condiciones son textos oficiales de SUNAT.

Qué significa

SUNAT devuelve el código 0159 con el mensaje «El nombre del archivo XML es incorrecto».

Es un error: SUNAT rechaza el comprobante y no tiene validez tributaria.

Aparece en: Todos los comprobantes.

Cuándo aparece

Estas son las reglas de validación de SUNAT que devuelven el código 0159, con su texto oficial:

  • Todos los comprobantesError

    Condición: El nombre del archivo XML no tiene la estructura RRRRRRRRRRR-01-SSSS-NNNNNNNN.xml o RRRRRRRRRRR-01-SSSS-NNNNNNNN.XML (Donde: RRRRRRRRRR: RUC, SSSS: Serie, NNNNNNNN: Número) Para tipo de documento 01, 03, 07, 08, 30, 34 y 42: Numérico de 4 dígitos o alfanumérico que empieza con F y B Para tipo de documento 04: Alfanumérico que empieza con L Para tipo de documento 20: Numérico de 4 dígitos o alfanumérico que empieza con R Para tipo de documento 40: Numérico de 4 dígitos o alfanumérico que empieza con P Para tipo de documento 25: Numérico de 4 dígitos o alfanumérico que empieza con F Para tipo de documento 28: Alfanumérico de 4 dígitos Para tipo de documento 56: Alfanumérico que empieza con C - NNNNNNNN: Número correlativo del archivo. En el caso del tipo de documento '28' o '56' la longitud puede ser de hasta de 9 posiciones.

Cómo resolverlo

Es un código de disponibilidad o de transporte: el comprobante no llegó a validarse. Reenvía el mismo XML más tarde. Con API SUNAT no tienes que hacerlo a mano: la API lo reenvía sola hasta 5 veces y te avisa por correo y por el webhook document.failed si sigue fallando.

Cómo lo ves en API SUNAT

Con API SUNAT no armas el XML: envías la venta en JSON y la API lo genera, lo firma y lo envía a SUNAT. Si SUNAT rechaza el comprobante, la emisión responde con status "rejected" y el código en sunat.errorCode y sunat.errorMessage; las observaciones llegan con status "accepted_with_observations".

También puedes recibirlo por webhook (document.rejected o document.observed). Ver los estados en la documentación.