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

Казахстан

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

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

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

Создать заявку

POST /api/v1/payments, запрос подписывается так же, как для СБП.

{
  "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 — необязательный банк плательщика: название банка Казахстана из справочника, например Kaspi, Halyk, Freedom Bank. Список отдаёт GET /api/v1/banks?geo_code=KZ. Пусто — любой банк.
  • is_intrabank: true вместе с bank_code — карта получателя в том же банке, что и у плательщика (например, Kaspi → Kaspi).

Остальные поля и их правила — Приём по СБП → Поля запроса.

Лимиты в тенге

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

Ответ

Ответ 201 Created:

{
  "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.

Что показать плательщику

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

Статусы и результат

Как у карты: Приём по карте → Статусы и результат.

Частые ошибки

  • Нет 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. Попробуйте без этих полей.

Остальное — Приём по карте → Крайние случаи.

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