Ambiente de simulação — nenhuma cobrança real. Os pagamentos, Pix e cartões deste sandbox são sintéticos.
W Wolf Sandbox Docs Criar conta
Navegação

Referência da API

Webhooks

Endpoints de webhook, entregas, teste, replay e rotação do segredo.

get/v1/webhooks/deliveries

Listar entregas recentes (listWebhookDeliveries)

rate limit: api_authenticated
  • 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

NomeOndeTipoDetalhes
wolf-organization-id cabeçalho string

Só para sessão do app do seller com mais de uma organização (senão 409 TENANT_SELECTION_REQUIRED). Ignorado para API keys.

Padrão ^org_

Resposta 200

Entregas, mais recentes primeiro.

Resposta 200 de listWebhookDeliveries
Campo Tipo Detalhes
data obrigatório WebhookDelivery[]
Exemplo de resposta 200 json
{
  "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

post/v1/webhooks/deliveries/{id}/replay

Reenviar entrega (replay) (replayWebhookDelivery)

Nova tentativa do mesmo evento (mesmo event_id, attempt maior) para o mesmo endpoint. Endpoint desativado → 409 WEBHOOK_ENDPOINT_DISABLED.

Idempotency-Key obrigatória rate limit: api_authenticated
  • 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

NomeOndeTipoDetalhes
idobrigatório caminho string

Id da entrega de origem (whd_...).

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 = 409 IDEMPOTENCY_CONFLICT. Guardada por 24 h.

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 409 TENANT_SELECTION_REQUIRED). Ignorado para API keys.

Padrão ^org_

Corpo da requisição (opcional)

Objeto EmptyRequest

EmptyRequest

Exemplo de corpo json
{}

Resposta 202

Nova entrega criada.

Objeto WebhookDelivery

Resposta 202 de replayWebhookDelivery
Campo Tipo Detalhes
id obrigatório string

Começa com whd_

endpoint_id obrigatório string

Começa com whe_

event_id obrigatório string

Começa com evt_

event_type obrigatório string
attempt obrigatório integer

de -∞ a 9007199254740991

status obrigatório string

Valores: pending, delivering, succeeded, failed, dead_letter

