Ir al contenido
TrompTech
LayerSitios webA medidaProductosNuestro trabajo
ES
NederlandsEnglishFrançaisDeutschEspañol
Iniciar sesiónReserva una llamada
LayerSitios webA medidaProductosNuestro trabajoRecursos y prácticaContacto
Reserva una llamadaIniciar sesión
NLENFRDEESEspañol
Home / Desarrolladores

TROMPTECH LAYER

Desarrolladores

Conecta tu propio software y apps de IA a Layer. Leer es directo, dentro de los permisos que tú das. Un cambio siempre es primero una propuesta que aprueba una persona.

Última actualización: 2 de octubre de 2026

Hay tres formas de trabajar con Layer desde fuera:

  • Conectar una app de IA mediante MCP, como Claude o ChatGPT. Inicias sesión en Layer y eliges qué puede hacer la app.
  • La API REST para tu propio software, con una clave que creas tú.
  • Webhooks: Layer avisa a tu dirección de que ha pasado algo, como una factura pagada.

1. Así sigue siendo seguro

  • Nunca más que quien la creó. Una clave o app conectada nunca puede hacer más que la persona que la creó. Si cambia su rol, la clave cambia con él. Si alguien deja el equipo, su clave deja de funcionar.
  • Escribir siempre es una propuesta. Nada de fuera cambia nada por sí solo en tu espacio de trabajo. Cada cambio llega a Aprobaciones y solo ocurre cuando alguien con ese permiso lo aprueba.
  • El texto de fuera sigue marcado. Lo que entra por la API o MCP cuenta como texto de fuera. Una propuesta con ese texto nunca se ejecuta sola, aunque dejes que otras propuestas se ejecuten automáticamente.
  • Visible y revocable. En Ajustes, Dispositivos ves cada clave y app, cuándo se usó por última vez y qué hizo. Revocarla tiene efecto inmediato.
  • Un freno. Cada clave y app puede hacer 120 solicitudes por minuto. Por encima recibes un 429 con un Retry-After.

2. Crear una clave

En Layer: Ajustes, Desarrolladores, Clave de API. Ponle un nombre a la clave, elige cuánto tiempo es válida (30 días, 90 días o un año) y marca lo que puede hacer. Ves la clave una sola vez. Solo guardamos un hash, así que si la pierdes, no se recupera: revócala y crea una nueva.

Las claves pertenecen a tu propio espacio de trabajo, no a la demo. La dirección exacta de tu API y servidor MCP está en la misma página; en los ejemplos de abajo aparece https://jouw-werkplek.example.

