Skip to main content
WEBHOOK
Não libere a entrega ainda. A revisão leva horas e pode terminar em recusa. Liberar aqui é entregar produto numa compra que a análise de fraude já suspeitou.
Este evento é um aviso de espera, não um desfecho. O resultado chega depois, como charge.paid ou charge.failed — e é nele que o seu sistema age. Confira a assinatura antes de gravar qualquer coisa. Ver Verificar a assinatura.

Authorizations

Authorization
string
header
required

Chave secreta do vendedor, criada no painel em Desenvolvedores.

O valor em claro existe uma única vez, na criação. Guardamos só o hash SHA-256 - nem o suporte consegue recuperá-lo, o que é o ponto: um dump do nosso banco não permite cobrar em nome de ninguém.

A chave vai no servidor. Colocá-la no navegador do comprador a entrega a qualquer pessoa que abra a página.

Headers

X-Vext-Signature
string
required

Assinatura da entrega, no formato t=<timestamp>,v1=<hmac>, onde hmac é HMAC-SHA256("<timestamp>.<corpo bruto>", <segredo>).

Duas regras ao conferir:

  1. Calcule sobre o corpo bruto, antes de desserializar. Reserializar muda espaçamento e ordem, e o HMAC deixa de bater.
  2. Recuse timestamps com mais de 5 minutos. É isso que impede alguém que interceptou uma entrega de charge.paid de reenviá-la quantas vezes quiser, com assinatura perfeitamente válida.
Pattern: ^t=[0-9]+,v1=[0-9a-f]{64}$
X-Vext-Event
string
required

Tipo do evento, repetido fora do corpo. Redundante com o payload e útil mesmo assim: permite filtrar no seu log sem desserializar nada.

X-Vext-Delivery
string
required

Identificador da entrega. Cite-o ao abrir um chamado - é por ele que localizamos a tentativa, a resposta do seu servidor e o horário.

Body

application/json
id
string
required

Identificador do evento. Estável entre as retentativas da mesma entrega - use-o para deduplicar do seu lado.

Example:

"evt_01k1y6r7z2m4n6p8q0r2s4t6u8"

type
enum<string>
required
Available options:
charge.paid,
charge.failed,
charge.in_analysis,
charge.refunded,
charge.chargedback,
withdrawal.paid
created_at
string<date-time>
required
data
object
required

Response

Recebido.