VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/Webhooks e eventos

Entregas do seller

Consulta o registro de entregas de um webhook do seller, envia um evento de teste e reenvia uma entrega.

Toda tentativa de envio fica registrada: o que foi mandado, o status que o seu servidor respondeu, quanto demorou e o erro, se houve. Este registro é a primeira ferramenta quando algo não chega. As rotas abaixo permitem ler o registro, provocar uma chamada de teste e repetir uma entrega que falhou.

Registro de entregas

Lista as tentativas de envio de um webhook, da mais recente para a mais antiga.

GET/api/v1/vendor/webhooks/{id}/deliveriesSeller

Registro de entregas

Exige o módulo webhooks e um usuário seller com permissão de configurações. Só funciona com webhooks do próprio seller.

Parâmetros de caminho

iduuidobrigatório
Id do webhook.

Parâmetros de consulta

pageintegerpadrão: 1
Página, a partir de 1.
per_pageintegerpadrão: 20
Itens por página, de 1 a 100. Valores acima de 100 voltam para 20.

Exemplo de requisição

bash
curl -X GET "$BASE_URL/api/v1/vendor/webhooks/$WEBHOOK_ID/deliveries?page=1&per_page=20" \
  -H "Authorization: Bearer $TOKEN"

Resposta

200Entregas
json
{
  "deliveries": [
    {
      "id": "5d7a1e93-4c2b-4f08-a6e1-9b3c0d8f2a47",
      "webhook_id": "0b9c2f6e-3a5d-4c0e-8a52-6a1f2f0d8c11",
      "event_type": "order.created",
      "payload": {
        "type": "order.created",
        "order_id": "3f73310d-bfdd-4713-a664-305c08eda58b",
        "total": 22500,
        "timestamp": "2026-10-11T20:15:03.482913Z"
      },
      "status_code": 503,
      "response_body": "Service Unavailable",
      "response_time_ms": 1204,
      "attempt": 1,
      "error": "HTTP 503",
      "delivered_at": "2026-10-11T20:15:04.700112Z"
    }
  ],
  "total": 1,
  "page": 1,
  "per_page": 20
}

Campos da resposta

iduuid
Id desta tentativa. É o deliveryId da rota de reenvio.
webhook_iduuid
Webhook ao qual a tentativa pertence.
event_typestring
Tipo do evento (por exemplo order.created), ou test no envio de teste.
payloadobject
O evento enviado (o conteúdo de payload do envelope, não o envelope inteiro).
status_codeinteger
Status HTTP respondido pelo seu servidor. null quando não houve resposta (falha de rede ou tempo esgotado).
response_bodystring
Primeiros 4096 bytes da resposta. Vazio quando não houve resposta.
response_time_msinteger
Tempo até a resposta (ou até a falha), em milissegundos.
attemptinteger
Número da tentativa: 1 a 3 no envio automático. Um reenvio manual soma 1 ao número da entrega original.
errorstring
Vazio quando deu certo. HTTP 503 para status 400 ou maior; o texto do erro de rede quando não houve resposta.
delivered_atstring
Momento da tentativa, RFC 3339.

Enviar evento de teste

Faz uma chamada real, assinada, para a URL do webhook com event: "test" e devolve o resultado na própria resposta. Funciona mesmo com o webhook pausado e não passa por novas tentativas: é uma única chamada. A tentativa fica gravada no registro.

POST/api/v1/vendor/webhooks/{id}/testSeller

Enviar evento de teste

Exige o módulo webhooks e um usuário seller com permissão de configurações. Só funciona com webhooks do próprio seller.

Parâmetros de caminho

iduuidobrigatório
Id do webhook.

O seu receptor recebe este corpo (o X-Venddor-Event vale test):

json
{
  "event": "test",
  "payload": {
    "test": true,
    "message": "This is a test webhook delivery from Venddor",
    "timestamp": "2026-10-11T20:20:00Z"
  },
  "timestamp": "2026-10-11T20:20:00Z",
  "webhook_id": "0b9c2f6e-3a5d-4c0e-8a52-6a1f2f0d8c11"
}

A mensagem do teste é sempre em inglês.

