Skip to main content

Este paquete nos permite consumir el API de Alegra

Project description

AlegraPy

Este paquete nos permite consumir la API de la plataforma de facturación Alegra de forma sencilla mediante Python 🐍.

Características

  • Modular y Extensible: Soporta múltiples recursos de la API de Alegra.
  • Cliente Orientado a Objetos (AlegraClient): Permite instanciar múltiples clientes con diferentes credenciales simultáneamente.
  • Carga Perezosa (Lazy loading): Los recursos solo se importan e instancian cuando se acceden por primera vez.
  • Operaciones Avanzadas: Anulación de documentos, reabrir documentos, envío por correo electrónico, agregar comentarios y transferencias bancarias.
  • Carga de Archivos Adjuntos: Soporte integrado para adjuntar archivos (multipart/form-data) a cualquier recurso que lo admita.

Instalación y Configuración

1. Obtener credenciales de acceso

Sigue estos pasos para obtener tus credenciales desde tu cuenta de Alegra:

  • Ingresa a la aplicación de Alegra.
  • Dirígete a Configuración (esquina superior derecha) y selecciona API - Integraciones.
  • Copia tu Correo electrónico de acceso y genera/copia tu Token.

2. Instalación

Para instalar el paquete de forma local en tu entorno virtual:

pip install .

Uso Recomendado (AlegraClient)

El uso del objeto AlegraClient es la forma recomendada para interactuar con la API:

from alegra import AlegraClient

# Inicializar cliente con tus credenciales
client = AlegraClient(
    user="tu_usuario@dominio.com", 
    token="tu_token_api"
)

# 1. Listar Clientes/Contactos (con paginación por defecto: start=0, limit=30)
contactos = client.contacts.list()

# 2. Consultar un Contacto específico
contacto = client.contacts.read(10032)
print("Contacto:", contacto.get("name"))

# 3. Adjuntar un archivo local a un contacto o factura
client.contacts.add_attachment(id=10032, file_path="ruta/al/archivo.pdf")

Recursos Disponibles y Métodos Especiales

Recurso Propiedad del Cliente Acciones Especiales
Facturas de Venta client.invoices .void(id), .open(id), .send_email(id, emails, ...)
Contactos client.contacts .add_attachment(id, file_path)
Productos/Ítems client.items .add_attachment(id, file_path)
Pagos/Ingresos client.payments .void(id), .open(id)
Cotizaciones client.estimates .void(id), .open(id), .send_email(id, emails, ...)
Órdenes de Compra client.purchase_orders .void(id), .send_email(id, emails, ...), .add_comment(id, comment_text)
Cuentas Bancarias client.bank_accounts .transfer(from_id, to_id, amount, date, description)
Impuestos client.taxes CRUD estándar (list, read, create, update, delete)
Monedas/Divisas client.currencies CRUD estándar
Retenciones client.retentions CRUD estándar
Usuarios client.users .self_info() (Consultar usuario autenticado)

Ejemplo: Registrar una Transferencia Bancaria

client.bank_accounts.transfer(
    from_id=1,           # Cuenta origen
    to_id=2,             # Cuenta destino
    amount=50000.0,      # Monto
    date="2026-06-21",   # Fecha (AAAA-MM-DD)
    description="Transferencia de fondos"
)

Ejemplo: Anular y Enviar Cotización por Correo

# Anular cotización
client.estimates.void(123)

# Enviar cotización a un cliente
client.estimates.send_email(
    id=123,
    emails=["cliente@dominio.com"],
    subject="Tu cotización actualizada",
    message="Hola, adjuntamos la cotización de los servicios solicitados."
)

Compatibilidad Heredada (Legacy Mode)

Se mantiene la compatibilidad con el estilo de configuración global y los wrappers de funciones heredados:

from alegra import session, invoices, contacts

# Configuración global de la sesión
session.user = "tu_usuario@dominio.com"
session.token = "tu_token_api"

# Instanciación heredada
invoice_helper = invoices()
invoice_list = invoice_helper.list(start=0, limit=5)

Referencias Oficiales

Licencia

Este proyecto está bajo la Licencia MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

alegrapy-0.0.4.tar.gz (12.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

alegrapy-0.0.4-py3-none-any.whl (15.6 kB view details)

Uploaded Python 3

File details

Details for the file alegrapy-0.0.4.tar.gz.

File metadata

  • Download URL: alegrapy-0.0.4.tar.gz
  • Upload date:
  • Size: 12.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for alegrapy-0.0.4.tar.gz
Algorithm Hash digest
SHA256 1a51c303f51ca1d3e91c637241112e61f41437a7bd47a41af4d6cbed9929100c
MD5 2b617894ce40cab74b4cb87026d70469
BLAKE2b-256 bfe5fbe940ef4856e7ab4ac26993f0c6dde941d6bd6d8b5b9ad63252fc9022a4

See more details on using hashes here.

File details

Details for the file alegrapy-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: alegrapy-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 15.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for alegrapy-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 e391da5744a1f9cfa8064c1154c2a495d357de06fdc92637208a870ca00cd2f2
MD5 e05611e8afcab6deecc38a3450a07b43
BLAKE2b-256 d2892555018b346a7692aed7ae77b6a949e9bd702959304f8098e3444eb69ab3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page