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
- Documentación de la API de Alegra: https://developer.alegra.com/
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a51c303f51ca1d3e91c637241112e61f41437a7bd47a41af4d6cbed9929100c
|
|
| MD5 |
2b617894ce40cab74b4cb87026d70469
|
|
| BLAKE2b-256 |
bfe5fbe940ef4856e7ab4ac26993f0c6dde941d6bd6d8b5b9ad63252fc9022a4
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e391da5744a1f9cfa8064c1154c2a495d357de06fdc92637208a870ca00cd2f2
|
|
| MD5 |
e05611e8afcab6deecc38a3450a07b43
|
|
| BLAKE2b-256 |
d2892555018b346a7692aed7ae77b6a949e9bd702959304f8098e3444eb69ab3
|