Como saber si voy a tener problemas en producción el 1º de Julio

851 views
Skip to first unread message

Marcelo Javier Perales

unread,
Apr 11, 2025, 2:05:33 AM4/11/25
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT

Todos los mensajes.png
 Creo que si aparece la observación, o evento 10245 al final de la facturación, te indica si tu sistema está o no enviando bien los dos datos nuevos. Si no te aparece tu sistema está listo. Pero si aparece indica que no los está enviando. Todas son aprobadas igualmente hasta el 1º de Julio. Pasada esa fecha los sistemas que sigan arrojando el 10245 no recibirán aprobación del documento.

Saludos

Fabricio Corbo

unread,
Apr 11, 2025, 4:34:53 PM4/11/25
to pyaf...@googlegroups.com

Yo creo, por favor rectificar si no, que si los campos nuevos están en el XmlRequest ya es suficiente


--
Proyecto PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT:
http://www.pyafipws.com.ar/ - http://www.github.com/reingart/pyafipws - http://www.sistemasagiles.com.ar/
---
Has recibido este mensaje porque estás suscrito al grupo "PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyafipws+u...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/pyafipws/ce8a4050-0455-43c4-af68-e43e0b9871b9n%40googlegroups.com.

Ricardo Brisighelli

unread,
Apr 12, 2025, 11:56:39 AM4/12/25
to pyaf...@googlegroups.com
Hola yo implementé los cambios en homologación/producción  y el mensaje por parte del afip dejó de aparecer en ambos entornos.

Para verificar te pego parte de un xmlrequest donde figura el campo pasado.

<FeCAEReq><FeCabReq><CantReg>1</CantReg><PtoVta>12</PtoVta><CbteTipo>6</CbteTipo></FeCabReq><FeDetReq><FECAEDetRequest><Concepto>1</Concepto><DocTipo>99</DocTipo><DocNro>0</DocNro><CbteDesde>52270</CbteDesde><CbteHasta>52270</CbteHasta><CbteFch>20250410</CbteFch><ImpTotal>0.11</ImpTotal><ImpTotConc>0.00</ImpTotConc><ImpNeto>0.09</ImpNeto><ImpOpEx>0</ImpOpEx><ImpTrib>0.0</ImpTrib><ImpIVA>0.02</ImpIVA><MonId>PES</MonId><MonCotiz>1</MonCotiz><CondicionIVAReceptorId>5</CondicionIVAReceptorId><Iva><AlicIva><Id>5</Id><BaseImp>0.09</BaseImp><Importe>0.02</Importe></AlicIva></Iva></FECAEDetRequest></FeDetReq></FeCAEReq></FECAESolicitar> </soap:Body> </soap:Envelope>

Por lo tanto si el mensaje te sigue apareciendo es pq en el request no se está enviando la etiqueta CondicionIVAReceptorId

Saludos

Marcelo Javier Perales

unread,
Apr 12, 2025, 4:51:56 PM4/12/25
to pyaf...@googlegroups.com
Justamente. Si aparece el 10245, tu sistema no los está enviando o lo está haciendo mal. Mientras que si NO aparece el 10245, todo está OK.
No es necesario mirar el request, porque el request es justo eso, el pedido, NO la respuesta de AFIP.
Me parece más tranquilizador saber que AFIP acepta por bueno lo que le mandas en el request, que simplemente observar que estoy enviando los datos ¿no?.
Por eso, creo que observar El Response (lo que se ve en esas imagenes que compartí), es mejor que observar el Request.
Igual todo sirve desde ya.

Has recibido este mensaje porque estás suscrito a un tema del grupo "PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/pyafipws/UyjEFACH_eI/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a pyafipws+u...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/pyafipws/CAOGZtHEkpnetKxNDFLvwj9TMdVHqPro-bR1bEhsh%3D%3D5y%3DE_Vpg%40mail.gmail.com.


--
Marcelo Javier Perales
Juramento 4355 dto. 1
Movil /WhatsApp: 15-5902-2424
elen...@gmail.com (en el movil)

Fabricio Corbo

unread,
Apr 13, 2025, 11:59:48 AM4/13/25
to pyaf...@googlegroups.com

Javier hola.
Pudiste hacer funcionar la versión pyafipws con python 3?


Gerardo Allende

unread,
Apr 13, 2025, 4:01:48 PM4/13/25
to pyaf...@googlegroups.com

Marcelo Javier Perales

