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": {}
}| Campo | Tipo | Descrição |
|---|---|---|
| version | string | Versão do contrato, atualmente v1. |
| requestId | string | Identificador a indicar ao suporte NGolaBooking. |
| data | object | Objeto 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"
}]
}| Objeto | Campos | Notas |
|---|---|---|
| restaurant | id, name, currency, location, taxId | taxId pode ser nulo. |
| menu[] | id, name, items[] | Cada categoria contém os seus itens. |
| menu.items[] | id, name, description, price, available | O preço usa a moeda do restaurante. |
| tables[] | id, code, capacity, status | Use 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
}]
}| Campo | Descrição |
|---|---|
| startAt | Data e hora local da reserva, em ISO 8601. |
| status | Estado operacional, por exemplo CONFIRMED, SEATED ou COMPLETED. |
| customer | Cliente associado e contacto quando disponível. |
| table | Mesa atribuída ou null se não atribuída. |
| payments | Todos 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.