python

Ivan
Ivan
Ariel
Ariel

Hola @user ! No encuentro en la documentación la forma de enviar el detalle de los items de una factura A. El ejemplo de la API no lo muestra tampoco. ¿Hay algo que se me está pasando por algo? ¿Tenés algún enlace para ver? Gracias por adelantado.

Ariel Ariel Hola @user ! No encuentro en la documentación la forma de enviar el detalle de los items de una factura A. El ejemplo de la API no lo muestra tampoco. ¿Hay algo
Ivan
Ivan

Hola Ariel, no se envian los detalles de la factura a la AFIP, uno las pone despues en el PDF

Ariel
Ariel

Genial! Muchas gracias! Abrazo

NVidia10
NVidia10

@Ivan podrías decirme dónde ver los costos de la Api? Implemente un sistema y no me di cuenta que era de pago..

Mauro Dev💻
Mauro Dev💻

Buenas tardes! un gusto saludar a todos, tengo una consulta, lei que hay cuit de prueba de afip para usar, uno de ellos (en teoria) es el 300000007 o 20-20267565393 que es bajo el entorno de homologacion , es correcto?

Cuit de pruebas
2 messages · perfecto, buenisimo, ahi hice algunas pruebas con ese cuit con algunos metodos y pude avanzar, cualquier cosa te vuelvo
Mauro Dev💻
Mauro Dev💻

Buenos dias @user , tengo otra consulta, para generar un recibo de pago, que funcion o metodo deberia usar? busque en el blog y en la documentacion, pero no lo encontre.Desde ya muchas gracias!

Recibos
1 messages · Aca estan todos los tipos de comprobantes en la seccion "3. Tipo de Comprobante" https://www.afip.gob.ar/libro-iva-digit
ZoeF11
ZoeF11

Buenas noches!!! sigo la documentación. Pero cuando hago la parte para pedir datos de los contribuyentes obtengo el siguiente mensaje " error Error al obtener los detalles del contribuyente: {"code":"Internal","message":"Error: soap:Server: No existe persona con ese Id: {"SRValidationException":null}"} el tema es que los id con los que pruebo son el mio y/o de familiares ... existe algún formato de como deba ingresar los id ? creo que los certificados y la key los esta leyendo bien debido a que antes tenía error referidos a ello

ZoeF11 ZoeF11 Buenas noches!!! sigo la documentación. Pero cuando hago la parte para pedir datos de los contribuyentes obtengo el siguiente mensaje " error Error al obtener l

les dejo el código " from afip import Afip

tax_id = 111111111 # CUIT a verificar dejo eso de ejemplo cert = open("cert.crt").read() key = open("key.key").read()

afip = Afip({ "CUIT": tax_id, "cert": cert, "key": key })

try: taxpayer_details = afip.RegisterInscriptionProof.getTaxpayerDetails(tax_id) if taxpayer_details: print(f"El CUIT {tax_id} está activo.") else: print(f"No se encontró información para el CUIT {tax_id}.") except Exception as e: print(f"Error: {e}")

ZoeF11 ZoeF11 Buenas noches!!! sigo la documentación. Pero cuando hago la parte para pedir datos de los contribuyentes obtengo el siguiente mensaje " error Error al obtener l
Ivan
Ivan

Es en desarrollo? Es normal que ahi te diga que no existe, no tiene datos de todos los cuits disponibles

Ivan Ivan Es en desarrollo? Es normal que ahi te diga que no existe, no tiene datos de todos los cuits disponibles
ZoeF11
ZoeF11

anoche me puse a leer las preguntas frecuentes y justo daba esa respuesta. Probe en porducción y ya me andaba perfecto. Muchas gracias !!!

cauchothegaucho
cauchothegaucho

Buenas noches, alguno sabe como poder imprimir solamente el qr para la facturacion?, de ser posible tambien exportarlo en un formato png o como sea

