Начало работы
Базовый URL и правила авторизации, обязательные для каждого запроса.
Два API-ключа
В личном кабинете, в разделе API ключи, генерируются отдельно два ключа — они не взаимозаменяемы.
| Ключ | Используется для |
|---|---|
| Основной ключ | Все методы Payments API — payment/createStaticWallet, payment/createPayment, payment/info |
| Ключ выводов | Все методы Payouts API — payout/create, payout/getStatus |
Оба ключа подставляются в один и тот же заголовок key — значение зависит от вызываемого метода. Ключ, не подходящий типу метода (например, ключ выводов на payment/*), не пройдёт авторизацию.
Merchant UUID можно найти в личном кабинете в разделе "Мерчант".
Content-Type: application/json
merchant: 019e****-****-****-****-*******69cab
sign: <md5(base64(тело) . основной ключ или ключ выводов)>
// тело — строка JSON ровно в том виде, в каком она отправлена
sign = MD5( base64( тело ) . api_key )
// запрос без тела: подписывается пустая строка
sign = MD5( base64( '' ) . api_key ) // то же, что MD5( api_key )
// PHP
$sign = md5(base64_encode($jsonBody) . $apiKey);
Формат ошибок и кодов ответа
В API встречаются несколько форматов ответа об ошибке в зависимости от типа проблемы. Все сообщения об ошибках возвращаются на английском языке.
| Код | Формат | Когда |
|---|---|---|
| 401 | {"error": "No access", "data": []} | Любая проблема авторизации: подпись sign не сошлась или отсутствует (как и устаревший key), отсутствие заголовка merchant, несовпадение ключа и мерчанта, ключ выводов передан на метод Payments (и наоборот) |
| 404 | {"status": false, "errors": ["строка"]} | Объект не найден. Например, выплата с переданным order_id отсутствует у мерчанта (payout/getStatus) |
| 422 | {"status": false, "errors": ["строка", ...]} | Ошибка валидации полей или бизнес-логики. Единый формат для всех методов Payments и Payouts errors |