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.
Metadata
Release files for AlegraPy 0.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| alegrapy-0.0.4.tar.gz | 12.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| alegrapy-0.0.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 27.6 kB
Release files / alegrapy-0.0.4.tar.gz
| Download URL | alegrapy-0.0.4.tar.gz |
|---|---|
| Size | 12.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1a51c303f51ca1d3e91c637241112e61f41437a7bd47a41af4d6cbed9929100c
|
|
BLAKE2b-256 checksum How to use checksums |
bfe5fbe940ef4856e7ab4ac26993f0c6dde941d6bd6d8b5b9ad63252fc9022a4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / alegrapy-0.0.4-py3-none-any.whl
| Download URL | alegrapy-0.0.4-py3-none-any.whl |
|---|---|
| Size | 15.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e391da5744a1f9cfa8064c1154c2a495d357de06fdc92637208a870ca00cd2f2
|
|
BLAKE2b-256 checksum How to use checksums |
d2892555018b346a7692aed7ae77b6a949e9bd702959304f8098e3444eb69ab3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Security for AlegraPy 0.0.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.