cauchothegaucho
cauchothegaucho

obrigado

Valentin Lujambio
Valentin Lujambio

Hola a todos! Como andan? Tengo una consulta en base al web services "constatación de comprobantes". Alguien obtuvo como respuesta que el CAE es inválido al utilizar el mismo? Y si compruebo la misma factura mediante el servicio web (https://servicioscf.afip.gob.ar/publico/comprobantes/cae.aspx) me responde sin inconvenientes que es válida. Como base estoy utilizando el formato que sugiere la documentación oficial (https://docs.afipsdk.com/paso-a-paso/web-services/constatacion-de-comprobantes) en python:

# Obtenemos el TA
ta = ws.getTokenAuthorization()
    
# Preparamos los datos
data = {
  "Auth": { 
    "Token": ta["token"],
    "Sign": ta["sign"],
    "Cuit": afip.CUIT
  },
  "CmpReq": {
    "CbteModo": "CAE",
    "CuitEmisor": 20000000001,
    "PtoVta": 1,
    "CbteTipo": 1,
    "CbteNro": 2,
    "CbteFch": 20101014,
    "ImpTotal": 300.8,
    "CodAutorizacion": "60428000005029",
    "DocTipoReceptor": "80",
    "DocNroReceptor": "300000000007"
  }
}
Ivan Ivan Tal respuesta te la da en produccion?
Valentin Lujambio
Valentin Lujambio

Hola! Si, la respuesta se da en producción. Es la API que me da por defecto la documentación con su estructura pero utilizando los datos de mi factura, la cual por web se valida bien

hillsdigital
hillsdigital

Buen dia... escribi hace un rato desde mi otra cuenta.. Si alguien esta disponible para ayudarnos a solucionar una cosa.. se los agradezco.

hillsdigital
hillsdigital

Buenas tardes

alguno sabe como enviar un array de iva? es decir, para una factura q con varios items?

@user Tené en cuenta que en el array de iva tenés que mandar el ID, la base imponible y el importe total de todos los items, no por seprado. Únicamente separás si las alícuotas son diferentes.

hillsdigital
hillsdigital

claro tengo alicuotas diferentes.

Mauropek
Mauropek

Completás el objeto con el ID del iva que corresponda a la otra alícuota.

hillsdigital
hillsdigital

"Iva": { "AlicIva": [{ "Id": 5, "BaseImp": imp_neto, "Importe": imp_iva, }] } "Iva": { "AlicIva": [{ "Id": 4, "BaseImp": imp_neto, "Importe": imp_iva, }] }

asi?

supongo q deberia ordenar los productos por alicuota y completar la factura segun, imp net y alicuota?

Mauropek
Mauropek

@user Nunca usé python, pero por qué agregás "Aliciva"? Quizá me equivoco, pero con el ID correspondiente al tipo de alícuota que enviás es suficiente. Creo, en el ejemplo de la documentación está así. Por las dudas esperá que lo vea @user, no quiero decir una cosa por otra.

hillsdigital
hillsdigital

porq estoy desarrollando una app para una empresa que emite facturas a con dif alicuotas

cada item puede tener su alicuota como esta en la docu de afip. No intente con el XMl pero no resulto, por eso estoy tratando de adaptar la api

Mauropek
Mauropek

@user yo veo que está raro el objeto, enviás "Aliciva", la api no pide esa info, además le falta una (coma) y enviás dos veces la lista "iva". Ta raro, yo probaría con algo como esto: { "Iva": [ { "Id": 5, "BaseImp": 100, "Importe": 21 }, { "Id": 4, "BaseImp": 200, "Importe": 10.5 } ] }

hillsdigital
hillsdigital

{ "Iva": [ { "Id": 5, "BaseImp": 100, "Importe": 21 }, { "Id": 4, "BaseImp": 200, "Importe": 10.5 } ] } SI SI LO PENSE POR AHI

ELIAN
ELIAN

Cuando uso este metodo, me sale el siguiente error:

Que esta fallando? que me esta faltando ?

Estoy unicamente mandando un cuit en el parametro

@user me podrias ayudar?

El metodo:

Funciona correctamente

ELIAN ELIAN @user me podrias ayudar?
Ivan
Ivan

Tenes que autorizar el web service de padrón de constancia de inscripción, el otro metodo funciona porque es otro web service que debes tener autorizado, en el mensaje te da la url del manual para autorizarlo

ELIAN
ELIAN

Bien, entonces es lo que pensaba. Pense que era una respuesta de error generico. Muchas gracias estare al tanto. Entonces con autorizar ese padron todo deberia funcionar

ELIAN
ELIAN

🫡 ❤️

joaquin
joaquin

Buenas! Cuando intento obtener la constatancia de inscripcion me tira el siguiente error

Si existe el taxid, ya que es el cuit con el que accedo a afip

probe con otros cuits y sucede lo mismo

Solucionado, recien lei que con el certificado de desarrollo solo s pueden usar cuits especificos

RolyQ
RolyQ

Buenas tardes, recien comenzando en el tema, queria saber si alguien la usa en servidores con LINUX?, CENTOS?

RolyQ RolyQ Buenas tardes, recien comenzando en el tema, queria saber si alguien la usa en servidores con LINUX?, CENTOS?
Ivan
Ivan

Preguntas por alguna razon en particular? Deberia funcionar sin problemas

RolyQ
RolyQ

Hola, lo estoy probando en desarrollo y funciona bien. Gracias, hago unos días de prueba y la idea es pasar a producción, ahora voy a ver la documentación.

fede.herz
fede.herz

Buenas. Hay algún código de ejemplo para generar una factura de exportación en Homologación? Busqué pero no encuentro. Gracias

joaquin
joaquin

Buenas! Intentando crear notas de credito B con concepto 1 (Productos) me encuentro con el siguiente error (10016) El numero o fecha del comprobante no se corresponde con el proximo a autorizar. Consultar metodo FECompUltimoAutorizado. este es el json con el que se realiza el request {'CantReg': 1, 'PtoVta': 1, 'CbteTipo': 8, 'Concepto': 1, 'DocTipo': 86, 'DocNro': 33693450239, 'CbteDesde': 504, 'CbteHasta': 504, 'CbteFch': 20250323, 'FchServDesde': None, 'FchServHasta': None, 'FchVtoPago': 20250331, 'ImpTotal': 2420.91, 'ImpTotConc': 0, 'ImpNeto': 2000.75, 'ImpOpEx': 0, 'ImpIVA': 420.16, 'ImpTrib': 0, 'MonId': 'PES', 'MonCotiz': 1, 'CondicionIVAReceptorId': 5, 'Iva': [{'Id': 5, 'BaseImp': 2000.75, 'Importe': 420.16}]}. El ultimo comprobante realizado fue el 503.

Notan algun error en el request json?

joaquin joaquin Buenas! Intentando crear notas de credito B con concepto 1 (Productos) me encuentro con el siguiente error ```(10016) El numero o fecha del comprobante no se co
Mediasolutions
Mediasolutions

En FchServDesde, FchServHasta y FchVtoPago suelo poner: NULL (solo son obligatorios para conceptos 2 y 3)

joaquin
joaquin

Incluso con FchVtoPago en NULL, se genera el error. Con el resto de los conceptos (2 y 3) no tengo problema

joaquin
joaquin

Gracias Ivan, efectivamente ese era el problema. Estare mas atento al blog

ELIAN
ELIAN

@user buenos dias. Ivan, tengo una consulta tema carta de porte electronico, lo que veo en la pagina web es solo la introduccion a carta de porte, porque veo que dps afip pide mas datos. Afips SDK soporta las presentaciones extra de carta de porte?

2008 La CUIT {0} no está activa en RUCA para el tipo de contribuyente: {1} CPE Automotor Flete corto (274) esto me sale como error

ELIAN
ELIAN

Gracias ivan. Gracias por tu tiempo

Agustin
Agustin

Buenas, como va? Una consulta: cuando levanto la instancia de la libreria a veces me tira que tengo que esperar 2 minutos para obtener otro TA. (Yo gestiono muchos CUITs distintos)

afip = Afip({
    "CUIT": CUIT,
    "cert": cert,
    "key": key,
    "access_token": "token",
    "production": True
})

Siempre que voy a crear un comprobante con un cuit, la instancio nuevamente. Es decir si el CUIT "A" crea 10 facturas, instancio 10 veces la clase Afip.

Hay alguna buena practica para evitar que me suceda lo de no solicitar un TA nuevo antes de los 2 minutos? Pregunto porque me resulta raro que a veces falla y a veces no. Es medio random. Si fuese estricto 2 minutos, fallaria siempre que hago mas de 1 factura consecutiva

Agustin
Agustin

Si. Deberia cachearlo por 12 hs por cada cuit no ? osea la idea de forzarlo surgio porque nosotros gestionamos muchos cuits distintos mediante delegacion del servicio de facturacion electronica. Entonces cuando viene un cuit nuevo, tengo q forzar otro TA para que detecte que lo puedo gestionar

Agustin Agustin Si. Deberia cachearlo por 12 hs por cada cuit no ? osea la idea de forzarlo surgio porque nosotros gestionamos muchos cuits distintos mediante delegacion del se
Ivan
Ivan

No, no necesitas forzarlo, se cachea y gestiona solo, el forzarlo anula ese mecanismo por eso estas teniendo ese problema

Agustin
Agustin

El TA es independiente del CUIT que le paso ? o es por cert ? tipo si levanto 2 veces con 2 cuits distintos, no deberia tener problema, no ?

Agustin Agustin El TA es independiente del CUIT que le paso ? o es por cert ? tipo si levanto 2 veces con 2 cuits distintos, no deberia tener problema, no ?
Ivan
Ivan

Si levantas 2 veces con dos cuit distintos no deberias tener problemas

Agustin
Agustin

Buen dia @user , como estas?

Sabes que sigo con el mismo problema: sigo teniendo lo de los 2 minutos del TA.

  • Ya elimine los afip.ElectronicBilling.getTokenAuthorization(True)
  • Ahora detecto error en last_voucher_id = afip.ElectronicBilling.getLastVoucher(user_selling_point, AfipInvoiceTypes.C.value)

Se podra ver logs en base a mi token? me esta afectando bastante la experiencia. En resumen; levanto la clase AFIP por cada CUIT cada vez que lo uso.

Me recomendas algo para ver por donde puede venir el error? estuve viendo el codigo del SDK pero no tengo visiblidad de lo que sucede cuando se le pega a la api tuya

Martín
Martín

Hola! Cómo están? Soy Contador con conocimientos muy básicos de programación. Quiero hacer un facturador para mi pequeño estudio en base a un archivo de excel, donde lea los datos del emisor y del receptor para confeccionar las facturas. En principio use la base del ejemplo que ponen aquí y logro obtener los certificados y conectarme con ARCA en homologación, pero me falla, el XML que envía para la emisión no reconoce todos los campos, aparentemente por formato. Le dí muchas vueltas pero no logro solucionarlo. Alguien me podrá dar una mano?

Ivan Ivan Que error estas obteniendo?
Martín
Martín

Me sale este error:

📤 Ejecutando CAESolicitar...

❌ Error emitiendo factura #503: soap:Client: Server was unable to read request. ---> There is an error in XML document (5, 1201). ---> Input string was not in a correct format.

Martín
Martín

Ese es el código. Ahora que veo el link que me pasas, no tengo todos los campos. Tal vez sea por eso, no?

Martín Martín Ese es el código. Ahora que veo el link que me pasas, no tengo todos los campos. Tal vez sea por eso, no?
Ivan
Ivan

Mmm probablemente falta algun campo o algun campo es incorrecto

Martín
Martín

Voy a probar entonces con los campos del enlace que me pasaste a ver si así va. Mil gracias Ivan!

Alejandro Pallares
Alejandro Pallares

Hola que tal. soy nuevo aca y estoy intentando hacer una nota de debito pero no esta en la documentacion. y aca va la pregunta: sera que el metodo es el mismo y lo unico que cambia es la variable tipo_de_nota? me pueden confirmar eso? https://docs.afipsdk.com/siguientes-pasos/web-services/factura-electronica/nota-de-credito-a {"NDA": 2, "NDB": 7, "NDC": 12}

Nota de Crédito A | Afip SDK
Open embed source
Ivan Ivan Asi es, solo cambia el tipo de comprobante, el resto es similar
Alejandro Pallares
Alejandro Pallares

Excelente, gracias.

Alejandro Pallares
Alejandro Pallares

@user me podes confirmar que los ids de alicuotas de iva son estos?

Le pregunte a la IA pero la rta no me termina de convencer.

1 → No gravado 2 → Exento 3 → 0% 4 → 10,5% 5 → 21% 6 → 27% 8 → 5% 9 → 2,5%

Ivan Ivan Podes obtenerlos directamente con este metodo https://docs.afipsdk.com/siguientes-pasos/web-services/factura-electronica#obtener-tipos-de-alicuotas-disponibles,
Alejandro Pallares
Alejandro Pallares

@user muchas gracias por responder. no, le pregunte a chatgpt y me respondio eso....(claramente no existe) tengo otra consulta, imaginate que tengo que emitir factura A, y tengo productos con iva 0% como la leche. eso en que parte del bloque de data lo tengo que poner? como importe exento o dentro de bloque de alicuotas de iva? "ImpOpEx": importe_exento_iva, <---aca? o

"Iva": [ # Alícuotas asociadas al factura { "Id": 3, # Id del tipo de IVA (3 = 0%) "BaseImp": 1500, <--uso como ejemplo la base imponible "Importe": 0 <-- aca iria siempre 0, verdad? } ]

no termino de entender cuando usar uno u otro. te agradezco por toda la ayuda que me estas dando.

Ivan Ivan Es un pregunta mas contable pero en ese caso creo que va como IVA 0%
Alejandro Pallares
Alejandro Pallares

Gracias de nuevo por responder. Tenes idea alguna documentacion que pueda aclararme la duda?

paez
paez

Hola! Estoy en desarrollo, aprendiendo un poco cómo funciona todo.

Quiero obtener el último comprobante de factura C para ver como ir armando una nueva factura, con el ult_comp + 1.

data = { "Auth": { "Token": token, "Sign": sign, "Cuit": cuit }, "FeCompConsReq": { "CbteTipo": 11, "CbteNro": 11363, "PtoVta": 10 } }

try: # Realizamos la llamada al metodo del web service response = ws.executeRequest("FECompConsultar", data)

# Mostramos la respuesta por pantalla
print(response)

except Exception as error: # En caso de error lo mostramos por pantalla print(error)

Quiero obtener los datos del último comprobante (que mirando desde la pág de arca es ese número) y me dice que no existen los datos.

Será porque estoy en desarrollo? Porque también llamé al FECompUltimoAutorizado y me dice que el último es el 0 cuando no tiene sentido

paez paez Hola! Estoy en desarrollo, aprendiendo un poco cómo funciona todo. Quiero obtener el último comprobante de factura C para ver como ir armando una nueva factura
Ivan
Ivan

En modo desarrollo te va a decir que no existe, y en produccion solo podes obtener los datos de los comprobantes emitidos via web service

paez
paez

Genial, mil gracias