Skip to main content
POST
Criar webhook
POST /webhooks Faz parte do recurso Webhooks — o catálogo de eventos e as regras do secret estão lá. Registra a URL, define quais eventos ela recebe e devolve 201 com o webhook criado. Já nasce ativo: se houver evento assinado acontecendo, a primeira entrega sai em seguida.
Copie o secret desta resposta. É a única vez que ele sai em claro — as leituras devolvem hasSecret e secretHint no lugar, e nenhuma rota o troca depois. Sem ele guardado, não há como verificar a assinatura das entregas.
Não precisa inventar um segredo. Omita o campo e a plataforma gera um whsec_… de 256 bits, que volta nesta mesma resposta — mais forte que a maioria dos valores escolhidos à mão. Enviar o seu próprio continua valendo, com no mínimo 8 caracteres, para quando o segredo já existe do seu lado.
events vazio, ou omitido, assina TODOS os eventos — inclusive os que forem criados no futuro. Para receber só o que interessa, liste os códigos do catálogo; um código fora dele é recusado com 400.
A URL precisa ser pública. localhost, faixas privadas e endereços de metadata de nuvem são recusados com 400 — a lista completa está na visão geral.

Exemplo

Resposta 201
O secret só aparece aqui. Em buscar e listar, o mesmo webhook volta sem essa linha.

Authorizations

x-api-key
string
header
required

API Key da Credential (gerada no Backoffice)

Headers

Idempotency-Key
string

Chave única para garantir idempotência da requisição

Body

application/json
name
string
required

Nome de identificação do webhook.

Required string length: 1 - 255
url
string<uri>
required

URL HTTPS que receberá as notificações de eventos (via POST).

events
enum<string>[]

Eventos que disparam notificações para este webhook (ex.: transaction.paid, payment.refunded).

Available options:
transaction.created,
transaction.waiting_payment,
transaction.paid,
transaction.partially_paid,
transaction.pending,
transaction.refused,
transaction.failed,
transaction.canceled,
transaction.waiting_refund,
transaction.refunded,
transaction.in_protest,
transaction.chargeback,
payment.created,
payment.waiting_payment,
payment.paid,
payment.pending,
payment.refused,
payment.failed,
payment.canceled,
payment.waiting_refund,
payment.refunded,
payment.in_protest,
payment.chargeback,
refund.created,
refund.approved,
refund.refused,
refund.processing,
refund.refunded,
refund.failed,
refund.awaiting_bank_details,
refund.bank_details_received,
refund.invalid_bank_details,
refund.ted_processing,
chargeback.opened,
chargeback.under_review,
chargeback.submitted,
chargeback.won,
chargeback.lost,
chargeback.document.uploaded,
customer.created,
customer.updated,
recipient.created,
recipient.updated,
recipient.approved,
recipient.refused,
recipient.deleted,
recipient.pendency_updated,
withdrawal.requested,
withdrawal.paid,
withdrawal.rejected,
invoice.issued,
invoice.payment_attempted,
invoice.paid,
invoice.voided,
invoice.refunded,
invoice.rescheduled,
subscription.created,
subscription.trial_started,
subscription.activated,
subscription.canceled,
subscription.cycle_advanced,
subscription.paused,
subscription.resumed,
subscription.past_due,
subscription.unpaid,
subscription.restored,
subscription.reactivated,
anticipation.status_changed
secret
string

Segredo usado para assinar (HMAC) os payloads e validar a autenticidade das notificações.

Minimum string length: 8

Response

Webhook criado

id
string
required

Identificador único do registro.

name
string
required

Nome do registro.

url
string<uri>
required

URL de destino do webhook ou link de download do arquivo.

events
string[]
required

Tipos de evento assinados pelo webhook.

isActive
boolean
required

Indica se o registro está ativo.

hasSecret
boolean
required
secretHint
string | null
required
autoDisabledAt
string<date-time> | null
required
createdAt
string<date-time>
required

Data e hora de criação do registro (ISO 8601).

updatedAt
string<date-time>
required

Data e hora da última atualização do registro (ISO 8601).

secret
string | null
required

Segredo usado para assinar as entregas do webhook.