unread,
Apr 13, 2025, 9:59:06 PM4/13/25
to pyaf...@googlegroups.com
Como andas Fabricio. Todavía ni lo intenté con python 3, la idea era hacerlo hoy domingo. queria ver si un instalador desarrollado en windows 10, serviría para windows más viejos. O sea, no se puede hacer la instalación con fuentes con Python 3 en por ejemplo un xp, pero tal vez sí funcione el instalador compilado en un windows más nuevo... estimo que no, pero voy a ver.

Daniel Tarantini

unread,
Apr 24, 2025, 3:40:56 PM4/24/25
to pyaf...@googlegroups.com
Hola a todos!

Yo estoy trabajando con Python 3 en Win10 con una aplicación desarrollada en VB6. Tanto usando la versión del sistema anterior, que no enviaba en el pedido de autorización los campos nuevos, como con la versión nueva que sí lo envía, me sale siempre el mismo mensaje de parte de ARCA. No me sale ni el 10234 ni el 10245. 
También me pasa que reviso el Request.xml y no incluye los nuevos datos y el Response.xml se crea con un formato inválido (veo sólo signos de interrogación).

A continuación paso el código que utilizo para hacer la solicitud:

'ACÀ VA LO NUEVO DE 2025
OK = WSFEv1.CrearFactura(concepto, tipo_doc, nro_doc, tipo_cbte, PTOVTA_WSFE, _
    cbt_desde, cbt_hasta, imp_total, imp_tot_conc, imp_neto, _
    imp_iva, imp_trib, imp_op_ex, fecha_cbte, fecha_venc_pago, _
    fecha_serv_desde, fecha_serv_hasta, _
    moneda_id, moneda_ctz)

' Agrego los comprobantes asociados:
If comp_asoc <> "" Then ' solo nc/nd
    If Right(comp_asoc, 1) = "A" Then
        Tipo = 1
    Else
        Tipo = 6
    End If
    OK = WSFEv1.AgregarCmpAsoc(Tipo, PTOVTA_WSFE, num_asoc)
End If
   
' Agrego tasas de IVA
If Val(IVA1) <> 0 Then
    Id = 4 ' 10.5%
    base_imp = neto_iva1
    IMPORTE = IVA1
    OK = WSFEv1.AgregarIva(Id, base_imp, IMPORTE)
End If

' Agrego tasas de IVA al 0% (imp_tot_conc, solo para pruebas)
If Val(IVA2) <> 0 Then
    Id = 5 ' 21%
    base_imp = neto_iva2
    IMPORTE = IVA2
    OK = WSFEv1.AgregarIva(Id, base_imp, IMPORTE)
End If

' Habilito reprocesamiento automático (predeterminado):
WSFEv1.Reprocesar = True

OK = WSFEv1.EstablecerCampoFactura("cancela_misma_moneda_ext", "N")
OK = WSFEv1.EstablecerCampoFactura("condicion_iva_receptor_id", 5)

' Solicito CAE:
cae = WSFEv1.CAESolicitar()
FALLO = ControlarExcepcion(WSFEv1)
If FALLO = True Then
    Screen.MousePointer = vbDefault
    MsgBox "No se puede autorizar el comprobante.", vbCritical
    Exit Function
End If

 fd = FreeFile
 Open "c:\escolar\request.xml" For Output As fd
     Print #fd, WSFEv1.XmlRequest
 Close fd

 fd = FreeFile
 Open "c:\escolar\response.xml" For Output As fd
     Print #fd, WSFEv1.XmlResponse
 Close fd


Hice la desinstalación de Python 2.7 desde Quitar aplicaciones en Win10, luego instale Python3 y tuve que volver a registrar Wsaa.py, Wsfev1.py

Encuentran algo que me indique el por qué no me estarían apareciendo los nuevos datos en el request ?

Muchas gracias!

Gerardo Allende

unread,
Apr 24, 2025, 3:54:33 PM4/24/25
to pyaf...@googlegroups.com
Hola, probaste de borrar caché? Si no lo borraste puede que esté usando el WSDL viejo.

Y para poder guardar correctamente el response tenes que tratar WSFEv1.XmlResponse como array de bytes y no como antes que era string. Tenés que guardar el archivo como binario o hacer un strconv. 


Saludos 


Daniel Tarantini

