#Общие поля запроса

Поля разделены на две группы:

  • Универсальные — принимаются всеми 17 методами (PayIn + PayOut)
  • Зависящие от метода — нужны только некоторым (bank_id, country_code, operator_id, owner_name, card_number, phone_number, account_number)

#Универсальные поля

ПолеТипОбяз.Описание
amountstringСумма в currency
currencystringСм. список валют
merchant_transaction_idstringUNIQUE на мерчанта
client_idstringТолько для интеграций по use_counterparty
webhook_urlstringPer-tx callback (перебивает дефолт из dashboard)

#PayIn — суффикс-зависимые поля

Методbank_idcountry_codeoperator_id
card
card-internal✅ обяз.
card-cross✅ обяз.
card-internal-cross✅ обяз.✅ обяз.
sbp
sbp-internal✅ обяз.
sbp-cross✅ обяз.
sbp-internal-cross✅ обяз.✅ обяз.
qr
qr-internal✅ обяз.
qr-cross✅ обяз.
qr-internal-cross✅ обяз.✅ обяз.
qr-nspk
qr-nspk-multi
mobile
mobile-internal✅ обяз.
mobile-cross✅ обяз.
mobile-internal-cross✅ обяз.✅ обяз.
account
acquiring

«—» = поле не нужно (передадите — будет проигнорировано).

bank_id берётся из GET /merchant/banks, country_code — ISO-2, operator_id — UUID мобильного оператора.


#PayOut — обязательные доп. поля

ПолеТипОбяз.Описание
owner_namestringФИО получателя (для всех PayOut)
bank_idUUIDUUID банка из GET /merchant/banks (для всех PayOut). Если банк не найден → 400 INVALID_BANK

#PayOut — поля по методам

МетодДоп. обязательное полеФормат
card-outcard_number16 цифр, без пробелов и тире
sbp-outphone_number11 цифр без +
account-outaccount_number20 цифр

#СВОДКА — какие поля валидируем

МетодRequired-поля (помимо amount/currency/merchant_transaction_id)
payin/card
payin/card-internalbank_id
payin/card-crosscountry_code
payin/card-internal-crossbank_id + country_code
payin/sbp
payin/sbp-internalbank_id
payin/sbp-crosscountry_code
payin/sbp-internal-crossbank_id + country_code
payin/qr
payin/qr-internalbank_id
payin/qr-crosscountry_code
payin/qr-internal-crossbank_id + country_code
payin/qr-nspk
payin/qr-nspk-multi
payin/mobile
payin/mobile-internaloperator_id
payin/mobile-crosscountry_code
payin/mobile-internal-crossoperator_id + country_code
payin/account
payin/acquiringreturn_url
payout/cardcard_number, owner_name, bank_id
payout/sbpphone_number, owner_name, bank_id
payout/accountaccount_number, owner_name, bank_id

Любые другие поля в запросе → 400 VALIDATION_ERROR.

Optional всегда: client_id, webhook_url.


#Что вернёт сервер при ошибке валидации

HTTPCodeКогда
400VALIDATION_ERRORПоле отсутствует или невалидно (или передано лишнее поле)
400INVALID_BANKbank_id корректный UUID, но банка нет в справочнике (PayOut)
400DUPLICATE_ORDERmerchant_transaction_id уже использовался