📦 Приём платежей — API документация
🔗 Метод запроса
POST /api/v2/payments/
📤 Параметры запроса (Request Body)
| Параметр | Обязат. | Тип | Описание |
|---|---|---|---|
sum |
✅ | number | Сумма платежа |
type |
✅ | string | Тип перевода: to_sbp_number, to_card_number, to_account_number, to_account_number_qr, to_transgran_number, to_transgran_sbp, to_yandex_tips, nspk, to_mobile_commerce, to_quasi_ecom, to_bt_sbp, to_bt_card_number, to_donation_url |
bank |
❌ | string | Запрашиваемый банк (Sber, Tinkoff, Alfa, Ozon, Vtb и т.д.) |
is_intrabank_transfer |
❌ | boolean | Внутрибанковский перевод (Озон→Озон, Альфа→Альфа, Сбер→Сбер) |
client_id |
❌ | string | ID клиента |
outter_id |
❌ | string | Внешний ID вашей системы |
geo |
❌ | string | Гео (Россия, Азербайджан, Казахстан, Узбекистан, Кыргызстан). По умолчанию: Россия |
is_allow_another_amount |
❌ | boolean | Разрешить клиенту менять сумму |
callback_url |
❌ | string | URL для отправки коллбеков |
🔄 Статусы платежей
| Статус | Описание |
|---|---|
created |
Заявка создана, ожидает оплаты |
failed |
Платёж отменён |
refund |
Платёж возвращён |
success |
Платёж успешно завершён |
deleted |
Платёж перевели в статус удалено |
Дополнительные antifraud-поля
Следующие поля используются для антифрод-проверок. Если данный функционал включён (default=false), эти поля становятся обязательными:
| Поле | Тип | Описание |
|---|---|---|
client_id |
string |
Идентификатор клиента |
client_ip |
string |
IP-адрес клиента |
device_type |
string |
Тип устройства: mobile или pc |
os |
string |
Операционная система устройства |
browser |
string |
Браузер клиента |
vpn |
boolean |
Признак использования VPN: true / false |
| --- |
⏱️ Время жизни заявки (TTL)
Заявки на приём средств имеют ограниченное время жизни.
- Если заявка не была оплачена до истечения TTL, её статус автоматически изменяется на
failed. - TTL по умолчанию — 7 минут.
Таблица методов оплаты
Метод (type) |
Название | Краткое описание |
|---|---|---|
to_sbp_number |
Оплата по СБП | Стандартный приём платежа по номеру телефона через СБП. |
to_card_number |
Оплата на карту | Приём платежа по реквизитам банковской карты. |
to_account_number |
Оплата на банковский счёт | Приём платежа по номеру банковского счёта. |
to_account_number_qr |
Transgran Вьетнам | Трансграничный платёж для Вьетнама с возвратом qr_code_link в response body. |
to_transgran_number |
Transgran по номеру | Трансграничный перевод по номеру без указания geo. |
to_transgran_sbp |
Transgran по СБП | Трансграничный перевод через СБП без указания geo. |
to_yandex_tips |
Yandex Tips | Метод оплаты с возвратом данных для чаевых, включая tips_id, nspk_url и sbp_phone_number. |
nspk |
NSPK (QR-код) | Метод оплаты через НСПК с возвратом QR-кода или ссылки на оплату. |
to_mobile_commerce |
Мобильная коммерция | Приём платежа через сценарий мобильной коммерции, вывод аналогичен SBP. |
with_qr_code |
QR-НСПК | Метод оплаты с возвратом qr_code_link и account_number. |
to_donation_url |
Пожертвования | Метод оплаты пожертвования с возвратом ссылки donation_url. |
to_bt_sbp |
Белый Треугольник СБП | Метод оплаты, в ответе которого возвращается sbp_phone_number. |
to_bt_card_number |
Белый Треугольник Карта | Метод оплаты, в ответе которого возвращается card_number. |
Дополнительные сценарии
| Поля | Сценарий | Описание |
|---|---|---|
is_intrabank_transfer=true |
Внутрибанковский перевод | Используется для переводов внутри одного банка, например Альфа→Альфа, Озон→Озон, Сбер→Сбер. |
✅ Обычный платеж по SBP
🔄 Опрос статуса заявки (Polling)
Polling нужен для того, чтобы вы могли самостоятельно проверить текущий статус заявки через API.
| Bash | |
|---|---|
Отмена платежа
Отмена платежа доступна только в том случае, если платеж находится в статусе «Создан».
Для отмены платежа необходимо отправить DELETE запрос на урл
Пример запроса с antifraud
✅ Пример успешного ответа (200 OK)
Описание полей ответа
Ниже приведено описание всех параметров, которые возвращаются при создании или получении платежа.
Основные поля платежа
| Поле | Тип | Описание |
|---|---|---|
| id | number | Уникальный идентификатор платежа в системе. |
| sum | string | Сумма платежа |
| card_number | string / null | Номер карты, если используется банковская карта. |
| bank | string | Короткое название банка или платежного сервиса. |
| russified_name | string | Полное русское название банка. |
| bik | string / null | БИК банка, |
| type | string | Тип операции(выше был полный список) |
| status | string | Текущий статус платежа |
| qr_code | string / null | URL с изображением QR-кода |
| qr_code_link | string / null | URL с изображением QR-кода |
| currency | string | Валюта платежа. Например: "Рубль". |
| full_name | string | Полное имя создателя реквизита |
| sbp_phone_number | string | Телефон получателя для оплаты через СБП. |
| client_id | string / null | Идентификатор клиента |
| client_ip | string / null | IP-адрес клиента, который передали при создание платежа. |
| outter_id | string / null | Внешний ID транзакции от мерчанта |
| project | string / null | Идентификатор проекта мерчанта, внутри которого создан платеж. |
| outter_id_from_form | string / null | Внешний ID, переданный через форму (если используется форма оплаты). |
| tips_id | number / null | Идентификатор чаевых, если платеж включает tips. |
| nspk_url | string / null | Прямая ссылка НСПК на оплату |
| work_country | string | Страна, в которой обрабатывается платеж. |
| redirect_url | string / null | URL для перенаправления пользователя после оплаты. |
| callback_url | string / null | URL вашего сервера для получения callback-уведомлений. |
| deeplink_url | string / null | Ссылка-deeplink |
Блок merchant_payment_detail
Этот объект содержит детальную информацию об обработке платежа со стороны мерчанта и конвертации валюты.
| Поле | Тип | Описание |
|---|---|---|
| id | number | ID детали платежа. |
| course | string | Курс валюты |
| course_with_rate | string | Итоговый курс с учётом rate. |
| amount_in_usdt | string | Сумма в USDT. |
| accumulated_rate | string | Финальная ставка. |
| amount_with_rate | string | Сумма со ставкой. |
| amount_in_usdt_with_rate | string | Сумма со ставкой USDT. |
2️⃣ Перевод на карту (to_card_number)
Отличающее поле:
| JSON | |
|---|---|
3️⃣ Внутрибанковский перевод (Моно → Моно)
Вывод такой же, как при SBP.
4️⃣ Озон → Озон
| Bash | |
|---|---|
Вывод как у to_card_number.
5️⃣ Альфа → Альфа
| Bash | |
|---|---|
Вывод как у SBP.
6️⃣ Перевод на банковский счет (to_account_number)
| Bash | |
|---|---|
8️⃣ Перевод на банковский счёт с выводом QR-кода (to_account_number)
Метод предназначен для перевода средств на банковский счёт с возможностью получения QR-кода для оплаты.
⚠️ Ограничение: На данный момент метод поддерживается только банком Alfa.
Пример запроса
| Bash | |
|---|---|
Ответ
В ответе может присутствовать только одно из полей, связанных с QR-кодом:
qr_code— прямая ссылка на изображение QR-кодаqr_code_link— ссылка на страницу с QR-кодом
❗ Важно:
Если поле qr_code заполнено, то qr_code_link(пример: https://link.api.m10.az/cEXRgxicnafV8wvT1234") будет иметь значение null, и наоборот.
| JSON | |
|---|---|
9️⃣ Transgran по номеру (to_transgran_number)
Для трансграна гео не указывается
Если дополнительное поле
work_countryне указано, система автоматически выдаст свободный трансгран.
Если поле передано, подбор будет выполнен с учетом указанной страны.
| Bash | |
|---|---|
9️⃣ Transgran Вьетнам
| Bash | |
|---|---|
| JSON | |
|---|---|
🔟 Transgran по СБП (to_transgran_sbp)
Для трансграна гео не указывается
Если дополнительное поле
work_countryне указано, система автоматически выдаст свободный трансгран.
Если поле передано, подбор будет выполнен с учетом указанной страны.
| Bash | |
|---|---|
Вывод как у SBP.
1️⃣1️⃣ Yandex Tips (to_yandex_tips)
Отличающее поле:
| JSON | |
|---|---|
1️⃣2️⃣ NSPK (QR-код)
| Bash | |
|---|---|
Отличающее поле:
| JSON | |
|---|---|
1️⃣3️⃣ Мобильная коммерция (to_mobile_commerce)
| Bash | |
|---|---|
Вывод аналогичен SBP.
1️⃣4️⃣ QR-нспк (with_qr_code)
| Bash | |
|---|---|
1️⃣5️⃣ NSPK (nspk) — оплата через форму
Данный метод оплаты возвращает ссылку на форму NSPK, где клиенту необходимо ввести паспортные данные для завершения платежа.
⚠️ Важные моменты
- Поле
client_idобязательно — без него метод не будет работать. - Перед интеграцией необходимо согласовать с бизнесом, что используется именно этот способ оплаты (
nspkс формой). - Клиент завершает оплату по ссылке, которую вы получаете в ответе.
📌 Пример запроса
В ответе вы получите ссылку на форму NSPK:
🔗 Что делать дальше
Передайте значение nspk_url клиенту и перенаправьте его на эту страницу для ввода паспортных данных и завершения платежа.
1️⃣5️⃣ Запрос по монголии
| Bash | |
|---|---|
1️⃣6️⃣ Пожертвования
| Bash | |
|---|---|
В ответе вы получите ссылку оплаты пожертвования:
1️⃣7️⃣ БТ СБП
| Bash | |
|---|---|
В ответе вы получите номер карты:
1️⃣8️⃣ БТ Карта
| Bash | |
|---|---|
В ответе вы получите номер телефона:
Ошибки
| Код | Ответ | Причина |
|---|---|---|
| 400 | Bad Request |
Ошибка в теле запроса или отсутствуют обязательные параметры. |
| 400 | {"error": "No available cards.", "code": 40005} |
В данный момент нет доступных карт для приема платежа. |
| 400 | {"error": "Payment creation failed", "code": "30002"} |
Общая ошибка при создании платежа на сервере. |
| 401 | Unauthorized |
Неверные или отсутствующие учетные данные (Authorization Header). |
| 403 | {"error": {"code": 10401, "msg": "Учетные данные не были предоставлены.", ...}} |
Отсутствует или недействителен токен авторизации. |
| 403 | {"error": "Client is blocked. Reason: spam", "code": 50000} |
Аккаунт клиента заблокирован. |
| 404 | Not Found |
Ресурс не найден. |
| 500 | Internal Server Error |
Внутренняя ошибка сервера. |
| 500 | {"error": "Request timed out. The server took too long to respond.", "code": 50020} |
Таймаут запроса: сервер не успел обработать запрос вовремя. |
Примечание о таймауте
Если запрос обрабатывается дольше установленного лимита (X-Request-Timeout), сервер вернёт ошибку с кодом 50020.