Pular para o conteúdo

Endpoints

O endpoint é uma URL de um Consumer, com a lista de tipos de evento que ela recebe e o secret que assina as entregas. Um Consumer pode ter vários: o estoque e o ERP da mesma empresa, cada um com os tipos que interessam a ele.

Janela do terminal
curl -X POST https://api.notyfacil.com.br/v1/endpoints \
-H "Authorization: Bearer $NOTYFACIL_KEY" \
-H "Content-Type: application/json" \
-d '{"consumer":"cliente-42","url":"https://padariadoze.com.br/webhooks","events":["pedido.pago"]}'
{ "id": "ep_01JB8Y1D6TQ4X8N2VK5HWZ3RFM", "url": "https://padariadoze.com.br/webhooks", "events": ["pedido.pago"], "secret": "whsec_…" }
  • Com events, o endpoint recebe só os tipos da lista, que precisam estar cadastrados.
  • Sem events, ou com a lista vazia, recebe todos os tipos, inclusive os que forem cadastrados depois.

A inscrição vale para os eventos publicados daqui para a frente. Para mandar a um endpoint novo um evento antigo, use o replay.

A URL é validada no cadastro e de novo a cada entrega, porque o DNS de um host pode mudar entre um momento e outro.

  • https obrigatório no ambiente de produção.
  • Portas 80 e 443.
  • Sem usuário e senha embutidos na URL. Se o receptor exige credencial, use os headers fixos.
  • O host não pode resolver para uma rede privada, de loopback ou de metadados de nuvem.
  • Até 2.048 caracteres.
  • Redirecionamento não é seguido: cadastre a URL final.

Headers que vão em toda entrega para o endpoint, para receptores que exigem uma credencial própria além da assinatura:

Janela do terminal
curl -X PUT https://api.notyfacil.com.br/v1/endpoints/ep_01JB8Y1D6TQ4X8N2VK5HWZ3RFM/headers \
-H "Authorization: Bearer $NOTYFACIL_KEY" \
-H "Content-Type: application/json" \
-d '{"headers":{"X-Api-Key":"chave-que-o-receptor-exige"}}'

A lista substitui a anterior inteira, e {} remove todos. São até 20 headers, com nome de até 128 caracteres e valor de até 1.024. Os headers que nós controlamos não podem ser definidos: Webhook-Id, Webhook-Timestamp, Webhook-Signature, Content-Type, Content-Length, Host, Connection, Transfer-Encoding e User-Agent.

PATCH troca a URL, os tipos ou a situação do endpoint. Campo ausente fica como está; em events, a lista substitui a inscrição inteira.

Janela do terminal
curl -X PATCH https://api.notyfacil.com.br/v1/endpoints/ep_01JB8Y1D6TQ4X8N2VK5HWZ3RFM \
-H "Authorization: Bearer $NOTYFACIL_KEY" \
-H "Content-Type: application/json" \
-d '{"events":["pedido.pago","pedido.cancelado"]}'

O campo status de um endpoint é um destes:

status O que quer dizer
Enabled Recebe entregas.
DisabledAutomatically Desligado depois de 20 falhas seguidas. Veja como reativar.
DisabledManually Desligado à mão, com PATCH e "status":"disabled".

Para desligar e religar, mande status no PATCH, com disabled ou enabled. A resposta usa os nomes da tabela.

Referência: endpoints