unread,
Apr 28, 2025, 11:47:03 AM4/28/25
to pyaf...@googlegroups.com
Genial por el dato del manejo del response.
Con respecto al caché, desinstalé el Python 2.7.12 y luego borré la carpeta Python27 de esa versión, allí estaba la carpeta caché, por lo tanto no existe más esa carpeta.
Hay otro caché que debo borrar?

Gracias por contestar! Es de mucha ayuda!

Marcelo Javier Perales

unread,
Apr 28, 2025, 12:23:56 PM4/28/25
to pyaf...@googlegroups.com
Transcribo la primera parte de tu codigo hasta donde deberías poner las dos líneas que vos pusiste mucho más abajo:

'ACÀ VA LO NUEVO DE 2025
OK = WSFEv1.CrearFactura(concepto, tipo_doc, nro_doc, tipo_cbte, PTOVTA_WSFE, _
    cbt_desde, cbt_hasta, imp_total, imp_tot_conc, imp_neto, _
    imp_iva, imp_trib, imp_op_ex, fecha_cbte, fecha_venc_pago, _
    fecha_serv_desde, fecha_serv_hasta, _
    moneda_id, moneda_ctz)

'METELAS ACÁ A LAS DOS LÍNEAS NUEVAS PARA CREAR LOS CAMPOS CON LOS DATOS NUEVOS:      
OK = WSFEv1.EstablecerCampoFactura("cancela_misma_moneda_ext", "N")
OK = WSFEv1.EstablecerCampoFactura("condicion_iva_receptor_id", 5)

'Y seguí con el resto del código.
................................

Saludos


Gerardo Allende

unread,
Apr 28, 2025, 3:54:49 PM4/28/25
to pyaf...@googlegroups.com
'ACÀ VA LO NUEVO DE 2025
OK = WSFEv1.CrearFactura(concepto, tipo_doc, nro_doc, tipo_cbte, PTOVTA_WSFE, _
    cbt_desde, cbt_hasta, imp_total, imp_tot_conc, imp_neto, _
    imp_iva, imp_trib, imp_op_ex, fecha_cbte, fecha_venc_pago, _
    fecha_serv_desde, fecha_serv_hasta, _
0,0, _
    moneda_id, moneda_ctz)

Agregale esos dos ceros arriba de los dos últimos...

Eduardo Diana

unread,
May 1, 2025, 9:11:11 AM5/1/25
to pyaf...@googlegroups.com
Estimados buenas tardes. Agregamos los nuevos campos y al obtener la respuesta, tenemos el mensaje 10245.
Les comparto el request y el response para ver si me puede ayudar a detectar el error.
Desde ya muchas gracias
 -------------------------------------------------------------REQUEST--------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<FECAERequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <FeCabReq xmlns="http://ar.gov.afip.dif.FEV1/">
    <CantReg>1</CantReg>
    <PtoVta>5</PtoVta>
    <CbteTipo>1</CbteTipo>
  </FeCabReq>
  <FeDetReq xmlns="http://ar.gov.afip.dif.FEV1/">
    <FECAEDetRequest>
      <Concepto>1</Concepto>
      <DocTipo>80</DocTipo>
      <DocNro>20061280767</DocNro>
      <CanMisMonExt>N</CanMisMonExt>
      <CondicionIvaReceptorId>1</CondicionIvaReceptorId>
      <CbteDesde>42390</CbteDesde>
      <CbteHasta>42390</CbteHasta>
      <CbteFch>20250430</CbteFch>
      <ImpTotal>62330.3</ImpTotal>
      <ImpTotConc>0</ImpTotConc>
      <ImpNeto>51512.64</ImpNeto>
      <ImpOpEx>0</ImpOpEx>
      <ImpTrib>0</ImpTrib>
      <ImpIVA>10817.66</ImpIVA>

      <MonId>PES</MonId>
      <MonCotiz>1</MonCotiz>
      <Iva>
        <AlicIva>
          <Id>5</Id>
          <BaseImp>51512.64</BaseImp>
          <Importe>10817.66</Importe>
        </AlicIva>
      </Iva>
    </FECAEDetRequest>
  </FeDetReq>
</FECAERequest>

---------------------------------------------------RESPONSE-------------------------------------------------------------

