Gastos y Compras (el lado de las cuentas por pagar)¶
El ciclo de compra refleja el de ventas: proveedores en vez de clientes, facturas de compra en vez de facturas de venta, pagos salientes en vez de entrantes.
Proveedores (contactos de tipo proveedor)¶
# Crear un proveedor
PID=$(alegra contacts create --set name="Proveedor X S.A.S" \
--set 'identification={"type":"NIT","number":"900888777"}' \
--set 'type=["provider"]' --set kindOfPerson="LEGAL_ENTITY" -o json | jq -r '.id')
# Listar proveedores
alegra contacts list --type provider --all
Facturas de compra (facturas de proveedor)¶
# Registrar una factura de compra (purchases.items contiene las líneas)
cat > bill.json <<JSON
{
"provider": { "id": $PID },
"date": "$(date -u +%F)",
"dueDate": "$(date -u +%F)",
"purchases": { "items": [ { "id": 1, "price": 100000, "quantity": 1 } ] }
}
JSON
alegra bills create -f bill.json
# Listar facturas de compra abiertas, de la más antigua a la más reciente
alegra bills list --status open --order-field date --order-direction ASC --all
# ¿Cuánto debo? (conteo + saldo pendiente)
alegra bills list --status open --count
alegra bills list --status open --all -o json | jq 'map(.balance|tonumber)|add'
# Colombia: importar la factura electrónica de un proveedor directo desde su CUFE
alegra bills import-by-cufe --set cufe="<the-cufe>"
# Cerrar una factura de compra con saldo restante (la da de baja)
alegra bills close 7 --set date="$(date -u +%F)" --set 'category={"id":5}'
# Aplicar un anticipo de proveedor a una factura de compra; adjuntar un PDF; comentar
alegra bills advances 7 --set 'advances=[{"id":42}]'
alegra bills attach 7 --set 'file="<base64>"' --set name="factura.pdf"
alegra bills comments 7 --set text="Pagada parcialmente"
# Ajustar percepciones / retenciones en una factura de compra (reemplaza el conjunto)
alegra bills retentions 7 --set 'retentions=[{"id":12}]'
alegra bills perceptions 7 --set 'perceptions=[]'
Órdenes de compra¶
alegra purchase-orders create -f po.json
alegra purchase-orders email 3 --set 'emails=["ventas@proveedor.com"]'
alegra purchase-orders void 3
Pagar a proveedores (pagos salientes)¶
cat > out.json <<JSON
{
"type": "out",
"date": "$(date -u +%F)",
"bankAccount": { "id": 2 },
"provider": { "id": $PID },
"bills": [ { "id": 7, "amount": 100000 } ]
}
JSON
alegra payments create -f out.json
# Todos los gastos pagados este mes
alegra payments list --type out --date-after 2026-06-01 --all
Retenciones e impuestos¶
Las compras colombianas suelen llevar retenciones (retefuente, ICA). Busca los ids y adjúntalos en el cuerpo de la factura de compra/pago:
alegra retentions list --columns id,name,percentage
alegra taxes list --columns id,name,percentage,type
Consulta la guía de Reportes para consolidar todo esto al cierre de mes.