Webhooks
Endpoints de webhook, entregas, teste, replay e rotação do segredo.
- get
/v1/webhooks/deliveries— Listar entregas recentes - post
/v1/webhooks/deliveries/{id}/replay— Reenviar entrega (replay) - get
/v1/webhooks/endpoints— Listar endpoints - post
/v1/webhooks/endpoints— Criar endpoint - patch
/v1/webhooks/endpoints/{id}— Atualizar endpoint (status e filtros) - delete
/v1/webhooks/endpoints/{id}— Excluir endpoint - post
/v1/webhooks/endpoints/{id}/rotate-secret— Rotacionar signing secret - post
/v1/webhooks/endpoints/{id}/test— Enviar evento de teste
/v1/webhooks/deliveriesListar entregas recentes (listWebhookDeliveries)
- Autenticação: API key (
sk_test_...) ou sessão do app do seller - Escopos:
webhooks:write - URL:
https://api.v2.wolfpayteste.online/v1/webhooks/deliveries
Parâmetros
| Nome | Onde | Tipo | Detalhes |
|---|---|---|---|
wolf-organization-id | cabeçalho | string | Só para sessão do app do seller com mais de uma organização (senão Padrão |
Resposta 200
Entregas, mais recentes primeiro.
| Campo | Tipo | Detalhes |
|---|---|---|
data obrigatório | WebhookDelivery[] |
{
"data": [
{
"id": "whd_5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c",
"endpoint_id": "whe_3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a",
"event_id": "evt_7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e",
"event_type": "webhook.test",
"attempt": 1,
"status": "pending",
"response_status": null,
"latency_ms": null,
"created_at": "2026-11-06T12:00:00.000Z"
}
]
}Erros
- 401 —
AUTHENTICATION_REQUIRED - 403 —
FORBIDDEN - 409 —
TENANT_SELECTION_REQUIRED - 429 —
RATE_LIMITED - 500 —
INTERNAL_ERROR
/v1/webhooks/deliveries/{id}/replayReenviar entrega (replay) (replayWebhookDelivery)
Nova tentativa do mesmo evento (mesmo event_id, attempt maior) para o mesmo endpoint. Endpoint desativado → 409 WEBHOOK_ENDPOINT_DISABLED.
- Autenticação: API key (
sk_test_...) ou sessão do app do seller - Escopos:
webhooks:write - URL:
https://api.v2.wolfpayteste.online/v1/webhooks/deliveries/{id}/replay
Parâmetros
| Nome | Onde | Tipo | Detalhes |
|---|---|---|---|
idobrigatório | caminho | string | Id da entrega de origem ( mínimo 1 caractere(s) |
Idempotency-Keyobrigatório | cabeçalho | string | Chave escolhida pelo cliente (8 a 255 caracteres). Mesma chave + mesmo corpo = mesma resposta; corpo diferente = 8 a 255 caracteres |
wolf-organization-id | cabeçalho | string | Só para sessão do app do seller com mais de uma organização (senão Padrão |
Corpo da requisição (opcional)
Objeto EmptyRequest
{}Resposta 202
Nova entrega criada.
Objeto WebhookDelivery
| Campo | Tipo | Detalhes |
|---|---|---|
id obrigatório | string | Começa com |
endpoint_id obrigatório | string | Começa com |
event_id obrigatório | string | Começa com |
event_type obrigatório | string | |
attempt obrigatório | integer | de -∞ a 9007199254740991 |
status obrigatório | string | Valores: |
response_status obrigatório | integer | null | |
latency_ms obrigatório | integer | null | |
created_at obrigatório | string |
{
"id": "whd_5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c",
"endpoint_id": "whe_3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a",
"event_id": "evt_7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e",
"event_type": "payment.paid",
"attempt": 2,
"status": "pending",
"response_status": null,
"latency_ms": null,
"created_at": "2026-11-06T12:00:00.000Z"
}Erros
/v1/webhooks/endpointsListar endpoints (listWebhookEndpoints)
Lista os endpoints do seller, sem os excluídos.
- Autenticação: API key (
sk_test_...) ou sessão do app do seller - Escopos:
webhooks:write - URL:
https://api.v2.wolfpayteste.online/v1/webhooks/endpoints
Parâmetros
| Nome | Onde | Tipo | Detalhes |
|---|---|---|---|
wolf-organization-id | cabeçalho | string | Só para sessão do app do seller com mais de uma organização (senão Padrão |
Resposta 200
Endpoints.
| Campo | Tipo | Detalhes |
|---|---|---|
data obrigatório | WebhookEndpoint[] |
{
"data": [
{
"id": "whe_3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a",
"url": "https://example.com/wolf/webhooks",
"enabled": true,
"status": "active",
"disabled_reason": null,
"consecutive_failures": 0,
"selected_events": [
"payment.paid",
"payment.canceled"
],
"product_ids": [],
"payment_methods": [],
"delivery_mode": "live",
"secret_rotated_at": null,
"deleted_at": null,
"created_at": "2026-11-06T12:00:00.000Z"
}
]
}Erros
- 401 —
AUTHENTICATION_REQUIRED - 403 —
FORBIDDEN - 409 —
TENANT_SELECTION_REQUIRED - 429 —
RATE_LIMITED - 500 —
INTERNAL_ERROR
/v1/webhooks/endpointsCriar endpoint (createWebhookEndpoint)
Cadastra uma URL HTTPS. live (padrão recomendado) exige sessão humana do seller e devolve o signing_secret uma única vez; em produção simulated é recusado (400). URLs da própria Wolf e destinos privados são recusados. Repetir a requisição com a mesma Idempotency-Key e o mesmo corpo devolve a mesma resposta com idempotent-replayed: true; corpo diferente → 409 IDEMPOTENCY_CONFLICT.
- Autenticação: API key (
sk_test_...) ou sessão do app do seller - Escopos:
webhooks:write - URL:
https://api.v2.wolfpayteste.online/v1/webhooks/endpoints
Parâmetros
| Nome | Onde | Tipo | Detalhes |
|---|---|---|---|
Idempotency-Keyobrigatório | cabeçalho | string | Chave escolhida pelo cliente (8 a 255 caracteres). Mesma chave + mesmo corpo = mesma resposta; corpo diferente = 8 a 255 caracteres |
wolf-organization-id | cabeçalho | string | Só para sessão do app do seller com mais de uma organização (senão Padrão |
Corpo da requisição
Objeto CreateWebhookEndpointRequest
| Campo | Tipo | Detalhes |
|---|---|---|
url obrigatório | string (URL) | |
selected_events | string[] | 0 a 100 itens Padrão: |
delivery_mode | string | Valores: Padrão: |
{
"url": "https://example.com/wolf/webhooks",
"selected_events": [
"payment.paid",
"payment.canceled"
],
"delivery_mode": "live"
}Resposta 201
Endpoint criado (live com o segredo, replay sem ele, ou simulated).
Um destes formatos:
{
"id": "whe_3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a",
"url": "https://example.com/wolf/webhooks",
"enabled": true,
"status": "active",
"disabled_reason": null,
"consecutive_failures": 0,
"selected_events": [
"payment.paid",
"payment.canceled"
],
"product_ids": [],
"payment_methods": [],
"delivery_mode": "live",
"secret_rotated_at": null,
"deleted_at": null,
"created_at": "2026-11-06T12:00:00.000Z",
"signing_secret": "whsec_live_EXEMPLO_nao_use_em_producao"
}Erros
/v1/webhooks/endpoints/{id}Atualizar endpoint (status e filtros) (updateWebhookEndpoint)
status: disabled grava disabled_reason: "manual"; active limpa o motivo e zera consecutive_failures. product_ids (produtos da própria conta) e payment_methods (card, pix) substituem os filtros de entrega; lista vazia = todos. A entrega respeita os três filtros (eventos, produtos e métodos). Eventos de uma venda (payment.*, refund.*, dispute.*, order.*, checkout.session.*) só passam por um filtro não vazio quando o produto ou o método é conhecido e está na lista; eventos da conta (payout.*, settlement.*, …) ignoram os filtros de produto e método. Informe ao menos um campo; repetir os valores atuais não muda nada.
- Autenticação: API key (
sk_test_...) ou sessão do app do seller - Escopos:
webhooks:write - URL:
https://api.v2.wolfpayteste.online/v1/webhooks/endpoints/{id}
Parâmetros
| Nome | Onde | Tipo | Detalhes |
|---|---|---|---|
idobrigatório | caminho | string | Id do endpoint ( mínimo 1 caractere(s) |
wolf-organization-id | cabeçalho | string | Só para sessão do app do seller com mais de uma organização (senão Padrão |
Corpo da requisição
Objeto UpdateWebhookEndpointRequest
| Campo | Tipo | Detalhes |
|---|---|---|
status | string | Valores: |
product_ids | string[] | Padrão 0 a 50 itens |
payment_methods | string[] | Valores: 0 a 2 itens |
{
"product_ids": [
"prd_7e6d5c4b3a2918f7e6d5c4b3a2918f7e"
],
"payment_methods": [
"pix"
]
}Resposta 200
Endpoint.
Objeto WebhookEndpoint
| Campo | Tipo | Detalhes |
|---|---|---|
id obrigatório | string | Começa com |
url obrigatório | string (URL) | |
enabled obrigatório | boolean | |
status obrigatório | string | Valores: |
disabled_reason obrigatório | string | null | |
consecutive_failures obrigatório | integer | de 0 a 9007199254740991 |
selected_events obrigatório | string[] | |
product_ids obrigatório | string[] | Começa com |
payment_methods obrigatório | string[] | Valores: |
delivery_mode obrigatório | string | Valores: |
secret_rotated_at obrigatório | string | null | |
deleted_at obrigatório | string | null | |
created_at obrigatório | string |
{
"id": "whe_3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a",
"url": "https://example.com/wolf/webhooks",
"enabled": true,
"status": "active",
"disabled_reason": null,
"consecutive_failures": 0,
"selected_events": [
"payment.paid",
"payment.canceled"
],
"product_ids": [
"prd_7e6d5c4b3a2918f7e6d5c4b3a2918f7e"
],
"payment_methods": [
"pix"
],
"delivery_mode": "live",
"secret_rotated_at": null,
"deleted_at": null,
"created_at": "2026-11-06T12:00:00.000Z"
}Erros
- 400 —
VALIDATION_FAILED - 401 —
AUTHENTICATION_REQUIRED - 403 —
FORBIDDEN - 404 —
RESOURCE_NOT_FOUND - 409 —
INVALID_STATE_TRANSITION,TENANT_SELECTION_REQUIRED - 429 —
RATE_LIMITED - 500 —
INTERNAL_ERROR
/v1/webhooks/endpoints/{id}Excluir endpoint (deleteWebhookEndpoint)
Exclusão lógica e terminal: o endpoint some da listagem e responde 404 depois.
- Autenticação: API key (
sk_test_...) ou sessão do app do seller - Escopos:
webhooks:write - URL:
https://api.v2.wolfpayteste.online/v1/webhooks/endpoints/{id}
Parâmetros
| Nome | Onde | Tipo | Detalhes |
|---|---|---|---|
idobrigatório | caminho | string | Id do endpoint ( mínimo 1 caractere(s) |
wolf-organization-id | cabeçalho | string | Só para sessão do app do seller com mais de uma organização (senão Padrão |
Resposta 200
Endpoint excluído.
Objeto WebhookEndpoint
| Campo | Tipo | Detalhes |
|---|---|---|
id obrigatório | string | Começa com |
url obrigatório | string (URL) | |
enabled obrigatório | boolean | |
status obrigatório | string | Valores: |
disabled_reason obrigatório | string | null | |
consecutive_failures obrigatório | integer | de 0 a 9007199254740991 |
selected_events obrigatório | string[] | |
product_ids obrigatório | string[] | Começa com |
payment_methods obrigatório | string[] | Valores: |
delivery_mode obrigatório | string | Valores: |
secret_rotated_at obrigatório | string | null | |
deleted_at obrigatório | string | null | |
created_at obrigatório | string |
{
"id": "whe_3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a",
"url": "https://example.com/wolf/webhooks",
"enabled": false,
"status": "deleted",
"disabled_reason": null,
"consecutive_failures": 0,
"selected_events": [
"payment.paid",
"payment.canceled"
],
"product_ids": [],
"payment_methods": [],
"delivery_mode": "live",
"secret_rotated_at": null,
"deleted_at": "2026-11-06T12:10:00.000Z",
"created_at": "2026-11-06T12:00:00.000Z"
}Erros
- 401 —
AUTHENTICATION_REQUIRED - 403 —
FORBIDDEN - 404 —
RESOURCE_NOT_FOUND - 409 —
INVALID_STATE_TRANSITION,TENANT_SELECTION_REQUIRED - 429 —
RATE_LIMITED - 500 —
INTERNAL_ERROR
/v1/webhooks/endpoints/{id}/rotate-secretRotacionar signing secret (rotateWebhookEndpointSecret)
Só endpoint live e só sessão humana do seller (API key → 403). O segredo novo vale na hora e é exibido uma única vez; um replay devolve secret_already_revealed: true.
- Autenticação: sessão do app do seller
- Escopos:
webhooks:write - URL:
https://api.v2.wolfpayteste.online/v1/webhooks/endpoints/{id}/rotate-secret
Parâmetros
| Nome | Onde | Tipo | Detalhes |
|---|---|---|---|
idobrigatório | caminho | string | Id do endpoint ( mínimo 1 caractere(s) |
Idempotency-Keyobrigatório | cabeçalho | string | Chave escolhida pelo cliente (8 a 255 caracteres). Mesma chave + mesmo corpo = mesma resposta; corpo diferente = 8 a 255 caracteres |
wolf-organization-id | cabeçalho | string | Só para sessão do app do seller com mais de uma organização (senão Padrão |
Corpo da requisição (opcional)
Objeto EmptyRequest
{}Resposta 200
Endpoint com o novo segredo (ou replay sem ele).
Um destes formatos:
{
"id": "whe_3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a",
"url": "https://example.com/wolf/webhooks",
"enabled": true,
"status": "active",
"disabled_reason": null,
"consecutive_failures": 0,
"selected_events": [
"payment.paid",
"payment.canceled"
],
"product_ids": [],
"payment_methods": [],
"delivery_mode": "live",
"secret_rotated_at": "2026-11-06T12:05:00.000Z",
"deleted_at": null,
"created_at": "2026-11-06T12:00:00.000Z",
"signing_secret": "whsec_live_EXEMPLO_novo_segredo"
}Erros
/v1/webhooks/endpoints/{id}/testEnviar evento de teste (testWebhookEndpoint)
Enfileira um evento webhook.test (uma tentativa, assinada como os eventos de domínio). Endpoint desativado → 409 WEBHOOK_ENDPOINT_DISABLED.
- Autenticação: API key (
sk_test_...) ou sessão do app do seller - Escopos:
webhooks:write - URL:
https://api.v2.wolfpayteste.online/v1/webhooks/endpoints/{id}/test
Parâmetros
| Nome | Onde | Tipo | Detalhes |
|---|---|---|---|
idobrigatório | caminho | string | Id do endpoint ( mínimo 1 caractere(s) |
Idempotency-Keyobrigatório | cabeçalho | string | Chave escolhida pelo cliente (8 a 255 caracteres). Mesma chave + mesmo corpo = mesma resposta; corpo diferente = 8 a 255 caracteres |
wolf-organization-id | cabeçalho | string | Só para sessão do app do seller com mais de uma organização (senão Padrão |
Corpo da requisição (opcional)
Objeto EmptyRequest
{}Resposta 202
Entrega de teste criada.
Objeto WebhookDelivery
| Campo | Tipo | Detalhes |
|---|---|---|
id obrigatório | string | Começa com |
endpoint_id obrigatório | string | Começa com |
event_id obrigatório | string | Começa com |
event_type obrigatório | string | |
attempt obrigatório | integer | de -∞ a 9007199254740991 |
status obrigatório | string | Valores: |
response_status obrigatório | integer | null | |
latency_ms obrigatório | integer | null | |
created_at obrigatório | string |
{
"id": "whd_5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c",
"endpoint_id": "whe_3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a",
"event_id": "evt_7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e",
"event_type": "webhook.test",
"attempt": 1,
"status": "pending",
"response_status": null,
"latency_ms": null,
"created_at": "2026-11-06T12:00:00.000Z"
}