Error SAT 301 en la descarga masiva de CFDI: el XML de la solicitud llegó mal formado
El código 301 aparece en el servicio de descarga masiva del SAT cuando el XML de la petición no tiene la estructura esperada: falta un atributo, hay una etiqueta sin cerrar, un valor con formato inválido o un carácter que no corresponde. No habla de tus comprobantes, sino de la petición que tu sistema envía al servicio. Aquí verás qué datos lleva una solicitud, cómo detectar el defecto y a quién acudir si el problema no está en tu lado.
Resumen rápido del error
- Código: 301 (servicio de descarga masiva del SAT)
- Campo: XML mal formado
- Dónde se presenta: servicio web de descarga masiva del SAT, al enviar una solicitud, una verificación o una descarga con un XML defectuoso
- Regla del servicio: El XML de la petición debe cumplir la estructura que define el servicio; si no la cumple, el SAT responde 301.
- Mensaje de rechazo: XML mal formado.
- Cuándo aparece: al enviar una petición cuyo XML no respeta la estructura que espera el servicio.
¿Qué significa el código 301?
El servicio de descarga masiva recibe peticiones en formato XML. Si la petición no respeta la estructura, el servicio no llega a evaluar quién eres ni qué pides: la rechaza con 301. A diferencia de otros códigos, que dicen que la consulta es demasiado grande (5003) o que no hay información (5004), este indica que el mensaje mismo está defectuoso.
Por eso la causa casi siempre está en el software que arma la petición: una actualización, una plantilla modificada o un valor que llega vacío desde otro módulo. Corregir el XML suele resolverlo, y no necesitas cambiar tus certificados.
Dónde aparece: la petición que envías
Una solicitud de descarga lleva, entre otros datos, el RFC solicitante, un rango de fechas con inicio y fin, el tipo de descarga (emitidos o recibidos), el tipo de solicitud y, en su caso, el estado del comprobante. Todos van en atributos o nodos con nombre y formato definidos.
- Fechas: formato de fecha y hora definido; una fecha mal escrita provoca el rechazo.
- RFC: debe ser un valor con formato de RFC.
- Atributos obligatorios: si falta uno, la petición se considera mal formada.
- Caracteres: etiquetas sin cerrar o caracteres especiales sin escapar rompen el XML.
Causas más comunes del código 301
- Falta un atributo obligatorio. Por ejemplo, la fecha final no se envió.
- El formato de fecha es incorrecto. Se envió solo la fecha sin la hora, o con separadores distintos.
- Hay una etiqueta sin cerrar. Una plantilla se editó a mano y quedó incompleta.
- Hay caracteres sin escapar. Un símbolo como & dentro de un valor rompe el XML.
- Un valor llega vacío. El módulo que arma la petición no recibió el RFC o el periodo.
- Se envió un XML de otro servicio. Se reutilizó una plantilla de una operación distinta.
Cómo resolver el código 301 paso a paso
- Confirma que sea 301. Distínguelo del 300 (usuario no válido) y del 302 (sello mal formado).
- Guarda la petición. Obtén el XML tal como lo envió tu sistema.
- Revisa que esté bien formado. Ábrelo en un validador de XML y busca etiquetas sin cerrar.
- Verifica los atributos. Fechas, RFC y tipo de descarga deben estar presentes y con formato válido.
- Corrige y reintenta. Envía de nuevo la solicitud con el XML corregido.
- Si persiste, contacta a soporte. Comparte el RFC, el rango de fechas, la hora del intento y el XML sin datos de acceso; nunca envíes tu e.firma ni su contraseña.
Ejemplo de una petición defectuosa
Ejemplo esquemático de una petición sin fecha final y de una completa; los datos son ficticios y los nombres de atributos pueden variar según la versión del servicio:
Incorrecto:
<solicitud RfcSolicitante="ABC030303AB3" FechaInicial="2026-03-01T00:00:00" TipoSolicitud="CFDI" /> → CodEstatus="301" Mensaje="XML mal formado"
Correcto:
<solicitud RfcSolicitante="ABC030303AB3" FechaInicial="2026-03-01T00:00:00" FechaFinal="2026-03-31T23:59:59" TipoSolicitud="CFDI" /> → CodEstatus="5000" Mensaje="Solicitud aceptada"
Las fechas y el RFC son ficticios. En el ejemplo correcto se agrega la fecha final.
Qué enviar a soporte y qué nunca enviar
Si el XML parece correcto y el 301 persiste, conviene abrir un caso con quien da soporte a tu sistema o a tu integración. Prepara la fecha y hora del intento, el RFC solicitante, el rango de fechas pedido y la petición con los datos sensibles retirados. Nunca envíes la contraseña de tu e.firma, la llave privada ni el archivo de tu e.firma: no se necesitan para diagnosticar un XML mal formado y nadie debe pedírtelos por correo o mensaje. Con esa información, un equipo técnico puede comparar tu petición contra la estructura vigente del servicio. Para repasar el flujo completo de comprobantes, consulta la guía de descarga masiva de CFDI.
Cómo evitar este error con Soicont
Soicont cuenta con un módulo de descarga masiva de CFDI para trabajar con los comprobantes de tus RFC desde la misma plataforma de facturación electrónica. Además, tus folios no caducan y puedes facturar para varias empresas (multi-RFC) desde una sola cuenta.
Conoce la facturación electrónica CFDI 4.0, la plataforma y los paquetes de folios.
Errores relacionados
- Error SAT 300: el usuario no es válido para el servicio.
- Error SAT 302: el sello de la petición no tiene la forma esperada.
- Error SAT 5003: la consulta supera el tope permitido.
- Error SAT 5004: la consulta fue válida pero no encontró información.
- Error SAT 5007: el paquete solicitado no existe o ya venció.
Consulta también el Centro de Soluciones con todos los errores del SAT.
Preguntas frecuentes
¿Qué significa el error 301?
Que el XML de la petición al servicio de descarga masiva está mal formado.
¿Mis comprobantes tienen algún problema?
No. El código se refiere a la petición, no a los CFDI.
¿Debo cambiar mi e.firma?
No. Este código no se debe a los certificados.
¿Cómo reviso el XML?
Con un validador de XML y comprobando fechas, RFC y atributos obligatorios.
¿Qué envío a soporte?
RFC, fechas, hora del intento y la petición sin datos de acceso; nunca la e.firma ni su contraseña.
¿Es lo mismo que el 302?
No. El 302 se refiere al sello de la petición.
¿Todavía no se resuelve?
Si después de revisar estos puntos el error continúa, escríbenos desde la página de contacto con el código del error, el rango de fechas y el tipo de descarga que solicitaste (nunca envíes contraseñas, la llave privada ni tu e.firma). Si aún no tienes cuenta, crea la tuya y empieza a facturar con validaciones previas.