niiko/developers

Kiipu · facturación v1 solo lectura

kiipu.collections_get

Lee lo que se debe: el total pendiente, lo vencido por tramo de antigüedad, los 15 clientes que más deben con su vencido y desde cuándo, y las próximas cuotas. No cambia nada ni escribe a nadie.

Última actualización

POST /api/v1/reads/kiipu.collections_get
Alcance del token
kiipu.collections_get@1
Permiso del workspace
api.kiipu.collections_get apagado por defecto
Quién lee
La persona detrás del token, con su rol. Quien deja el workspace deja de leer.
Tres permisos

Un token con ese alcance, que el dueño del workspace haya encendido la lectura, y que el rol de la persona la vea en el producto. Ninguna basta sola. Solo con OAuth →

Petición

Sin campos.

Respuesta — output cuando status es done

campotiporeglas
currencystringobligatorio
outstandingTotalstringobligatorio^-?\d+\.\d{2}$
openInvoicesintegerobligatorio≥ 0
overdueTotalstringobligatorio^-?\d+\.\d{2}$
agingBucketsobject[]obligatorio
debtorsobject[]obligatorio
upcomingobject[]obligatorio
incompletebooleanobligatorio

agingBuckets[]

campotiporeglas
bucket"d1_30" | "d31_60" | "d61_90" | "d90_plus"obligatorio
amountstringobligatorio^-?\d+\.\d{2}$
installmentsintegerobligatorio≥ 0
clientsintegerobligatorio≥ 0

debtors[]

campotiporeglas
clientstring | nullobligatorio
overduestringobligatorio^-?\d+\.\d{2}$
oldestDueOnstringobligatorio^\d{4}-\d{2}-\d{2}$
daysOverdueintegerobligatorio≥ 0
bucket"d1_30" | "d31_60" | "d61_90" | "d90_plus"obligatorio
invoicesintegerobligatorio≥ 0

upcoming[]

campotiporeglas
clientstring | nullobligatorio
invoicestring | nullobligatorio
dueOnstringobligatorio^\d{4}-\d{2}-\d{2}$
amountstringobligatorio^-?\d+\.\d{2}$

Ejemplo

# Reads take an OAuth access token, not an API key, and no idempotency key: reading changes nothing.
curl -X POST https://niiko.org/api/v1/reads/kiipu.collections_get \
  -H "Authorization: Bearer $NIIKO_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
# 200 → done · 4xx → refused, with a named reason

Por qué puede negarse

Cada motivo dice quién puede arreglarlo y cómo; detail.message, cuando viene, dice qué hacer. Negativas y códigos HTTP →

invalid_inputrole_forbiddengrant_offreads_need_a_person

En los clientes

@vorluno/niiko-sdkniiko.getCollections()
niiko (Python)niiko.get_collections() desde 0.3.0 · aún no está en el registro
niiko-cliniiko read kiipu.collections_get
n8n-nodes-niikoSin lecturas: el nodo lleva una llave, y leer pide una persona por OAuth.
niiko-mcp-serverkiipu_collections_get readOnlyHint

Historial