Saltar al contenido principal

Esquema DTE/GUF — XSD de referencia

El archivo DTE_Generico_v16.xsd es el esquema XML interno de Gosocket que describe la estructura general del archivo de integración GUF/DTE. Es la referencia canónica para conocer los nodos disponibles, su cardinalidad y los xPaths que utiliza la plataforma para transformar el documento hacia el formato de cada autoridad tributaria.

⬇ Descargar DTE_Generico_v16.xsd


Este esquema NO es el XSD de la autoridad tributaria

DTE_Generico_v16.xsd no es el esquema de validación de ningún organismo fiscal (SII, SUNAT, SAT, DIAN, etc.). Es un esquema interno de Gosocket que describe la estructura del archivo de integración que el cliente envía a la API.

La validación del documento ante la autoridad tributaria ocurre después de que Gosocket transforma el GUF/DTE al formato tributario específico de cada país.


¿Para qué sirve este esquema?

UsoDescripción
Referencia de nodosConocer qué elementos (xs:element) existen en el GUF, su nombre exacto y su posición en el árbol
xPathsIdentificar la ruta completa de cada campo para construir mappings o transformaciones XSLT
CardinalidadSaber qué nodos son obligatorios (minOccurs="1") y cuáles opcionales (minOccurs="0")
Estructura inicialGenerar el esqueleto del archivo de integración antes de ajustarlo al país específico

Limitación importante: los tipos de datos no son restrictivos

Los tipos declarados en este esquema (xs:string, xs:dateTime, xs:decimal) son tipos de referencia, no de restricción estricta. Esto es intencional, porque el mismo campo puede tener formatos distintos según el país.

Ejemplo — campo FechaEmis:

<!-- En el esquema: -->
<xs:element name="FechaEmis" type="xs:dateTime" minOccurs="0">
<xs:annotation>
<xs:documentation>
Fecha y Hora de Emisión Contable del DTE (dd-MM-yyyy HH:mm:ss)
</xs:documentation>
</xs:annotation>
</xs:element>

En la práctica, el formato real varía por país:

PaísFormato de FechaEmis
Chile2026-04-15T10:13:45
Argentina2026-04-15
México2026-04-15T10:13:45
Perú2026-04-15

Conclusión: No uses este esquema para validar el formato del valor de un campo. Úsalo para saber que el campo existe y cuál es su xPath.


Flujo de trabajo recomendado

1. DTE_Generico_v16.xsd → conocer nodos disponibles y estructura general

2. Gap Analysis (por país) → confirmar campos obligatorios, formatos exactos
y casuísticas específicas del país

3. Archivo GUF/DTE real → construir el XML de integración ajustado al país

4. SendDocumentToAuthority → enviar a Gosocket para transformación y certificación

Los ejemplos de la sección anterior (Ejemplos DTE/GUF por país) muestran archivos GUF completos ya depurados por país.


Vista previa del esquema

El esquema define más de 400 elementos organizados en secciones como Encabezado, Emisor, Receptor, Detalle, Subtotales, Impuestos, Referencias, Transporte, Personalizados y Complementos.

DTE_Generico_v16.xsd — fragmento de Encabezado/IdDoc
<xs:complexType name="IdDocType">
<xs:sequence>
  <xs:element name="Tipo" type="xs:string">
    <xs:annotation>
      <xs:documentation>Código de tipo de documento</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="Numero" type="xs:string" minOccurs="0">
    <xs:annotation>
      <xs:documentation>Número o folio del documento</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="NumeroInterno" type="xs:string" minOccurs="0">
    <xs:annotation>
      <xs:documentation>Número interno del emisor</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="FechaEmis" type="xs:dateTime" minOccurs="0">
    <xs:annotation>
      <xs:documentation>
        Fecha y hora de emisión contable del DTE.
        El formato varía por país — consulta el Gap Analysis.
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="TipoDespacho" type="xs:string" minOccurs="0"/>
  <xs:element name="IndTraslado" type="xs:string" minOccurs="0"/>
  <xs:element name="TpoImpresion" type="xs:string" minOccurs="0"/>
  <xs:element name="IndServicio" type="xs:integer" minOccurs="0"/>
  <xs:element name="MntBruto" type="xs:integer" minOccurs="0"/>
  <xs:element name="FmaPago" type="xs:integer" minOccurs="0"/>
  <xs:element name="FmaPagExp" type="xs:integer" minOccurs="0"/>
  <xs:element name="MntCancel" type="xs:decimal" minOccurs="0"/>
  <xs:element name="SaldoInsol" type="xs:decimal" minOccurs="0"/>
  <!-- ... más elementos disponibles en el XSD completo -->
</xs:sequence>
</xs:complexType>

Para más información

Este esquema es un complemento al Gap Analysis que se realiza durante el onboarding. Los formatos exactos por país, los campos obligatorios y las casuísticas específicas se definen en ese análisis.

Para mayor orientación sobre cómo aplicar este esquema a tu integración, contacta al Consultor de Implementación a cargo de tu proyecto.