Трансграничный перевод¶
Плательщик в России платит рублями из своего банка, а реквизит — телефон или карта в другой стране, например в Таджикистане или Узбекистане. Получатель получает местную валюту (сомони, сумы), конвертацию делает платёжная сторона. Для вас это рублёвая заявка: сумма, курс, ставка и зачисление в USDT считаются так же, как у СБП и перевода на карту.
Страну получателя вы не выбираете: её выбирает платёжная сторона и присылает в ответе. Покажите её плательщику, чтобы он знал, куда переводит.
- Ваш сервер → API
POST /api/v1/paymentsсpayment_method=cross_border_cardиbank_code=Т-Банк(банк плательщика) - APIПодбирает реквизиты для перевода из этого банка
- API ⇢ Ваш сервер
201:status=processing,requisite— телефон или карта,requisite_bank,cross_border_country - Ваш сервер → ПлательщикРеквизит, получатель, банк и страна получателя, сумма в рублях и срок
- ПлательщикПереводит рубли из приложения своего банка
- API → Ваш серверCallback:
completedилиcanceled
Методы¶
payment_method |
Реквизит | Как платит клиент |
|---|---|---|
cross_border_sbp |
номер телефона | трансграничным переводом по номеру телефона |
cross_border_card |
номер карты | переводом на карту в другой стране (c2c) |
Метод должен быть в договоре вашего проекта, как sbp и card_transfer: проверьте
лимиты договора — там будут записи с этими методами.
Банк плательщика и ставка¶
bank_code — банк, из которого платит клиент, как у sbp и card_transfer: название из
справочника страны geo_code (Т-Банк, Сбер, Альфа). Ставка и выбор платёжной
стороны зависят от метода и банка: например, cross_border_card + Т-Банк и
cross_border_sbp + Сбер — разные записи договора со своими ставками. Без bank_code — любой
банк по записи «любой банк».
Страна получателя на ставку не влияет: в одну запись договора входят переводы и в Таджикистан, и в Узбекистан.
Создать заявку¶
POST /api/v1/payments — подписанный запрос, как у других методов.
Из конкретного банка — с bank_code банка плательщика:
{"merchant_payment_id": "order-47", "amount": 25000, "currency": "RUB", "geo_code": "RU",
"payment_method": "cross_border_card", "bank_code": "Т-Банк"}
Из любого банка — без bank_code:
{"merchant_payment_id": "order-46", "amount": 10000, "currency": "RUB", "geo_code": "RU",
"payment_method": "cross_border_sbp"}
Поля¶
| Поле | Обяз. | Правила |
|---|---|---|
payment_method |
да | cross_border_sbp или cross_border_card |
geo_code |
нет | Страна плательщика, по умолчанию RU |
currency |
нет | Валюта плательщика, по умолчанию RUB: сумма заявки в ней |
bank_code |
нет | Банк плательщика — название из справочника страны geo_code, например Т-Банк. Без него — любой банк |
amount, merchant_payment_id, callback_url, client_id, client_username, client_ip |
— | Как у СБП |
Страны получателя в запросе нет: поле cross_border_country в запросе — ошибка 400.
Ответ и callback¶
Ответ и callback — те же, что у СБП, плюс поле cross_border_country:
{
"id": "3f1c2b9e-6a8d-4c4b-9a71-2c7f5d1e0a42",
"merchant_payment_id": "order-47",
"status": "processing",
"amount": 25000,
"currency": "RUB",
"geo_code": "RU",
"payment_method": "cross_border_card",
"bank_code": "Т-Банк",
"cross_border_country": "TJ",
"requisite": "4444888815426816",
"requisite_bank": "Банк Эсхата",
"holder_name": "Фаридун Р.",
"merchant_information": {"course": 82.50, "rate": 9.00, "amount_usdt": "303.0303",
"amount_rate": "22750.0000", "amount_usdt_rate": "275.7575"}
}
requisite— телефон уcross_border_sbp, номер карты уcross_border_card. Покажите его плательщику вместе сholder_name,requisite_bankи страной: плательщик выбирает в приложении страну и банк получателя.cross_border_country— страна получателя (TJ— Таджикистан,UZ— Узбекистан), её выбрала платёжная сторона. Поля нет, пока реквизит не выдан или если страна неизвестна.bank_code— банк плательщика из запроса;requisite_bank— банк получателя, в котором выдан реквизит.- У заявок других методов
cross_border_countryнет.
Расчёт¶
Заявка рублёвая: merchant_information — тот же расчёт по курсу
USDT/RUB и ставке вашего договора для метода и банка трансграна. Валюта страны получателя в
расчёт не входит.
Ошибки¶
| HTTP | error |
Когда |
|---|---|---|
| 400 | bad_request |
В запросе есть cross_border_country или другое неизвестное поле |
| 422 | cross_border_invalid |
bank_code — банк другой страны, а не банк плательщика из geo_code (например банк Таджикистана) |
| 422 | bank_not_found |
bank_code нет в справочнике |
| 422 | payment_not_covered |
Метода и банка трансграна нет в договоре или сумма вне диапазона |
| 422 | payment_not_routable |
Сейчас принять перевод из этого банка нельзя |
Банк другой страны — ошибка
bank_code у любого метода — банк плательщика. Банк Таджикистана или Узбекистана в
bank_code отклоняется (422 cross_border_invalid): банк получателя выбирает платёжная
сторона.
Смотрите также¶
- Справочник банков — названия банков по странам.
- Приём по СБП — поля, статусы и крайние случаи, общие для всех методов.
- API reference — схема полей.