Robokassa API: Проверить, оплачен ли заказ

Сценарий из mcp-everything. Актуально на 2026-10-24.

Узнать состояние операции, если уведомление не пришло или нужно перепроверить.

  1. Посчитай подпись: хэш строки MerchantLogin:InvoiceID:Пароль#2.
  2. Запроси состояние: GET /Merchant/WebService/Service.asmx/OpStateExt с MerchantLogin, InvoiceID и Signature.
  3. Ответ — XML. Сначала смотри Result/Code: 0 — запрос выполнен. Затем State/Code: 100 — операция оплачена.
  4. Интерфейс работает только в боевом режиме: тестовые платежи он не возвращает.
SIG=$(printf '%s' 'demo-shop:1042:<Пароль#2>' | md5sum | cut -d' ' -f1)
curl -G https://auth.robokassa.ru/Merchant/WebService/Service.asmx/OpStateExt \
  -d MerchantLogin=demo-shop -d InvoiceID=1042 -d Signature=$SIG

Базовые URL

Авторизация

Тип: Другое

Стандартной схемы авторизации нет: каждый запрос подписывается контрольной суммой, состав которой зависит от метода. В личном кабинете магазина берутся MerchantLogin, Пароль#1, Пароль#2 (и Password3 для API возвратов), там же выбирается алгоритм хэша (в примерах документации — MD5). Пароль#1 используется для подписи запросов на оплату, Пароль#2 — для проверки уведомлений и XML-интерфейсов. Invoice API и Refund API принимают тело в виде JWT, подписанного HMAC.

Подпись запуска оплаты: MerchantLogin:OutSum:InvId:модификаторы:Пароль#1:Shp_*. Пример из документации (PHP, MD5):

$signature = md5("$merchantLogin:$outSum:$invId:$password1");

Методы сценария

GET /Merchant/WebService/Service.asmx/OpStateExt — Состояние операции

Возвращает состояние оплаты и реквизиты операции в XML. Работает только в основном режиме, тестовые платежи не возвращает. Подпись: MerchantLogin:InvoiceID:Пароль#2.

Параметр Где Тип Обяз. Описание
MerchantLogin query string да Идентификатор магазина
InvoiceID query integer да Номер счёта магазина
Signature query string да Контрольная сумма в шестнадцатеричном формате

Пример ответа:

<OperationStateResponse>
  <Result><Code>0</Code></Result>
  <State>
    <Code>100</Code>
    <RequestDate>2026-07-22T10:00:00+03:00</RequestDate>
    <StateDate>2026-07-22T09:59:00+03:00</StateDate>
  </State>
</OperationStateResponse>

Нюансы

Другие сценарии


Если этого недостаточно — официальная документация: https://docs.robokassa.ru/ru/quick-start Вся интеграция одним документом: https://mcp-everything.ru/integrations/robokassa.md