Payment page

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"
secret_hash: "JDKCNDDGGDTPSKJD"
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)
secret_hashadditional secret value(string) generated by the online store system which will be returned to Postlink
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.

Production version

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",
          invoiceIdAlt:"8564546",
					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,
          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));

FieldDescription
invoiceIdOrder number. Generated by a merchant, must be unique for every new order
invoiceIdAltAdditional order number, assigned by the merchant, must be unique for each new order, from 6 to 15 digits.
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
authAuthorization tokenn
dataadditional field is transmitted in the report when filled in (optional)

Post link

URL in postLink will be used to send a message.

Response in an event of success:

{ 
    "accountId": "sad12eqsda", 
    "amount": 100, 
    "approvalCode": "157911", 
    "cardId": "11f1111b-f151-6f11-e161-1111010a2111", 
    "cardMask": "440043...2222", 
    "cardType": "VISA", 
    "code": "ok", 
    "currency": "KZT", 
    "dateTime": "2024-07-29T10:50:56.765674319+05:00", 
    "description": "Arman Alimguzhinov", 
    "email": "", 
    "id": "1d1a11f1-1111-111c-1113b-e8340ce51111", 
    "invoiceId": "191111111", 
    "ip": "213.148.6.204", 
    "ipCity": "", 
    "ipCountry": "", 
    "ipDistrict": "", 
    "ipLatitude": 0, 
    "ipLongitude": 0, 
    "ipRegion": "", 
    "issuer": "JSC KASPI BANK", 
    "language": "RUS", 
    "name": "STANDARD CARDHOLDER", 
    "phone": "", 
    "reason": "success", 
    "reasonCode": 0, 
    "reference": "411111111117", 
    "secure": "no", 
    "secureDetails":"F", 
    "terminal": "67e34d63-102f-4bd1-898e-370781d0074d" 
}

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": "no",
    "secureDetails":"F", 
    "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
}