Начало работы

Базовый URL и правила авторизации, обязательные для каждого запроса.

BASE_URL https://api.speend.io

Два 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
speend