Emitir factura tipo A Afip

RunLLM
RunLLM

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:

chelo154
chelo154

@user que es docNro?

RunLLM
RunLLM

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:

chelo154
chelo154

@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)

RunLLM
RunLLM

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:

chelo154
chelo154

@user Dame un ejemplo para generar una factura electronica de tipo A en python usando USD como moneda

RunLLM
RunLLM

Sure thing! I'm looking through the available data to answer your question. Hold on a second... :hourglass_flowing_sand:

An error occurred: