Payin Classic

Статус операции

/topup_status — lifecycle статусов операции.

/topup_status

Проверка статуса ранее созданной операции пополнения.

Раньше чем через 5 минут после создания операции нет смысла дёргать /topup_status.

Запрос

{
  "Datetime": "2009-11-10T23:01:02+03:00",
  "Payload": {
    "RegisteredUid": "1234567"
  }
}

RegisteredUid — тот же, что вернул /prepare_topup.

Ответ

{
  "SuccessCall": true,
  "Datetime": "2009-11-10T23:01:02+03:00",
  "Payload": {
    "Status": "finalSuccess",
    "sum": 100500.01
  }
}

Lifecycle статусов

СтатусЧто означает
awaitingConfirmTopupationПосле /prepare_topup, но до /confirm_topup. Операция подготовлена, но не запущена.
pendingОперация выполняется.
finalSuccessОперация завершена, платёж успешен. Пополняйте баланс пользователя.
finalFailedОперация завершена, платёж не прошёл.

Статусы с префиксом final не изменяются.

Поле sum

  • Присутствует, когда значение известно (ненулевое); при нулевом значении поле опускается (omitempty). До завершения операции это эхо DesireSum, при finalSuccessфактически зачисленная сумма. Само наличие sum не означает успех — зачисляйте баланс пользователя только по статусу finalSuccess.
  • Фактическая сумма может отличаться от DesireSum, которую вы передавали в /prepare_topup — при finalSuccess ориентируйтесь именно на sum.

Webhook о смене статуса (опционально)

Если в /prepare_topup передан WebhookStatusUrl, то при каждой смене статуса операции мы отправляем на этот URL POST-запрос с телом:

{
  "OrderID": "123456",
  "Status": "finalSuccess",
  "sum": 100500.01
}
ПолеОписание
OrderIDИдентификатор операции (тот же, что и RegisteredUid). Регистр важен.
StatusЗначения те же, что в таблице выше: awaitingConfirmTopupation, pending, finalSuccess, finalFailed. Регистр важен.
sumФактическая сумма. Присутствует, когда уже известна (ненулевая), и отсутствует, пока неизвестна; может отличаться от DesireSum. Решение о зачислении принимайте по Status, а не по наличию sum.
  • Webhook шлётся только при фактической смене статуса — один и тот же статус повторно не отправляется.
  • URL должен быть валидным http/https — иначе /prepare_topup вернёт ошибку.
  • Webhook — это дополнение к polling, а не замена: гарантию даёт /topup_status.

Повторы

При ошибочном ответе запрос можно повторить через 5 секунд.

Copyright © 2026