Сохранение платежной карты
При регистрации вам будут выданы данные, которые нужно будет использовать при проведении платежа:
| TerminalID | Идентификатор магазина |
| ClientID | Идентификатор клиента |
| ClientSecret | Секретный ключ |
Данные для проведения тестовых платежей
| ClientID | test |
| ClientSecret | yF587AV9Ms94qN2QShFzVR3vFnWkhjbAK3sG |
| TerminalID | 67e34d63-102f-4bd1-898e-370781d0074d |
Test payment card
| PAN | Expire Date | CVC | Status |
|---|---|---|---|
| 4405639704015096 | 01/27 | 321 | unlock |
| 5522042705066736 | 01/27 | 775 | unlock |
| 377514500004820 | 01/28 | 0198 | unlock |
| 4003032704547597 | 09/20 | 170 | lock |
| 5578342710750560 | 09/20 | 254 | lock |
Получение токена для проведения оплаты (для каждой операции необходимо получать и использовать оригинальный токен)
TEST URL POST https://test-epay-oauth.epayment.kz/oauth2/token PROD URL POST https://epay-oauth.homebank.kz/oauth2/token
Запрос
Body: form-data
grant_type: "client_credentials" scope: "webapi usermanagement email_send verification statement statistics payment" client_id: "halykfinanceUSD" client_secret: "U01gQZVL##lJ$NhJ" invoiceID: "Номер заказа" amount: 0 currency: "USD" terminal: "d9d7978c-d6ee-4ec0-8cda-165251a4bf16"
| Поле | Описание |
|---|---|
| access_token | Токен для проведения операции |
| expires_in | Время истечения токена |
| refresh_token | Не используется при данном типе авторизации |
| scope | Ресурс, для проведения платежа используется ресурс для платежа |
| token_type | Тип авторизации |
Ответ
{
"access_token": "DCEB8O_ZM5U7SO_T_U5EJQ",
"expires_in": 7200,
"scope": "webapi usermanagement email_send verification statement statistics payment",
"token_type": "Bearer"
}
Проведение платежа
На странице необходимо подключить JS-библиотеку и вызвать в ней метод halyk.cardverification().
TEST URL: https://test-epay.epayment.kz/payform/payment-api.js PROD URL: https://epay.homebank.kz/payform/payment-api.js
В метод halyk.cardverification() нужно передать следующие параметры.
var createPaymentObject = function(auth, invoiceId, amount) { var paymentObject = { invoiceId: "000000001", backLink: "https://example.kz/success.html", failureBackLink: "https://example.kz/failure.html", postLink: "https://example.kz/", language: "rus", description: "Регистрация карты", accountId: "testuser1", terminal: "67e34d63-102f-4bd1-898e-370781d0074d", amount: 0, currency: "USD", cardSave: true, paymentType: "cardVerification" }; paymentObject.auth = auth; return paymentObject; }; halyk.pay(createPaymentObject(auth, invoiceId, amount));
| Поле | Описание |
|---|---|
| invoiceID | Номер заказа, генерируется коммерсантом, должен быть уникальный для каждого нового заказа, от 6 до 15 цифр. Если ваш номер заказа содержит более 6 цифр, то дополнительно уникальность должна соблюдаться по последним 6ти цифрам |
| backLink | Ссылка для возврата в магазин при удачном платеже |
| failureBackLink | Ссылка для возврата в магазин при неудачном платеже |
| postLink | Уведомление о платеже |
| language | Язык rus/kaz/eng |
| description | Описание заказа, допустимое количество символов 125 байтов |
| accountId | Поле для указания идентификатора клиента магазина, обязательное поле при сохранении карты (cardSave: true) |
| terminal | Идентификатор магазина, можно получит в кабинете, выдается при регистрации |
| amount | Сумма для сохранения карты, всегда равна 0 |
| currency | Валюта, всегда USD для сохранения карты |
| cardSave | Обязательный параметр для сохранения карты, передается как boolean |
| ip | айпи, откуда был выполнен запрос |
| ipCountry | название страны |
| ipCity | название города |
| ipRegion | название региона |
| ipDistrict | название района |
| ipLatitude | широта |
| ipLongitude | долгота |
РostLink
На указанный URL указанный в поле postLink будет отправлено сообщение. В случае если вы не получили postlink, или для проверки запроса от системы ePay, необходимо воспользоваться сервисом Статус транзакции
Ответ в случае успеха:
{ "acountId":"9398101000014416472", "amount":800, "approvalCode":"178644", "cardId":"4cd44b44-4445-14a6-e063-1b01040a44c4", "cardMask":"440043...0128", "cardType":"VISA", "code":"ok", "currency":"KZT", "dateTime":"2025-02-12T09:42:51.960781107+05:00", "description":"ONAY!", "email":"", "id":"a1bd0589-3ac9-4a2e-a31d-67a33f453a2b", "invoiceId":"33456850", "ip":"91.215.96.94", "ipCity":"", "ipCountry":"", "ipDistrict":"", "ipLatitude":0, "ipLongitude":0, "ipRegion":"", "issuer":"JSC KASPI BANK", "language":"RUS", "name":"", "phone":"77775903128", "reason":"success", "reasonCode":0, "reference":"504355533594", "secret_hash":"ZitLN1VLd21hUnFOSTJKbmg0UVdYVm8z", "secure":"yes", "secureDetails":"F", "terminal":"67e34d63-102f-4bd1-898e-370781d0074d" }
Ответ в случае неудачи:
{ "accountId":"9398101000006384023", "amount":200, "approvalCode":"", "cardId":"", "cardMask":"", "cardType":"", "code":"error", "currency":"KZT", "dateTime":"2025-02-12T09:42:53.036675+05:00", "description":"ONAY!", "email":"", "id":"03c6de6e-0028-42fa-9199-561d78e59789", "invoiceId":"33456910", "ip":"95.82.119.153", "ipCity":"Almaty", "ipCountry":"Kazakhstan", "ipDistrict":"", "ipLatitude":43.2638, "ipLongitude":76.9293, "ipRegion":"", "issuer":"JSC KASPI BANK", "language":"RUS", "name":"", "phone":"77476080308", "reason":"Authentication failed", "reasonCode":473, "reference":"", "secret_hash":"T1hDaWhlay9NUysxRTA2djFFZnpTVDNU", "secure":"no", "secureDetails":"", "terminal":"67e34d63-102f-4bd1-898e-370781d0074d" }