Перейти к содержимому

Безопасные повторы

Когда соединение обрывается, вы не можете знать, прошёл ли заказ. Поэтому отправьте его снова: в течение 7 дней один и тот же Idempotency-Key означает один и тот же заказ, и списание происходит один раз.

Как это работает

POST /orders требует заголовок Idempotency-Key: до 200 символов ASCII без пробелов, которые вы придумываете сами и храните в своей записи о заказе. Хорошо подойдёт UUID. Для нового заказа используйте новый Idempotency-Key.

curl -X POST "https://api.talismanleads.io/v1/orders" \
  -H "Authorization: Bearer tl_live_your_key_here" \
  -H "Idempotency-Key: crm-export-2026-11-05" \
  -H "Content-Type: application/json" \
  -d '{"checker":"whatsapp_status_detection","entries":["+14155550142","+12125550187"]}'

Что вы получите в ответ

Новый Idempotency-Key
201 и новый заказ.
Тот же Idempotency-Key и тот же запрос ещё раз
200, тот же заказ и Idempotent-Replay: true. Больше ничего не списывается, даже если цена с тех пор изменилась.
Тот же Idempotency-Key в тот же момент
Один заказ и одно списание. Вы получите этот заказ или отказ, означающий, что нужно отправить запрос снова с тем же Idempotency-Key, например order_status_unknown или rate_limited.
Тот же Idempotency-Key с другим запросом
409 idempotency_conflict. Заказ не размещается.
Тот же Idempotency-Key после отказа, например insufficient_balance
Попытка выполняется снова, поэтому заказ пройдёт, как только вы пополните баланс, по первоначально указанной цене. Загруженный файл должен ещё существовать: см. Размещение заказов. Если цена изменилась, вы получите 409 price_changed, а с новым Idempotency-Key заказ размещается по новой цене.

Когда результат неизвестен

Любой потерянный ответ, order_status_unknown и ответ не в формате JSON, например 502 или 504 от шлюза, означают одно и то же: повторите запрос с тем же Idempotency-Key, чтобы узнать фактическое состояние. Двойного списания при этом никогда не будет. Никогда не создавайте новый Idempotency-Key из-за того, что запрос завершился по тайм-ауту или с ошибкой: это новый заказ, и за него будут списаны средства.

Делайте между повторами паузу в минуту. Если через несколько минут ответ по-прежнему order_status_unknown, остановитесь и обратитесь в поддержку, указав request_id. Не создавайте новый Idempotency-Key.

Сколько действует Idempotency-Key

Idempotency-Key запоминается на 7 дней с момента первой отправки. После этого тот же Idempotency-Key размещает новый заказ, поэтому повторяйте запрос в течение нескольких дней, а для каждого нового заказа используйте новый Idempotency-Key.

На этой странице