Привет, Хабр! Мобильное приложение отправляет POST /payments, ответ не приходит за 10 секунд, и клиент повторяет запрос. Чтобы повтор не списал деньги второй раз, в API добавляют заголовок Idempotency-Key, как у Stripe: клиент присылает случайную строку, сервер запоминает результат первого запроса с этим ключом и на повторы отдаёт его же. Пишут это обычно в три шага: Поискать ключ в таблице. Выполнить операцию. Сохранить ответ. В тестах всё зелён