Installment, Credit

When registred, you will be given credentials that you would need for making payments:

TerminalIDStore Identification
ClientIDClient Identificator
ClientSecretSecret Keys

Test merchant

urlhttps://test-epay.homebank.kz
emailepay@halykbank.kz
passwordXZG1E@Mm
ClientIDtest
ClientSecretyF587AV9Ms94qN2QShFzVR3vFnWkhjbAK3sG
TerminalID67e34d63-102f-4bd1-898e-370781d0074d

Test payment card

PANExpire DateCVCStatus
440563970401509601/25815unlock
552204270506673601/25525unlock
37751450000482001/254169unlock
400303270454759709/20170lock
557834271075056009/20254lock

Receiving a token for payment processing (for each operation, you must receive and use the original token)

TEST URL POST https://testoauth.homebank.kz/epay2/oauth2/token
PROD URL POST https://epay-oauth.homebank.kz/oauth2/token

Request

Body: form-data

grant_type: "client_credentials"
scope: "payment"
client_id: "test"
client_secret: "yF587AV9Ms94qN2QShFzVR3vFnWkhjbAK3sG"
invoiceID: "000000001"
amount: 100
currency: "KZT"
terminal: "67e34d63-102f-4bd1-898e-370781d0074d"
postLink: ""
failurePostLink: ""

FieldDescription
grant_typeAuthorization type, client_credentials are used for payment processing
scopeResource
client_idMerchant id (can be obtained on the account page, first given when registered)
client_secretMerchant's access key (can be obtained on the account page, first given when registered)
invoiceIDOrder number (generated by merchant, must be unique for every new order)
amountOrder Amount
currencyCurrency
terminalSale point's id (can be obtained on the account page, first given when registered)
postLinkOptional parameter. Sends postlink in case of success
failurePostLinkOptional parameter. Sends postlink in case of failure

Response

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

FieldDescription
access_tokenToken for payment processing
expires_inExpiry time
refresh_tokenNot used in current type of request
scopeResource. In order to process a payment "payment" resouce is used. Ресурс, для проведения платежа используется ресурс payment
token_typeType of the token

Redirection on payment page

You must connect JS-library to the page and call a halyk.pay() method.

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

You must specify these paramteres in halyk.pay() method

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: "RU",
					description: "Оплата в интернет магазине",
					accountId: "testuser1",
					terminal: "67e34d63-102f-4bd1-898e-370781d0074d",
					amount: 100,
					currency: "KZT",
                    phone: "77777777777",
                    email: "example@example.com"
                    cardSave: "true"
                };
            paymentObject.auth = auth;
            return paymentObject;
        };

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

FieldDescription
invoiceIdThe order number generated by the merchant must be unique for each new order, from 6 to 15 digits. If your order number contains more than 6 characters, then additionally uniqueness must be observed for the last 6 characters
backLinkA link to get back on a shop page when payment is successful
failureBackLinkA link to get back on a shop page when payment failed
postLinkNotification of a payment
failurePostLinkA notification of an unsuccessfull payment. Information will be sent to the address in postLink if no information is present
languageLanguage
descriptionOrder description
accountIdOptional field. Used when a merchant has a unique id assigned to the client
terminalId of a sale point
amountOrder amount
currencyTransaction currency
phoneClient's phone number optional
emailClient's email address optional
cardSaveWhether to save card info or not
creditConditionsArray of numbers [3,6,9], months
installmentConditionsArray of numbers [3,6,9], months
defaultCredittrue- the controller displays the first tab, credit and installments
authThe token / is transmitted completely as an object, all data received from epay at the request of the token
dataThe additional field is translated in the report when filled in, the statement parameter is mandatory

Post link

A message will be sent to the specified URL specified in the post Link field. If you have not received a postlink, we recommend using the Transaction Status service Transaction status.

Response in an event of success:

{
    "id": "ffffffff-0000-000f-f000-00f0000f000f",
    "dateTime": "2020-01-01T00:00:00.00000+06:00",
    "invoiceId": "10000000001",
    "amount": 100,
    "currency": "KZT",
    "terminal": "999999999",
    "accountId": "1",
    "description": "Оплата в интернет магазине",
    "language": "RU",
    "cardMask": "4444...4444",
    "cardType": "",
    "issuer": "Halyk bank",
    "reference": "001111111111",
    "secure": "yes",
    "tokenRecipient": "",
    "code": "ok",
    "reason": "",
    "reasonCode": 0,
    "name": "CARD HOLDER",
    "email": "ch@example.kz",
    "phone": "77777777777",
    "ip": "5.188.155.135",
    "ipCountry": "Kazakhstan",
    "ipCity": "Almaty",
    "ipRegion": "",
    "ipDistrict": "",
    "ipLongitude": 76.9293,
    "ipLatitude": 43.2638,
    "cardID": "e7e2587f-de26-4f41-ae1f-80c1fea31728"
}

Error codes

Response in an event of a failure:

{
    "id": "ffffffff-0000-000f-f000-00f0000f000f",
    "dateTime": "2020-01-01T00:00:00.00000+06:00",
    "invoiceId": "10000000001",
    "amount": 100,
    "currency": "KZT",
    "terminal": "999999999",
    "accountId": "1",
    "description": "Оплата в интернет магазине",
    "language": "RU",
    "cardMask": "4444...4444",
    "cardType": "",
    "issuer": "Halyk bank",
    "reference": "",
    "secure": "yes",
    "tokenRecipient": "",
    "code": "error",
    "reason": "описание ошибки",
    "reasonCode": -498,
    "name": "CARD HOLDER",
    "email": "ch@example.kz",
    "phone": "77777777777",
    "ip": "5.188.155.135",
    "ipCountry": "Kazakhstan",
    "ipCity": "Almaty",
    "ipRegion": "",
    "ipDistrict": "",
    "ipLongitude": 76.9293,
    "ipLatitude": 43.2638
}