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

Коды ошибок

API возвращает ошибки в JSON формате.

Формат ответа

{
"error": "PAY_002",
"message": "Invalid request body"
}

Ошибки авторизации (AUTH)

КодHTTPОписание
AUTH_001401Неверный API key
AUTH_002401Неверная подпись запроса
AUTH_003401Мерчант не найден
AUTH_004401Отсутствует заголовок X-Identity
AUTH_005403Мерчант заблокирован
AUTH_006401Отсутствует заголовок X-Signature
AUTH_007403Терминал отключен

Ошибки платежей (PAY)

КодHTTPОписание
PAY_001500Внутренняя ошибка
PAY_002400Неверные параметры запроса
PAY_003409Заказ с таким ext_id уже существует
PAY_004503Нет доступных реквизитов
PAY_005429Слишком много платежей с одинаковой суммой
PAY_006404Платёж не найден
PAY_007400Платёж нельзя отменить
PAY_008400Платёж нельзя подтвердить
PAY_009400Файл слишком большой (макс 10MB)

Ошибки выводов (WDR)

КодHTTPОписание
WDR_001400Неверные параметры запроса
WDR_002400Недостаточно средств
WDR_003404Вывод не найден

Ошибки апелляций (DIS)

КодHTTPОписание
DIS_001400Апелляцию можно открыть только для CANCELLED
DIS_002409Апелляция уже существует
DIS_003400Отменить можно только из статуса DISPUTE

Системные ошибки (SYS)

КодHTTPОписание
SYS_001500Внутренняя ошибка

Обработка ошибок

JavaScript

async function createPayment(data) {
const response = await fetch('https://api.settler.pw/api/v1/payments', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Identity': apiKey,
'X-Signature': signature
},
body: JSON.stringify(data)
});

if (!response.ok) {
const error = await response.json();

switch (error.error) {
case 'AUTH_001':
case 'AUTH_002':
throw new Error('Ошибка авторизации: проверьте ключи');
case 'PAY_003':
throw new Error('Заказ уже существует');
case 'PAY_004':
throw new Error('Нет доступных реквизитов, попробуйте позже');
case 'WDR_002':
throw new Error('Недостаточно средств для вывода');
default:
throw new Error(error.message);
}
}

return response.json();
}

Python

import requests

def create_payment(data):
response = requests.post(
'https://api.settler.pw/api/v1/payments',
json=data,
headers={
'X-Identity': api_key,
'X-Signature': signature
}
)

if not response.ok:
error = response.json()
code = error.get('error')

if code in ['AUTH_001', 'AUTH_002']:
raise Exception('Ошибка авторизации: проверьте ключи')
elif code == 'PAY_004':
raise Exception('Нет доступных реквизитов')
elif code == 'WDR_002':
raise Exception('Недостаточно средств для вывода')
else:
raise Exception(error.get('message'))

return response.json()