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

TerminalIDStore Identification
ClientIDClient Identificator
ClientSecretSecret Keys

Receiving a token for payment processing

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: ""

ПолеОписание
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":"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
invoiceIdOrder number. Generated by a merchant, must be unique for every new order
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
authAuthorization tokenn

Post link

URL in postLink will be used to send a message.

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
}

Test merchant

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

Test payment card

PANExpire DateCVCStatus
400303980296982109/23951unlock
557834272823061309/23053unlock
37751450000079409/231687unlock
400303270454759709/20170lock
557834271075056009/20254lock