Ir al contenido

Primeros pasos con la API de Conciar ​

Conciar tiene dos API. Úsalas para crear tu propia app de clientes, el backend de una web o una integración sobre tu cuenta de Conciar.

APIPara qué sirveClaveURL base
Connect APILocales, la carta del restaurante y los pedidos para llevar, el inicio de sesión y la fidelización de clientes, el catálogo de la tienda online, el carrito, el pago y las suscripciones.Síhttps://api.conciar.com/connect/v1
API pública de reservasReservas de mesa: disponibilidad, reserva (con depósito o garantía con tarjeta), la reserva propia del cliente, eventos con entradas y tarjetas regalo.Nohttps://api.conciar.com/public/v1

La API pública de reservas no necesita clave. Te diriges a un restaurante por su guid. Si solo quieres reservas en una web, no tienes que desarrollar nada: inserta el widget de reservas.

1. Crea una clave API ​

  1. Inicia sesión en my.conciar.com como admin o manager.
  2. Abre Management → API Keys y haz clic en New API Key.
  3. Introduce un Key Name, por ejemplo "App de clientes", y haz clic en Create Key.
  4. Copia en ese momento las dos partes de la clave: la clave publicable (pk_…) y la clave secreta (cnct_…). Solo se muestran una vez.

La diferencia entre las dos partes, y cómo mantenerlas seguras, está en Claves API y autenticación.

2. Encuentra el token de tu canal de venta ​

Cada local o tienda por el que vendes es un canal de venta. Las llamadas a /store/… y /app/init necesitan el token del canal (cnct_ch_…) en la cabecera X-Sales-Channel. El canal decide la carta o el catálogo, los precios, la moneda, el idioma y los métodos de pago.

Encontrarás el token en dos sitios:

  • en my.conciar.com, en Settings → Sales channels, como Channel token;
  • en la respuesta de GET /locations, como sales_channel_token.

3. Haz tu primera petición ​

Lista tus locales con la clave publicable:

bash
curl "https://api.conciar.com/connect/v1/locations" \
  -H "Accept: application/json" \
  -H "X-Api-Key: pk_your_publishable_key"

Respuesta (abreviada):

json
{
  "data": {
    "timezone": "Europe/Amsterdam",
    "locations": [
      {
        "sales_channel_token": "cnct_ch_your_channel_token",
        "name": "Bistro Example",
        "is_test": false,
        "address": "Example Street 1, 1000 AA Example City",
        "is_open_now": true
      }
    ]
  }
}

GET /locations lista tus canales de venta activos. Los canales de plataformas de reparto, como Uber Eats, no aparecen en la lista.

Cabeceras de la petición ​

CabeceraCuándoValor
X-Api-KeyCada llamada a ConnectTu clave publicable (pk_…) o secreta (cnct_…).
X-Sales-ChannelCada llamada a /store/… y /app/initEl token del canal (cnct_ch_…).
Accept-LanguageOpcionalPor ejemplo nl o zh-TW. Por defecto, el idioma del canal.
X-CurrencyOpcionalPor defecto, la moneda del canal. Un valor desconocido se ignora.
AuthorizationLlamadas para un cliente con sesión iniciadaBearer <access_token> de /auth/otp/verify.
Idempotency-KeyOpcional, al hacer un pedido de restauranteDe 1 a 64 caracteres. Un reintento con la misma clave devuelve el primer pedido.
X-Order-TokenUn cliente que consulta, paga o cancela un pedido de restauranteEl order_token que recibiste al hacerlo.

Clientes con sesión iniciada ​

Los clientes inician sesión con un código de 6 dígitos enviado por email:

  1. POST /auth/otp/request envía el código.
  2. POST /auth/otp/verify lo comprueba y devuelve un access_token. El token es válido durante 6 meses.

Envía el token como Authorization: Bearer … junto a la clave API. Los endpoints /store/customer/… lo requieren. En los pedidos de restaurante es opcional: con él, el pedido pertenece al cliente y suma sellos y puntos de fidelización.

Sin código: el widget de reservas ​

Para aceptar reservas de mesa en tu web, pega esto donde deba aparecer el formulario de reservas. Sustituye el guid por el de tu restaurante; encontrarás el fragmento completo en my.conciar.com, en Settings → Restaurant.

html
<div class="conciar-widget"
     data-widget-type="restaurant-reservation"
     data-guid="YOUR_RESTAURANT_GUID"
     data-lang="auto"></div>
<script src="https://widget.conciar.com/conciar-widget.iife.js" defer></script>

data-lang acepta un código de idioma como en o nl, o auto para el idioma del navegador del visitante.

Siguientes pasos ​