PermisoQué da
relaties.lezenClientes, leads, proveedores y sus personas de contacto.
offertes.lezenPresupuestos con sus líneas y estado.
facturen.lezenFacturas con importes, estado y fecha de pago.
leads.lezenLeads con fase, valor y siguiente acción. Con Crear propuestas también crear y actualizar leads.
communicatie.lezenLa cronología de llamadas, correos, conversaciones y notas por contacto. Con Crear propuestas también registrar.
mail.lezenBuscar y leer en los buzones que ves en el propio Layer, con, por conversación, quién escribió por última vez y si ya hay respuesta. Solo lectura, sin adjuntos. Lo que lee la app va a la IA que conectas.
agenda.lezenTus propias citas. Con Crear propuestas también programar una cita, sin invitación.
facturen.conceptCrear una factura en borrador (de horas abiertas o con líneas propias) o una factura abierta con un enlace para el cliente, modificarla y ver el PDF. Enviar es siempre una propuesta en Aprobaciones; el enlace lo compartes tú.
offertes.conceptUn nuevo presupuesto en borrador. Enviarlo lo haces siempre tú en Layer.
bedrijf.vragenBusca en actas de conversaciones, la base de conocimiento, clientes, tareas y registros los fragmentos que encajan con una pregunta, con la fuente.
projecten.lezenProyectos con estado, fecha límite y tareas.
taken.lezenTareas con estado, fecha límite y prioridad.
uren.lezenHoras registradas. Importes solo si tu rol puede ver dinero.
producten.lezenProductos y servicios con precio y stock.
tickets.lezenTickets de soporte con estado y prioridad.
content.lezenPosts del calendario de contenido con canal, fecha y estado.
series.lezenFormatos, series y episodios con su paso y valoración.
radar.lezenIdeas con puntuación y señales del radar: picos, crecimiento de canales, búsquedas.
social.lezenSeguidores y cifras fijas por cuenta social propia y por día.
analytics.lezenVisitantes y tráfico de búsqueda de Google Analytics y Search Console.
radar.sturenActivar o desactivar el descubrimiento, dirigir términos de búsqueda y canales e iniciar el analista de tendencias. Solo para quien gestiona el radar en el espacio de trabajo.
radar.feedbackValorar ideas del radar como buenas o no. Eso solo orienta dónde busca el radar y qué crea el analista de tendencias; no sale nada fuera.
content.voorstellenProponer un post como idea en el calendario de contenido. Junto con Crear propuestas; espera en Aprobaciones.
verslagen.insturenPoner actas de TrompTech Notulen en Reuniones. Qué se hace con ellas (tareas, contacto, correo) lo eliges tú después.
verslagen.verwerkenDe un acta que enviaste tú, crear tareas, un contacto y un borrador de correo, como el botón Procesar en Reuniones. Solo lo que tu rol permite; un correo nunca se envía.
opnames.insturenPoner inspecciones, entregas y levantamientos de daños de TrompTech Opname en el PC en Levantamientos, con las fotos y el informe.
opnames.lezenTus levantamientos con sus puntos y fotos, para terminar en el PC un levantamiento que empezó en el teléfono.
uren.schrijvenPoner como borrador en tu propio parte semanal lo que TrompTech Uren vio en tu PC y tú revisaste, y leer tus propias horas para no registrar nada dos veces. Enviarlo lo haces tú; los títulos de ventana no se incluyen.
gids.lezenQué páginas y artículos de ayuda puedes abrir en este espacio de trabajo, para TrompTech Gids en tu PC: responde preguntas sobre Layer y te lleva al sitio adecuado. Sin datos de clientes ni compañeros.
content.insturenPoner carruseles de TrompTech Slides y vídeos y shorts de TrompTech Studio como post en el calendario de contenido, con las imágenes o el vídeo. Esperan tu aprobación; publicar lo haces tú.
dictaat.insturenPoner lo que dictas en TrompTech Voice como tarea, como nota interna de un cliente o como borrador de correo en la Bandeja de salida. Solo lo que tu rol permite; un correo nunca se envía.
documenten.delenCompartir propuestas e informes de TrompTech Documenten como página web con un cliente, ver cuándo los abre y poner el PDF junto al cliente y el proyecto.
kennis.insturenPoner vídeos de instrucciones con pasos de TrompTech Uitleg en la base de conocimiento.
afletteren.transacties.schrijvenPoner los ingresos de una cuenta en la conciliación, para una cuenta privada que también es de empresa. Con este permiso no se puede leer.
huishouden.lezenTu libro de cuentas del hogar (ingresos, gastos fijos, presupuestos y deudas), tu lista de la compra y tus tareas. Solo lectura, sin consejos.
huishouden.schrijvenAñadir, marcar y quitar productos de la lista de la compra, y añadir y marcar tareas del hogar: directamente, con Deshacer. Una deuda o presupuesto siempre es una propuesta en Aprobaciones. También lee tu hogar.
aanbiedingen.lezenLas ofertas de supermercado de esta semana y la siguiente desde tu app de ofertas, y comparar precios por tienda para tu compra. Solo lectura.
voorstellen.makenProponer cambios. Esperan en Aprobaciones hasta que alguien los aprueba; nada ocurre solo.

Un permiso solo funciona si el módulo está en tu suscripción y tu rol lo permite. Los importes, como una tarifa por hora, solo los ves si tu rol puede ver dinero.

3. La API REST

Todo está bajo /api/v1. Envía la clave como Authorization: Bearer. GET /api/v1 muestra qué recursos puede leer tu clave. La descripción completa está en /api/v1/openapi.json (OpenAPI 3.1), que también se puede obtener sin clave.

Leer y paginar

curl "https://jouw-werkplek.example/api/v1/taken?status=open&per_pagina=20" \
  -H "Authorization: Bearer $LAYER_SLEUTEL"

Cada lista llega en páginas, lo más reciente primero. Con per_pagina (de 1 a 100, por defecto 50) y pagina pasas de página; volgende da la dirección de la página siguiente, o null. Filtra con status, o con sinds (una fecha u hora en ISO 8601) para obtener solo lo que ha cambiado desde entonces.

