Developer documentation

Resend confirmed payment notifications

Resend notifications for CONFIRMED or COMPLETED orders after fixing your receiver. Queueing, delivery and fulfillment are separate steps.

POST /api/v1/webhooks/resend

Request authentication

Include X-Bolt-Key, X-Bolt-Timestamp and X-Bolt-Signature. Use a current millisecond timestamp and sign it together with the exact request body.

When to resend

Use this endpoint when your system needs another notification of a confirmed payment. Resending does not collect payment, reconcile a transfer or create an order.

Only your own CONFIRMED or COMPLETED orders can be resent. PENDING, PAID and other states are not eligible.

An available, active Webhook configuration is required. If no delivery task is persisted, the endpoint returns an error instead of QUEUED.

01. Request parameters

application/json
externalOrderIdRequired
String

Send the merchant externalOrderId supplied at order creation, not orderToken. You can only resend notifications for orders belonging to the current API key.

Example value

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

Required string, 6–64 characters. Letters, digits, underscores (_) and hyphens (-) are allowed.

Body

02. Response fields (data)

application/json
notifyUrlString
Callback address recorded on the order; may be null. Delivery prefers this address and falls back to the associated Webhook configuration for older orders without one.
externalOrderIdString
Merchant order ID associated with this resend, matching the request externalOrderId.
triggerTypeEnum
Always MANUAL in this endpoint’s response, indicating a merchant-requested resend. This is not the payment settlement type.
statusEnum
Resend request status. QUEUED means the task was persisted; it is neither the payment status nor proof of delivery.

QUEUED means a delivery task was persisted for asynchronous sending, not that it was delivered. Check delivery logs in the merchant dashboard for the recipient’s HTTP 2xx response.

🚀
Recipient handling

Verify X-Bolt-Webhook-Timestamp and X-Bolt-Webhook-Signature, then deduplicate by eventId or merchant order ID before fulfillment. Return HTTP 2xx for duplicate notifications that were already handled successfully.

  • triggerType: MANUAL appears in the resend response and dashboard delivery records. The current Webhook request body does not contain triggerType; do not depend on it to identify a resend.
  • Each successful call creates an independent delivery task. Repeated requests may send multiple notifications. Check delivery logs before resending again. Replays retain the logical eventId.
  • This endpoint reuses the order’s callback destination and does not accept a new URL. Changing the dashboard default does not replace an address already saved on the order.
Safe

Common errors

These are common cases. Use the actual HTTP status and response code/message to diagnose failures. An error response is not a payment result.

  • 401: Check the API Key, raw-body signature and current millisecond timestamp (within 5 minutes of the server clock).
  • 404: The order is missing, belongs to another merchant or is outside the history allowed by your plan.
  • 400: The order is not CONFIRMED / COMPLETED, or an available Webhook configuration and a successfully stored delivery task are missing.
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"

Addresses, transaction hashes and orders are examples. Replace them with your own test data.

Base URL

PROD
https://api.boltutil.com