Exemplo de requisição

bash
curl -X POST "$BASE_URL/api/v1/vendor/webhooks/$WEBHOOK_ID/test" \
  -H "Authorization: Bearer $TOKEN"

Resposta

200Teste enviado (o servidor do cliente respondeu)
json
{
  "id": "c8e1f4a7-2d93-4b60-9a15-7e3b5d0f8c21",
  "webhook_id": "0b9c2f6e-3a5d-4c0e-8a52-6a1f2f0d8c11",
  "event_type": "test",
  "payload": { "test": true, "message": "This is a test webhook delivery from Venddor", "timestamp": "2026-10-11T20:20:00Z" },
  "status_code": 200,
  "response_body": "ok",
  "response_time_ms": 142,
  "attempt": 1,
  "error": "",
  "delivered_at": "2026-10-11T20:20:00.310551Z"
}

A rota devolve 200 mesmo quando o seu servidor falha. Leia status_code e error para saber o resultado do teste: com falha de rede, status_code vem null e error traz o motivo. Os campos são os mesmos do registro de entregas.

Reenviar uma entrega

Repete o envio de uma entrega do registro, de forma síncrona, e devolve a nova tentativa. O corpo reenviado tem o mesmo event e o mesmo payload, um timestamp novo, nova assinatura e o campo extra "retry": true. Use depois de consertar o seu receptor. Não há limite de reenvios manuais, e o reenvio não dispara tentativas automáticas adicionais.

POST/api/v1/vendor/webhooks/deliveries/{deliveryId}/retrySeller

Reenviar uma entrega

Exige o módulo webhooks e um usuário seller com permissão de configurações. Só funciona com webhooks do próprio seller.

Parâmetros de caminho

deliveryIduuidobrigatório
Id da entrega, o campo id do registro de entregas.

Exemplo de requisição

bash
curl -X POST "$BASE_URL/api/v1/vendor/webhooks/deliveries/$DELIVERY_ID/retry" \
  -H "Authorization: Bearer $TOKEN"

Resposta

200Nova tentativa registrada
json
{
  "id": "e2a9b7c4-6f10-4d85-8b3a-1c5d7e9f0a62",
  "webhook_id": "0b9c2f6e-3a5d-4c0e-8a52-6a1f2f0d8c11",
  "event_type": "order.created",
  "payload": { "type": "order.created", "order_id": "3f73310d-bfdd-4713-a664-305c08eda58b", "total": 22500 },
  "status_code": 200,
  "response_body": "ok",
  "response_time_ms": 142,
  "attempt": 2,
  "error": "",
  "delivered_at": "2026-10-11T20:20:00.310551Z"
}

Como no teste, a resposta é 200 mesmo se a nova tentativa falhar: confira status_code e error.

Erros

StatusQuandoCorpo
401Token ausente ou inválido{"error":"invalid or expired token"}
403Módulo webhooks desligado{"error":"module_disabled","module":"webhooks"}
403Usuário sem conta de seller{"error":"no vendor account associated with this user"}
404Teste: webhook inexistente ou de outro seller{"error":"webhook not found"}
404Reenvio: entrega inexistente ou de webhook de outro seller{"error":"delivery not found"}
404Registro de entregas: webhook inexistente ou de outro seller{"error":"webhook not found"}
500Falha interna{"error":"failed to test webhook","detail":"..."}
Como ler o registro

Procure o padrão. status_code 401 ou 403 em todas as tentativas costuma ser a verificação de assinatura do seu receptor falhando (veja Verificar a assinatura). null com error de tempo esgotado indica um receptor lento: responda antes de processar. attempt 2 e 3 mostram que a plataforma tentou de novo.

Veja também

  • Webhooks do seller
  • Entrega, reenvios e idempotência
  • Verificar a assinatura
Anterior
Webhooks do seller
Próxima
Visão geral da entrada
Nesta página
  • Registro de entregas
  • Exemplo de requisição
  • Resposta
  • Enviar evento de teste
  • Exemplo de requisição
  • Resposta
  • Reenviar uma entrega
  • Exemplo de requisição
  • Resposta
  • Erros
  • Veja também