<?xml version="1.0" encoding="utf-8"?>
<FECAEResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <FeCabResp xmlns="http://ar.gov.afip.dif.FEV1/">
    <Cuit>30708479876</Cuit>
    <PtoVta>5</PtoVta>
    <CbteTipo>1</CbteTipo>
    <FchProceso>20250430174737</FchProceso>
    <CantReg>1</CantReg>
    <Resultado>A</Resultado>
    <Reproceso>N</Reproceso>
  </FeCabResp>
  <FeDetResp xmlns="http://ar.gov.afip.dif.FEV1/">
    <FECAEDetResponse>
      <Concepto>1</Concepto>
      <DocTipo>80</DocTipo>
      <DocNro>20061280767</DocNro>
      <CbteDesde>42390</CbteDesde>
      <CbteHasta>42390</CbteHasta>
      <CbteFch>20250430</CbteFch>
      <Resultado>A</Resultado>
      <Observaciones>
        <Obs>
          <Code>10245</Code>
          <Msg>El campo Condicion Frente al IVA del receptor resultara obligatorio conforme lo reglamentado por la Resolución General Nro 5616. Para mas informacion consular metodo FEParamGetCondicionIvaReceptor</Msg>
        </Obs>
      </Observaciones>
      <CAE>75186345084313</CAE>
      <CAEFchVto>20250510</CAEFchVto>
    </FECAEDetResponse>
  </FeDetResp>
  <Events xmlns="http://ar.gov.afip.dif.FEV1/">
    <Evt>
      <Code>39</Code>
      <Msg>IMPORTANTE: El dia 6 de abril de 2025, se actualizo la version del Web Service (WS) que permite enviar, de forma opcional, el campo Condicion Frente al IVA del receptor. Cabe destacar que la Resolucion General Nro 5616 indica que ese dato debe enviarse de manera obligatoria a partir del 15/04/2025. No obstante, se mantendra como un dato no excluyente hasta el 30/06/2025, inclusive. A partir del 1/07/2025 se rechazaran las solicitudes de emision de comprobantes sin este dato. Para mas informacion, consultar el manual en: https://www.arca.gob.ar/fe/ayuda/webservice.asp, https://www.arca.gob.ar/ws/documentacion/ws-factura-electronica.asp</Msg>
    </Evt>
  </Events>
</FECAEResponse>


Romina L. Castrogiovani

unread,
May 1, 2025, 9:14:09 AM5/1/25
to pyaf...@googlegroups.com
Hola Eduardo,

Agregaste los nuevos campos y actualizaste también a la última versión?
Solo con agregar los campos no te va a funcionar.

Saludos

Castrogiovani L. Romina
Sistemas Ágiles
11 3048-9211
L a V de 10 a 17hs





Gerardo Allende

unread,
May 1, 2025, 2:02:55 PM5/1/25
to pyaf...@googlegroups.com
Hola! recién veo que esto que pasé estaba mal, perdón.

Sería así:

OK = WSFEv1.CrearFactura(concepto, tipo_doc, nro_doc, tipo_cbte, PTOVTA_WSFE, _
    cbt_desde, cbt_hasta, imp_total, imp_tot_conc, imp_neto, _
    imp_iva, imp_trib, imp_op_ex, fecha_cbte, fecha_venc_pago, _
    fecha_serv_desde, fecha_serv_hasta, _
    moneda_id, moneda_ctz, _
 caea, fecha_hs_gen, _
  cancela_misma_moneda_ex, condicion_iva_receptor_id
)
Donde caea y fecha_hs_gen pueden estar vacíos, pero tienen que estar porque son posicionales. Luego vienen los nuevos que son cancela_misma_moneda_ex y condicion_iva_receptor_id

Gerardo Allende

unread,
May 1, 2025, 6:24:34 PM5/1/25
to pyaf...@googlegroups.com
Los nuevos campos no aparecen en tu request. Podrías mostrarnos cómo los agregas en tu código? Actualizaste Pyafipws? Borraste caché?

Saludos 

sys...@gmail.com

unread,
Jun 18, 2025, 10:28:34 AM6/18/25
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
tengo el mismo problema, actualice a la ultima version de pyafipws-develop

en el archivo wsfev1.py veo las lineas de los nuevos campos

                    'CanMisMonExt': f.get('cancela_misma_moneda_ext'),
                    'CondicionIVAReceptorId': f.get('condicion_iva_receptor_id'),

