Pular para o conteúdo principal

Webhooks

Assinaturas de saída para os eventos da plataforma, seu signing secret e as tentativas de entrega que produziram — o maior recurso. Veja o modelo Webhook, o modelo WebhookDelivery e Segurança de webhooks para validação da assinatura HMAC.

ComandoHTTPDescrição
webhooks listGET /webhooksLista assinaturas. Signing secrets nunca são retornados.
webhooks getGET /webhooks/{id}Busca um webhook.
webhooks createPOST /webhooksCria uma assinatura. A resposta carrega o signing_secret em texto claro exatamente uma vez.
webhooks upsertPUT /webhooksCria ou atualiza, casado por id e depois external_id.
webhooks updatePATCH /webhooks/{id}Atualiza no local.
webhooks deleteDELETE /webhooks/{id}Soft-delete.
webhooks testPOST /webhooks/{id}/testEnvia um webhook.ping sintético pelo caminho real de assinatura e retry.
webhooks regenerate-secretPOST /webhooks/{id}/regenerate-secretRotaciona o signing secret — retornado uma vez.
webhooks deliveries listGET /webhooks/{id}/deliveriesTentativas de entrega de um webhook.
webhooks deliveries getGET /webhooks/{id}/deliveries/{deliveryId}Busca uma entrega, com headers e corpos de request/response.
webhooks deliveries replayPOST /webhooks/{id}/deliveries/{deliveryId}/replayReenvia uma entrega com uma assinatura nova.

Exemplos​

# Listar assinaturas ativas de uma inbox
kobana inbox webhooks list \
--params '{"status": "active", "inbox_id": "INBOX_ID"}' \
--fields "id,label,url,subscribed_events"

# Buscar um
kobana inbox webhooks get --params '{"id": "WEBHOOK_ID"}'

# Criar — salve a resposta, o signing_secret só volta desta vez
kobana inbox webhooks create \
--json '{"label": "Sync de pedidos", "url": "https://example.com/hooks/kobana", "subscribed_events": ["email.processed"]}' \
--output webhook.json

# Criar ou atualizar, casado por external_id
kobana inbox webhooks upsert \
--json '{"external_id": "order-sync", "url": "https://example.com/hooks/kobana", "subscribed_events": ["email.processed", "webhook.test"]}'

# Atualizar os eventos assinados
kobana inbox webhooks update \
--params '{"id": "WEBHOOK_ID"}' \
--json '{"subscribed_events": ["email.processed"]}'

# Soft-delete
kobana inbox webhooks delete --params '{"id": "WEBHOOK_ID"}' --dry-run

# Enviar um ping de teste
kobana inbox webhooks test --params '{"id": "WEBHOOK_ID"}'

# Rotacionar o signing secret — salve a resposta, ele não volta de novo
kobana inbox webhooks regenerate-secret --params '{"id": "WEBHOOK_ID"}' --output new-secret.json

# Listar tentativas de entrega
kobana inbox webhooks deliveries list \
--params '{"id": "WEBHOOK_ID", "status": "failed"}' \
--fields "id,status,attempt,response_status"

# Inspecionar uma entrega
kobana inbox webhooks deliveries get \
--params '{"id": "WEBHOOK_ID", "deliveryId": "DELIVERY_ID"}'

# Reenviá-la
kobana inbox webhooks deliveries replay \
--params '{"id": "WEBHOOK_ID", "deliveryId": "DELIVERY_ID"}'

Próximos passos​