Перейти к основному содержимому

Приём платежей

Создание заказа

При создании заказа:

  • amount (сумму) необходимо указывать в минорных денежных единицах, т.е. для создания заказа на сумму 500 тенге, необходимо ввести 50000 (1 тенге = 100 тиын)
  • capture_method по умолчанию устанавливается метод AUTO, т.е. платеж по данному заказу будет однофакторный. Для проведения двухфакторных платежей в данный параметр необходимо передать MANUAL

Более подробно ознакомиться с остальными параметрами для создания заказа, а также со всеми доступными методами для управления заказами можно в Справочнике по API.

Пример запроса:

POST /v2/orders HTTP/1.1
Host: stage-api.ioka.kz
API-KEY: eyJ0eXAiOiJKV1..
Content-Type: application/json

{
"amount": 50000
}

Пример ответа:

{
"order": {
"id": "ord_test",
"shop_id": "shp_test",
"status": "UNPAID",
"created_at": "2022-01-01T10:00:00.00000",
"amount": 50000,
"display_amount": 50000,
"currency": "KZT",
"mcc": null,
"acquirer": null,
"capture_method": "AUTO",
"external_id": null,
"description": null,
"extra_info": null,
"attempts": 10,
"due_date": null,
"split": null,
"customer_id": null,
"card_id": null,
"back_url": null,
"success_url": null,
"failure_url": null,
"template": null,
"access_token": "ord_test_secret_4ed07d5a47d...",
"checkout_url": "https://test.ioka.kz/orders/ord_test",
"payment_link_url": null,
"payments": []
},
"order_access_token": "ord_test_secret_4ed07d5aл47d..."
}

Статусы заказа

СтатусОписание
UNPAIDПервоначальный статус. Заказ может быть оплачен. Статус заказа может обновиться на ON_HOLD или PAID в случае успешной оплаты.
ON_HOLDПромежуточный статус, возможен при двухфакторной оплате. Возвращается после успешной авторизации (холдирования) денежных средств на карте плательщика. Может быть списан или отменен.
PAIDЗаказ оплачен, т.е. денежные средства списаны с карты плательщика и будут перечислены на расчетный счет мерчанта в течении 3 рабочих дней. По данному заказу может быть оформлен возврат.
EXPIREDСрок оплаты заказа (due_date) истек. Необходимо создать новый заказ.

Проведение оплаты

Для проведения оплаты необходимо перенаправить пользователя на адрес checkout_url, полученный в теле ответа на создание заказа, где находится форма сбора карточных данных.

Заказ можно считать успешным, как только он перешел в статус PAID или ON_HOLD в зависимости от способа списания денег.

По умолчанию у клиента есть 10 попыток для проведения платежа по данному заказу, т.е. в случае неуспешной оплаты на форме будет показана причина отклонения и появится возможность для повторной оплаты.

Проверка статуса платежа

Доступны несколько способов для проверки статуса платежа:

  1. Настроить получение уведомлений (webhook-ов) от ioka на события PAYMENT_APPROVED, PAYMENT_CAPTURED, PAYMENT_DECLINED.
  2. Периодически запрашивать информацию о заказе методом GetOrderByID.
  3. Проверять статус в Личном Кабинете Мерчанта.
Важно

Если клиент при оплате заказа выбрал Сохранить карту на этом сайте, то в webhook-е или в ответе на запрос GetOrderByID, в объекте payer придут заполненные параметры customer_id и card_id.

Подробнее ознакомиться с проведением оплаты по сохраненным картам можно в разделе Оплата по сохраненной карте.

Статусы платежа

СтатусОписание
PENDINGОжидает подтверждения оплаты. Промежуточный статус.
REQUIRES_ACTIONПлательщик перенаправлен на прохождение проверки 3DS.
APPROVEDПлатеж прошел успешно. Сумма авторизована (захолдирована) на карте плательщика при двухфакторной оплате. Если платеж не будет списан или отменен в течении 48 часов, то вся авторизованная сумма спишется в пользу мерчанта, т.е. платеж перейдет в статус CAPTURED.
CAPTUREDПлатеж прошел успешно. Сумма списана с карты плательщика.
CANCELLEDПлатеж отменен, т.е. авторизованная сумма полностью расхолдирована (разблокирована) с карты плательщика.
DECLINEDПопытка платежа неуспешна. Необходимо повторить оплату.

Если платеж был отклонен (payment_status = DECLINED), в уведомлении придет объект error:

"error": {
"code": "WRONG_CARD_DATA_INPUT",
"message": "The transaction is declined. Check the card details and try again."
}

Более подробно ознакомиться со всеми возможными ошибками платежа можно ознакомиться в Справочнике по API.