Вывод средств с корпоративной карты на карту клиента

Перед началом выполнения реальных выплат коммерсанту необходимо сообщить корпоративную карту (IBAN номер счета) и номер TerminalID для регистрации в системе. Запрос необходимо отправлять на адрес dev.epay@halykbank.kz

При регистрации вам будут выданы данные, которые нужно будет использовать при проведении платежа:

TerminalIDИдентификатор магазина
ClientIDИдентификатор клиента
ClientSecretСекретный ключ

Получение токена для проведения оплаты (для каждой операции необходимо получать и использовать оригинальный токен)

TEST URL POST https://testoauth.homebank.kz/epay2/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: 		"test"
client_secret: 	"yF587AV9Ms94qN2QShFzVR3vFnWkhjbAK3sG"
invoiceID: 		"000000001"
amount: 		100
currency: 		"KZT"
terminal: 		"c36b282f-6819-4d4f-85df-a4bdc8a8f703"
postLink:       ""
failurePostLink: ""

ПолеОписание
grant_typeтип авторизации, для проведения платежа используется тип client_credentials
scopeресурс
client_idИдентификатор коммерсанта, можно получить в кабинете, выдается при регистрации
client_secretКлюч доступа коммерсанта, можно получить в кабинете, выдается при регистрации
invoiceIDНомер заказа, генерируется коммерсантом, должен быть уникальный для каждого нового заказа,от 6 до 15 цифр. Если ваш номер заказа содержит более 6 символов, то дополнительно уникальность должна соблюдаться по последним 6ти символам
amountСумма заказа
currencyВалюта
terminalИдентификатор точки продаж, можно получит в кабинете, выдается при регистрации
postLinkOбязательный параметры, отправка postlink в случае успеха
failurePostLinkHе обязательный параметры. отправка postlink в случае неудачи

Ответ

{
  "access_token":"DCEB8O_ZM5U7SO_T_U5EJQ",
  "expires_in": 7200,
  "refresh_token":"",
  "scope":" webapi usermanagement email_send verification statement statistics payment",
  "token_type":"Bearer"
}

ПолеОписание
access_tokenТокен для проведения операции
expires_inВремя истечения токена
refresh_tokenНе используется при данном типе авторизации
scopeРесурс, для проведения платежа используется ресурс
token_typeТип авторизации

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

На странице нужно подключить JS-библиотеку и вызвать в ней метод halyk.oct().

URL TEST: https://test-epay.homebank.kz/payform/payment-api.js
URL PROD: https://epay.homebank.kz/payform/payment-api.js

В метод halyk.oct() нужно передать следующие параметры.

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/",
					failurePostLink: "https://example.kz/order/1123/fail",
					language: "rus",
					description: "Оплата в интернет магазине",
					accountId: "testuser1",
					terminal: "c36b282f-6819-4d4f-85df-a4bdc8a8f703",
					amount: 100,
          data: "{\"statement\":{\"name\":\"Arman Ali\",\"invoiceID\":\"80000016\"}}",
					currency: "KZT",
          phone: "77777777777",
          email: "example@example.com"
          paymentObject.auth = auth;
          return paymentObject;
        };

halyk.pay(createPaymentObject(auth, invoiceId, amount));

ПолеОписание
invoiceIdНомер заказа, генерируется коммерсантом, должен быть уникальный для каждого нового заказа,от 6 до 15 цифр. Если ваш номер заказа содержит более 6 символов, то дополнительно уникальность должна соблюдаться по последним 6ти символам
backLinkСсылка для возврата в магазин при удачном платеже
failureBackLinkСсылка для возврата в магазин при не удачном платеже
postLinkУведомление о платеже
failurePostLinkУведомление о неудачном платеже, если не заполнено, то информация будет отправлена на адрес указанный в postLink
languageЯзык rus/kaz/eng
descriptionОписание заказа, допустимое количество символов 125 байтов
accountIdНе обязательное поле для указание идентификатора клиента магазина
terminalИдентификатор магазина
amountСумма заказа
currencyВалюта
phoneHомер телефона клиента (не обязательно)
emailEmail клиента (не обязательно)
authТокен / передается полностью как объект, все данные полученные от epay по запросу токена
dataДополнительное поле транслируется в отчете при заполнении (не обязательно)

Postlink

На указанный URL указанный в поле postLink будет отправлено сообщение. В случае если вы не получили postlink,рекомендуем воспользоваться сервисом Статус транзакции.

Ответ в случае успеха:

{
    "id": "3e215f23-8378-4a22-c33b-324sd2c3f5",
    "amount": 100,
    "accountID": "epayment.KZ",
    "currency": "KZT",
    "email": "email@gmail.com",
    "description": "TEST p2p",
    "reference": "306177717717",
    "invoiceID": "000000001",
    "intReference": "",
    "terminalID": "c36b282f-6819-4d4f-85df-a4bdc8a8f703",
    "senderCardID": "",
    "senderCardPAN": "440563...11111",
    "senderCardType": "VISA",
    "senderTransferType": "TYPEPAN",
    "senderCardIssuer": "HALYK BANK",
    "receiverCardID": "",
    "receiverCardPAN": "400303...0011",
    "receiverCardType": "VISA",
    "receiverTransferType": "TYPEPAN",
    "receiverCardIssuer": "HALYK BANK",
    "secure": false,
    "reason": "Successfully completed",
    "reasonCode": "00",
    "name": "  ",
    "phone": "",
    "datetime": "2023-03-02T10:33:26.11129789+06:00",
    "status": "ok",
    "data": "",
    "post_link": "https://epay.homebank.kz/payform",
    "failure_post_link": "https://testmerchant/order/000000001/fail",
    "p2pType": "OCT"
}

Коды ответов

Ответ в случае неудачи:

{
    "id": "3e215f23-8378-4a22-c33b-324sd2c3f5",
    "amount": 10,
    "accountID": "epayment.KZ",
    "currency": "KZT",
    "email": "email@gmail.com",
    "description": "TEST p2p",
    "reference": "306177717717",
    "invoiceID": "000000001",
    "intReference": "",
    "terminalID": "c36b282f-6819-4d4f-85df-a4bdc8a8f703",
    "senderCardID": "",
    "senderCardPAN": "",
    "senderCardType": "",
    "senderTransferType": "",
    "senderCardIssuer": "",
    "receiverCardID": "",
    "receiverCardPAN": "",
    "receiverCardType": "",
    "receiverTransferType": "",
    "receiverCardIssuer": "",
    "secure": false,
    "reason": "Restricted card",
    "reasonCode": "489",
    "name": "",
    "phone": "",
    "datetime": "2023-03-02T14:50:36.397155787+06:00",
    "status": "error",
    "data": "",
    "post_link": "https://epay.homebank.kz/payform",
    "failure_post_link": "https://testmerchant/order/000000001/fail",
    "p2pType": "OCT"
}