# Казахстан

В Казахстане плательщик переводит тенге на номер карты получателя из приложения своего банка.
Это [приём по карте](card.md) с двумя отличиями: страна `KZ` и валюта `KZT`. Статусы,
callback-и и правила повторов — как у [СБП](sbp.md).

| | Россия | Казахстан |
| --- | --- | --- |
| `geo_code` | `RU` (по умолчанию) | `KZ` — **обязательно указать** |
| `currency` | `RUB` (по умолчанию) | `KZT` — **обязательно указать** |
| `payment_method` | любой [метод](methods.md) | `card_transfer` |
| `amount` | рубли | тенге |
| `bank_code` | банк России | банк Казахстана |

СБП, QR НСПК, перевод на счёт и трансграничный перевод — российские методы, для `KZ` их нет.

## Создать заявку { #create }

`POST /api/v1/payments`, запрос [подписывается](signing.md) так же, как для СБП.

```json
{
  "merchant_payment_id": "order-kz-1001",
  "amount": "50000",
  "payment_method": "card_transfer",
  "currency": "KZT",
  "geo_code": "KZ",
  "bank_code": "Kaspi"
}
```

- `currency` и `geo_code` передавайте всегда: без них заявка создаётся как российская в рублях,
  и сумма `50000` будет считаться в рублях.
- `bank_code` — необязательный банк плательщика: название банка Казахстана из
  [справочника](banks.md), например `Kaspi`, `Halyk`, `Freedom Bank`. Список отдаёт
  `GET /api/v1/banks?geo_code=KZ`. Пусто — любой банк.
- `is_intrabank: true` вместе с `bank_code` — карта получателя в том же банке, что и у
  плательщика (например, Kaspi → Kaspi).

Остальные поля и их правила — [Приём по СБП → Поля запроса](sbp.md#request-fields).

### Лимиты в тенге { #limits }

Принимает ли договор вашего проекта заявки в Казахстане, показывает
[`GET /api/v1/project/limits`](sbp.md#contract-limits): нужна запись с
`"geo_code": "KZ"`, `"currency": "KZT"`, `"payment_method": "card_transfer"`. Её
`min_amount` и `max_amount` — в тенге.

## Ответ { #response }

Ответ `201 Created`:

```json
{
  "id": "5b8e1c2d-3f4a-4b5c-9d6e-7f8091a2b3c4",
  "merchant_payment_id": "order-kz-1001",
  "flow": "runtime_live",
  "status": "processing",
  "amount": 50000,
  "initial_amount": 50000,
  "currency": "KZT",
  "geo_code": "KZ",
  "payment_method": "card_transfer",
  "bank_code": "Kaspi",
  "is_intrabank": false,
  "callback_url": null,
  "is_test": false,
  "merchant_information": {
    "course": 520.00,
    "rate": 9.00,
    "amount_usdt": "96.1538",
    "amount_rate": "4500.0000",
    "amount_usdt_rate": "87.5000"
  },
  "requisite": "4400430212345678",
  "requisite_bank": "Kaspi",
  "holder_name": "Айгерим С.",
  "created_at": "2026-10-14T09:30:00Z",
  "updated_at": "2026-10-14T09:30:01Z"
}
```

- `requisite` — номер карты получателя;
- `amount`, `initial_amount` — в тенге;
- `merchant_information.course` — тенге за 1 USDT; `amount_usdt` = `amount / course`. Остальной
  расчёт — как в [Расчёте `merchant_information`](sbp.md#merchant-information).

## Что показать плательщику { #payer-screen }

- **Номер карты** из `requisite` — группами по четыре цифры (`4400 4302 1234 5678`), с кнопкой
  «Скопировать» без пробелов.
- **Получатель** — `holder_name`, **банк карты** — `requisite_bank`.
- **Сумма** — ровно `amount` в тенге (`50 000 ₸`), одним переводом.
- **Срок** — обратный отсчёт от `created_at` на срок заявки вашего проекта (по умолчанию
  15 минут).

## Статусы и результат { #result }

Как у карты: [Приём по карте → Статусы и результат](card.md#result).

## Частые ошибки { #edge-cases }

- **Нет `geo_code` или `currency`.** Заявка уйдёт как российская в рублях: банк Казахстана в
  `bank_code` даст `422 cross_border_invalid` или `422 bank_not_found`, а без `bank_code` сумма
  будет считаться в рублях. Передавайте `"geo_code": "KZ"` и `"currency": "KZT"` всегда.
- **Метод не `card_transfer`.** Для Казахстана в договоре его нет — `422 payment_not_covered`.
- **Банк не найден.** Название должно быть из справочника Казахстана
  (`GET /api/v1/banks?geo_code=KZ`), иначе `422 bank_not_found`.
- **Нет карт нужного банка.** С `bank_code` и `is_intrabank` выбор реквизитов уже; если
  подходящих нет — `422 payment_not_routable`. Попробуйте без этих полей.

Остальное — [Приём по карте → Крайние случаи](card.md#edge-cases).

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

- [Методы оплаты](methods.md) — все методы, страны и валюты.
- [Банки](banks.md#list) — банки Казахстана в справочнике.