{
  "data": [ { "id": "...", "titel": "...", "status": "open", "deadline": "2026-10-03T07:00:00.000Z" } ],
  "pagina": 1,
  "per_pagina": 20,
  "totaal": 1,
  "volgende": null
}
RecursoPermisoPropuestas
/api/v1/relaties
Clientes, leads y (con el módulo Proveedores) proveedores.
relaties.lezennuevo (POST): soort, naam, bedrijf, email, telefoon, adres, postcode, plaats, kvk, btw, branche, rechtsvorm, notities, bron; modificar (PATCH): telefoon, branche, rechtsvorm, plaats, website, bron
/api/v1/contactpersonen
Personas de contacto de un cliente, lead o proveedor.
relaties.lezennuevo (POST): naam, bedrijf, email, telefoon, notities, bron
/api/v1/offertes
Presupuestos con líneas, importe y estado.
offertes.lezenmodificar (PATCH): status
/api/v1/facturen
Facturas con líneas, importe, estado y fecha de pago.
facturen.lezenmodificar (PATCH): status, betaald_op
/api/v1/projecten
Proyectos con estado, fecha límite, tareas y progreso.
projecten.lezenmodificar (PATCH): status, deadline
/api/v1/taken
Tareas con estado, fecha límite y prioridad.
taken.lezennuevo (POST): titel, omschrijving, deadline, prioriteit, klant_id, project_id; modificar (PATCH): status, deadline, prioriteit
/api/v1/uren
Horas registradas: las tuyas, o las de todo el equipo si tu rol puede verlas. Tarifa y factura solo si tu rol puede verlas.
uren.lezensolo lectura
/api/v1/producten
Productos y servicios con precio y stock. El precio de compra solo si tu rol puede ver dinero.
producten.lezensolo lectura
/api/v1/tickets
Tickets de soporte con estado, prioridad y categoría.
tickets.lezenmodificar (PATCH): status
/api/v1/content
Posts del calendario de contenido: fecha, canal, tema, estado y la serie a la que pertenecen.
content.lezensolo lectura
/api/v1/formats
Formatos: la estructura fija de un episodio, por plataforma la forma y la duración, y la checklist.
series.lezensolo lectura
/api/v1/series
Series: un formato con cadencia, cuenta y estado.
series.lezensolo lectura
/api/v1/afleveringen
Episodios de todas las series, con fecha, paso, guion y valoración.
series.lezensolo lectura
/api/v1/radar-ideeen
Ideas con puntuación del radar de contenido. La puntuación es una franja con componentes, nunca una probabilidad de hacerse viral.
radar.lezensolo lectura
/api/v1/radar-serievoorstellen
Sugerencias de series del analista de tendencias: un programa recurrente sobre un tema que vuelve en varios picos. Crear una serie lo haces en el propio Layer.
radar.lezensolo lectura
/api/v1/radar-signalen
Señales de los últimos 90 días: picos, picos tempranos, crecimiento de canales, búsquedas y noticias, con la explicación de cómo se calculan.
radar.lezensolo lectura
/api/v1/social-metingen
Por cuenta social propia y por día, los seguidores y las cifras fijas que informa el canal (últimos 120 días). Una cifra que falta es null, nunca cero.
social.lezensolo lectura

Proponer un cambio

Con el permiso voorstellen.maken propones un registro nuevo o un cambio. La respuesta es un 202: la propuesta está lista, todavía no ha cambiado nada. Indica en waarom el motivo, y quien revisa lo verá junto a ella.

curl -X POST "https://jouw-werkplek.example/api/v1/taken" \
  -H "Authorization: Bearer $LAYER_SLEUTEL" \
  -H "Content-Type: application/json" \
  -d '{"titel": "Llamar por el presupuesto", "deadline": "2026-10-03", "waarom": "Acordado en la reunión"}'
HTTP/1.1 202 Accepted

{
  "voorstel": { "id": "...", "actie": "taak.nieuw", "titel": "...", "status": "wacht", "link": "https://jouw-werkplek.example/app/ai/goedkeuringen?id=..." },
  "uitleg": "Dit is een voorstel. Er is nog niets veranderd: het wacht in Goedkeuringen tot iemand het goedkeurt."
}

Sigue el estado con GET /api/v1/voorstellen o GET /api/v1/voorstellen/{id}; solo ves las propuestas de tu propia clave. Si prefieres un webhook, suscríbete a voorstel.goedgekeurd. Otras acciones que conoce la IA de Layer las propones con POST /api/v1/voorstellen y {"actie": "...", "gegevens": { ... }}. Si una acción no es posible, o falta algo, recibes un 422 con el motivo. Eliminar no es posible a través de la API.

