Comprueba que somos nosotros
Recalcula el HMAC-SHA256 del cuerpo en crudo de la petición con tu secreto de webhook y compáralo con X-Findest-Signature. Si no coincide, descarta la petición. El secreto se muestra una sola vez, al crear el webhook.
Un endpoint REST para leer lo que Findest ya ha archivado y un webhook saliente que se dispara en el instante en que un documento llega a tu nube. Sin rastrear tu Drive y sin consultar la API cada poco: los datos vienen a ti, firmados para que puedas fiarte de ellos.
Incluida en todos los planes, también en Free
GET /public-api/documents?limit=.POST firmado por cada documento archivado.Monta una petición, firma un webhook y comprueba una URL. Todo lo de abajo se ejecuta en tu navegador: no hace falta clave y no se envía nada a ningún sitio.
curl -H "Authorization: Bearer fk_live_YOUR_KEY" \ "https://rlarmblikgtxmqlertzg.supabase.co/functions/v1/public-api/documents?limit=50"
X-Findest-Signature
25c45852f702be8fee8261149bbf5647bce71a62bea1e94a479ec0b78418e1f0
Crea una clave de API en la página API de la app y llama al endpoint para obtener los mismos registros que ves en tu Historial: nombre del fichero, tipo detectado, estado y destino final.
| Parámetro | Descripción |
|---|---|
| Authorization | Cabecera. Bearer <tu clave>. Una clave solo devuelve los documentos de su propia cuenta. |
| limit | Query, opcional. Cuántos documentos devolver, los más recientes primero. Por defecto 50, máximo 200. |
{
"documents": [
{
"id": "a1b2c3d4",
"filename": "Factura_Endesa_2026-03-14.pdf",
"doc_type": "Factura",
"status": "uploaded",
"destination": { "folder_name": "Facturas 2026" },
"created_at": "2026-03-14T09:12:03Z"
}
]
}
Configura una URL de webhook una sola vez y, cada vez que se archiva un documento, Findest le envía un POST firmado. No hace falta consultar la API cada cierto tiempo.
// Cabecera: X-Findest-Signature: <HMAC-SHA256 en hex del cuerpo en crudo> { "event": "document.archived", "data": { "id": "a1b2c3d4", "filename": "Factura_Endesa_2026-03-14.pdf", "doc_type": "Factura", "folder_name": "Facturas 2026", "web_link": "https://drive.google.com/file/d/…" }, "sent_at": "2026-03-14T09:12:04Z" }
import crypto from "node:crypto"; function isFromFindest(rawBody, signature, secret) { const expected = crypto .createHmac("sha256", secret) .update(rawBody) .digest("hex"); return signature?.length === expected.length && crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected)); }
Recalcula el HMAC-SHA256 del cuerpo en crudo de la petición con tu secreto de webhook y compáralo con X-Findest-Signature. Si no coincide, descarta la petición. El secreto se muestra una sola vez, al crear el webhook.
Si tu endpoint está caído o tarda demasiado, el archivado se completa igualmente. El webhook todavía no se reintenta: trátalo como un aviso y considera la API la fuente de verdad.
La URL debe ser https:// en el puerto 443 y apuntar a un host público. No se siguen redirecciones y cada llamada caduca a los 10 segundos.
En la app, en la página API de la barra lateral. La clave en claro se muestra una sola vez, al crearla: Findest solo guarda su hash, así que cópiala antes de cerrar el diálogo.
GET /public-api/documents devuelve como máximo 200 registros por petición (50 por defecto, se ajusta con ?limit=). Todavía no hay un límite estricto por minuto, pero trátalo como un endpoint de lectura para tus propias integraciones, no como una API pública para terceros.
Todavía no. Hoy la API pública es de solo lectura (documentos) más el webhook saliente. Las reglas, las conexiones y los equipos se gestionan desde la propia app.
No, la entrega es de un único intento por ahora. Usa la API para recuperar lo que se te haya podido escapar en lugar de depender solo del webhook.
Recalcula el HMAC-SHA256 del cuerpo en crudo de la petición con tu secreto de webhook y compáralo con la cabecera X-Findest-Signature. El secreto se muestra una sola vez, al crear el webhook.