response_status obrigatório integer | null
latency_ms obrigatório integer | null
created_at obrigatório string
Exemplo de resposta 202 json
{
  "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

get/v1/webhooks/endpoints

Listar endpoints (listWebhookEndpoints)

Lista os endpoints do seller, sem os excluídos.

rate limit: api_authenticated
  • 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

NomeOndeTipoDetalhes
wolf-organization-id cabeçalho string

Só para sessão do app do seller com mais de uma organização (senão 409 TENANT_SELECTION_REQUIRED). Ignorado para API keys.

Padrão ^org_

Resposta 200

Endpoints.

Resposta 200 de listWebhookEndpoints
Campo Tipo Detalhes
data obrigatório WebhookEndpoint[]
Exemplo de resposta 200 json
{
  "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

post/v1/webhooks/endpoints

Criar 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.

Idempotency-Key obrigatória rate limit: api_authenticated
  • 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

NomeOndeTipoDetalhes
Idempotency-Keyobrigatório cabeçalho string

Chave escolhida pelo cliente (8 a 255 caracteres). Mesma chave + mesmo corpo = mesma resposta; corpo diferente = 409 IDEMPOTENCY_CONFLICT. Guardada por 24 h.

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 409 TENANT_SELECTION_REQUIRED). Ignorado para API keys.

Padrão ^org_

Corpo da requisição

Objeto CreateWebhookEndpointRequest

Corpo de createWebhookEndpoint
Campo Tipo Detalhes
url obrigatório string (URL)
selected_events string[]

0 a 100 itens

Padrão: []

delivery_mode string

Valores: simulated, live

Padrão: "simulated"

Exemplo de corpo json
{
  "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:

Exemplo de resposta 201 json
{
  "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

patch/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.

rate limit: api_authenticated
  • 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

NomeOndeTipoDetalhes
idobrigatório caminho string

Id do endpoint (whe_...).

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 409 TENANT_SELECTION_REQUIRED). Ignorado para API keys.

Padrão ^org_

Corpo da requisição

Objeto UpdateWebhookEndpointRequest

Corpo de updateWebhookEndpoint
Campo Tipo Detalhes
status string

Valores: active, disabled

product_ids string[]

Padrão ^prd_[A-Za-z0-9]{1,64}$

0 a 50 itens

payment_methods string[]

Valores: card, pix

0 a 2 itens

Exemplo de corpo json
{
  "product_ids": [
    "prd_7e6d5c4b3a2918f7e6d5c4b3a2918f7e"
  ],
  "payment_methods": [
    "pix"
  ]
}

Resposta 200

Endpoint.

Objeto WebhookEndpoint

Resposta 200 de updateWebhookEndpoint
Campo Tipo Detalhes
id obrigatório string

Começa com whe_

url obrigatório string (URL)
enabled obrigatório boolean
status obrigatório string

Valores: active, disabled, deleted

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 prd_

payment_methods obrigatório string[]

Valores: card, pix

delivery_mode obrigatório string

Valores: simulated, live

secret_rotated_at obrigatório string | null
deleted_at obrigatório string | null
created_at obrigatório string
Exemplo de resposta 200 json
{
  "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

delete/v1/webhooks/endpoints/{id}

Excluir endpoint (deleteWebhookEndpoint)

Exclusão lógica e terminal: o endpoint some da listagem e responde 404 depois.

rate limit: api_authenticated
  • 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

NomeOndeTipoDetalhes
idobrigatório caminho string

Id do endpoint (whe_...).

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 409 TENANT_SELECTION_REQUIRED). Ignorado para API keys.

Padrão ^org_

Resposta 200

Endpoint excluído.

Objeto WebhookEndpoint

Resposta 200 de deleteWebhookEndpoint
Campo Tipo Detalhes
id obrigatório string

Começa com whe_

url obrigatório string (URL)
enabled obrigatório boolean
status obrigatório string

Valores: active, disabled, deleted

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 prd_

payment_methods obrigatório string[]

Valores: card, pix

delivery_mode obrigatório string

Valores: simulated, live

secret_rotated_at obrigatório string | null
deleted_at obrigatório string | null
created_at obrigatório string
Exemplo de resposta 200 json
{
  "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

post/v1/webhooks/endpoints/{id}/rotate-secret

Rotacionar 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.

Idempotency-Key obrigatória rate limit: api_authenticated
  • 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

NomeOndeTipoDetalhes
idobrigatório caminho string

Id do endpoint (whe_...).

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 = 409 IDEMPOTENCY_CONFLICT. Guardada por 24 h.

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 409 TENANT_SELECTION_REQUIRED). Ignorado para API keys.

Padrão ^org_

Corpo da requisição (opcional)

Objeto EmptyRequest

EmptyRequest

Exemplo de corpo json
{}

Resposta 200

Endpoint com o novo segredo (ou replay sem ele).

Um destes formatos:

Exemplo de resposta 200 json
{
  "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

post/v1/webhooks/endpoints/{id}/test

Enviar evento de teste (testWebhookEndpoint)

Enfileira um evento webhook.test (uma tentativa, assinada como os eventos de domínio). Endpoint desativado → 409 WEBHOOK_ENDPOINT_DISABLED.

Idempotency-Key obrigatória rate limit: api_authenticated
  • 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

NomeOndeTipoDetalhes
idobrigatório caminho string

Id do endpoint (whe_...).

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 = 409 IDEMPOTENCY_CONFLICT. Guardada por 24 h.

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 409 TENANT_SELECTION_REQUIRED). Ignorado para API keys.

Padrão ^org_

Corpo da requisição (opcional)

Objeto EmptyRequest

EmptyRequest

Exemplo de corpo json
{}

Resposta 202

Entrega de teste criada.

Objeto WebhookDelivery

Resposta 202 de testWebhookEndpoint
Campo Tipo Detalhes
id obrigatório string

Começa com whd_

endpoint_id obrigatório string

Começa com whe_

event_id obrigatório string

Começa com evt_

event_type obrigatório string
attempt obrigatório integer

de -∞ a 9007199254740991

status obrigatório string

Valores: pending, delivering, succeeded, failed, dead_letter

response_status obrigatório integer | null
latency_ms obrigatório integer | null
created_at obrigatório string
Exemplo de resposta 202 json
{
  "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