FAQ — разовые платежи
Как убедиться, что подпись считается правильно, до первого запроса?
Прогоните тест-векторы (callisto_sigtest., см. Подпись запросов) против своей функции подписи ещё до первого сетевого вызова: все значения в них зафиксированы, включая метку времени, поэтому две строки сравниваются локально, а не отлаживаются по 401. Негативные векторы обязаны не совпасть.
Как проверить обработку коллбеков локально, без публичного адреса?
Два способа: поле test_info. — адрес коллбека прямо в запросе (доступно партнёрам с включённым флагом, только https); либо журнал доставки через инструмент callback_last MCP-сервера — тогда не нужны ни приёмник, ни туннель.
Пришёл повторный коллбек — это ошибка?
Нет, это норма: неподтверждённая доставка повторяется. Отвечайте любым 2xx и дедуплицируйте по идентификатору события, заголовку X-Event-Id — между попытками одного события он не меняется, а номер попытки приходит отдельно, в X-Request-Attempt (в прежнем конверте — X-Event-Attempt). Подробности — в разделе Вебхуки.
Ждать коллбек или опрашивать статус?
Основной канал — коллбек, опрос GET /invoices/{invoice_id} — резервный. Повторы не бесконечны: в боевом контуре платформа делает 173 попытки примерно за сутки и после этого доставку прекращает; в песочнице — после седьмой. Статус опросом доступен всегда, поэтому единственным источником состояния платежа коллбек считать нельзя. Расписание повторов — в разделе Вебхуки.
Создаю второй счёт тому же клиенту и получаю 409 — почему?
Так работает дедупликация: пока у клиента есть незакрытый счёт, новый отклоняется с кодом INVOICE_ALREADY_EXISTS, а id существующего приходит в error. — его можно прочитать или отменить счёт. Таблица ошибок — в разделе Коды и справочники.
Что приходит на мой сайт после оплаты?
Клиент возвращается на адрес возврата вашего проекта с параметрами invoiceId, merchantOrderId и success. Параметр success годится для экрана результата, но не для выдачи товара: он приходит из браузера и не подписан, а клиент может и не вернуться. Подробности — в разделе Карты, СБП, SberPay.
Как перейти из песочницы в Production?
Боевые адреса и креды выдаёт менеджер i-Free; в боевом контуре работают оба протокола — XML v2.9 и JSON v3. Что ещё меняется — собрано в разделе Отличия Sandbox ↔ Production.