Saltar al contenido
CorekChat Ayuda Guías para clientes

Ayuda · Integraciones y API

Cómo crear una llave de la API y hacer la primera consulta

La API deja que otro sistema lea tus pedidos, tu menú, tus reservas y el estado de tus mesas. Para entrar, ese sistema usa una llave: una clave larga que creas tú, con los permisos justos, y que puedes revocar cuando quieras. La primera parte de esta guía es para quien administra la cuenta; la segunda, para quien programa la conexión.

#Paso 1: abre la pestaña API

Abre Configuraciones y elige API, en el grupo Desarrolladores. Ahí ves las llaves que ya existen, con sus permisos y la última vez que se usó cada una.

Captura del sistema, sólo para clientesConfiguraciones → API. Cada llave muestra sus permisos y cuándo se usó por última vezVerla con tu cuenta

#Paso 2: crea una llave por sistema

Pulsa Nueva llave, ponle un nombre que diga quién la va a usar («Contabilidad», «Tienda en línea») y marca sólo los permisos que ese sistema necesita:

Permiso Qué puede leer
Leer pedidos Pedidos con sus productos, estado y total
Leer productos y menú Productos, precios, disponibilidad y categorías
Leer reservas Reservas con su fecha, cantidad de personas y estado
Leer mesas y estado del salón Mesas, en qué piso y zona están, y si están libres u ocupadas (necesita el módulo POS)

Conviene una llave por sistema: si un día hay que revocar una, las demás integraciones siguen funcionando.

Captura del sistema, sólo para clientesNueva llave: el nombre y sólo los permisos que ese sistema necesitaVerla con tu cuenta

#Paso 3: copia la llave en ese momento

Al pulsar Crear llave, la llave completa aparece una sola vez. Cópiala y pásasela a quien programa la conexión por un canal seguro. Nosotros guardamos sólo una huella de la llave, así que ni el equipo de CorekChat puede volver a mostrártela: si se pierde, se revoca y se crea otra.

Captura del sistema, sólo para clientesLa llave completa se ve una única vez. Después, sólo su comienzoVerla con tu cuenta

Trátala como una contraseña: no la pegues en un chat grupal, en un correo reenviado ni en un repositorio de código.

#Revocar una llave

Revocar la deja inservible al instante: la próxima consulta con esa llave recibe un rechazo. Hazlo cuando cambies de proveedor, cuando alguien que la conocía deje el equipo o si sospechas que se filtró. Puedes tener hasta diez llaves activas a la vez.

#Para quien programa: cómo se consulta

Todas las consultas van a esta dirección base, con la llave en el encabezado Authorization:

https://corekchat.com/api/v1
Authorization: Bearer ck_live_...

Un primer pedido de prueba, que trae los cinco pedidos más recientes:

curl -H "Authorization: Bearer ck_live_TU_LLAVE" \
  "https://corekchat.com/api/v1/orders?limit=5"

#Lo que se puede consultar

Consulta Permiso Filtros
GET /orders Leer pedidos status, from, to (fecha de creación), limit, cursor
GET /orders/{id} Leer pedidos —
GET /products Leer productos y menú available=true o false, limit, cursor
GET /products/{id} Leer productos y menú —
GET /reservations Leer reservas status, from, to (fecha de la reserva), limit, cursor
GET /reservations/{id} Leer reservas —
GET /tables Leer mesas branch_id, active=true o false, limit, cursor
GET /tables/{id} Leer mesas —

Las fechas van en formato ISO 8601 (2026-09-27T00:00:00-05:00). Los importes van en pesos colombianos y sin decimales.

#Cómo vienen las respuestas

Una lista trae los resultados en data y dice si hay más:

{
  "data": [
    {
      "id": "8f1c…",
      "status": "delivered",
      "channel": "whatsapp",
      "branch_id": "3a2e…",
      "customer_name": "Julián Pardo",
      "total": 42000,
      "currency": "COP",
      "items": [
        {
          "product_id": "b71d…",
          "name": "Hamburguesa La Esquina",
          "quantity": 2,
          "subtotal": 38000
        }
      ],
      "cancellation_reason": null,
      "created_at": "2026-09-27T13:05:12.000Z",
      "updated_at": "2026-09-27T13:40:02.000Z"
    }
  ],
  "has_more": true,
  "next_cursor": "8f1c…"
}

Para la página siguiente, repite la consulta con cursor= igual al next_cursor que llegó. Se pagina por cursor y no por número de página a propósito: si entran pedidos mientras recorres la lista, no se repiten ni se saltan filas. Cada página trae 25 resultados por defecto y 100 como máximo (limit).

Una mesa trae además su status —available (libre), occupied (ocupada) o bill_requested (pidió la cuenta)— y, si está abierta, la session con la hora en que se abrió.

#Errores

Los errores tienen siempre la misma forma, con un code estable contra el que se puede programar:

{ "error": { "code": "insufficient_scope", "message": "…" } }
Estado code Qué pasó
401 unauthorized Falta la llave, está mal escrita, venció o fue revocada
402 — El plan ya no incluye la API, o falta el módulo POS para las mesas (module_not_purchased)
403 insufficient_scope La llave no tiene el permiso para esa consulta
404 not_found No existe ese pedido, producto, reserva o mesa en tu cuenta
429 rate_limited Pasaste el límite de consultas; espera lo que indica el encabezado Retry-After

#Límite de consultas

Cada llave puede hacer hasta 120 consultas por minuto. Las respuestas traen los encabezados x-ratelimit-limit, x-ratelimit-remaining y x-ratelimit-reset para que el sistema sepa cuánto le queda. Si necesitas enterarte de cada pedido al instante, no consultes la API cada pocos segundos: usa los webhooks, que avisan solos.