Referencia
Tres reglas que valen para toda la API. Sabiéndolas, el resto de la referencia se lee solo.
Base
https://gxxazsplhgyezwxghrnn.supabase.co/functions/v1/blink-apiTodos los recursos cuelgan de /v1. No hay una URL distinta para sandbox: el entorno lo decide la llave.
Un listado siempre devuelve un sobre con object: "list" y los resultados en data. Los que paginan traen además has_more y next_cursor.
Sobre de listado
{
"object": "list",
"has_more": true,
"next_cursor": "2026-09-06T18:22:41.000Z",
"data": [ … ]
}| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
limit | entero | no | Cuántos traer. Por defecto 25, máximo 100. |
starting_after | cursor | no | El next_cursor de la página anterior. |
Para pedir la página siguiente, pasa el next_cursor tal cual en starting_after. Cuando has_more es false, terminaste.
Recorrer todas las páginas
async function* todosLosCobros() {
let cursor = null;
while (true) {
const url = new URL("https://gxxazsplhgyezwxghrnn.supabase.co/functions/v1/blink-api/v1/payments");
url.searchParams.set("limit", "100");
if (cursor) url.searchParams.set("starting_after", cursor);
const page = await fetch(url, {
headers: { Authorization: `Bearer ${process.env.LANE_SECRET_KEY}` },
}).then((r) => r.json());
yield* page.data;
if (!page.has_more) return;
cursor = page.next_cursor;
}
}No todos los listados paginan. Cobros, suscripciones y disputas usan cursor. Instrumentos y comercios devuelven todo de una (hasta 100) y no traennext_cursor; clientes traehas_morepero no cursor.
Todos los identificadores de Lane son UUID. Los que empiezan por provider_ son del procesador y sirven para conciliar con un extracto; no los uses como clave en tu base.
Los listados vienen del más nuevo al más viejo. Todas las fechas son ISO 8601 en UTC. Colombia es UTC−5 todo el año: un cobro de las 8 de la noche aparece como la 1 de la mañana del día siguiente.
Esta página en markdown: /docs/api/paginacion.md · Toda la documentación: /docs/llms-full.txt