Перейти к основному содержимому

XML интерфейсы

Об XML интерфейсах

XML интерфейсы позволяют создать развёрнутый информационный раздел Robokassa для клиентов интернет-магазина и выстроить более глубокую интеграцию.

Запросы можно выполнять методом HTTP GET или HTTP POST, а также через вызовы XML web-сервиса.

  • Базовый URL: https://auth.robokassa.ru/Merchant/WebService/Service.asmx/<название метода>

Структура ответа

Любой ответ возвращается в формате XML с общей структурой результата:

<?xml version="1.0" encoding="utf-8" ?>
...
<Result>
<Code>integer</Code>
<Description>string</Description>
</Result>
...
<!-- Запрошенные данные (возвращаются только при успешном выполнении) -->
Required data
...
...

Информация об элементе Result

ПараметрЗначение
ResultСодержит информацию о результате обработки запроса и включает элементы Code и Description.
CodeРезультат выполнения запроса. При ошибке дополнительные элементы с данными не возвращаются.
DescriptionТекстовое описание результата.

Возможные значения Result.Code

КодОписание
0Запрос обработан успешно.
2Магазин с указанным MerchantLogin не найден или не активирован.
1000Внутренняя ошибка сервиса.

Интерфейс получения списка валют

Метод возвращает список валют, доступных для оплаты заказов, и может использоваться для заполнения параметра IncCurrLabel или отображения доступных вариантов оплаты.

  • Название метода: GetCurrencies
  • URL: https://auth.robokassa.ru/Merchant/WebService/Service.asmx/GetCurrencies

Пример GET-запроса

https://auth.robokassa.ru/Merchant/WebService/Service.asmx/GetCurrencies?MerchantLogin=demo&Language=ru

Параметры запроса

ПараметрЗначение
MerchantLoginИдентификатор магазина (строка).
LanguageЯзык локализованных значений (en — английский, ru — русский).

Структура ответа

<CurrenciesList xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://merchant.roboxchange.com/WebService/">
<Result>
<Code>integer</Code>
</Result>
<Groups>
<Group Code="string" Description="string">
<Items>
<Currency Label="string" Alias="string" Name="string">
...
</Currency>
</Items>
</Group>
...
</Groups>
</CurrenciesList>

Описание возвращаемых данных

ПараметрЗначение
GroupsНабор групп валют для удобного отображения в интерфейсе.
CodeКод группы.
DescriptionТекстовое описание группы.
ItemsСписок валют в группе.
LabelКод валюты.
NameНаименование валюты.

Получение расширенной информации об операции

Интерфейс возвращает детальные сведения о состоянии оплаты и реквизитах операции. Учтите, что операция инициируется после подтверждения платёжных реквизитов пользователя, поэтому данные могут отсутствовать сразу после перехода на оплату.

  • Название метода: OpStateExt
  • URL: https://auth.robokassa.ru/Merchant/WebService/Service.asmx/OpStateExt

Пример GET-запроса

https://auth.robokassa.ru/Merchant/WebService/Service.asmx/OpStateExt?MerchantLogin=demo&InvoiceID=1932809606&Signature=9e2bf657364d25acf5905b4ac4f50e39

Параметры запроса

ПараметрЗначение
MerchantLoginИдентификатор магазина (строка).
InvoiceIDНомер счёта магазина (целое число).
SignatureКонтрольная сумма (хэш в шестнадцатеричном формате). Рассчитывается по формуле MerchantLogin:InvoiceID:Пароль#2, где Пароль#2 задаётся в технических настройках магазина.

Signature допускает символы 0-9, A-F и регистр не имеет значения. Параметры в строке подписи разделяются двоеточием :.

Структура ответа

<OperationStateResponse xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://merchant.roboxchange.com/WebService/">
<Result>
<Code>integer</Code>
</Result>
<State>
<Code>integer</Code>
<RequestDate>datetime</RequestDate>
<StateDate>datetime</StateDate>
</State>
<Info>
<IncCurrLabel>string</IncCurrLabel>
<IncSum>decimal</IncSum>
<IncAccount>string</IncAccount>
<PaymentMethod>
<Code>string</Code>
</PaymentMethod>
<OutCurrLabel>string</OutCurrLabel>
<OutSum>decimal</OutSum>
<OpKey>string</OpKey>
<BankCardRRN>string</BankCardRRN>
</Info>
<UserField>
<Field>
<Name>string</Name>
<Value>string</Value>
</Field>
</UserField>
</OperationStateResponse>

Описание возвращаемых параметров

Элемент Result

ПараметрЗначение
ResultСодержит итог выполнения запроса.
CodeРезультат обработки запроса.
Возможные значения Result.Code
КодОписание
0Запрос обработан успешно.
1Неверная цифровая подпись запроса.
2Магазин с указанным MerchantLogin не найден или не активирован.
3Операция с указанным InvoiceID не найдена.
4Найдено две операции с одним InvoiceID (обычно из-за тестовой оплаты с тем же номером).
1000Внутренняя ошибка сервиса.

Элемент State

ПараметрЗначение
StateТекущее состояние оплаты.
CodeКод состояния операции.
RequestDateДата и время ответа на запрос. Формат ISO 8601 (YYYY-MM-DDThh:mm:ss.fffffff;ZZZZZ).
StateDateДата и время последнего изменения состояния. Формат аналогичен RequestDate.

Элементы RequestDate и StateDate используют расширенный формат ISO 8601:

  • YYYY — год (4 цифры).
  • MM — месяц (2 цифры).
  • DD — день месяца (2 цифры).
  • T — разделитель даты и времени.
  • hh:mm:ss — время в 24-часовом формате.
  • fffffff — дробные доли секунды (до 7 цифр).
  • ZZZZZ — смещение часового пояса относительно UTC (+hh:mm или -hh:mm).
Возможные значения State.Code
КодОписание
5Операция инициализирована, оплата ещё не подтверждена.
10Операция отменена, средства от покупателя не получены или платеж выполнен после истечения времени ожидания.
20Операция находится в статусе HOLD (используется при холдировании средств).
50Средства получены от покупателя, выполняется зачисление на счёт магазина.
60Отказ в зачислении средств на счёт магазина, деньги возвращены покупателю.
80Исполнение операции приостановлено из-за внештатной ситуации или проверки безопасности.
100Платёж проведён успешно, средства зачислены и отправлено уведомление.

Элемент Info

ПараметрЗначение
InfoСодержит данные об оплате счёта.
IncCurrLabelВалюта, которой платил клиент.
IncSumСумма в валюте IncCurrLabel.
IncAccountСчёт покупателя (кошелёк или номер карты), через который производилась оплата.
PaymentMethod.CodeКод выбранного способа оплаты.
OutCurrLabelВалюта, в которой магазин получает средства.
OutSumСумма, зачисленная магазину, в валюте OutCurrLabel.
OpKeyИдентификатор операции.
BankCardRRNУникальный идентификатор банковской транзакции.

Элемент UserField

ПараметрЗначение
UserFieldПользовательские параметры, переданные при старте платежа.
Field.NameИмя пользовательского параметра.
Field.ValueЗначение пользовательского параметра.

Дополнительно о пользовательских параметрах см. раздел Параметры скрипта.