Проверки перед отменой
- Заказ принадлежит владельцу API-ключа.
- Статус — waiting, SMS ещё не получен, тип заказа поддерживает отмену.
- Текущее время достигло cancelAfter из ответа заказа. Обычно это две минуты, но ориентируйтесь на поле API.
Обратите внимание
Проверка на клиенте — только подсказка. Окончательное решение принимает сервер в момент отмены.
Запрос отмены
Передайте пустой JSON-объект {}. При успехе API вернёт { "ok": true }, а средства вернутся на общий баланс. Повтор не создаёт второго возврата; после изменения статуса возможен 409.
POST /api/v1/orders/{id}/cancel
Client Libraries
9 языковcurl --request POST \
--url "$LUFFY_BASE_URL"'/orders/123/cancel' \
--header "Authorization: Bearer $LUFFY_API_KEY" \
--header 'Content-Type: application/json' \
--data '{}' \
--max-time 150 \
--include --fail-with-bodycURL · shell
SMS пришло одновременно с отменой
Заказ мог изменить статус между вашим GET и POST. При 409 перечитайте GET /orders/{id} и отображайте фактическое состояние. Не считайте возврат выполненным по нажатию кнопки.
Ответ потерян
Сначала перечитайте заказ и баланс. Сетевой таймаут не подтверждает ни успех, ни отказ отмены. Не зачисляйте пользователю виртуальный возврат без серверного подтверждения.
Не нашли ответ на свой вопрос?Помощь с интеграцией