Введение
REST API платформы Arbitpay для работы со сделками и справочником банков.
Этот раздел задаёт общие правила работы с API. Начните с него, если нужно понять аутентификацию, структуру запросов и формат ответов.
Базовый URL
https://arbitpay.online/apiСтруктура пути запроса всегда одинакова:
/api/{resource}/{action}resource— раздел API (banks,client,deals);action— действие внутри раздела (list,balance,get,create,update).
Аутентификация
Все запросы требуют заголовок Authorization с Bearer-токеном:
Authorization: Bearer <API_KEY>Ключ выдаётся клиенту (мерчанту) на стороне платформы. По ключу определяется клиент, от имени которого выполняются все запросы — его сделки, баланс и маржа.
| Раздел | Доступ |
|---|---|
banks | любой валидный ключ |
client | только клиент (по своему api_key) |
deals | только клиент; сделки видны и изменяются только их владельцем |
Ошибки аутентификации:
code | Причина |
|---|---|
AUTH_HEADER_NOT_FOUND | Отсутствует заголовок Authorization |
API_KEY_NOT_FOUND | В заголовке нет токена |
INVALID_API_KEY | Токен не найден среди валидных ключей |
ACCESS_DENIED | Недостаточно прав или чужой ресурс |
Формат запроса
- GET — параметры передаются в строке запроса (
?uuid=...). - POST — запрос передаёт JSON-тело (
Content-Type: application/json).
Если JSON-тело невалидно, вернётся ошибка INVALID_JSON.
Формат сумм
Денежные суммы (amount) передаются числом с точкой в качестве десятичного разделителя и без разделителя тысяч:
39772.64 ✅
39.772,64 ❌
39,772.64 ❌Хранение — decimal(15,2) (2 знака после запятой).
Формат ответа
Ответ всегда возвращается в JSON. В каждый ответ добавляется поле request_id — идентификатор запроса, удобно указывать при обращении в поддержку.
Успех:
{
"status": "success",
"code": "SUCCESS",
"data": {},
"message": "Human-readable message.",
"request_id": "8f14e45f-cea1-4a2c-9b7a-1d2e3f4a5b6c"
}Ошибка:
{
"status": "error",
"code": "ERROR_CODE",
"message": "Human-readable message.",
"request_id": "8f14e45f-cea1-4a2c-9b7a-1d2e3f4a5b6c"
}Поле status (success / error) и request_id есть всегда. Поля code, data, message присутствуют в зависимости от эндпоинта.
Отладка
Если добавить к запросу параметр ?debug, в ответ вернётся блок debug с информацией о запросе: версия API, заголовки, сырое тело, IP, request_id и другие поля.
Быстрый пример
curl --request GET \
--url "https://arbitpay.online/api/banks/list" \
--header "Authorization: Bearer <API_KEY>"