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

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

## Все методы { #all }

| `payment_method` | Название | Что получает плательщик (`requisite`) | Как платит | Страница |
| --- | --- | --- | --- | --- |
| `sbp` | СБП | номер телефона: `+79991234567` | «Перевод по СБП» по номеру телефона | [Приём по СБП](sbp.md) |
| `card_transfer` | Перевод на карту | номер карты: `2200123456789010` | «Перевод на карту» по номеру карты | [Приём по карте](card.md) |
| `cross_border_sbp` | Трансгран СБП | номер телефона в другой стране | перевод по номеру телефона за рубеж | [Трансграничный перевод](cross-border.md) |
| `cross_border_card` | Трансгран карта | номер карты в другой стране | перевод на карту за рубеж | [Трансграничный перевод](cross-border.md) |
| `nspk` | QR НСПК | ссылка на QR НСПК (и/или картинка QR) | сканирует QR в приложении банка | [QR НСПК](nspk.md) |
| `account_transfer` | Перевод на счёт | номер банковского счёта | перевод по номеру счёта | [Перевод на счёт](account.md) |
| `viet_qr` | Viet QR | строка VietQR (и ссылка на картинку QR) | сканирует QR в приложении вьетнамского банка, платит донгами | [Viet QR](viet-qr.md) |
| `mobile_topup` | Пополнение мобильного | номер телефона, оператор — в `requisite_bank` | пополняет баланс телефона | [Пополнение мобильного](mobile-topup.md) |
| `card_matching` | Перевод на карту (матчинг) | номер карты | перевод на карту, затем вы присылаете **чек** | [Матчинг](matching.md) |
| `sbp_matching` | СБП (матчинг) | номер телефона | перевод по СБП, затем вы присылаете **чек** | [Матчинг](matching.md) |

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

!!! tip "Матчинг"
    `card_matching` и `sbp_matching` — методы с матчингом: провайдер зачисляет оплату только по
    чеку плательщика. После перевода пришлите файл чека в
    [`POST /api/v1/payments/{id}/receipt`](matching.md#upload). Без чека заявка будет
    отменена по сроку. Подробно — на странице [Матчинг](matching.md).

## Поля запроса по методам { #request-fields }

Запрос у всех методов один — `POST /api/v1/payments`, поля описаны в разделе
[Приём по СБП → Поля запроса](sbp.md#request-fields). Обязательные поля у всех методов:
`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`; после оплаты — [чек](matching.md#upload) |

`deeplink_url` — ссылка в приложение банка — может прийти у любого метода, если она есть.
`qrcode_link`, `deeplink_url`, `cross_border_country` и `qrcode_image` приходят, только когда у
них есть значение. Все поля ответа — в разделе [Приём по СБП → Ответ](sbp.md#response) и в
[справочнике API](api-reference.md#createPayment).

## Страны и валюты { #countries }

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

| Страна | `geo_code` | `currency` | Методы |
| --- | --- | --- | --- |
| Россия | `RU` | `RUB` | все методы из таблицы выше |
| Казахстан | `KZ` | `KZT` | `card_transfer` — [перевод на карту в тенге](kazakhstan.md) |

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

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

- `bank_code` — банк **плательщика**, название из [справочника банков](banks.md) в стране
  `geo_code`. Реквизиты подбираются под этот банк. Пусто — любой банк.
- `is_intrabank: true` вместе с `bank_code` — перевод внутри одного банка: реквизит получателя
  будет в том же банке, что и у плательщика. Например, [Промсвязьбанк → Промсвязьбанк](psb.md).

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

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

Какие методы, страны, банки и суммы примет договор вашего проекта, показывает
[`GET /api/v1/project/limits`](sbp.md#contract-limits). Заявка с методом, которого нет в
договоре, получает `422 payment_not_covered` — подключить метод можно через менеджера.

```json
{
  "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}
  ]
}
```

## Смотрите также { #see-also }

- [Казахстан](kazakhstan.md) — перевод на карту в тенге.
- [Промсвязьбанк](psb.md) — перевод на счёт внутри банка и что ещё доступно для ПСБ.
- [Матчинг](matching.md) — `card_matching`, `sbp_matching` и чек оплаты.
- [Пополнение мобильного](mobile-topup.md) — `mobile_topup`.
- [Viet QR](viet-qr.md) — `viet_qr`, оплата из Вьетнама по QR.
- [Банки](banks.md) — справочник названий для `bank_code`.
- [Статусы и ошибки](statuses.md).