Платеж по сохраненной карте

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

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

Карта является сохранённой если вы ранее передавали параметр cardsave: true, оплата прошла успешно и в ответе вы получили CardID

При регистрации и выдаче терминала настройка проверки 3DSecure будет определяться в соответствии с указанным в заявке. Она может быть либо включена, либо отключена. В зависимости от этой настройки ответы системы будут различаться: при включенной проверке 3DSecure они будут отличаться от ответов, полученных при отключенной проверке. При отключенной проверке 3DSecure не предусмотрен вызов 3D-страницы, в связи с этим операции не имеют необходимого уровня защиты.

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

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: 		   "test"
client_secret: 	 "yF587AV9Ms94qN2QShFzVR3vFnWkhjbAK3sG"
invoiceID: 		   "000000001"
amount: 		     100
currency: 		   "KZT"
terminal: 		   "67e34d63-102f-4bd1-898e-370781d0074d"
postLink:        ""
failurePostLink: ""
ПолеОписание
grant_typeТип авторизации, для проведения платежа используется тип client_credentials
scopeРесурс
client_idИдентификатор коммерсанта, можно получить в кабинете, выдается при регистрации
client_secretКлюч доступа коммерсанта, можно получить в кабинете, выдается при регистрации
invoiceIDНомер заказа, генерируется коммерсантом, должен быть уникальный для каждого нового заказа, от 6 до 15 цифр. Если ваш номер заказа содержит более 6 символов, то дополнительно уникальность должна соблюдаться по последним 6ти символам
amountСумма заказа
currencyВалюта
terminalИдентификатор точки продаж, можно получит в кабинете, выдается при регистрации
postLinkНе обязательный параметры. отправка postlink в случае успеха
failurePostLinkНе обязательный параметры. отправка 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Ресурс, для проведения платежа используется ресурс payment
token_typeТип авторизации

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

Для проведения платежа с cardID необходимо указывать параметр paymentType = cardId

Входящие параметры на страницу оплаты

Название поляописаниеОбязательное/не обязательно
invoiceIdНомер заказа, генерируется коммерсантом, должен быть уникальный для каждого нового заказа, от 6 до 15 цифр. Если ваш номер заказа содержит более 6 символов, то дополнительно уникальность должна соблюдаться по последним 6ти символамобязательное
backLinkЛинк для возврата покупателя в магазин (на сайт) после успешного проведения оплатыобязательное
failureBackLinkЛинк для возврата покупателя в магазин (на сайт) после оплаты в случае неудачной авторизациинеобязательно
postLinkЛинк для отправки результата авторизации в магазин.обязательное
failurePostLinkЛинк для отправки неудачного результата авторизации либо информации об ошибке в магазин.необязательно
languageВ данном поле передается информация о языке интерфейса сервера авторизации rus, eng, kazнеобязательно
descriptionВ данном поле передается информация о товарах или услугах, за которые производится оплата, допустимое количество символов 125 байтовобязательное
accountIdПерсональный идентификатор Клиента в Системе коммерсантаобязательное
terminalIdНомер терминала для оплатыобязательное
amountСумма платежаобязательное
currencyВалютаобязательное
paymentTypeТип платежа - cardIdобязательное
recurrentФлаг для рекуррентных платежейнеобязательное
cardidТокен картыобязательное
TEST URL POST https://test-epay-api.epayment.kz/payments/cards/auth
PROD URL POST https://epay-api.homebank.kz/payments/cards/auth

Request


Headers: 
Authorization: bearer KJHKJH8&5F&D3&F

Body:
{
   "amount":100,
   "currency":"KZT",
   "name":"TEST TEST",
   "terminalId":"67e34d63-102f-4bd1-898e-370781d0074d",
   "invoiceId":"10101112",
   "invoiceIdAlt":"8564546",
   "description":"test",
   "accountId":"uuid000001",
   "email":"parkhomchik@gmail.com",
   "phone":"77472261170",
   "backLink":"https://testmerchant/order/1123",
   "failureBackLink":"https://testmerchant/order/1123/fail",
   "postLink":"https://testmerchant/order/1123",
   "failurePostLink":"https://testmerchant/order/1123/fail",
   "language":"rus",
   "paymentType":"cardId",
   "recurrent": true,
   "cardId":{
      "id":"e7e2587f-de26-4f41-ae1f-80c1fea31728" //значение полученного ранее cardID, при первичной оплате
   }
}

Response

HTTP Code 200

{
  "id": "75890cc5-157a-4cce-9624-16b227c2b9ec",
  "accountId": "",
  "amount": 100,
  "amountBonus": 0,
  "currency": "KZT",
  "description": "payment",
  "email": "test@example.com",
  "invoiceID": "9999999",
  "invoiceIdAlt":"8564546",
  "language": "RU",
  "phone": "77777777777",
  "reference": "099467918563",
  "intReference": "C3B673466V9600X3",
  "secure3D": null,
  "cardID": "22f2c5db-64d8-475f-8066-af3de3dc8233",
  "code": 0,
  "status": "AUTH"
}

В случае ошибки
HTTP Code 4xx

{
    "code": -1,
    "message": "error message"
}

Ответ с 3DSecure (не является окончательным): HTTP Code 2xx

{

    "id": "d5782400-d8c5-4856-b5b9-115be68b63ca",
    "accountId": "",
    "amount": 10,
    "amountBonus": 0,
    "currency": "",
   "description": "",
    "email": "",
    "invoiceID": "",
    "language": "",
    "phone": "",
    "reference": "",
    "intReference": "",
    "secure3D": {
        "paReq": "eyJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiJlMGQyNmQwMS0yZjA0LTRlZjYtYTNmYy00NGI1OTMyMTdjOTEiLCJhY3NUcmFuc0lEIjoiN2FlZDkxYjctODJmZS00N2Y0LWJiNDAtZGRjNTYyYWE1ZjNhIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0",
        "md": "ZTBkMjZkMDEtMmYwNC00ZWY2LWEzZmMtNDRiNTkzMjE3Yzkx",
        "action": "https://epay-proxy.homebank.kz/"

    },
    "cardID": "ХХХХХХХ-c686-6634-e063-ХХХХХХХХХ",
    "fee": 0,
    "code": 0,
    "status": "3D"

}  

После получения результата по оплате с 3DSecure необходимо переадресовать клиента на форму ввода пароля.

Для этого используются полученные параметры: paReq, md, action.

В параметре TermUrl необходимо использовать адрес, на который система мерчанта получит результат проверки 3DSecure.

На странице партнера (TermUrl) необходимо после получения данных выполнить confirm.

Пример построения формы для перенаправления клиента:

*    <body  onload="javascript:OnLoadEvent();">
    <FORM ACTION="<%=action%>" METHOD="post" NAME="ThreeDform" target="_self">
   <input name="PaReq" type="hidden" value="<%=paReq%>">
   <input name="MD" type="hidden" value="<%=md%>">
   <input name="TermUrl" type="hidden" value="https://merchantsite.com/3dRes">
    </FORM>
   <div align="center"> 
        <h1>Дождитесь ответа! <br><br>
             Жауабын күтіңіз!<br><br>
             Wait for an answer!<br><br>                                                        
            </h1>
   </div>               
    </body>
    <SCRIPT>function OnLoadEvent () {
     document.forms[0].submit();
    }*