Documentação para desenvolvedores

Reenviar notificações de pagamento confirmado

Reenvie para CONFIRMED / COMPLETED após corrigir o receptor. Entrar na fila não significa entrega.

POST /api/v1/webhooks/resend

Solicitar autenticação

Inclui X-Bolt-Key, X-Bolt-Timestamp e X-Bolt-Signature. Use um timestamp atual em milissegundos e assine-o junto com o corpo exato da solicitação.

Quando reenviar

Use este endpoint quando seu sistema precisar de outra notificação de pagamento confirmado. O reenvio não cobra o pagamento, não reconcilia uma transferência nem cria um pedido.

Apenas seus próprios pedidos CONFIRMED ou COMPLETED podem ser reenviados. PENDING, PAID e outros estados não são elegíveis.

É necessária uma configuração Webhook ativa e disponível. Se nenhuma tarefa de entrega persistir, o endpoint retornará um erro em vez de QUEUED.

01. Parâmetros de solicitação

application/json
externalOrderIdObrigatório
String

Envie ao comerciante o externalOrderId fornecido na criação do pedido, não o orderToken. Você só pode reenviar notificações para pedidos pertencentes à chave API atual.

Valor de exemplo

{"externalOrderId": "INV-20260209-99281"}

Sequência obrigatória, de 6 a 64 caracteres. Letras, dígitos, sublinhados (_) e hífens (-) são permitidos.

Body

02. Campos de resposta (data)

application/json
notifyUrlString
Endereço de retorno registrado no pedido; pode ser null. A entrega prefere esse endereço e recorre à configuração Webhook associada para pedidos mais antigos sem endereço.
externalOrderIdString
Pedido do comerciante ID associado a este reenvio, correspondendo à solicitação externalOrderId.
triggerTypeEnum
Sempre MANUAL na resposta deste endpoint, indicando um reenvio solicitado pelo comerciante. Este não é o tipo de liquidação de pagamento.
statusEnum
Reenviar status da solicitação. QUEUED significa que a tarefa foi persistida; não é o status do pagamento nem o comprovante de entrega.

QUEUED indica que a tarefa foi salva para envio assíncrono, não que a notificação chegou. Confira os registros de envio no painel do comerciante e a resposta HTTP 2xx do destinatário.

🚀
Tratamento de destinatários

Verifique X-Bolt-Webhook-Timestamp e X-Bolt-Webhook-Signature e, em seguida, desduplicar por eventId ou pelo pedido do comerciante ID antes do processamento. Retorne HTTP 2xx para notificações duplicadas que já foram tratadas com sucesso.

  • triggerType: MANUAL aparece na resposta de reenvio e nos registros de entrega do painel. O corpo da solicitação Webhook atual não contém triggerType; não dependa dele para identificar um reenvio.
  • Cada chamada bem-sucedida cria uma tarefa de entrega independente. Solicitações repetidas podem enviar diversas notificações. Verifique os registros de entrega antes de reenviar novamente. Os replays mantêm o eventId lógico.
  • Este endpoint reutiliza o destino de retorno de chamada do pedido e não aceita um novo URL. A alteração do padrão do painel não substitui um endereço já salvo no pedido.
Safe

Erros comuns

Estes são casos comuns. Use o status real do HTTP e o código/mensagem de resposta para diagnosticar falhas. Uma resposta de erro não é um resultado de pagamento.

  • 401: Verifique a chave API, a assinatura do corpo bruto e o milissegundo atual timestamp (dentro de 5 minutos do relógio do servidor).
  • 404: O pedido está faltando, pertence a outro comerciante ou está fora do histórico permitido pelo seu plano.
  • 400: O pedido não é CONFIRMED / COMPLETED ou uma configuração Webhook disponível e uma tarefa de entrega armazenada com sucesso estão faltando.
resend / cURL
# Run against your account only when ready; this sends an API request.
: "${BOLTUTIL_API_KEY:?Set your complete API Key}"
: "${BOLTUTIL_WEBHOOK_SECRET:?Set your Webhook secret}"
timestamp=$(python3 -c 'import time; print(int(time.time()*1000))')
body='{"externalOrderId":"INV-20260209-99281"}'
signature=$(printf '%s.%s' "$timestamp" "$body" | openssl dgst -sha256 -hmac "$BOLTUTIL_WEBHOOK_SECRET" | awk '{print $NF}')

curl --request POST "https://api.boltutil.com/api/v1/webhooks/resend" \
  --header 'Content-Type: application/json' \
  --header "X-Bolt-Key: $BOLTUTIL_API_KEY" \
  --header "X-Bolt-Timestamp: $timestamp" \
  --header "X-Bolt-Signature: $signature" \
  --data-binary "$body"

Endereços, hashes de transações e pedidos são exemplos. Substitua-os pelo seu próprio teste data.

Base URL

PROD
https://api.boltutil.com