Errores

Un error siempre es JSON: {"fout": {"code": "...", "melding": "..."}}, con un mensaje en lenguaje claro.

CódigoSignificado
400La solicitud no es correcta, por ejemplo una fecha no válida o un campo que falta.
401Sin clave, o una clave caducada o revocada.
403A la clave le falta un permiso. La cabecera WWW-Authenticate indica qué permiso.
404Esta dirección o registro no existe, o no puedes verlo.
405Este método no es posible aquí. La cabecera Allow indica lo que sí se puede.
422La propuesta ha sido rechazada, con el motivo.
429Demasiadas solicitudes. Espera el número de segundos de Retry-After.

4. Webhooks

Quien gestiona las integraciones en Layer configura los webhooks en Ajustes, Desarrolladores, Webhooks: una dirección y los eventos de los que quieres recibir aviso. El secreto para comprobar la firma lo ves una sola vez.

EventoCuándo
factuur.verstuurdUna factura pasa a enviada.
factuur.betaaldUna factura pasa a pagada.
offerte.geaccepteerdUn cliente aceptó un presupuesto.
ticket.nieuwSe ha añadido un ticket de soporte, también desde un correo.
taak.afgerondAlguien completó una tarea.
voorstel.goedgekeurdSe ha aprobado una propuesta en Aprobaciones.

Un mensaje es deliberadamente escueto: qué ocurrió y dónde lo lees, sin importes ni datos de clientes. El contenido lo obtienes con una clave, mediante href. El id se mantiene igual si reenviamos un mensaje, así que con él reconoces un mensaje duplicado.

POST /jouw-webhook HTTP/1.1
Content-Type: application/json
TrompTech-Event: factuur.betaald
TrompTech-Delivery: ...
TrompTech-Signature: t=1790931600,v1=...

{
  "id": "evt_...",
  "type": "factuur.betaald",
  "aangemaakt": "2026-10-02T09:00:00.000Z",
  "data": { "object": "factuur", "id": "...", "nummer": "...", "href": "/api/v1/facturen/..." }
}

Comprobar la firma

La cabecera TrompTech-Signature contiene un tiempo t (en segundos) y v1: un HMAC-SHA256 con tu secreto sobre t, un punto y el body tal como llegó. Calcúlalo tú mismo, compara en tiempo constante y rechaza los mensajes de más de cinco minutos.

import { createHmac, timingSafeEqual } from "node:crypto";

// geheim: el secreto completo del webhook, con el prefijo whsec_.
// inhoud: el cuerpo tal como llegó, como texto (no lo leas antes como JSON).
export function handtekeningKlopt(geheim, kop, inhoud) {
  const delen = new Map((kop ?? "").split(",").map(d => d.trim().split("=", 2)));
  const t = Number(delen.get("t")), v1 = delen.get("v1") ?? "";
  // Más de cinco minutos: rechazar, para que nadie pueda reproducir un mensaje antiguo.
  if (!Number.isInteger(t) || Math.abs(Date.now() / 1000 - t) > 300 || !/^[0-9a-f]{64}$/.test(v1)) return false;
  const verwacht = createHmac("sha256", geheim).update(`${t}.${inhoud}`).digest();
  return timingSafeEqual(verwacht, Buffer.from(v1, "hex"));
}
import hashlib, hmac, re, time

def handtekening_klopt(geheim: str, kop: str, inhoud: bytes) -> bool:
    delen = dict(d.strip().split("=", 1) for d in (kop or "").split(",") if "=" in d)
    t, v1 = delen.get("t", ""), delen.get("v1", "")
    if not t.isdigit() or abs(time.time() - int(t)) > 300 or not re.fullmatch(r"[0-9a-f]{64}", v1):
        return False
    verwacht = hmac.new(geheim.encode(), t.encode() + b"." + inhoud, hashlib.sha256).hexdigest()
    return hmac.compare_digest(verwacht, v1)

Entrega y reintentos

  • Responde en 10 segundos con un 2xx. No seguimos redirecciones (3xx).
  • Si no funciona, lo volvemos a intentar tras 1 minuto, 5 minutos, 30 minutos, 2 horas, 6 horas y 24 horas. Después el mensaje se considera fallido; puedes reenviarlo desde Layer.
  • Si fallan diez mensajes seguidos, el webhook se desactiva. Lo vuelves a activar tú.
  • Solo https a una dirección pública con nombre, en el puerto estándar. Una dirección que apunta a una red interna no recibe nada; lo comprobamos de nuevo en cada entrega.

