Error en cotización de moneda CON CONSUMIDORES FINALES INDOCUMENTADOS.

38 views
Skip to first unread message

Martín E. Lezama

unread,
Nov 10, 2025, 9:53:46 AM (11 days ago) Nov 10
to pyaf...@googlegroups.com
Estimados, estoy teniendo el siguiente error y realmente no encuentro cómo solucionarlo, que es el de la captura (caracter no válido en la codificación proporcionada, línea 6, columna 22). Adjunto el Request y el Response también.

El tema es el siguiente, yo ENVÍO desde Visual FoxPro el valor de la cotización con 3 decimales. Pero en el Request SIEMPRE me figura con cuatro decimales, y de ahí el error, estimo. Probé mandarlo como decimal con 3 decimales. Probé mandar el monto como una string, para que se convierta automáticamente, etc. En TODOS los casos me da error.

Ahora bien, este error SOLAMENTE SUCEDE cuando el cliente es consumidor final y no tiene indicado el número de documento (tipo 99). No sucede nunca con inscriptos, monotributistas u otros.

¿Puede ser que el error derive de OTRO lado? ¿A alguien más le sucedió esto? Busqué entre los recientes y no vi que le sucediera a nadie, por eso escribo un hilo nuevo.

Desde ya, muchas gracias.

Cordialmente.

Martín E. Lezama

WhatsApp Image 2025-11-10 at 11.31.35.jpeg
FE_20251110_11301432_WSFE_Request.xml
FE_20251110_11301432_WSFE_Response.xml

Sergio Rojas

unread,
Nov 11, 2025, 2:25:20 PM (10 days ago) Nov 11
to pyaf...@googlegroups.com

Hola, no tuve ese inconveniente. Pero hice esta función para no enviar ceros ni punto decimal si no hace falta. Eso basándome en los resultados de SoapUI.

El primer parámetro es el valor y el segundo la cantidad de decimales que corresponderían. Que si son cero, se recortan. Desde Mayo que lo hago así y anda perfecto.

FUNCTION nro2chr 
LPARAMETERS nro_in, dec_in
LOCAL _rtrn
nro_tipo = VARTYPE(nro_in)
IF VARTYPE(dec_in) # 'N'
    dec_in = 0
ENDIF 
DO CASE 
CASE nro_tipo = 'C'
    _rtrn = ALLTRIM(STR(VAL(nro_in), 16, dec_in))
    IF VAL(_rtrn) = 0 
        _rtrn =    '0'
    ENDIF 
CASE nro_tipo = 'N'
    _rtrn = ALLTRIM(STR(nro_in, 16, dec_in))
    IF VAL(_rtrn) = 0 
        _rtrn =    '0'
    ENDIF 
OTHERWISE 
    _rtrn = '' 
ENDCASE 
IF '.' $ _rtrn        && hay punto decimal
    IF RIGHT(_rtrn, 1) = '0'
        _rtrn = LEFT(_rtrn, LEN(_rtrn) - 1)
    ENDIF 
    IF RIGHT(_rtrn, 1) = '0'
        _rtrn = LEFT(_rtrn, LEN(_rtrn) - 2)
    ENDIF 
ENDIF 
RETURN _rtrn
ENDFUNC 

--
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/CABQAa9NZ7wfx3stXAKOVLfPNFZzq%3Df8aRXvQvUW8p-MWbSYN1Q%40mail.gmail.com.

Daniel Aisenberg

unread,
Nov 11, 2025, 4:40:19 PM (10 days ago) Nov 11
to pyaf...@googlegroups.com
probaste mandarle un cero en <DocNro></DocNro> o sea

<DocNro>0</DocNro>

Martín E. Lezama

unread,
Nov 11, 2025, 5:18:28 PM (10 days ago) Nov 11
to pyaf...@googlegroups.com
Era esto, mi amigo, era esto. Mandé eso y funcionó.

Muchas gracias!!!

Reply all
Reply to author
Forward
0 new messages