Документация разработчика

Повторно отправить уведомление об оплате

Повторная отправка для CONFIRMED / COMPLETED после исправления получателя. Очередь не означает доставку.

POST /api/v1/webhooks/resend

Запросить аутентификацию

Включите X-Bolt-Key, X-Bolt-Timestamp и X-Bolt-Signature. Используйте текущую миллисекунду timestamp и подпишите ее вместе с точным телом запроса.

Когда отправлять повторно

Используйте эту конечную точку, если вашей системе требуется еще одно уведомление о подтвержденном платеже. При повторной отправке не взимается оплата, не согласовывается перевод и не создается заказ.

Повторно можно отправить только ваши собственные заказы CONFIRMED или COMPLETED. PENDING, PAID и другие состояния не допускаются.

Требуется доступная активная конфигурация Webhook. Если задача доставки не сохранена, конечная точка возвращает ошибку вместо QUEUED.

01. Параметры запроса

application/json
externalOrderIdОбязательно
String

Отправьте продавцу externalOrderId, указанный при создании заказа, а не orderToken. Вы можете повторно отправлять уведомления только для заказов, принадлежащих текущему ключу API.

Пример значения

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

Обязательная строка, 6–64 символа. Допускаются буквы, цифры, подчеркивания (_) и дефисы (-).

Body

02. Поля ответа (data)

application/json
notifyUrlString
Адрес обратного вызова, записанный в заказе; может быть null. Служба доставки предпочитает этот адрес и возвращается к соответствующей конфигурации Webhook для старых заказов без него.
externalOrderIdString
Заказ продавца ID, связанный с этой повторной отправкой, соответствует запросу externalOrderId.
triggerTypeEnum
Всегда MANUAL в ответе этой конечной точки, что указывает на повторную отправку, запрошенную продавцом. Это не тип расчета платежа.
statusEnum
Статус запроса на повторную отправку. QUEUED означает, что задача сохранена; это не статус платежа и не подтверждение доставки.

QUEUED означает, что задание сохранено для асинхронной отправки, а не что уведомление доставлено. Проверьте журнал отправки в панели продавца и ответ HTTP 2xx получателя.

🚀
Обработка получателей

Проверьте X-Bolt-Webhook-Timestamp и X-Bolt-Webhook-Signature, затем выполните дедупликацию с помощью eventId или торгового заказа ID перед выполнением. Возвращайте HTTP 2xx для повторяющихся уведомлений, которые уже были успешно обработаны.

  • triggerType: MANUAL отображается в ответах на повторную отправку и записях о доставке на информационной панели. Текущее тело запроса Webhook не содержит triggerType; не полагайтесь на него при идентификации повторной отправки.
  • Каждый успешный вызов создает независимую задачу доставки. Повторные запросы могут отправлять несколько уведомлений. Перед повторной отправкой проверьте журналы доставки. Повторы сохраняют логический код eventId.
  • Эта конечная точка повторно использует пункт назначения обратного вызова заказа и не принимает новый URL. Изменение панели управления по умолчанию не заменяет адрес, уже сохраненный в заказе.
Safe

Распространенные ошибки

Это распространенные случаи. Используйте фактический статус HTTP и код/сообщение ответа для диагностики сбоев. Ответ с ошибкой не является результатом платежа.

  • 401: проверьте ключ API, необработанную подпись и текущую миллисекунду timestamp (в пределах 5 минут от часов сервера).
  • 404: заказ отсутствует, принадлежит другому продавцу или находится за пределами истории, разрешенной вашим планом.
  • 400: заказ не CONFIRMED/COMPLETED, либо отсутствует доступная конфигурация Webhook и успешно сохраненная задача доставки.
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"

Примерами являются адреса, хеши транзакций и заказы. Замените их собственным тестом data.

Base URL

PROD
https://api.boltutil.com