Desenvolvedores & APIs

Integre o seu Restaurante

Conecte o Dinr ao seu próprio ecossistema. Fornecemos duas formas simples de integração: incorporando a tela pública diretamente no seu site via Iframe, ou desenvolvendo fluxos sob medida utilizando a nossa API REST.

1. Incorporação via Iframe

A maneira mais simples de exibir a tela de reservas no seu website é utilizando um Iframe. Ao passar o parâmetro ?embed=true na URL de reserva do seu restaurante, cabeçalhos, rodapés e CTAs são automaticamente ocultados para garantir uma integração nativa e limpa.

Código HTML de Exemplo:
<iframe 
  src="https://dinr.pt/pt/sua-slug-restaurante?embed=true" 
  width="100%" 
  height="650px" 
  style="border:none; background:transparent;">
</iframe>

2. Autenticação da API

Para APIs customizadas, gere as credenciais no seu painel em Definições > Desenvolvedores. Todas as chamadas para os endpoints de API devem conter o header Authorization ou x-api-key.

Header de Autenticação:
Authorization: Bearer dinr_live_suachavedoapirestaurante

3. Consultar Disponibilidade

Consulte horários e turnos disponíveis de forma dinâmica. Útil para construir interfaces de reservas customizadas em chatbots, apps mobile ou sites sem usar o iframe.

GET/api/v1/availability?date=YYYY-MM-DD&party_size=2
Query Parameters:
  • date (obrigatório): data no formato YYYY-MM-DD.
  • party_size (opcional): quantidade de pessoas (padrão 2).
  • branch_id (opcional): ID de uma filial específica.
Resposta JSON de Exemplo (200 OK):
{
  "slots": [
    { "time": "19:00", "status": "available" },
    { "time": "19:30", "status": "available" },
    { "time": "20:00", "status": "waitlist" }
  ]
}

4. Listar Reservas

Recupere reservas criadas no restaurante filtrando por data ou status.

GET/api/v1/reservations?date=YYYY-MM-DD
Query Parameters:
  • date (opcional): data no formato YYYY-MM-DD.
  • status (opcional): ex: confirmed, pending, checked_in.
  • branch_id (opcional): ID de uma filial específica.
Resposta JSON de Exemplo (200 OK):
{
  "reservations": [
    {
      "id": "uuid-reserva",
      "guest_name": "António Silva",
      "guest_email": "antonio@email.com",
      "party_size": 4,
      "reservation_date": "2026-06-15",
      "reservation_time": "19:30:00",
      "status": "confirmed"
    }
  ]
}

5. Criar Reserva

Crie uma reserva de forma programática. As regras de tempo de refeição e duração são calculadas automaticamente com base nas definições do seu restaurante.

POST/api/v1/reservations
JSON Body (JSON):
{
  "guest_name": "Maria Cunha",
  "guest_email": "maria@email.com",
  "guest_phone": "+351912345678",
  "party_size": 2,
  "reservation_date": "2026-06-15",
  "reservation_time": "20:30:00",
  "branch_id": "uuid-da-filial",
  "special_request": "Mesa na janela"
}
Resposta JSON de Exemplo (201 Created):
{
  "reservation": {
    "id": "uuid-reserva-gerada",
    "guest_name": "Maria Cunha",
    "reservation_time": "20:30:00",
    "end_time": "22:00:00",
    "status": "confirmed"
  }
}