Saltar a contenido

Crear y actualizar registros

Los cuerpos de las peticiones de Alegra suelen estar muy anidados (una factura tiene ítems de línea, impuestos, referencias de cliente, etc.), por eso los comandos de creación/actualización aceptan un cuerpo JSON de tres formas. Se pueden combinar: un cuerpo base desde --data/--file, con los overrides de --set fusionados encima.

Desde un archivo (o stdin)

alegra invoices create -f invoice.json
cat invoice.json | alegra invoices create -f -

Desde una cadena JSON en línea

alegra contacts create -d '{"name":"Acme","type":["client"]}'

Desde pares --set key=value

Los valores se parsean como JSON cuando son válidos (números, booleanos, arreglos, objetos, null); de lo contrario se tratan como cadenas:

alegra contacts create \
  --set name="Acme S.A.S" \
  --set 'type=["client"]' \
  --set 'address={"city":"Cali"}'

Actualizar

update envía un cuerpo parcial (Alegra aplica semántica PATCH — solo cambian los campos que envías):

alegra invoices update 12 --set observations="Pagada por transferencia"
alegra contacts update 99 -f patch.json

Eliminar

alegra contacts delete 99       # pide confirmación
alegra contacts delete 99 -y    # omite el prompt

Acciones de recurso

Muchos documentos admiten acciones extra además del CRUD:

alegra invoices void 12
alegra invoices open 12
alegra invoices email 12 --set 'emails=["client@acme.com"]'
alegra invoices stamp --set 'invoices=[{"id":12},{"id":13}]'
alegra bills close 7 --set date=2026-06-05 --set 'category={"id":5}'
alegra bank-accounts transfer 3 --set 'destinationAccount={"id":4}' --set amount=100000

Importación y exportación masiva (CSV/JSON)

Casi todos los recursos admiten operaciones masivas.

Import crea un registro por cada fila del CSV. La fila de encabezado nombra los campos; usa --map para renombrar una columna a un campo de la API (las rutas con puntos construyen objetos anidados) y --set para aplicar una constante a cada fila. Las filas se procesan de forma independiente — una fila fallida se reporta y no detiene la ejecución:

alegra contacts import -f clients.csv \
  --map 'Name=name,NIT=identification.number' \
  --set 'identification.type=NIT' --set 'type=["client"]'

alegra items import -f catalog.csv --map 'SKU=reference,Name=name'

Previsualiza cada fila sin escribir nada con --dry-run.

Export trae todas las páginas y las escribe a un archivo o a stdout, en CSV (por defecto) o JSON, respetando --columns y cualquier filtro --param:

alegra invoices export --param status=open > receivables.csv
alegra items export --format json --out items.json
alegra contacts export --columns id,name,email,status

Dry run

Previsualiza la petición HTTP exacta (y un curl listo para copiar y pegar) sin enviarla:

alegra invoices create -f invoice.json --dry-run

Agrega --show-token para incluir el encabezado de autenticación en el curl impreso (desactivado por defecto).

Validación previa al envío

create valida el cuerpo para tu país detectado (CO/MX/PE/CR) antes de enviarlo y detecta errores comunes a tiempo. Sáltatela con --no-validate, o define el país explícitamente con --country (consulta Configuración).