Протокол XML v2.9
XML API платформы Callisto Mobile Payment. Все запросы отправляются методом POST с XML-телом на один адрес; тип операции определяется именем дочернего элемента внутри <Request> — например <CreateInvoiceRequest>.
Sandbox
| Адрес API | https://pay-sandbox.digitalspb.com |
| Справочник и MCP | https://i-free.money/developers/ru/sandbox |
| Параметр | Значение |
|---|---|
| Content-Type | text/xml |
| Метод | всегда POST, тип операции — по имени дочернего элемента <Request> |
Версия протокола: 2.
Обязательные HTTP-заголовки
Callisto-Protocol-Version: 2
SignatureVersion: 3
Content-Type: text/xmlСтруктура запроса
Каждый запрос обёрнут в корневой элемент <Request> с обязательным блоком аутентификации <Header>. Ответ приходит в корневом <Response> с полями ResultCode и ResultDescription.
<?xml version="1.0" encoding="utf-8"?>
<Request>
<Header>
<Authentication>
<Login>demo_login</Login>
<NowUtc>20210329200008</NowUtc>
<Signature>802c4e0aa711a24888ea571dd8df6608d03e74bfe7cf8be040fb8b9aba8d3a4f</Signature>
</Authentication>
<RequestAttempt>1</RequestAttempt>
</Header>
<!-- тело операции: <CreateInvoiceRequest>, <GetInvoiceRequest>, … -->
</Request>Подпись
Подпись передаётся в Header/Authentication/Signature. Дополнительно применяется whitelist IP-адресов на уровне ProjectID.
Signature = LOWERCASE(HMACSHA256(Password, Login + LOWERCASE(HMACSHA256(Password, NowUtc))))NowUtc в XML-протоколе имеет формат yyyyMMddHHmmss — без разделителей и без Z, в отличие от ISO 8601 в JSON API. Отклонение от системного времени более 20 минут даёт ResultCode=101.
Расчёт подписи XML
Sandbox
curl
LOGIN=demo_login
PASSWORD=demo_password
NOW=$(date -u +%Y%m%d%H%M%S)
INNER=$(printf '%s' "$NOW" \
| openssl dgst -sha256 -hmac "$PASSWORD" | awk '{print $NF}')
SIG=$(printf '%s%s' "$LOGIN" "$INNER" \
| openssl dgst -sha256 -hmac "$PASSWORD" | awk '{print $NF}')Группы операций
| Группа | Операции | Назначение |
|---|---|---|
| InvoiceManagement | 5 | Счета — создание, авторизация, получение, отмена, возврат |
| CustomerContract | 3 | Контракты клиента — создание, авторизация, отмена |
| CustomerBilling | 2 | Проверка поддержки биллинга и доступные методы оплаты |
Вне групп спека описывает ещё две операции — ConfirmPaymentTransaction и SendInvoiceContent. Песочница их не реализует: запрос с таким корневым элементом получает HTTP 400 и ResultCode 400 с текстом Unknown operation element.