Carga masiva DIOT 2025: guía completa para importar datos al SAT
Cómo hacer carga masiva DIOT en 2025: tutorial completo con especificaciones técnicas, ejemplos de archivo .txt y catálogo de códigos de países.
Con la presentación de la nueva Declaración Informativa de Operaciones con Terceros (DIOT), el SAT permite realizar carga masiva de información en lugar de capturar dato por dato. Este proceso es similar al que existía en la versión de escritorio de la DIOT, pero incluye nuevos campos de datos que debes conocer.
La carga masiva es más rápida y reduce errores de captura manual. Pero requiere seguir especificaciones técnicas exactas: archivo en formato .txt, codificación UTF-8, separación de columnas con pipe (|), y campos con requisitos específicos según tipo de tercero.
Esta guía proporciona instrucciones completas para crear archivos de carga masiva en formato .txt, requeridos para la DIOT a partir de enero de 2025.
Objetivo de la carga masiva DIOT
El objetivo es permitir la importación masiva de información que se reporta en la Declaración Informativa de Operaciones con Terceros. En lugar de ingresar cada operación manualmente en la plataforma del SAT, creas un archivo .txt con todos los datos estructurados y lo importas de una sola vez.
Esto es especialmente útil para empresas con cientos o miles de operaciones mensuales con proveedores y clientes.
Condiciones generales para el archivo de carga masiva
Para crear el archivo .txt de carga masiva, debes seguir estas condiciones técnicas exactas:
Editor de texto: Se recomienda usar Bloc de Notas o cualquier editor de texto plano similar. No uses Word o Excel directamente, ya que pueden añadir caracteres ocultos.
Delimitador de columnas: El archivo está dividido en columnas delimitadas por el carácter pipe (|). Este es el separador que usa el SAT para diferenciar un campo de otro. No uses comas ni otro carácter.
Codificación obligatoria UTF-8: Este es el aspecto más crítico. Si no codificas el archivo en UTF-8, el SAT rechazará la carga. Para cambiar la codificación en Bloc de Notas:
- Abre Bloc de Notas (o double-click para crear/editar el archivo)
- Haz clic en “Archivo” → “Guardar como”
- En la lista desplegable “Codificación”, selecciona UTF-8
- Guarda el archivo con extensión .txt
Si guardas con la codificación ANSI (por defecto), el SAT no aceptará el archivo. Esto es un error común que causa rechazos en la carga.
Estructura de campos para la DIOT 2025
El archivo .txt debe contener información específica en un orden exacto. Los campos varían según el tipo de tercero (nacional, extranjero o global) y el tipo de operación. Todos los datos se separan por el pipe (|).
Debes ingresar la información considerando:
- El tipo de dato (numérico, alfanumérico, etc.)
- Si es obligatorio u opcional
- Si el campo debe quedar vacío en ciertos casos
Datos del tercero declarado
Estos son los primeros campos de cada línea del archivo. Identifican quién es el proveedor o cliente que estás reportando.
| Campo | Tipo de dato | Obligatorio u Opcional | Especificaciones |
| Tipo de tercero | Numérico 2 posiciones | Obligatorio | Es el tipo de proveedor a reportar: 04 Proveedor Nacional, 05 Proveedor Extranjero, 15 Proveedor Global |
| Tipo de operación | Numérico 2 posiciones | Obligatorio | Proveedor Nacional: 02 Enajenación de bienes, 03 Prestación de Servicios Profesionales, 06 Uso o goce temporal de bienes, 08 Importación por transferencia virtual, 85 Otros. Proveedor Extranjero: 02 Enajenación de bienes, 03 Prestación de Servicios Profesionales, 07 Importación de bienes o servicios. Proveedor Global: 87 Operaciones globales |
| Registro Federal de Contribuyentes (RFC) | Alfanumérico 12 a 13 posiciones, caracteres alfabéticos en mayúsculas | Obligatorio para nacional y global. Opcional para extranjero | Debe corresponder a una clave emitida por el SAT. Para proveedor global se usa XAXX010101000. Para extranjero el campo se queda vacío |
| Número de identificación fiscal | Alfanumérico máximo 40 posiciones | Obligatorio para tercero extranjero | Acepta caracteres especiales y valores [a-z incluso ñ y &]. Para nacional y global el campo se queda vacío |
| Nombre del extranjero | Alfanumérico máximo 300 posiciones | Obligatorio para tercero extranjero | Acepta caracteres especiales y valores [a-z incluso ñ y &]. Para nacional y global el campo se queda vacío |
| País o jurisdicción de residencia fiscal | Alfabético 2 posiciones | Obligatorio para tercero extranjero | Usa el catálogo de países (incluido al final). Para nacional y global el campo se queda vacío |
| Especificar lugar de jurisdicción fiscal | Alfanumérico máximo 300 posiciones | Obligatorio condicionado | Obligatorio solo si País = ZZZ (Otro). Si País ≠ ZZZ, el campo se queda vacío. Para nacional y global se queda vacío |
Valor de los actos o actividades
Estos campos reportan el monto de las operaciones realizadas con el tercero. Son todos opcionales pero aceptan ceros. No permiten decimales.
| Campo | Tipo de dato | Especificaciones |
| Valor total de actos o actividades pagadas / Región fronteriza norte | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| Devoluciones, descuentos y bonificaciones / Región fronteriza norte | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| Valor total de actos o actividades pagadas / Región fronteriza sur | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| Devoluciones, descuentos y bonificaciones / Región fronteriza sur | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| Valor total de actos o actividades pagadas / Tasa 16% IVA | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| Devoluciones, descuentos y bonificaciones / Tasa 16% IVA | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| Valor total / Importación por aduana de bienes tangibles a 16% IVA | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| Devoluciones / Importación por aduana de bienes tangibles a 16% IVA | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| Valor total / Importación de bienes intangibles y servicios a 16% IVA | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| Devoluciones / Importación de bienes intangibles y servicios a 16% IVA | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
IVA acreditable
Estos campos reportan el IVA que la empresa puede descontar (acreditar) en su declaración mensual de IVA. Los datos varían según el tipo de actividad y región. Todos son opcionales.
| Campo | Tipo de dato | Especificaciones |
| IVA Exclusivamente de actividades gravadas / Región fronteriza norte | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| IVA Exclusivamente de actividades gravadas / Región fronteriza sur | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| IVA Exclusivamente de actividades gravadas / Tasa 16% IVA | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| IVA Exclusivamente de actividades gravadas / Importación por aduana bienes tangibles 16% IVA | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| IVA Exclusivamente de actividades gravadas / Importación bienes intangibles y servicios 16% IVA | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| IVA De actividades gravadas y exentas / Región fronteriza norte | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| IVA De actividades gravadas y exentas / Región fronteriza sur | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| IVA De actividades gravadas y exentas / Tasa 16% IVA | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| IVA De actividades gravadas y exentas / Importación por aduana bienes tangibles 16% IVA | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| IVA De actividades gravadas y exentas / Importación bienes intangibles y servicios 16% IVA | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| IVA De servicios de transporte / Región fronteriza norte | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| IVA De servicios de transporte / Región fronteriza sur | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| IVA De servicios de transporte / Tasa 16% IVA | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| IVA De servicios de transporte / Importación por aduana bienes tangibles 16% IVA | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| IVA De servicios de transporte / Importación bienes intangibles y servicios 16% IVA | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| IVA De arrendamientos financieros / Región fronteriza norte | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| IVA De arrendamientos financieros / Región fronteriza sur | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| IVA De arrendamientos financieros / Tasa 16% IVA | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| IVA De arrendamientos financieros / Importación por aduana bienes tangibles 16% IVA | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| IVA De arrendamientos financieros / Importación bienes intangibles y servicios 16% IVA | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
IVA no acreditable
Estos campos reportan el IVA que la empresa NO puede descontar. Corresponde a compras por conceptos no deducibles fiscalmente. También son todos opcionales.
| Campo | Tipo de dato | Especificaciones |
| IVA No acreditable / Región fronteriza norte | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| IVA No acreditable / Región fronteriza sur | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| IVA No acreditable / Tasa 16% IVA | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| IVA No acreditable / Importación por aduana bienes tangibles 16% IVA | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
| IVA No acreditable / Importación bienes intangibles y servicios 16% IVA | Numérico máximo 14 posiciones | Opcional. No permite decimales. Acepta cero |
Datos adicionales
Estos campos complementan la información de la operación con el tercero. Son opcionales.
| Campo | Tipo de dato | Especificaciones |
| Clave de producto o servicio | Alfanumérico máximo 8 posiciones | Opcional. Identifica el catálogo de productos/servicios del SAT |
| Clave de unidad de medida | Alfanumérico máximo 3 posiciones | Opcional. Ejemplo: pza (pieza), kg (kilogramo), hr (hora) |
| Cantidad de unidades | Numérico máximo 14 posiciones | Opcional. Número de unidades suministradas |
| Descripción comercial o técnica del bien o servicio | Alfanumérico máximo 300 posiciones | Opcional. Descripción libre del producto/servicio. Acepta caracteres especiales |
| Folio de CFDI correlativo | Alfanumérico máximo 40 posiciones | Opcional. Si aplica, referencia al CFDI relacionado |
Ejemplo de archivo .txt completo
Un archivo de carga masiva DIOT se ve así. Cada línea representa una operación con un tercero. Los campos se separan por pipe (|):
04|02|ABC123456XYZ|||||10000|0|0|0|0|0|0|0|0|0|1600|0|0|1600|1600|0|1600|0|0|1600|0|1600|||| 04|03|DEF654321XYZ|||||5000|0|0|0|0|0|0|0|0|0|800|0|0|800|800|0|800|0|0|800|0|800|||| 05|02||ABC987654321|Proveedor Internacional S.A.|MX|||||50000|0|0|0|0|0|0|0|0|0|8000|0|0|8000|8000|0|8000|0|0|8000|0|8000||||
Explicación línea por línea:
Línea 1: Proveedor Nacional (04) | Enajenación de bienes (02) | RFC ABC123456XYZ | Operación de 10,000 con IVA de 1,600
Línea 2: Proveedor Nacional (04) | Prestación de Servicios (03) | RFC DEF654321XYZ | Operación de 5,000 con IVA de 800
Línea 3: Proveedor Extranjero (05) | Enajenación de bienes (02) | Sin RFC | ID ABC987654321 | Nombre “Proveedor Internacional S.A.” | País México (MX) | Operación de 50,000 con IVA de 8,000
Catálogo de países para terceros extranjeros
Para proveedores extranjeros, debes incluir el código del país. Aquí están todos los códigos reconocidos por el SAT:
Ver catálogo completo de 195+ países
| Código | País | Código | País |
| ABW | Aruba | AFG | Afganistán |
| ALB | Albania | DZA | Argelia |
| AND | Andorra | AGO | Angola |
| AIA | Anguila | ATG | Antigua y Barbuda |
| ARE | Emiratos Árabes Unidos | ARG | Argentina |
| AZE | Azerbaiyán | BHS | Bahamas |
| BHR | Bahréin | BGD | Bangladesh |
| BRB | Barbados | BLZ | Belice |
| BEL | Bélgica | BEN | Benín |
| BMU | Bermudas | BTN | Bután |
| BOL | Bolivia | BIH | Bosnia y Herzegovina |
| BWA | Botsuana | BRA | Brasil |
| BRN | Brunéi | BGR | Bulgaria |
| BFA | Burkina Faso | BDI | Burundi |
| KHM | Camboya | CMR | Camerún |
| CAN | Canadá | CPV | Cabo Verde |
| QAT | Catar | KAZ | Kazajistán |
| KEN | Kenia | KGZ | Kirguistán |
| KIR | Kiribati | CHN | China |
| CYP | Chipre | CIV | Costa de Marfil |
| CRI | Costa Rica | HRV | Croacia |
| CUB | Cuba | CUW | Curazao |
| DNK | Dinamarca | DJI | Yibuti |
| DMA | Dominica | ECU | Ecuador |
| EGY | Egipto | SLV | El Salvador |
| ALA | Islas Åland | GBR | Reino Unido |
| USA | Estados Unidos | EST | Estonia |
| ETH | Etiopía | FJI | Fiyi |
| PHL | Filipinas | FIN | Finlandia |
| FRA | Francia | GAB | Gabón |
| GMB | Gambia | GEO | Georgia |
| DEU | Alemania | GHA | Ghana |
| GIB | Gibraltar | GRD | Granada |
| GRC | Grecia | GRL | Groenlandia |
| GLP | Guadalupe | GUM | Guam |
| GTM | Guatemala | GGY | Guernsey |
| GIN | Guinea | GNB | Guinea-Bisáu |
| GNQ | Guinea Ecuatorial | GUY | Guyana |
| HTI | Haití | HND | Honduras |
| HKG | Hong Kong | HUN | Hungría |
| IND | India | IDN | Indonesia |
| IRN | Irán | IRQ | Irak |
| IRL | Irlanda | IMN | Isla de Man |
| ISL | Islandia | BVT | Isla Bouvet |
| KYM | Islas Caimán | CXR | Isla de Navidad |
| CCK | Islas Cocos (Keeling) | COK | Islas Cook |
| FRO | Islas Feroe | SGS | Georgia del Sur e Islas Sandwich del Sur |
| HMD | Islas Heard y McDonald | MNP | Islas Marianas del Norte |
| VGB | Islas Vírgenes Británicas | VIR | Islas Vírgenes de los EE.UU. |
| ISR | Israel | ITA | Italia |
| JAM | Jamaica | JPN | Japón |
| JEY | Jersey | JOR | Jordania |
| LAO | Laos | LSO | Lesoto |
| LVA | Letonia | LBN | Líbano |
| LBR | Liberia | LBY | Libia |
| LIE | Liechtenstein | LTU | Lituania |
| LUX | Luxemburgo | MAC | Macao |
| MYS | Malasia | MDV | Maldivas |
| MLI | Malí | MLT | Malta |
| MAR | Marruecos | MRT | Mauritania |
| MUS | Mauricio | MYT | Mayotte |
| MEX | México | FSM | Micronesia |
| MDA | Moldavia | MCO | Mónaco |
| MNG | Mongolia | MNE | Montenegro |
| MSR | Montserrat | MOZ | Mozambique |
| NAM | Namibia | NRU | Nauru |
| NPL | Nepal | NIC | Nicaragua |
| NER | Níger | NGA | Nigeria |
| NIU | Niue | NOR | Noruega |
| NCL | Nueva Caledonia | NZL | Nueva Zelanda |
| OMN | Omán | NLD | Países Bajos |
| PAK | Pakistán | PLW | Palaos |
| PSE | Palestina | PAN | Panamá |
| PNG | Papúa Nueva Guinea | PRY | Paraguay |
| PER | Perú | PYF | Polinesia Francesa |
| POL | Polonia | PRT | Portugal |
| PRI | Puerto Rico | GBR | Reino Unido |
| CAF | República Centroafricana | CZE | República Checa |
| COG | Congo | COD | República Democrática del Congo |
| DOM | República Dominicana | REU | Reunión |
| RWA | Ruanda | ROU | Rumania |
| RUS | Rusia | ESH | Sahara Occidental |
| WSM | Samoa | ASM | Samoa Americana |
| BLM | San Bartolomé | KNA | San Cristóbal y Nieves |
| SMR | San Marino | MAF | San Martín |
| SPM | San Pedro y Miquelón | VCT | San Vicente y las Granadinas |
| SHN | Santa Helena | LCA | Santa Lucía |
| STP | Santo Tomé y Príncipe | SEN | Senegal |
| SRB | Serbia | SYC | Seychelles |
| SLE | Sierra Leona | SGP | Singapur |
| SXM | Sint Maarten | SYR | Siria |
| SOM | Somalia | LKA | Sri Lanka |
| SWZ | Suazilandia | ZAF | Sudáfrica |
| SDN | Sudán | SSD | Sudán del Sur |
| SWE | Suecia | CHE | Suiza |
| SUR | Surinam | SJM | Svalbard y Jan Mayen |
| THA | Tailandia | TWN | Taiwán |
| TZA | Tanzania | TJK | Tayikistán |
| IOT | Territorio Británico del Océano Índico | ATF | Territorios Australes Franceses |
| TLS | Timor-Leste | TGO | Togo |
| TKL | Tokelau | TON | Tonga |
| TTO | Trinidad y Tobago | TUN | Túnez |
| TKM | Turkmenistán | TUR | Turquía |
| TUV | Tuvalu | UKR | Ucrania |
| UGA | Uganda | URY | Uruguay |
| UZB | Uzbekistán | VUT | Vanuatu |
| VAT | Santa Sede | VEN | Venezuela |
| VNM | Vietnam | WLF | Wallis y Futuna |
| YEM | Yemen | ZMB | Zambia |
| ZWE | Zimbabue | ZZZ | Otro |
Cómo validar y cargar tu archivo .txt en el SAT
Una vez que tienes tu archivo .txt correctamente estructurado y codificado en UTF-8, el siguiente paso es cargarlo en el portal del SAT:
Paso 1: Accede al portal del SAT (www.sat.gob.mx) con tu e.firma.
Paso 2: Dirígete a la sección de DIOT (Declaración Informativa de Operaciones con Terceros).
Paso 3: Selecciona la opción “Carga masiva” o “Importar archivo”.
Paso 4: Sube tu archivo .txt.
Paso 5: El SAT valida automáticamente que el archivo cumpla con las especificaciones. Si hay errores, te indicará cuál es el problema (formato incorrecto, campos obligatorios faltantes, códigos inválidos, etc.).
Paso 6: Si todo es correcto, el archivo se importa y los datos aparecen en tu DIOT.
Los errores más comunes en carga masiva incluyen: codificación incorrecta (ANSI en lugar de UTF-8), delimitadores mal colocados, RFC inválidos, tipos de tercero no reconocidos, o montos que incluyen decimales cuando no se permiten.
El archivo .txt debe estar bien estructurado desde el inicio. Una sola coma fuera de lugar, o un carácter UTF-8 incorrecto, causará rechazo de toda la carga.
Por eso, si tienes empresas con muchas operaciones mensuales, es recomendable usar software de contabilidad que exporte directamente en formato DIOT-compatible, o consultar con tu contador para asegurar que el archivo cumpla todas las especificaciones antes de cargar.
Suscríbete a El Fiscoanalista (novedades y jurisprudencias en materia fiscal y laboral) y a nuestro canal de YouTube.
