Source: http://www.sistemasagiles.com.ar/trac/wiki/RemitoElectronicoCotArba
Timestamp: 2017-11-23 00:28:08+00:00

Document:
RemitoElectronicoCotArba – SistemasAgiles
Codigo de Operacion de Translado - COT ARBA - Remito Electrónico
Interfaz para Servicio Web Código de Operaciones de Traslado (COT) "Remito Electronico" correspondiente al articulo 41 del Código Fiscal que establece la obligación de amparar el traslado o transporte de bienes en el territorio de la provincia de Bs. As (T.O. 2011) incorporado por la Ley 13.405, prorrogada al 19/9/2011 según normativas 34/2011 y 45/2011 ARBA (Rentas Proincia de Buenos Aires"). Resolución General 0038/2014 API (Provincia de Santa Fe). Resolución N° 176 / 2017 AGIP (Ciudad Autónoma de Buenos Aires).
Sujetos obligados a emitir los comprobantes que respaldan el traslado y entrega de bienes según inciso f) artículo 1 e inciso b del artículo 8 de la Resolución General 1415/03 AFIP
Especificaciones y formato actualizado a Agosto 2011 (última actualización de ARBA)
Ejemplo Intefase COM en VB (5/6)
Aplicativo visual para COT
Instalador: Instalador 1.02c para evaluación
Ejemplo: cot.bas (Visual Basic), cot.prg (Visual Fox Pro)
Código Fuente (Python): cot.py
Documentación oficial: ARBA (Importante: requiere clave ARBA)
Se debe tramitar la clave ARBA (CIT) en el sitio de pruebas http://www1.test.arba.gov.ar ( Documentación)
Testing: http://cot.test.arba.gov.ar/TransporteBienes/SeguridadCliente/presentarRemitos.do
Producción: https://cot.arba.gov.ar/TransporteBienes/SeguridadCliente/presentarRemitos.do (Importante: modificado por ARBA)
Conectar(url=None, proxy="", wrapper="", cacert="", trace=False): los parametros son similares a WSFEv1.Conectar (por el momento solo se usa url y trace para depuración)
PresentarRemito(filename, testing=""): envia un remito a ARBA. filename es el nombre de archivo, testing es el nombre de archivo de una respuesta XML de prueba para simulaciones (opcional). Establece los atributos CuitEmpresa, NumeroComprobante, NombreArchivo, CodigoIntegridad, NumeroUnico y Procesado de corresponder según respuesta de ARBA, y TipoError, CodigoError, MensajeError: si hay error general.
LeerValidacionRemito(): lee el próximo remito validado, NumeroUnico y Procesado y los errores de validación (llamar luego a LeerErrorValidacion para recorrerlos). Devuelve verdadero (True) si hay remito a analizar o falso (False) si ya se analizaron todos los remitos enviados. No es obligatorio llamar a este método si se envia de a un solo remito por archivo.
LeerErrorValidacion(): en el caso de ARBA devolver error de validación, completando CodigoError y MensajeError por cada uno. Devuelve falso (False) en caso de no haber más errores para este remito)
ObtenerTagXml(tag1, tag2, ...): busca en el mensaje xml analizado la etiqueta tag1, luego tag2 y así sucesivamente, devolviendo el contenido (texto) del dato si fue encontrada, o nulo en caso contrario. Ver ejemplo.
IMPORTANTE: PresentarRemito devuelve verdadero (True) si ha podido realizar la operación o falso (False) en caso contrario. Se capturan los errores, por lo que se deben revisar los atributos luego de llamar al método.
LeerValidacionRemito y ObtenerTagXml estan disponibles a partir de la versión 2.0a
Usuario y Password son los atributos ara autenticación (tramitar en ARBA)
Version e InstallDir sirven para depuración de la interfaz.
XmlResponse: respuesta xml enviada por ARBA
Excepcion, Traceback: se completan en caso de error interno no esperado (por ej. falla de comunicación).
TipoError, CodigoError, MensajeError: si hay error general de ARBA se completan según la documentación
CuitEmpresa, NumeroComprobante, NombreArchivo, CodigoIntegridad: campos completados según la respuesta descripta en la documentación de ARBA
NumeroUnico y Procesado: completados si hay validacionesRemitos.
IMPORTANTE: para el manejo de errores, siemper se debe revisar el atributo Excepcion, si este no está en blanco, ha ocurrido un error no esperado y debe analizar el Traceback (traza) y volver a intentar. Siempre es útil almacenar los valores de XmlResponse como respaldo de la operación y para futura referencia o análisis.
Para sistemas operativos legados (DOS bajo windows) y UNIX/Linux, es posible operar la herramienta de remito electrónico por consola. Recibe como parámetros el nombre de archivo, usuario y clave. Opcionalmente se puede especificar --testing para pruebas (usar xml de muestra como respuesta si no se tiene acceso a homologación) y --trace para imprimir por pantalla los datos enviados y recibidos.
C:\PYAFIPWS>COT.EXE TB_20111111112_000000_20080124_000001.txt usuario clave --testing
Error General:  |  |
Error Validacion:  | 85 | El campo ORIGEN_CUIT es inv??lido o inexistente.
Error Validacion:  | 22 | El campo FECHA_SALIDA_TRANSPORTE es inv??lido o inexistente.
CUIT Empresa: 20111111112
Numero Comprobante: 91248293
Nombre Archivo: TB_20111111112_000000_20080124_000001.txt
Codigo Integridad: 15cdd26deef17cb36465252fb5165087
Numero Unico: 91 R999900068148
Importante: Dependiendo como este generado el instalador, puede ser necesario usar COT_CLI.EXE.
Para producción, anteponer --prod en la linea de comando (primer parámetro)
Para guardar el resultado, se puede redirigir la salida a un archivo, por ej. agregando > resultado.txt
En linux o desde el código fuente invocar con el interprete python.
Dim COT As Object, ok As Variant
Set COT = CreateObject("COT")
Debug.Print COT.Version
Debug.Print COT.InstallDir
' Establecer Datos de acceso (ARBA)
COT.Usuario = "20267565393"
COT.Password = "23456"
' Archivo a enviar (ruta absoluta):
filename = "C:\TB_20111111112_000000_20080124_000001.txt"
' Respuesta de prueba (dejar en blanco si se tiene acceso para respuesta real):
testing = "" ' "C:\cot_response_2_errores.xml"
URL = "https://cot.test.arba.gov.ar/TransporteBienes/SeguridadCliente/presentarRemitos.do"
ok = COT.Conectar(URL)
' Enviar el archivo y procesar la respuesta:
ok = COT.PresentarRemito(filename, testing)
' Hubo error interno?
If COT.Excepcion <> "" Then
Debug.Print COT.Excepcion, COT.Traceback
MsgBox COT.Traceback, vbCritical, "Excepcion:" & COT.Excepcion
Debug.Print COT.XmlResponse
Debug.Print "Error General:", COT.TipoError, "|", COT.CodigoError, "|", COT.MensajeError
' Hubo error general de ARBA?
If COT.CodigoError <> "" Then
MsgBox COT.MensajeError, vbExclamation, "Error " & COT.TipoError & ":" & COT.CodigoError
' Datos de la respuesta:
Debug.Print "CUIT Empresa:", COT.CuitEmpresa
Debug.Print "Numero Comprobante:", COT.NumeroComprobante
Debug.Print "Nombre Archivo:", COT.NombreArchivo
Debug.Print "Codigo Integridad:", COT.CodigoIntegridad
Debug.Print "Numero Unico:", COT.NumeroUnico
Debug.Print "Procesado:", COT.Procesado
MsgBox "CUIT Empresa: " & COT.CuitEmpresa & vbCrLf & _
"Numero Comprobante: " & COT.NumeroComprobante & vbCrLf & _
"Nombre Archivo: " & COT.NombreArchivo & vbCrLf & _
"Codigo Integridad: " & COT.CodigoIntegridad & vbCrLf & _
"Numero Unico: " & COT.NumeroUnico & vbCrLf & _
"Procesado: " & COT.Procesado, _
While COT.LeerErrorValidacion():
Debug.Print "Error Validacion:", COT.TipoError, "|", COT.CodigoError, "|", COT.MensajeError
MsgBox COT.MensajeError, vbExclamation, "Error Validacion:" & COT.CodigoError
Ejemplo para analizar varios remitos simultaneamente (enviados en el mismo archivo):
' Lee el próximo remito, luego del último finaliza
While COT.LeerValidacionRemito()
' Imprime los datos de cada remito validado:
' Lee los errores de validación de este remito
While COT.LeerErrorValidacion()
print "Error Validacion:", "|", cot.CodigoError, "|", cot.MensajeError
Ejemplos de uso ObtenerTagXml:
' Obtengo el cuit de la empresa (dato general)
Debug.Print "cuit", COT.ObtenerTagXml('cuitEmpresa')
' Obtengo el campo procesado del primer remito validado:
Debug.Print "p0", COT.ObtenerTagXml('validacionesRemitos', 'remito', 0, 'procesado')
' Obtengo el campo procesado del segundo remito validado:
Debug.Print "p1", COT.ObtenerTagXml('validacionesRemitos', 'remito', 1, 'procesado')
El nombre de archivo debe ser: TB_ + CUIT Empresa + _ + planta + puerta + _ + aaaammdd + _ + secuencia + .txt, por ej: "TB_30111111118_003002_20060716_000183.txt":
CUIT empresa: 30-11111111-8
Nro. Planta: 000
Nro. Puerta: 002
Fecha: 16-07-2006
Nro. Secuencial: 000183
El diseño del archivo de texto de intercambio es el definido por ARBA en las especificaciones técnicas Diseño de Archivo de Texto (Importante: requiere clave ARBA)
Estructura del Archivo de Texto
Utiliza un formato delimitado por pipas ("|"), donde el primer campo es el tipo de registro:
TIPO_REGISTRO: 01
CUIT_EMPRESA: (sin guiones) ej. 20111111112
REMITO (al menos 1 registro)
TIPO_REGISTRO: 02
FECHA_EMISION: formato AAAAMMDD, ej. |20080124|
CODIGO_UNICO: formato (CODIGO_DGI, TIPO, PREFIJO, NUMERO) ej. 91 |R999900068148|
FECHA_SALIDA_TRANSPORTE: formato AAAAMMDD
HORA_SALIDA_TRANSPORTE: formato HHMM
SUJETO_GENERADOR: 'E' emisor, 'D' destinatario
DESTINATARIO_CONSUMIDOR_FINAL: 0 no, 1 sí
DESTINATARIO_TIPO_DOCUMENTO: 'DNI', 'LE', 'PAS', 'CI'
DESTINATARIO_DOCUMENTO
DESTIANTARIO_CUIT
DESTINATARIO_RAZON_SOCIAL
DESTINATARIO_TENEDOR: 0=no, 1=si.
DESTINO_DOMICILIO_CALLE
DESTINO_DOMICILIO_NUMERO
DESTINO_DOMICILIO_COMPLE
DESTINO_DOMICILIO_PISO
DESTINO_DOMICILIO_DTO
DESTINO_DOMICILIO_BARRIO
DESTINO_DOMICILIO_CODIGOP
DESTINO_DOMICILIO_LOCALIDAD
DESTINO_DOMICILIO_PROVINCIA: ver tabla de provincias
PROPIO_DESTINO_DOMICILIO_CODIGO
ENTREGA_DOMICILIO_ORIGEN: 'SI' o 'NO'
ORIGEN_CUIT
ORIGEN_RAZON_SOCIAL
EMISOR_TENEDOR: 0=no, 1=si
ORIGEN_DOMICILIO_CALLE
ORIGEN DOMICILIO_NUMBERO
ORIGEN_DOMICILIO_COMPLE
ORIGEN_DOMICILIO_PISO
ORIGEN_DOMICILIO_DTO
ORIGEN_DOMICILIO_BARRIO
ORIGEN_DOMICILIO_CODIGOP
ORIGEN_DOMICILIO_LOCALIDAD
ORIGEN_DOMICILIO_PROVINCIA: ver tabla de provincias
TIPO_RECORRIDO: 'U' urbano, 'R' rural, 'M' mixto
RECORRIDO_LOCALIDAD: máx. 50 caracteres
RECORRIDO_CALLE: máx. 40 caracteres
RECORRIDO_RUTA: máx. 40 caracteres
PATENTE_VEHICULO: 3 letras y 3 números
PATENTE_ACOPLADO: 3 letras y 3 números
PRODUCTO_NO_TERM_DEV: 0=No, 1=Si (devoluciones)
IMPORTE: formato 8 enteros 2 decimales
PRODUCTOS (al menos 1 registro):
TIPO_REGISTRO: 03
CODIGO_UNICO_PRODUCTO: ver nomenclador COT (Transporte de Bienes)
RENTAS_CODIGO_UNIDAD_MEDIDA: ver tabla unidades de medida
CANTIDAD: 13 enteros y 2 decimales (no incluir coma ni punto), ej 200 un -> 20000
PROPIO_CODIGO_PRODUCTO: máx. 25 caracteres
PROPIO_DESCRIPCION_PRODUCTO: máx. 40 caracteres
PROPIO_DESCRIPCION_UNIDAD_MEDIDA: máx. 20 caracteres
CANTIDAD_AJUSTADA: 13 enteros y 2 decimales (no incluir coma ni punto), ej 200 un -> 20000
04: FOOTER (Pie)
TIPO_REGISTRO: 04
CANTIDAD_TOTAL_REMITOS
El archivo se compone de:
un único registro 01 (header)
al menos un remito (registros 02 y 03)
un único registro 04 (footer)
Un remito se compone de:
un registro 02 (remito)
al menos un registro 03 (productos)
Se deberá respetar el órden en que se envían los registros 01, 02, 03, 04.
Los campos de los registros deben estar separados por "|" (pipe), y las longitudes especificadas en el diseño son el tamaño máximo, no debe completarse con 0 o espacios. Todos los registros deben terminar con un salto de linea (\n)
Ejemplo Archivo de Texto
Ejemplo TB_20111111112_000000_20080124_000001.txt :
01|20111111112
02|20080124|91 R999900068148|20080124| |E|0| | |30682115722|COMPUMUNDO S.A.| 0|Ruta Prov | |S/N|  | | |1200|PUERTO DE ESCOBAR|B| |NO| 23246414254|COMPUMUNDO S.A. | 0|San Martin 5797| |S/N| | | |1766|TABLADA| B| 20045162673|  | | | | | | |0
03|847150|3|100|23891|COMP. SP-3960 VP|UNI DAD| 100
03|852110|3|100|23763|VIDEO CAMARA GR-D750|UNI DAD|100
03|852520|3|500|23666|PERS MOTO K1 SILVER + MEM|UNI DAD| 500
03|852520|3|700|24159|PERSONAL NOKIA 5200 BLUE|UNI DAD| 700
03|852520|3|200|24182|PERS S.ERI C W200 BLAC+MEM|UNI DAD|200
03|852390|3|500|23348|DVD+R X10 4.7GB 10DPR120|UNI DAD|500
03|847170|3|100|23842|HDD 250GB 7200RPM|UNI DAD| 100
03|847160|3|500|23896|GAME PAD EUGA 10 BLUE B/W| UNI DAD| 500
03|847330|3|400|22891|CART TWI NPACK 21 NEGRO|UNI DAD| 400
03|850650|3|500|22693|PI LAS ALCALI NA AA X 4|UNI DAD| 500
03|852431|3|200|23846|NORTON ANTIVIRUS 2007|UNI DAD| 200
03|847170|3|400|23122|DVDRW 16X/18X DRU830A NEG|UNI DAD| 400
03|847170|3|1000|23914|DVDRW AOPEN 20X BOX|UNI DAD| 1000
03|852190|3|100|24248|REPROD DVD DVD-AVD800|UNI DAD| 100
03|851822|3|100|23621|J.PARL HT- 685|UNI DAD| 100
04| 1
Utilizar el programa FORMATO_COT.EXE (formato_cot.py) para analizar un archivo de remito electrónico.
Para más información, ver documentación oficial: Ejemplos de remitos correctos e incorrectos (Importante: requiere clave ARBA)
TipoError: DATO
CodigoError: 14
MensajeError: Número único : 91 R000100000001 No se puede procesar el registro 02-REMITO. Faltan datos.
Este problema puede ser causado por incorrecto uso de separadores de lineas (ARBA requiere CR LF).
Ejemplo incorrecto enviado:
00000000  30 31 7c 32 30 31 31 31  31 31 31 31 31 32 0d 30  |01|20111111112.0|
00000010  32 7c 32 30 31 37 30 31  31 39 7c 39 31 20 52 30  |2|20170119|91 R0|
Ejemplo correcto en datos: ( datos/TB_20111111112_000000_20080124_000001.txt)
00000000  30 31 7c 32 30 31 31 31  31 31 31 31 31 32 0d 0a  |01|20111111112..|
00000010  30 32 7c 32 30 30 38 30  31 32 34 7c 39 31 20 52  |02|20080124|91 R|
Revisar el CR (caracter 0d en hexadecimal, 13 en decimal) y LF (caracter 0a en hexadecimal, 10 en decimal). ARBA requiere ambos.
Para más información ver Tablas de Validación (Importante: requiere clave ARBA)
Tabla de Unidades de medida para Organismo ARBA
Tabla Unidades de medida para Organismo OPDS
Table de Provincias
E Entre Ríos
R Río Negro
S Santa Fé
X Córdoba
Table de Comprobantes para Organismo ARBA
Código DGI Tipo Descripción
74 P Carta de porte
91 R Remito R
01 A Factura A
60 A Cuenta de venta y liquido producto A
94 X Remito X
06 B Factura B
92 C Factura C
51 M Factura M
61 B Cuenta de venta y liquido producto B
93 C Cuenta de venta y liquido producto C
58 M Cuenta de venta y liquido producto M
95 G Guía única de translado
97 E Documento Equivalente
Table de Comprobantes para Organismo OPDS
MA PR Manifiesto Ley 11720
RG 38/2014 API
Con fecha 12/11/2015 se publicó la Resolución General Resolución General 0038/2014 de la Administración Provincial de Impuestos de la Provincia de Santa Fe establece:
La obligación de obtener el Código de Operación de Translado (COT) por parte de los sujetos obligados a emitir comprobantes por operaciones referidas en la RG 1415/03 AFIP incisos artículos 1° F. y 8° C., que efectúen el translado de mercaderías en el ámbito de la Provincia de Santa Fe por cualquier medio y/o vía de transporte -terrestre, fluvia, aérea-, siempre que el lugar de origen y/o destino se encuentre ubicado dentro de su territorio.
Nomenclador de Productos: Parte 1, Parte 2 (Anexo II)
Rubros y bienes (Anexo III)
Leyendas para Remitos - Número de COT
Cuando se utiliza el canal AUTOMÁTICO, no sería necesaria ninguna documentación adicional, sólo bastaría consignar los datos originales (CUIT y N° de remito papel), para que el inspector de ARBA puede realizar la validación. Respuesta de ARBA:
Se exhibe el "comprobante papel", sea este remito, factura o equivalente, el cual estará amparado por su transferencia electrónica bajo la modalidad REMITO ELECTRONICO. Resulta recomendable agregar una leyenda en el comprobante haciendo mención a la "Transferencia electrónica en virtud de DN ARBA Nº 32/06 mod. y comp." Eso ayuda a quien visualice en un control que el comprobante exhibido tiene su transferencia electrónica. El nº de remito electrónico se compone de 16 digitos conformados por: 2 primeros en función al tipo de comprobante (91 si es remito) los dos siguientes son un espacio y la letra de ese comprobante ejemplo " R", los restantes 12 son taxativamente los números del comprobante físico Ejemplo 91 R000100004445 correspondiendo a un remito R papel nº 0001-00004445 Así debe ser generado respetando las tablas de validación y diseño especificas de remito electrónico
La interfase de usuario es gráfica de escritorio (GUI), funciona en Windows o Linux:
Lee archivos de remitos desde distintas ubicaciones
Procesa los archivos seleccionados (múltiples remitos)
Muestra los resultados por pantalla (maestro/detalle por cada remito)
Mueve los archivos procesados a una ubicación definitiva
Más información en PyAfipWs (ver Costos y Condiciones del Soporte Comercial)
TB_20111111112_000000_20080124_000001.txt (1.1 KB) - added by reingart 5 years ago. Archivo de Ejemplo para Remito Electrónico COT ARBA
aplicativo_remito_electronico.png (24.0 KB) - added by reingart 3 years ago. Aplicativo visual para Remito Electronico COT ARBA

References: Resolución 
 Resolución 
 artículo 1
 artículo 8
 Resolución 
 Resolución 
 Resolución