Запросы и ошибки
Адреса API v2, токен в заголовке Authorization, форматы полей и коды ошибок
Адреса
| Среда | Base URL |
|---|---|
| Боевая | https://api.parallel-pay.com |
| Тестовая | https://testnet.api.parallel-pay.com — см. Тестовая среда |
Все адреса API v2 начинаются с /api/v2.
Токен
Передавайте токен в каждом запросе в заголовке Authorization:
Authorization: Bearer keyId:secretТокен — строка вида keyId:secret, целиком, как её выдал личный кабинет или вход через браузер.
Делить её по двоеточию не нужно.
Проверьте токен первым запросом — он возвращает условия вашего магазина:
curl https://api.parallel-pay.com/api/v2/sla \
-H "Authorization: Bearer $PARALLEL_TOKEN"HTTP Status: 200 OK
{
"testnet": false,
"in": {
"receipt_delivery": ["EMAIL", "UPLOAD"],
"pay_minutes": 15,
"review_minutes": 15,
"proof_minutes": 60,
"proof_options": ["VIDEO", "FINANCIAL_RESPONSIBILITY"]
}
}Что значат поля — на странице Условия магазина и банки.
Формат
- Тело запроса и ответа — JSON. Исключение — загрузка файла:
multipart/form-data. - Поля —
snake_case. - Значения из закрытого списка — заглавными:
"PAID","SBP","UPLOAD". - Коды банков — строчными:
"sberbank","tbank". Список банков пополняется:GET /api/v2/banks. - Суммы — строками в рублях, без копеек, если их нет:
"1000","999.5". - Время — ISO 8601 по Москве:
"2026-11-09T12:00:00+03:00". - Телефон — с плюсом:
"+79001234567". - Поля, которого в текущем состоянии нет, в ответе тоже нет:
nullвместо него не приходит.nullбывает только вtransfer— там, где значение не удалось прочитать из файла.
Ошибки
Ответ с любым кодом, кроме 2xx, выглядит так:
HTTP Status: 409 Conflict
{
"error": {
"code": "INVALID_STATUS",
"message": "Отменить можно только заявку в статусе IN_PROGRESS без файлов"
}
}Ветвите код интеграции по error.code. error.message — пояснение по-русски для человека.
| HTTP | code | Когда |
|---|---|---|
| 400 | VALIDATION_ERROR | тело или параметры запроса не прошли проверку |
| 401 | UNAUTHORIZED | нет токена или токен неверный |
| 403 | SHOP_NOT_ACTIVATED | магазин ещё не активирован |
| 403 | RECEIPT_DELIVERY_DISABLED | этот способ получения чека не подключён магазину |
| 403 | PROOF_OPTION_DISABLED | этот вид допа не подключён магазину (см. proof_options в GET /api/v2/sla) |
| 404 | NOT_FOUND | заявки или адреса нет |
| 404 | WEBHOOK_NOT_SET | вебхук ещё не настроен |
| 405 | METHOD_NOT_ALLOWED | этот метод у адреса не поддерживается |
| 409 | INVALID_STATUS | действие недоступно в текущем статусе заявки |
| 409 | RECEIPT_DELIVERY_IS_EMAIL | чек по этой заявке клиент присылает на почту, загрузка недоступна |
| 409 | FINANCIAL_RESPONSIBILITY_ALREADY_TAKEN | под ФО по этой заявке уже взята другая сумма |
| 413 | FILE_TOO_LARGE | файл больше допустимого |
| 415 | UNSUPPORTED_FILE | формат файла не поддерживается |
| 503 | NO_REQUISITES | сейчас нет реквизитов на эту сумму, повторите запрос позже с тем же internal_id |
| 503 | UNAVAILABLE | временный сбой, повторите запрос позже |
На 503 повторите тот же запрос позже. Повтор создания заявки с тем же internal_id не создаст вторую заявку.