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_getapagado 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
| campo | tipo | reglas | |
|---|---|---|---|
currency | string | obligatorio | |
outstandingTotal | string | obligatorio | ^-?\d+\.\d{2}$ |
openInvoices | integer | obligatorio | ≥ 0 |
overdueTotal | string | obligatorio | ^-?\d+\.\d{2}$ |
agingBuckets | object[] | obligatorio | |
debtors | object[] | obligatorio | |
upcoming | object[] | obligatorio | |
incomplete | boolean | obligatorio |
agingBuckets[]
| campo | tipo | reglas | |
|---|---|---|---|
bucket | "d1_30" | "d31_60" | "d61_90" | "d90_plus" | obligatorio | |
amount | string | obligatorio | ^-?\d+\.\d{2}$ |
installments | integer | obligatorio | ≥ 0 |
clients | integer | obligatorio | ≥ 0 |
debtors[]
| campo | tipo | reglas | |
|---|---|---|---|
client | string | null | obligatorio | |
overdue | string | obligatorio | ^-?\d+\.\d{2}$ |
oldestDueOn | string | obligatorio | ^\d{4}-\d{2}-\d{2}$ |
daysOverdue | integer | obligatorio | ≥ 0 |
bucket | "d1_30" | "d31_60" | "d61_90" | "d90_plus" | obligatorio | |
invoices | integer | obligatorio | ≥ 0 |
upcoming[]
| campo | tipo | reglas | |
|---|---|---|---|
client | string | null | obligatorio | |
invoice | string | null | obligatorio | |
dueOn | string | obligatorio | ^\d{4}-\d{2}-\d{2}$ |
amount | string | obligatorio | ^-?\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 reasonPor 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-sdk | niiko.getCollections() |
| niiko (Python) | niiko.get_collections() desde 0.3.0 · aún no está en el registro |
| niiko-cli | niiko read kiipu.collections_get |
| n8n-nodes-niiko | Sin lecturas: el nodo lleva una llave, y leer pide una persona por OAuth. |
| niiko-mcp-server | kiipu_collections_get readOnlyHint |
Historial
- Los SDK y la CLI leen
@vorluno/niiko-sdk,niikoyniiko-cli0.3.0 aceptan un token de acceso OAuth (accessToken,access_token=,niiko login --token) y tienen un método de solo lectura por lectura:getCollections(),get_collections(),niiko read kiipu.collections_get. Una lectura tiene dos desenlaces, hecha o negada, y no lleva clave de idempotencia. - Lecturas declaradas, solo con OAuth
POST /api/v1/reads/{id}contesta nueve lecturas declaradas —lo que se debe, lo cobrado, la agenda, el embudo, el mes—, nunca tablas ni texto que alguien escribió. Solo con un token OAuth, en nombre de una persona y con su rol (una llave de API recibereads_need_a_person); cada lectura tiene su interruptor en el workspace, apagado por defecto. El servidor MCP las lista como herramientas de solo lectura.