Carta de Porte Electrónica Derivados Granarios - RG 5235/2022
Documentación Componentes y Herramientas Generales:
- PyAfipWs: Interfase simil OCX con otros lenguajes (VB, VFP, Cobol ...) Costos y Condiciones
- Manual: Documentación, Información Importante, Certificados, Errores Frecuentes
- Herramienta "universal": archivos de intercambio TXT Cobol, DBF dBase/FoxPro, JSON PHP/Java
- PyFEPDF: Generador de Factura Electrónica en formato PDF
Factura Electrónica - Servicios Web AFIP:
- Mercado Interno: Factura Electrónica A/B/C/M WSFEv1+ (RG2485/3067/3668/3749/4004/4109/4367)
- Matrix (codificación productos): Factura Electrónica A/B con detalle (RG2904/3536)
- Bienes de Capital: Bonos Fiscales Electrónicos - Factura Electrónica A (RG2557)
- Exportación: Factura Electrónica E Exportadores (RG2758 RG3689 RG4401)
- Turismo: Comprobantes Factura Electrónica T WSCT CAE/CAEA (RG3971)
- FE Cred (FCE): Factura Electrónica Crédito MiPyMEs (RG4367)
- Código de Autorización Electrónico Anticipado CAEA
Agropecuario - Servicios web AFIP:
- Código Trazabilidad de Granos: Transporte de granos WSCTGv4 (RG2806 RG3113 RG3493)
- Liquidación y Certificación de Granos: WSLPGv1.17 F. C1116 A / B / RT (RG3419 RG3690 RG3691)
- Liquidación de Tabaco Verde: WSLTVv1.3
- Liquidación Única Mensual Lechería: WSLUMv1.3
- Liquidación Sector Pecuario: Hacienda, Compra directa, Carne WSLSPv1.3
- Remito Electrónico Cárnico: WSRemCarne (RG4256/18 y RG4303/18)
- Remito Electrónica Harinero: WSRemHarina - (RG 4519/19)
- Remito Electrónico Azúcar y Derivados: WSRemAzucar - (RG 4519/19)
- Carta de Porte: WSCPE - (RG 5017/21)
- Carta de Porte Derivados Granarios: WSCPEv2 - (RG 5235/22) Nuevo!
Otros webservices y utilidades AFIP
- Constatación de Comprobantes CAI, CAE, CAEA (WSCDC)
- Padron Contribuyentes AFIP: Constancia de Inscripción RG1817/2005 WS-SR-Padron
- Consulta de Operaciones Cambiarias: Compra de Divisas (WSCOC)
- SIRE_CertificadoRetencionElectronica: Certificado de retención electrónica del Impuesto al Valor Agregado (SIRE-WS) RG4523/19
Webservices provinciales: ARBA (Prov. Bs.As.), AGIP (C.A.B.A), API (Sta.Fe), DGR (Córdoba):
- Remito Electrónico: COT Código de Operaciones de Translado (ARBA, API, AGIP, DGR)
- Ingresos Brutos: Consulta de alícuotas WS DFE IIBB ARBA
SNT: Sistema Nacional de Trazabilidad ANMAT, SEDRONAR, SENASA
- Trazabilidad de Medicamentos: ANMAT Disposición 3683/2011
- Trazabilidad de Productos Médicos: ANMAT Disposición 2303/2014 y 2175/14
- Trazabilidad de Precursores Químicos: RENPRE SEDRONAR Resolución 900/12
- Trazabilidad de Productos Fitosanitarios: SENASA Resolución 369/13
- Trazabilidad de Productos Fitosanitarios: SENASA Resolución 369/21 (WS_INFO_EMPRESAS / WS_DATOS_GENERALES)
Aplicativos Genéricos y Herramientas Avanzadas:
- PyRece: Aplicativo visual simil SIAP - RECE (CSV, PDF, Email)
- FE.py: Herramienta universal, unificada e integrada
- FacturaLibre: Aplicacion online (web2py)
- PyFactura Aplicativo visual y simple (gui2py) para CAE y PDF factura electrónica
- LibPyAfipWs: Biblioteca DLL para lenguajes C / C++ y similares
- Factura Electrónica en Python: Información Técnica (SOAP, XML, PDF, DBF, etc.)
Interfaz para Servicio Web de AFIP para la emisión de Carta de Porte Electrónica Derivados Granarios para transporte automotor.
Índice
Descripción General
La Resolución General N° 5235/2022 establece el uso obligatorio de los comprobantes electrónicos denominados Carta de Porte - Derivados Granarios como único documento válido para respaldar el traslado y/o entrega -desde o hasta un operador incluido en el Registro Único de Operadores de la Cadena Agroindustrial “RUCA”, de cualquier tipo de productos y/o subproductos obtenidos del procesamiento y/o manipulación y/o acondicionamiento de granos -cereales y oleaginosas- y legumbres secas (“Derivados Granarios”), a cualquier destino dentro de la REPÚBLICA ARGENTINA mediante el transporte automotor, ferroviario o cualquier otro medio de transporte terrestre (ductos, cintas transportadoras, etc.).
La “CPEDG” sustituye, a los efectos del traslado de los “Derivados Granarios”, al remito establecido por la Resolución General Nº 1.415 (AFIP), sus modificatorias y complementarias.
Sujetos Obligados
Podrán solicitar la Carta de Porte - Derivados Granarios “CPEDG” los siguientes sujetos:
- Operadores incluidos en el Sistema de Información Simplificado (“SISA”) conforme a lo dispuesto en la Resolución General N° 4.310 (AFIP) y sus modificatorias, que asimismo estén registrados en el “RUCA” con estado de matrícula habilitado y que dispongan de una o más plantas declaradas y habilitadas en dicho registro, en las cuales ingresen y/o egresen los “Derivados Granarios”.
- Autorizados mediante resolución fundada de la AFIP
Fecha entrada en vigencia: 01/03/2023
Descargas
- Instalador para Homologación (pruebas): https://www.sistemasagiles.com.ar/soft/pyafipws/PyAfipWs-beta-2.7.2917-32bit+wsaa_2.13a+wscpev2_2.00a-homo.exe
- Documentación:
- Código Fuente (Python): wscpedg.py
Instalación
Está disponible el instalador para evaluación (ver Descargas), simplemente descargar, ejecutar siguiendo los pasos:
- Aceptar la licencia
- Seleccionar carpeta, por ej C:\WSCPEDG
- Instalación y registración automática
Para más información ver el Manual de Uso
Metodos
- Conectar(cache=None, url="", proxy=""): en homologación no hace falta pasarle ningún parámetro. En producción, el segundo parámetro es la WSDL.
- Dummy(): devuelve estado de servidores
Métodos generales:
- CrearCPE(): Inicializa una estructura de CPE vacía para solicitar autorización.
- ActualizarCPE(): Inicializa una CPE para poder llamar a los métodos de actualización.
- AgregarCabecera(tipo_cpe, sucursal, nro_orden): completa los datos básicos de una CPE
- AgregarOrigen(es_usuario_industrial, cuit_titular_planta, domicilio_origen_tipo, domicilio_origen_orden, planta): completa los datos de origen de una CPE; IMPORTANTE: usar operador (con planta) o productor, no ambos
- AgregarDestino(cuit_destino, domicilio_destino_tipo, domicilio_destino_orden, planta, cuit_destinatario): completa los datos de destino; IMPORTANTE: cuit_destino y cuit_destinatario son opcionales dependiendo del caso.
- AgregarIntervinientes(cuit_reminitente_comercial, cuit_mercado_a_termino, cuit_comisionista, cuit_corredor): completa los datos de intervinientes; IMPORTANTE: todos los campos son opcionales
- AgregarDatosCarga(cod_grano, cod_derivado_granario, peso_bruto, peso_tara, tipo_embalaj,otro_embalaje, unidad_media, cantidad_unidades, kg_litro_m3, lote, fecha_lote): completa los datos de carga.
- AgregarTransporte(cuit_transportist,dominio, fecha_hora_partida,km_recorrer,codigo_turno, cuit_chofer,tarifa, cuit_pagador_flete, mercaderia_fumigada, cuit_intermediario_flete): completa los datos de transporte; IMPORTANTE: volver a llamar a este método para más de 1 dominio (ej acoplado), sólo completando ese campo.
Métodos para generar una Carta de Porte:
- AutorizarCPEAutomotorDG(archivo) Solicita una nueva carta de porte del tipo automotor derivados granarios.
NOTA: indicar el nombre al archivo PDF generado por AFIP en un directorio con permisos de escritura (ej. C:\WINDOWS\TEMP)
Métodos específicos:
- AceptarEmisionDG(): Método para aceptar una carta de porte en estado pendiente de emisión.
- RechazarEmisionDG(): Método para rechazar una carta de porte en estado pendiente de emisión.
- EditarCPEConfirmadaAutomotorDG(nro_ctg, cuit_corredor, cuit_remitente_comercial, cuit_comisionista, observaciones): Permite modificar datos de una CP Automotor DG en estado Confirmado. Disponible desde v.1.07a de 10/23
- ConfirmacionDefinitivaCPEAutomotorDG(): Informa la confirmación definitiva de una carta de porte existente. Llamar antes a AgregarCabecera?(tipo_cpe, cuit_solicitante, sucursal, nro_orden)
- DesvioCPEAutomotorDG(): Informar el desvío de una carta de porte existente. Requiere AgregarCabecera?(tipo_cpe, cuit_solicitante, sucursal, nro_orden)
- NuevoDestinoDestinatarioCPEAutomotorDG(): Informa el nuevo destino / destinatario de una carta de porte existente.
- RegresoOrigenCPEAutomotorDG(): Informa el regreso a origen de una carta de porte automotor de derivados granarios. Requiere AgregarCabecera?(tipo_cpe, cuit_solicitante, sucursal, nro_orden) AgregarTransporte?(fecha_hora_partida, km_recorrer, codigo_turno)
Métodos adicionales de consulta:
- ConsultarCPEAutomotorDG(tipo_cpe, cuit_solicitante, sucursal, nro_orden, nro_ctg, archivo, cuit_titular_planta): Busca una CPE existente según parámetros de búsqueda y retorna información de la misma.
- ConsultarCPEDGPendienteActivasion(planta): Retorna las CPEs de derivados granarios (Ferrovaria y Automotor) que estén en estado Pendiente de Emisión.
NOTA: ConsultarCPEAutomotorDG, indicar el nombre al archivo PDF generado por AFIP en un directorio con permisos de escritura (ej. C:\WINDOWS\TEMP)
Métodos para obtención de tablas de parámetros:
- ConsultarProvincias: Devuelve un listado con el código y descripción de todas las provincias.
- ConsultarLocalidadesPorProvincia: Devuelve un listado con el código y descripción de todas las localidades pertenecientes a la provincia indicada como parámetro.
- ConsultarTiposGrano: Devuelve un listado con el código y descripción de los tipos de granos permitidos.
- ConsultarDerivadosGranarios(cuit): Retorna un listado con el código y descripción de todos los derivados granarios existentes.
- ConsultarPlantasDG(cuit): Retorna un listado con las plantas de derivados granarios existentes para la CUIT indicada.
- ConsultarTiposEmbalaje: Retorna un listado con el código y descripción de todos los tipos de embalaje.
- ConsultarUnidadesMedida: Retorna un listado con el código y descripción de todas las unidades de medida.
Ejemplos
Pseudocódidgo
wscpe = WSCPE() ok = wscpe.CrearCPE() ok = wscpe.AgregarCabecera( tipo_cpe=284, sucursal=221, nro_orden=nro_orden, ) ok = wscpe.AgregarOrigen( es_usuario_industrial=True, cuit_titular_planta=20200000006, domicilio_origen_tipo=2, domicilio_origen_orden=1, planta=1, ) ok = wscpe.AgregarDestino( cuit_destino=CUIT, domicilio_destino_tipo=1, domicilio_destino_orden=2, planta=1938, cuit_destinatario=CUIT, ) ok = wscpe.AgregarRetiroProductor( corresponde_retiro_productor=False, es_solicitante_campo=True, certificado_coe=330100025869, cuit_remitente_comercial_productor=20111111112, ) ok = wscpe.AgregarIntervinientes( cuit_reminitente_comercial=20111111112, cuit_mercado_a_termino=20222222223, cuit_comisionista=20222222223, cuit_corredor=20400000000, ) ok = wscpe.AgregarDatosCarga( cod_grano=23, cod_derivado_granario=136, peso_bruto=110, peso_tara=10, tipo_embalaje=1, # a granel otro_embalaje=None, unidad_media=1, #kg cantidad_unidades=None, kg_litro_m3=None, lote=None, fecha_lote=None, ) ok = wscpe.AgregarTransporte( cuit_transportista=20333333334, dominio="ZZZ000", fecha_hora_partida="2016-11-17T12:00:39", km_recorrer=500, codigo_turno="00, cuit_chofer=, tarifa=, cuit_pagador_flete=, mercaderia_fumigada=, cuit_intermediario_flete=, ) ok = wscpe.AgregarDominio("AC000TU") wscpe.LanzarExcepciones = False ok = wscpe.AutorizarCPEAutomotorDG() # respuesta: print("Numero de ctg:", wscpe.NroCTG) print("Fecha de emision:", wscpe.FechaEmision) print("Estado:", wscpe.Estado, "-", ESTADO_CPE[wscpe.Estado]) print("Fecha de inicio de estado:", wscpe.FechaInicioEstado) print("Fecha de vencimiento:", wscpe.FechaVencimiento)
Visual Basic
Autorizar CPEDG
ok = WSCPE.CrearCPE() tipo_cpe = 284 cuit_solicitante = "20111111112" sucursal = 1 nro_orden = 1 planta = 1 carta_porte = 1 nro_ctg = 10100000542# observaciones = "Notas del transporte" ok = WSCPEDG.AgregarCabecera(tipo_cpe, cuit_solicitante, sucursal, nro_orden, planta, carta_porte, nro_ctg, observaciones) es_usuario_industrial = True cuit_titular_planta = "20200000006" domicilio_origen_tipo = 2 domicilio_origen_orden = 1 planta = 1 ok = WSCPE.AgregarOrigen(es_usuario_industrial, cuit_titular_planta, domicilio_origen_tipo, domicilio_origen_orden, planta) cuit_destino = "20111111112" domicilio_destino_tipo = 1 domicilio_destino_orden = 2 planta = 1938 cuit_destinatario = CUIT ok = WSCPE.AgregarDestino(cuit_destino, domicilio_destino_tipo, domicilio_destino_orden, planta, cuit_destinatario) corresponde_retiro_productor = True es_solicitante_campo = True certificado_coe = "330100025869" cuit_remitente_comercial_productor = "20111111112" ok = WSCPE.AgregarRetiroProductor(corresponde_retiro_productor, es_solicitante_campo, certificado_coe, cuit_remitente_comercial_productor) cuit_reminitente_comercial = "20111111112" cuit_mercado_a_termino = "20222222223" cuit_comisionista = "20222222223" cuit_corredor = "20400000000" ok = WSCPE.AgregarIntervinientes(cuit_reminitente_comercial, cuit_mercado_a_termino, cuit_comisionista, cuit_corredor) cod_grano = 23 cod_derivado_granario = 136 peso_bruto = 110 peso_tara = 10 tipo_embalaje = 1 otro_embalaje = vbNull unidad_media = 1 cantidad_unidades = vbNull kg_litro_m3 = vbNull lote = vbNull fecha_lote = vbNull ok = WSCPE.AgregarDatosCarga(cod_grano, cod_derivado_granario, peso_bruto, peso_tara, tipo_embalaje, otro_embalaje, unidad_media, cantidad_unidades, kg_litro_m3, lote, fecha_lote) cuit_transportista = "20333333334" cuit_transportista_tramo2 = "20222222223" nro_vagon = 55555556 nro_precinto = 1 nro_operativo = "1111111111" dominio = "AB001ST" fecha_hora_partida = "2021-08-21T23:29:26.579557" km_recorrer = 500 codigo_turno = "00" cuit_chofer = "20333333334" tarifa = 100.1 cuit_pagador_flete = "20333333334" mercaderia_fumigada = True cuit_intermediario_flete = "20333333334" codigo_ramal = False descripcion_ramal = "XXXXX" tarifa_referencia = vbNull ok = WSCPE.AgregarTransporte(cuit_transportista, cuit_transportista_tramo2, nro_vagon, nro_precinto, nro_operativo, dominio, fecha_hora_partida, km_recorrer, codigo_turno, cuit_chofer, tarifa, cuit_pagador_flete, mercaderia_fumigada, cuit_intermediario_flete, codigo_ramal, descripcion_ramal, tarifa_referencia) ' ok = WSCPE.LoadTestXML(App.Path & "\autorizar.xml") archivo = App.Path & "\cpe.pdf" ok = WSCPE.AutorizarCPEAutomotorDG(archivo) Debug.Print "Numero de CTG:", WSCPE.NroCTG Debug.Print "Fecha de emision:", WSCPE.FechaEmision Debug.Print "Estado:", WSCPE.Estado Debug.Print "Fecha de inicio de estado:", WSCPE.FechaInicioEstado Debug.Print "Fecha de vencimiento:", WSCPE.FechaVencimiento Debug.Print WSCPE.XmlResponse Debug.Print WSCPE.ErrMsg If Not ok Then ' muestro los errores Dim MensajeError As Variant For Each MensajeError In WSCPE.Errores MsgBox MensajeError, vbCritical, "WSCPE: Errores" Next End If MsgBox "CTG: " & WSCPE.NroCTG, vbInformation, "AutorizarCTE:"
Consultar CPEDG Generados
ok = WSCPE.LoadTestXML(App.Path & "\consultar.xml") If nro_ctg <> 0 Then ok = WSCPE.ConsultarCPEAutomotor(Null, Null, Null, Null, nro_ctg) Else ok = WSCPE.ConsultarCPEAutomotor(tipo_cpe, sucursal, nro_orden, cuit_solicitante) End If ' Obtengo la constacia CTG -debe estar confirmada- (documento PDF AFIP) Debug.Print WSCPE.XmlResponse Debug.Print "Numero de CTG:", WSCPE.NroCTG Debug.Print "Errores:", WSCPE.ErrMsg
Exit Sub ManejoError?:
' Si hubo error: Debug.Print Err.Description ' descripci�n error afip Debug.Print Err.Number - vbObjectError ' codigo error afip Select Case MsgBox?(Err.Description, vbCritical + vbRetryCancel, "Error:" & Err.Number - vbObjectError & " en " & Err.Source)
Case vbRetry
Debug.Assert False Resume
Case vbCancel
Debug.Print Err.Description
End Select Debug.Print WSCPE.XmlRequest? Debug.Assert False
End Sub
Tablas de Parámetros
Tipos CPEDG
284 | CPE Automotor |
285 | CPE Ferroviaria |
286 | CPE Emitida en Destino |
287 | CPE Ductos |
Provincias
0 | CAP.FEDERAL |
1 | BUENOS AIRES |
2 | CATAMARCA |
3 | CORDOBA |
4 | CORRIENTES |
5 | ENTRE RIOS |
6 | JUJUY |
7 | MENDOZA |
8 | LA RIOJA |
9 | SALTA |
10 | SAN JUAN |
11 | SAN LUIS |
12 | SANTA FE |
13 | SGO.DEL ESTERO |
14 | TUCUMAN |
16 | CHACO |
17 | CHUBUT |
18 | FORMOSA |
19 | MISIONES |
20 | NEUQUEN |
21 | LA PAMPA |
22 | RIO NEGRO |
23 | SANTA CRUZ |
24 | TIER.DEL FUEGO |
Derivados Granarios
Grano Padre | Grano Padre Descripcion | Codigo | Descripcion |
35 | Arroz | 136 | DESECHOS DE ARROZ |
16 | Avena | 137 | DESECHOS DE AVENA |
50 | Otros Granos | 119 | BALANCEADO y/o SUPLEMENTO GRANARIO PARA AVES |
50 | Otros Granos | 120 | BALANCEADO y/o SUPLEMENTO GRANARIO PARA BOVINOS |
50 | Otros Granos | 121 | BALANCEADO y/o SUPLEMENTO GRANARIO PARA EQUINOS |
50 | Otros Granos | 123 | BALANCEADO y/o SUPLEMENTO GRANARIO PARA OVINOS |
50 | Otros Granos | 124 | BALANCEADO y/o SUPLEMENTO GRANARIO PARA PORCINOS |
100 | Cebada | 287 | PELLETS DE CEBADA |
107 | Colza/Canola | 225 | TORTA DE PRESIÓN DE COLZA |
2 | Girasol | 101 | ACEITE CRUDO DE GIRASOL |
2 | Girasol | 138 | DESECHOS DE GIRASOL |
2 | Girasol | 144 | EXPELLER DE GIRASOL |
2 | Girasol | 152 | GIRASOL QUEBRADO ¿ PARTIDO |
2 | Girasol | 199 | PELLETS DE GIRASOL |
2 | Girasol | 204 | PRENSADO DE GIRASOL |
1 | Lino | 222 | TORTA DE PRESION DE LINO |
19 | Maíz | 102 | ACEITE CRUDO DE MAÍZ |
19 | Maíz | 139 | DESECHOS DE MAÍZ |
19 | Maíz | 187 | MAÍZ QUEBRADO - PARTIDO |
19 | Maíz | 200 | PELLETS DE MAÍZ |
101 | Maní | 223 | TORTA DE PRESIÓN DE MANÍ |
23 | Soja | 103 | ACEITE CRUDO DE SOJA |
23 | Soja | 140 | DESECHOS DE SOJA |
23 | Soja | 145 | EXPELLER DE SOJA |
23 | Soja | 146 | EXTRUJADO DE SOJA |
23 | Soja | 201 | PELLETS DE SOJA |
23 | Soja | 205 | PRENSADO DE SOJA |
23 | Soja | 218 | SOJA DESACTIVADA |
23 | Soja | 219 | SOJA QUEBRADO ¿ PARTIDO |
23 | Soja | 220 | SOJA TOSTADA |
23 | Soja | 221 | SOJILLA |
104 | Sorgo | 141 | DESECHOS DE SORGO |
104 | Sorgo | 202 | PELLETS DE SORGO |
103 | Trigo | 142 | DESECHOS DE TRIGO |
103 | Trigo | 226 | TRIGO QUEBRADO ¿ PARTIDO |
103 | Trigo | 227 | TRIGUILLO |
Información Adicional
Validez de los Comprobantes
La carta de porte electrónica DG automotor tendrá una validez de 10 días, mientras que la carta de porte electrónica DG ferroviaria contará con 30 días hasta su vencimiento.
Ambos períodos podrán extenderse en caso de declarar “Contingencias”.