Anexo T3.26 Especificaciones Técnicas. Ingresos Recibidos para Terceros Formato 1647 - Versión 2
OBJETIVO
Definir las características y contenido de los archivos donde se reporta la información de ingresos recibidos para terceros
ESPECIFICACIÓN TECNICA
El formato debe enviarse en un archivo XML que cumpla las siguientes especificaciones.
1. Estándar del Nombre de los Archivos
El nombre de cada uno de los archivos, debe especificarse mediante la siguiente secuencia de caracteres:
Dmuisca_ccmmmmmvvaaaacccccccc.xml
cc : Concepto (Inserción = 01 Reemplazo = 02) mmmmm : Formato (Información de Ingresos Recibidos para Terceros= 01647) vv : Versión del formato (Versión = 02). aaaa : Año de envío. cccccccc : Consecutivo de envío por año.
2. Formato del Archivo
El formato contiene un documento XML, que está compuesto por dos elementos complejos: Encabezado y Contenido, las cuales se deben enviar en el orden enunciado.
Encabezado Contenido Información 1 Contenido Información 2 ... Contenido Información N
1. El documento XML debe cumplir con la especificación 1.0 Tercera edición. 2. El conjunto de caracteres utilizado en el documento XML debe ser el alfabeto latino No. 1: “ISO-8859-1”. 3. El archivo debe contener un documento XML bien formado y válido de acuerdo al esquema XSD que incluye en esta especificación técnica.
4. El archivo debe contener un elemento único elemento raíz llamado “mas”, que a su vez contendrá toda la información del archivo, tanto el encabezado como los registros.
2.1. Formato del Encabezado
El encabezado del archivo viene en el elemento “Cab” y contiene los siguientes datos, todos de carácter obligatorio:
DENOMINACION LONGITUD ETIQUETA TIPO VALIDACIONES OBSERVACIONES CASILLA CAMPO Ano Año de envío int 4 Formato AAAA
CodCpt Concepto int 2 1=inserción 2=reemplazo Formato Código del formato int 5 Información de Ingresos Recibidos para Terceros = 1647
Información Pública DENOMINACION LONGITUD ETIQUETA TIPO VALIDACIONES OBSERVACIONES CASILLA CAMPO Versión Versión del formato int 2 Versión = 2
NumEnvio Número de envío int 8 Debe corresponder al Consecutivo de envío por año. número consecutivo para este formato. FecEnvio Fecha de envío datetime 19 Debe ser la fecha Formato AAAA-MM-DDTHH:MM:SS calendario. FecInicial Fecha Inicial date 10 Debe ser la fecha Los registros corresponden mínimo a calendario. esta fecha inicial. Formato AAAA-MM- DD FecFinal Fecha Final date 10 Debe ser la fecha Los registros corresponden máximo a calendario. esta fecha Final. Formato AAAA-MM- DD ValorTotal Valor Total double 20 Corresponde a la sumatoria del atributo “vtotal” (Valor total de la operación) que se encuentra en el atributo “ingresos”. CantReg Cantidad de int 4 Se enviarán archivos con Cantidad de registros reportados en el registros máximo 5000 registros; si contenido. se deben reportar más de 5000 registros se fraccionará la información en archivos de 5000 registros o menos. . La cantidad de registros esta medida por el número de elementos “ingresos” que contenga el archivo
2.2. Formato del Contenido
En el contenido del archivo se deben incluir tantos registros como se informó en la cabecera en el campo “Cantidad de registros”.
El contenido del archivo viene en el elemento “ingresos” y se deben incluir los siguientes datos para cada registro de descuentos tributarios solicitados.
ATRIBUTO DENOMINACION CASILLA TIPO LONGITUD CRITERIOS Con Concepto int 4 Siempre debe diligenciarse. De acuerdo con los conceptos definidos en la resolución. Tdoc Tipo de documento de quien int 2 Siempre debe diligenciarse. se recibe ingreso De acuerdo con los tipos de documento definidos en la resolución. Nid Número identificación de string 20 Siempre debe diligenciarse quien se recibe ingreso Diligenciar sin guiones, puntos, comas o espacios en blanco. Dv DV int 1 Para el tipo de documento 31 – Nit, si se conoce debe diligenciarse. apl1 Primer apellido de quien se string 60 En caso de ser una Persona Natural siempre debe recibe ingreso diligenciarse. apl2 Segundo apellido de quien se string 60 En caso de ser una Persona Natural y si se conoce debe recibe ingreso diligenciarse. nom1 Primer nombre de quien se string 60 En caso de ser una Persona Natural siempre debe recibe ingreso diligenciarse. nom2 Otros nombres de quien se string 60 En caso de ser una Persona Natural y si se conoce debe recibe ingreso diligenciarse. Raz Razón social de quien se string 450 En caso de ser una Persona Jurídica siempre debe recibe ingreso diligenciarse. País País de residencia o domicilio string 4 Siempre debe diligenciarse. de quien se recibe ingreso Vtotal Valor total de la operación Long 18 Siempre debe diligenciarse. El valor debe ser positivo, entero y no debe incluir ni puntos ni comas. Ving Valor ingreso reintegrado Long 18 Siempre debe diligenciarse. transferido distribuido al El valor debe ser positivo, entero y no tercero debe incluir ni puntos ni comas. vret Valor Retención reintegrada Long 18 Siempre debe diligenciarse. transferida distribuida al El valor debe ser positivo, entero y no tercero debe incluir ni puntos ni comas.
2 de 9 ATRIBUTO DENOMINACION CASILLA TIPO LONGITUD CRITERIOS tdoc2 Tipo de documento del int 2 Siempre debe diligenciarse. tercero para quien se recibió ingreso nid2i Identificación del tercero para string 20 Siempre debe diligenciarse. quien se recibió ingreso De acuerdo a los definidos por resolución apl1i Primer apellido del tercero string 60 En caso de ser una Persona Natural siempre debe para quien se recibió ingreso diligenciarse. apl2i Segundo apellido del tercero string 60 En caso de ser una Persona Natural y si se conoce debe para quien se recibió ingreso diligenciarse. nom1i Primer nombre del tercero string 60 En caso de ser una Persona Natural siempre debe para quien se recibió ingreso diligenciarse. nom2i Otros nombres del tercero string 60 En caso de ser una Persona Natural y si se conoce debe para quien se recibió ingreso diligenciarse. razi Razón social del tercero para string 450 En caso de ser una Persona Jurídica siempre debe quien se recibió ingreso diligenciarse. dir Dirección string 200 En caso que el país sea Colombia siempre debe diligenciarse. cdpt Código departamento string 2 Código DANE Numérico, debe incluir los ceros a la izquierda. En caso que el País sea Colombia siempre debe diligenciarse. cmcp Código municipio string 3 Código DANE Numérico, debe incluir los ceros a la izquierda. En caso que el País sea Colombia siempre debe diligenciarse. paist País de residencia o domicilio string 4 De acuerdo a los definidos por resolución. Siempre debe diligenciarse.
Los campos: “Concepto, Tipo de documento de quien se recibe ingreso, Número identificación de quien se recibe ingreso, Tipo de documento del tercero para quien se recibió ingreso e Identificación del tercero para quien se recibió ingreso” conforman una llave única para este formato, la cual no debe repetirse para los registros enviados por un mismo año y/o periodo.
3. Validaciones
3.1. Validaciones Generales
1. El archivo debe contener todos los campos definidos para el encabezado y estos campos deben estar correctamente diligenciados.
2. La información del contenido del archivo debe corresponder al esquema XSD entregado.
3. Los atributos que registran valores numéricos, se reportan con valores numéricos positivos, sin signos ni puntuaciones, según lo reportado por el informante o en su defecto con cero (0).
4. Los campos que corresponden a fechas, deben contener fechas válidas en cuanto a año, mes, y día.
3.2. Validaciones del Encabezado
1. Los campos concepto, formato y versión, deben venir diligenciados con los valores estipulados en las especificaciones técnicas,
2. Año de envío, debe ser el año calendario.
3. Número de envío, debe corresponder al número consecutivo para este formato.
4. Fecha de envío, debe ser la fecha calendario, en formato AAAA-MM-DDTHH:MM:SS.
4. Esquema XSD
3 de 9 A continuación se incluye el esquema XSD para esta especificación técnica.
<?xml version="1.0" encoding="ISO-8859-1"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="ingresos"> <xs:annotation> <xs:documentation>Elemento que encapsula la información del formulario 1647v1Información de Ingresos Recibidos para Terceros</xs:documentation> </xs:annotation> <xs:complexType> <xs:attribute name="con" use="required"> <xs:annotation> <xs:documentation>Concepto</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:int"> <xs:pattern value="[0-9]{1,4}"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="tdoc" use="required"> <xs:annotation> <xs:documentation>Tipo de Documento</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:int"> <xs:pattern value="[0-9]{1,2}"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="nid" use="required"> <xs:annotation> <xs:documentation>Número de Identificación del informado</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-zA-Z0-9]+"/> <xs:minLength value="1"/> <xs:maxLength value="20"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="dv" use="optional"> <xs:annotation> <xs:documentation>Digito de Verificación</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:int"> <xs:minInclusive value="0"/> <xs:maxInclusive value="9"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="apl1" use="optional"> <xs:annotation> <xs:documentation>Primer Apellido del informado</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string">
4 de 9 <xs:minLength value="0"/> <xs:maxLength value="60"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="apl2" use="optional"> <xs:annotation> <xs:documentation>Segundo Apellido del informado</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="0"/> <xs:maxLength value="60"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="nom1" use="optional"> <xs:annotation> <xs:documentation>Primer nombre del informado</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="0"/> <xs:maxLength value="60"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="nom2" use="optional"> <xs:annotation> <xs:documentation>Otros nombres del informado</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="0"/> <xs:maxLength value="60"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="raz" use="optional"> <xs:annotation> <xs:documentation>Razón social del informado</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="0"/> <xs:maxLength value="450"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="pais" use="required"> <xs:annotation> <xs:documentation>País de Residencia o domicilio</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]{0,4}"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="vtotal" use="required"> <xs:annotation>
5 de 9 <xs:documentation>Valor total de la operación</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:double"> <xs:pattern value="[0-9]{1,18}"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="ving" use="required"> <xs:annotation> <xs:documentation>Valor ingreso reintegrado transferido distribuido al tercero </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:double"> <xs:pattern value="[0-9]{1,18}"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="vret" use="required"> <xs:annotation> <xs:documentation>Valor Retención reintegrada transferida distribuida al tercero </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:double"> <xs:pattern value="[0-9]{1,18}"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="tdoc2" use="required"> <xs:annotation> <xs:documentation>Tipo de documento del tercero beneficiario ingreso</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:int"> <xs:pattern value="[0-9]{1,2}"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="nid2i" use="required"> <xs:annotation> <xs:documentation>Identificación del tercero beneficiario ingreso</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-zA-Z0-9]+"/> <xs:minLength value="0"/> <xs:maxLength value="20"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="apl1i" use="optional"> <xs:annotation> <xs:documentation>Primer apellido del tercero para quien se recibió ingreso </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="0"/>
6 de 9 <xs:maxLength value="60"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="apl2i" use="optional"> <xs:annotation> <xs:documentation>Segundo apellido del tercero para quien se recibió ingreso </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="0"/> <xs:maxLength value="60"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="nom1i" use="optional"> <xs:annotation> <xs:documentation>Primer nombre del tercero para quien se recibió ingreso </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="0"/> <xs:maxLength value="60"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="nom2i" use="optional"> <xs:annotation> <xs:documentation>Otros nombres del tercero para quien se recibió ingreso </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="0"/> <xs:maxLength value="60"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="razi" use="optional"> <xs:annotation> <xs:documentation>Razón social del tercero para quien se recibió ingreso </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="0"/> <xs:maxLength value="450"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="dir" use="optional"> <xs:annotation> <xs:documentation>Dirección</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="0"/> <xs:maxLength value="200"/> </xs:restriction>
7 de 9 </xs:simpleType> </xs:attribute> <xs:attribute name="cdpt" use="optional"> <xs:annotation> <xs:documentation>Código del Departamento</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]{0,2}"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="cmcp" use="optional"> <xs:annotation> <xs:documentation>Código del Municipio</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]{0,3}"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="paist" use="required"> <xs:annotation> <xs:documentation>País de Residencia o domicilio</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]{0,4}"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="mas"> <xs:annotation> <xs:documentation>Elemento raiz del xml de carga masiva</xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="Cab" type="CabType"/> <xs:element ref="ingresos" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:complexType name="CabType"> <xs:sequence> <xs:element name="Ano" type="xs:gYear" nillable="false"> <xs:annotation> <xs:documentation>Año de envio</xs:documentation> </xs:annotation> </xs:element> <xs:element name="CodCpt" nillable="false"> <xs:annotation> <xs:documentation>Concepto</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:int"> <xs:minInclusive value="0"/> <xs:maxInclusive value="99"/> </xs:restriction>
8 de 9 </xs:simpleType> </xs:element> <xs:element name="Formato" fixed="1647"> <xs:simpleType> <xs:restriction base="xs:positiveInteger"> <xs:totalDigits value="4"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="Version" type="xs:positiveInteger" fixed="2"/> <xs:element name="NumEnvio"> <xs:annotation> <xs:documentation>Numero de envio</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:positiveInteger"> <xs:totalDigits value="8"/> <xs:maxInclusive value="99999999"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="FecEnvio" type="xs:dateTime"> <xs:annotation> <xs:documentation>Fecha de envio</xs:documentation> </xs:annotation> </xs:element> <xs:element name="FecInicial" type="xs:date"> <xs:annotation> <xs:documentation>Fecha inicial</xs:documentation> </xs:annotation> </xs:element> <xs:element name="FecFinal" type="xs:date"> <xs:annotation> <xs:documentation>Fecha Final</xs:documentation> </xs:annotation> </xs:element> <xs:element name="ValorTotal" type="xs:long"> <xs:annotation> <xs:documentation>Valor Total</xs:documentation> </xs:annotation> </xs:element> <xs:element name="CantReg"> <xs:annotation> <xs:documentation>Cantidad de registros</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:positiveInteger"> <xs:totalDigits value="4"/> <xs:maxInclusive value="9999"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> </xs:schema>
9 de 9