Agregue al final los dos campos necesarios
ok = WSFE.CrearFactura(;
INT(THIS.concepto),;
INT(THIS.tipodoc),;
TRANSFORM(THIS.numdoc),;
INT(THIS.tipocomp),;
INT(THIS.ptoventa),;
INT(THIS.numcomp),;
INT(THIS.numcomp),;
ALLTRIM(TRANSFORM(THIS.imptotal,'999999999999.99')),;
ALLTRIM(TRANSFORM(THIS.imptotalnograb,'999999999999.99')),;
ALLTRIM(TRANSFORM(THIS.impneto,'999999999999.99')),;
ALLTRIM(TRANSFORM(THIS.impiva,'999999999999.99')),;
ALLTRIM(TRANSFORM(THIS.impotrotributo,'999999999999.99')),;
ALLTRIM(TRANSFORM(THIS.impexento,'999999999999.99')),;
lcFecha,;
lcFVencim,;
lcFServDd,;
lcFServHs,;
THIS.moneda,;
ALLTRIM(TRANSFORM(THIS.cotizmoneda,'999.999')),;
'N',;
THIS.tiporesponsable)

ejecute setup.bat en el directorio pyafipws-develop pero en el xmlrequest no aparecen los nuevos campos

<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Header/>
<soap:Body>
    <FECAESolicitar xmlns="http://ar.gov.afip.dif.FEV1/">
    <Auth><Token>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pgo8c3NvIHZlcnNpb249IjIuMCI+ ... </Token><Sign>K2eQuc8h0ANu+zA6sIJTultAqskLmGk0xnDYCM0h3J1jO6ZGbe6xgro9yBLS+HRfG8rLpzIp7zoCrbZu/KF2YsAdW2jD7AtSL8jEDNFwo ... </Sign><Cuit>306121212707</Cuit></Auth><FeCAEReq><FeCabReq><CantReg>1</CantReg><PtoVta>7</PtoVta><CbteTipo>6</CbteTipo></FeCabReq><FeDetReq><FECAEDetRequest><Concepto>1</Concepto><DocTipo>99</DocTipo><DocNro>0</DocNro><CbteDesde>10</CbteDesde><CbteHasta>10</CbteHasta><CbteFch>20250615</CbteFch><ImpTotal>10.06</ImpTotal><ImpTotConc>1.19</ImpTotConc><ImpNeto>7.33</ImpNeto><ImpOpEx>0.00</ImpOpEx><ImpTrib>0.00</ImpTrib><ImpIVA>1.54</ImpIVA><FchVtoPago></FchVtoPago><MonId>PES</MonId><MonCotiz>1.000</MonCotiz><Iva><AlicIva><Id>5</Id><BaseImp>7.33</BaseImp><Importe>1.54</Importe></AlicIva></Iva></FECAEDetRequest></FeDetReq></FeCAEReq></FECAESolicitar>
</soap:Body>
</soap:Envelope>

Hay algo que esta faltando?

Gerardo Allende

unread,
Jun 18, 2025, 6:01:19 PM6/18/25
to pyaf...@googlegroups.com
Estás mandando los campos nuevos en el lugar equivocado, la N está entrando en caea y THIS.tiporesponsable está entrando en fecha_hs_gen. Fíjate la definición de los parámetros de cCrearFactura:

def CrearFactura(
        self,
        concepto=1,
        tipo_doc=80,
        nro_doc="",
        tipo_cbte=1,
        punto_vta=0,
        cbt_desde=0,
        cbt_hasta=0,
        imp_total=0.00,
        imp_tot_conc=0.00,
        imp_neto=0.00,
        imp_iva=0.00,
        imp_trib=0.00,
        imp_op_ex=0.00,
        fecha_cbte="",
        fecha_venc_pago=None,
        fecha_serv_desde=None,
        fecha_serv_hasta=None, # --
        moneda_id="PES",
        moneda_ctz="1.0000",
        caea=None,
        fecha_hs_gen=None,
        cancela_misma_moneda_ext=None,
        condicion_iva_receptor_id=None,
        **kwargs
    ):

Así que agregá dos parámetros vacíos antes que los dos nuevos y va a funcionar.

Así:
...
lcFServDd,;
   lcFServHs,;
   THIS.moneda,;  ALLTRIM(TRANSFORM(THIS.cotizmoneda,'999.999')),;
'',;   
'',;    
   'N',;
   THIS.tiporesponsable)


Saludos!


sys...@gmail.com

unread,
Jun 19, 2025, 10:17:38 AM6/19/25
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Perfecto, funciona bien
Yo me basaba en que wsfev.py no tiene esos dos campos en CAESolicitar(self) y nunca los tuve en cuenta
MIl gracias

Reply all
Reply to author
Forward
0 new messages