Webhooks v1

Esta seção descreve o funcionamento dos webhooks disponíveis para envio de notificações

É possível configurar três tipos de webhooks para receber notificações de eventos de pedido:

  • A cada novo pedido disponível para integração

  • A cada pedido cancelado pela Goomer

  • A cada atualização de status do pedido feita pela Goomer

Novo pedido

Um pedido é enviado via webhook quando o restaurante aceita o pedido através do painel de pedidos de nossa plataforma ou assim que um cliente envia um pedido, quando a integração automática está habilitada.

Abaixo é exibido um exemplo do objeto OrderEvent enviado no formato JSON para o endpoint definido pela automação.

{
    "storeId": "G-1234",
    "orderId": 1962901,
    "detailsUrl": "https://api-integration.goomer.app/orders/v1/details/1962901",
    "type": "create",
    "time": 1602127199
}

Pedido cancelado

Um pedido é cancelado pela Goomer quando o restaurante recusa o pedido após aceitá-lo ou quando a automação não aceita e nem recusa o pedido dentro 90 segundos a partir do momento em que ele se tornou disponível.

Pedidos recusados pela automação não disparam webhooks

Abaixo é exibido um exemplo do objeto OrderEvent enviado no formato JSON para o endpoint definido pela automação.

{
    "storeId": "G-1234",
    "orderId": 1962901,
    "externalId": "mMt8pydbbr",
    "detailsUrl": "https://api-integration.goomer.app/orders/v1/details/1962901",
    "type": "cancel",
    "time": 1602127199    
}

Pedido atualizado

Um pedido é atualizado pela Goomer quando o restaurante altera seu status pelo painel de pedidos em nossa plataforma.

Pedidos atualizados pela automação não disparam webhooks

Abaixo é exibido exemplos dos objetos OrderEvent e MenuEvent enviados no formato JSON para o endpoint definido pela automação.

{
    "storeId": "G-1234",
    "orderId": 1962901,
    "externalId": "wzmePPargk",
    "status": "delivery",
    "detailsUrl": "https://api-integration.goomer.app/orders/v1/details/1962901",
    "type": "update",
    "time": 1602127199
}

Cardápio atualizado

O cardápio é atualizado toda vez que o restaurante publicar as alterações através do painel Goomer.

Abaixo é exibido um exemplo do objeto MenuEvent enviado no formato JSON para o endpoint definido pela automação.

{
    "storeId": "G-1234",
    "groupsUrl": "https://api-integration.goomer.app/menu/v1/groups",
    "productsUrl": "https://api-integration.goomer.app/menu/v1/products",
    "optionalsUrl": "https://api-integration.goomer.app/menu/v1/optionals",
    "time": 1602127199
}

Fechamento de conta solicitado

Uma solicitação de fechamento de conta ocorre sempre que o cliente, em uma conta aberta, solicita o fechamento de sua conta. Abaixo é exibido um exemplo do objeto BillRequestCloseEvent enviado no formato JSON para o endpoint definido pela automação.

{
    "storeId": `G-${phpStoreId}`,
    "operation": "tab", 
    "table": "3",
    "tab":"1",
    "time": 1602127199,
}

Cadastro de webhooks

As rotas descritas abaixo devem ser utilizadas pela automação para cadastrar os webhooks de uma loja.

Os parâmetros que não forem enviados serão considerados como nulos, e seus respectivos webhooks serão desativados.

O cadastro de webhook é realizado para cada loja individualmente.

/webhook/v1/setup

POST https://api-integration.goomer.app/webhook/v1/setup

content-type: application/json

Headers

Name
Type
Description

x-api-key

string

Token de autenticação

Request Body

Name
Type
Description

menuUpdated

string

webhook para chamar quando o o cardápio da loja é publicado

orderUpdated

string

webhook para chamar quando o status de um pedido é atualizado

orderCanceled

string

webhook para chamar quando um pedido é cancelado pela Goomer

orderReceived

string

webhook para chamar quando um novo pedido está disponível

billClosingRequested

string

webhook para chamar quando houver solicitação do fechamento de conta

{
    "orderUpdated": "https://api.softwahouse.com/pedido/atualizado",
    "orderCanceled": "https://api.softwahouse.com/pedido/cancelado",
    "orderReceived": "https://api.softwahouse.com/pedido/recebido",
    "menuUpdated": "https://api.softwahouse.com/cardapio/atualizado",
    "billClosingRequested": "https://api.softwahouse.com/contas/fechamentoSolicitado"
}

/webhook/v1/query

GET https://api-integration.goomer.app/webhook/v1/query

Headers

Name
Type
Description

x-api-key

string

Token de autenticação

{
    "orderUpdated": "https://suaapi.com/pedido/atualizado",
    "orderCanceled": "https://suaapi.com/pedido/cancelado",
    "orderReceived": "https://suaapi.com/pedido/recebido",
    "menuUpdated": "https://suaapi.com/cardapio/atualizado",
    "billClosingRequested": "https://suaapi.com/contas/fechamentoSolicitado"
}

Modelos

OrderEvent

Campo

Tipo

Descrição

storeId

string

id da loja

orderId

int

id do pedido

externalId

string

id externo do pedido definido pela automação

status

string

status atual do pedido: pending, accepted, preparing, delivering, finished, canceled

(veja a tabela de status de pedido)

detailsUrl

string

url para consulta de detalhes do pedido

type

string

Tipo do evento: create, cancel, update

(veja a tabela de tipos de evento)

time

int

Data e hora que o evento ocorreu no formato timestamp em segundos

storeId

string

id da loja

groupsUrl

string

url para consulta dos grupos

productsUrl

string

url para consulta dos produtos

optionalsUrl

string

url para consulta dos grupos de opcionais

time

int

Data e hora que o evento ocorreu no formato timestamp em segundos

BillRequestCloseEvent

Campo
TIpo
Descrição

storeId

string

id da loja

operation

string

O nome da operação(Mesa ou Comanda): table ou tab

identifier

string

Número da Mesa ou Comanda

type

string

tipo do evento: close veja a tabela de status de pedido)

time

int

Data e hora que o evento ocorreu no formato timestamp em segundos

Tabelas

Tipos de evento

Tipo

Descrição

create

Novo pedido recebido

cancel

Pedido cancelado pela Goomer

update

Pedido atualizado pela Goomer

close

Fechamento de conta solicitado pelo cliente final na Goomer

Status de pedido

Status

Descrição

pending

Pedido pendente. É o primeiro status do pedido

accepted

Pedido aceito. Quando o pedido é aceito pela integração ele é movido para este status automaticamente

preparing

Pedido começou a ser preparado

delivering

Pedido saiu para entrega

finished

Pedido foi entregue e concluído com sucesso

canceled

Pedido foi cancelado

Last updated

Was this helpful?