Перейти к содержанию

Методы оплаты

Метод оплаты задаётся полем payment_method в POST /api/v1/payments. У всех методов один и тот же запрос, одни статусы, callback-и и правила повторов — отличаются реквизит, который получает плательщик, и то, как он платит.

Все методы

payment_method Название Что получает плательщик (requisite) Как платит Страница
sbp СБП номер телефона: +79991234567 «Перевод по СБП» по номеру телефона Приём по СБП
card_transfer Перевод на карту номер карты: 2200123456789010 «Перевод на карту» по номеру карты Приём по карте
cross_border_sbp Трансгран СБП номер телефона в другой стране перевод по номеру телефона за рубеж Трансграничный перевод
cross_border_card Трансгран карта номер карты в другой стране перевод на карту за рубеж Трансграничный перевод
nspk QR НСПК ссылка на QR НСПК (и/или картинка QR) сканирует QR в приложении банка QR НСПК
account_transfer Перевод на счёт номер банковского счёта перевод по номеру счёта Перевод на счёт
viet_qr Viet QR строка VietQR (и ссылка на картинку QR) сканирует QR в приложении вьетнамского банка, платит донгами Viet QR
mobile_topup Пополнение мобильного номер телефона, оператор — в requisite_bank пополняет баланс телефона Пополнение мобильного
card_matching Перевод на карту (матчинг) номер карты перевод на карту, затем вы присылаете чек Матчинг
sbp_matching СБП (матчинг) номер телефона перевод по СБП, затем вы присылаете чек Матчинг

Значения payment_method — только из этой таблицы. Метода by_map больше нет: это был дубль card_transfer — используйте card_transfer.

Матчинг

card_matching и sbp_matching — методы с матчингом: провайдер зачисляет оплату только по чеку плательщика. После перевода пришлите файл чека в POST /api/v1/payments/{id}/receipt. Без чека заявка будет отменена по сроку. Подробно — на странице Матчинг.

Поля запроса по методам

Запрос у всех методов один — POST /api/v1/payments, поля описаны в разделе Приём по СБП → Поля запроса. Обязательные поля у всех методов: merchant_payment_id, amount, payment_method. Остальные — необязательные.

payment_method Что важно в запросе Что ещё в ответе, кроме requisite
sbp, card_transfer bank_code — банк плательщика, если нужен реквизит под него requisite_bank, holder_name
cross_border_sbp, cross_border_card заявка российская (RU, RUB); bank_code — банк плательщика из geo_code, страну получателя не передают cross_border_country — страна реквизита
nspk — qrcode_link (https://qr.nspk.ru/…) и/или qrcode_image
account_transfer bank_code и is_intrabank: true — перевод внутри банка requisite_bank, holder_name
viet_qr заявка российская (RU, RUB), amount — в рублях qrcode_link — картинка QR, requisite_bank, holder_name
mobile_topup — requisite_bank — оператор связи
card_matching, sbp_matching как у card_transfer / sbp как у card_transfer / sbp; после оплаты — чек

deeplink_url — ссылка в приложение банка — может прийти у любого метода, если она есть. qrcode_link, deeplink_url, cross_border_country и qrcode_image приходят, только когда у них есть значение. Все поля ответа — в разделе Приём по СБП → Ответ и в справочнике API.

Страны и валюты

Страна и валюта заявки — поля geo_code и currency. Без них заявка создаётся для России в рублях (RU, RUB).

Страна geo_code currency Методы
Россия RU RUB все методы из таблицы выше
Казахстан KZ KZT card_transfer — перевод на карту в тенге

amount — в валюте заявки: для KZT это тенге. Трансграничный перевод — это российская заявка (RU, RUB): плательщик платит в рублях, реквизит выдаётся в другой стране, см. Трансграничный перевод.

Банк плательщика и перевод внутри банка

  • bank_code — банк плательщика, название из справочника банков в стране geo_code. Реквизиты подбираются под этот банк. Пусто — любой банк.
  • is_intrabank: true вместе с bank_code — перевод внутри одного банка: реквизит получателя будет в том же банке, что и у плательщика. Например, Промсвязьбанк → Промсвязьбанк.

Оба поля — необязательные фильтры: чем уже фильтр, тем выше шанс, что подходящих реквизитов не найдётся (422 payment_not_routable).

Что подключено вашему проекту

Какие методы, страны, банки и суммы примет договор вашего проекта, показывает GET /api/v1/project/limits. Заявка с методом, которого нет в договоре, получает 422 payment_not_covered — подключить метод можно через менеджера.

{
  "limits": [
    {"geo_code": "RU", "payment_method": "account_transfer", "currency": "RUB",
     "bank_code": "Промсвязьбанк", "is_intrabank": true, "min_amount": 1000, "max_amount": 300000},
    {"geo_code": "KZ", "payment_method": "card_transfer", "currency": "KZT",
     "bank_code": null, "is_intrabank": false, "min_amount": 10000, "max_amount": 500000}
  ]
}

Смотрите также