API · REFERÊNCIA

Objetos JSON e campos da API

Todos os dados recebidos pela integração são normalizados neste formato. IDs são cadeias opacas: armazene-os sem tentar interpretar o seu conteúdo. Montantes são números e usam sempre a moeda indicada no próprio objeto.

Envelope de resposta

{
  "version": "v1",
  "requestId": "req_01JZ8M7PA8Q0",
  "data": {}
}
CampoTipoDescrição
versionstringVersão do contrato, atualmente v1.
requestIdstringIdentificador a indicar ao suporte NGolaBooking.
dataobjectObjeto ou lista solicitada pelo endpoint.

Catálogo

GET /catalog devolve restaurante, menu e mesas numa única resposta.

{
  "restaurant": {
    "id": "rst_01", "name": "Restaurante Exemplo",
    "currency": "AOA", "location": "Mutamba, Luanda", "taxId": null
  },
  "menu": [{
    "id": "cat_01", "name": "Entradas",
    "items": [{
      "id": "item_01", "name": "Camarão grelhado",
      "description": "Camarão com molho da casa",
      "price": 8500, "available": true
    }]
  }],
  "tables": [{
    "id": "tbl_01", "code": "T12", "capacity": 4, "status": "AVAILABLE"
  }]
}
ObjetoCamposNotas
restaurantid, name, currency, location, taxIdtaxId pode ser nulo.
menu[]id, name, items[]Cada categoria contém os seus itens.
menu.items[]id, name, description, price, availableO preço usa a moeda do restaurante.
tables[]id, code, capacity, statusUse o ID para identificar a mesa no POS.

Reserva

GET /bookings devolve { "bookings": [...] }.

{
  "id": "bkg_01", "code": "RES-3798",
  "startAt": "2026-09-26T19:00:00", "guestCount": 4, "status": "CONFIRMED",
  "customer": {
    "id": "usr_01", "name": "Ana Manuel",
    "email": "ana@example.com", "phone": "+244900000000"
  },
  "table": { "id": "tbl_01", "code": "T12" },
  "payments": [{
    "id": "pay_01", "reference": "PAY-1201", "status": "COMPLETED",
    "method": "MULTICAIXA_EXPRESS", "gross": 5000, "currency": "AOA",
    "platformFee": 150, "processorFee": 50, "net": 4800
  }]
}
CampoDescrição
startAtData e hora local da reserva, em ISO 8601.
statusEstado operacional, por exemplo CONFIRMED, SEATED ou COMPLETED.
customerCliente associado e contacto quando disponível.
tableMesa atribuída ou null se não atribuída.
paymentsTodos os pagamentos ligados à reserva.

Pedido

GET /orders devolve { "orders": [...] }.

{
  "id": "ord_01", "code": "ORD-6821", "type": "TAKEAWAY", "status": "READY",
  "customer": { "id": "usr_01", "name": "Ana Manuel", "email": "ana@example.com", "phone": "+244900000000" },
  "pickupAt": "2026-09-26T20:30:00.000Z", "total": 12400, "currency": "AOA",
  "items": [{ "id": "ord_item_01", "sku": "item_01", "name": "Camarão grelhado", "quantity": 2, "unitPrice": 6200 }],
  "payments": [{ "id": "pay_02", "reference": "PAY-1202", "status": "COMPLETED", "method": "PAYPAY", "amount": 12400, "currency": "AOA" }]
}

Pagamento

GET /payments devolve { "payments": [...] } e inclui pagamentos de reservas, pedidos e bilhetes de eventos.

{
  "id": "pay_01", "reference": "PAY-1201", "type": "BOOKING_DEPOSIT",
  "method": "MULTICAIXA_EXPRESS", "status": "COMPLETED",
  "paidAt": "2026-09-26T15:04:20.000Z",
  "gross": 5000, "platformFee": 150, "processorFee": 50, "net": 4800, "currency": "AOA"
}

gross é o valor pago pelo cliente; platformFee é a comissão NGolaBooking; processorFee é a taxa do método de pagamento; net é o valor previsto para desembolso ao restaurante.