5. Conectar una app de IA mediante MCP

Layer es un servidor MCP en https://jouw-werkplek.example/api/mcp (Streamable HTTP). El inicio de sesión usa OAuth 2.1 con PKCE: la app te envía a Layer, inicias sesión como siempre (con tu segundo factor si lo tienes) y eliges en la pantalla de consentimiento qué puede hacer la app.

  • Claude: abre Configuración, Conectores, y añade un conector personalizado con la dirección de tu servidor MCP.
  • ChatGPT: abre Configuración, Aplicaciones y conectores. En Avanzado activa el modo de desarrollador y crea un conector con la dirección, con OAuth como inicio de sesión.
  • Otras apps: funciona cualquier cliente MCP con OAuth. Layer admite el registro dinámico (RFC 7591) y Client ID Metadata Documents, y publica sus datos en /.well-known/oauth-authorization-server y /.well-known/oauth-protected-resource.

Los nombres de los menús en Claude y ChatGPT a veces cambian según la versión. La app solo ve las herramientas que corresponden a los permisos elegidos. Leer es directo. Versiones del protocolo compatibles: 2026-07-28, 2025-11-25, 2025-06-18 y 2025-03-26.

Primero un plan. Un cambio suelto lo hace la app enseguida. Varios cambios a la vez, o algo que crea estructura como un proyecto con tareas, primero lo registra como plan: exactamente las acciones con sus datos. Ese plan lo ves en tu chat, y solo después de tu sí expreso Layer ejecuta exactamente esas acciones, una vez. Los cambios internos (un lead, contacto, nota, tarea, cita sin invitación, proyecto o documento) Layer los ejecuta entonces enseguida, si tu espacio de trabajo lo permite. Los vuelves a ver en Aprobaciones y ahí los deshaces. Todo lo que sale fuera o tiene que ver con dinero, como un correo, una invitación, enviar un presupuesto o una factura, sigue siendo siempre una propuesta que apruebas tú. Una sesión por MCP siempre cuenta como texto de fuera.

Una app conectada sigue funcionando hasta que la revocas en Ajustes, Dispositivos, o hasta que lleva 30 días sin usarse.

6. ¿Preguntas o has encontrado un problema?

Escribe a info@tromptech.nl. Si encuentras un problema de seguridad, comunícalo mejor de forma confidencial, como se describe en Informar de un problema de seguridad.

TrompTech

Software que trabaja en conjunto.
Contacto directo con quien lo construye.

Baliëndijk 324
4816 GV Breda, Países Bajos
+31 6 17720360info@tromptech.nl
NLENFRDEESEspañol

Para tu empresa

TrompTech LayerSitios web y tiendas onlineA medidaChatbot con IA (Breda)NL (en neerlandés)ProductosRecursos y práctica

TrompTech

Sobre TrompTechNuestro trabajoContactoDatos de la empresaReclamaciones y preguntasEstado e incidencias

Todo claro

Declaración de privacidadPolítica de cookiesCondiciones generalesSuscripciones y domiciliaciónTodos los documentos y acuerdos →

© 2026 TrompTech · Jeremy Tromp · Empresa individual (eenmanszaak)

KvK (Registro Mercantil) 96345381 · NIF-IVA NL005203127B38

Pregunta a TrompTech

Layer, sitios web y software a medida

TrompTech

Hola, ¿en qué puedo ayudarte? Haz una pregunta sobre Layer, sitios web o software a medida. O prueba abajo una coincidencia de producto.

Respuestas fijas, sin IA. Un mensaje llega a Jeremy · Privacidad

Cookies

Las cookies necesarias hacen que el sitio funcione. Si eliges también marketing, medimos con Google Analytics y Google Ads qué páginas y anuncios generan solicitudes, y recordamos durante 90 días por qué anuncio o enlace llegaste. Para ello se envían a Google datos sobre tu visita. La publicidad personalizada está desactivada. Más información

Las cookies necesarias hacen que el sitio funcione. Si eliges también marketing, medimos con Google Analytics y Ads qué anuncios generan solicitudes, y se envían a Google datos sobre tu visita. Más información