Para autorizar una venta y emitir una factura tipo A en Afip SDK con Python, primero obtené el access_token, luego consultá el último comprobante autorizado y finalmente creá la factura. Aquí tienes un ejemplo básico:
from afip import Afip
afip = Afip({
"access_token": "TU_ACCESS_TOKEN",
"CUIT": XXXXX
})
# Obtener el último número de comprobante autorizado para Factura A (CbteTipo=1)
punto_de_venta = 1
tipo_de_comprobante = 1 # 1 = Factura A
last_voucher = afip.ElectronicBilling.getLastVoucher(punto_de_venta, tipo_de_comprobante)
next_voucher_number = last_voucher + 1
# Crear la factura tipo A
data = {
"CantReg": 1,
"PtoVta": punto_de_venta,
"CbteTipo": tipo_de_comprobante,
"Concepto": 1,
"DocTipo": 80, # Ejemplo: CUIT
"DocNro": 20111111112,
"CbteDesde": next_voucher_number,
"CbteHasta": next_voucher_number,
"CbteFch": 20240101, # Fecha en formato AAAAMMDD
"ImpTotal": 121,
"ImpTotConc": 0,
"ImpNeto": 100,
"ImpOpEx": 0,
"ImpIVA": 21,
"ImpTrib": 0,
"MonId": "PES",
"MonCotiz": 1,
"CondicionIVAReceptorId": 5,
"Iva": [
{"Id": 5, "BaseImp": 100, "Importe": 21}
]
}
res = afip.ElectronicBilling.createVoucher(data)
print(res["CAE"], res["CAEFchVto"])
Según Crear Factura Electrónica de ARCA en Python y API de factura electrónica de ARCA, este flujo es el recomendado. ¿Te gustaría ver cómo adaptar este ejemplo para otros tipos de comprobantes o ambientes?
Sources:
@user que es docNro?
El campo DocNro es el número de documento del comprador que se informa en la factura electrónica. Su valor depende del tipo de documento (DocTipo) seleccionado: si es CUIT, se coloca el número de CUIT; si es DNI, el número de DNI; si es consumidor final, generalmente se usa 0, salvo que el monto supere el límite y debas informar el DNI real. Según la documentación oficial, siempre debe coincidir con el tipo de documento elegido.
¿Te gustaría ver ejemplos para cada tipo de documento?
Sources:
@user cual es la diferencia entre crear la factura electronica de arca como me mostraste en este chat vs usar esto:
Emitir PDF > Factura de Crédito Electrónica A (FCE)
Mi entendimiento es que crear la factura electrónica de ARCA como te mostré (con createVoucher) registra la venta ante ARCA y te devuelve el CAE, lo que la hace válida fiscalmente. En cambio, la función "Emitir PDF > Factura de Crédito Electrónica A (FCE)" solo genera el archivo PDF de la factura, pero no registra nada ante ARCA; es decir, solo crea el documento visual para entregar al cliente, usando datos ya autorizados previamente.
Esto se confirma en Preguntas frecuentes y en la documentación de PDFs: primero debés registrar la factura y obtener el CAE, luego podés generar el PDF con esos datos. ¿Querés ver un ejemplo de cómo generar el PDF después de registrar la factura?
Sources:
@user Dame un ejemplo para generar una factura electronica de tipo A en python usando USD como moneda
Sure thing! I'm looking through the available data to answer your question. Hold on a second... :hourglass_flowing_sand:
An error occurred: