Menú: API reference

Cloud API · Salas y mesas

Sincronizar salas y mesas

Crea o actualiza una o varias salas de un local, con sus mesas.

POST/rooms
Ver la guía

Cabeceras

Nombre Valor
Content-Type application/json
Authorization Bearer <clientSecret>
venue-api-key El identificador del restaurante

Cuerpo

Puedes enviar un único objeto de sala o una lista de salas.

Campo Tipo Obligatorio Descripción
integrationRoomId string Sí Identificador de esta sala en tu TPV.
name string Sí Nombre de la sala que se muestra en honei.
sortOrder number No Orden de visualización. Por defecto, 1.
tables array Sí Al menos una mesa. Ver abajo.
tables[].name string Sí Nombre de la mesa que se muestra en honei.
tables[].integrationTableId string Sí Identificador de esta mesa en tu TPV. Después se reutiliza como tableId.
JSON
[
    {
        "integrationRoomId": "room-1",
        "name": "Terrace",
        "sortOrder": 1,
        "tables": [
            { "name": "T1", "integrationTableId": "table-1" },
            { "name": "T2", "integrationTableId": "table-2" }
        ]
    },
    {
        "integrationRoomId": "room-2",
        "name": "Main hall",
        "tables": [
            { "name": "T3", "integrationTableId": "table-3" }
        ]
    }
]

Cómo funciona la sincronización

  • Las salas se identifican por integrationRoomId. Si ya tenemos una sala con ese identificador en tu local, la actualizamos. Si no, la creamos.
  • Dentro de una sala, cada mesa se identifica por integrationTableId. Una mesa existente se actualiza y un integrationTableId nuevo se añade.
  • Las mesas que no incluyas en una llamada no se tocan: este endpoint nunca borra mesas, así que puedes reenviar solo lo que ha cambiado o toda tu lista de salas y mesas en cada sincronización.

Respuesta

JSON
{
    "status": 200,
    "message": "Ok"
}
JSON
{
    "error": true,
    "message": "No integrationRoomId provided",
    "internalCode": "BAD_REQUEST",
    "code": 4000,
    "category": "request"
}

Tiene la misma forma para cualquier campo que falte o no sea válido (name, tables, tables[].name, tables[].integrationTableId). message siempre indica el campo concreto que ha fallado.

JSON
{
    "error": true,
    "message": "Not authorized",
    "internalCode": "NOT_AUTHORIZED",
    "code": 4007,
    "category": "auth"
}

Se devuelve si faltan las cabeceras Authorization o venue-api-key o no son válidas, o si el businessId de una sala no coincide con tu venue-api-key.