Документация для отправки запроса на оплату с использованием Google Pay c зашифрованными данными(PAYMENT_GATEWAY):
Получение токена для проведения оплаты (для каждой операции необходимо получать и использовать оригинальный токен)
TEST URL POST https://testoauth.homebank.kz/epay2/oauth2/token
PROD URL POST https://epay-oauth.homebank.kz/oauth2/token
Запрос:
grant_type: "client_credentials"
scope: "webapi usermanagement email_send verification statement statistics payment"
client_id: "ClientID"
client_secret: "clientSecret"
InvoiceID: "Order number"
amount: 100
currency: "KZT"
terminal: "67e34d63-102f-4bd1-898e-370781d0074d"
Ответ:
{
"access_token": "DCEB8O_ZM5U7SO_T_U5EJQ",
"expires_in": 7200,
"scope": "webapi usermanagement email_send verification statement statistics payment",
"token_type": "Bearer"
}
Входящие параметры:
Название поля | Oписание | Обязательное/не обязательно |
---|
amount | Cумма платежа | Обязательное |
currency | Bалюта | Обязательное |
name | Имя держателя карты | Обязательное |
cryptogram | Закриптованные параметры платежной карты | Обязательное |
invoiceID | Номер заказа, генерируется коммерсантом, должен быть уникальный для каждого нового заказа, от 6 до 15 цифр. Если ваш номер заказа содержит более 6 символов, то дополнительно уникальность должна соблюдаться по последним 6ти символам | Обязательное |
invoiceIdAlt | Номер заказа, генерируется коммерсантом, должен быть уникальный для каждого нового заказа, от 6 до 15 цифр | Необязательно |
description | В данном поле передается информация о товарах или услугах, за которые производится оплата | Обязательное |
AccountId | Идентификатор клиента в системе коммерсанта или другой доп. параметр на усмотрение коммерсанта | необязательно |
email | Еmail клиента | Необязательно |
phone | Телефон клиента | Необязательно |
postLink | Линк для отправки результата авторизации в магазин | Необязательно |
failurePostLink | Линк для отправки неудачного результата авторизации либо информации об ошибке в магазин | Необязательно |
cardSave | Параметр сохранение карты, true - сохранить карту, false - не сохранять, boolean type | Обязательное |
data | Дополнительное поле транслируется в отчете при заполнении | Необязательно |
Проведение платежа
Method: POST
Тело запроса:
json
{
"amount": 10,
"currency": "KZT",
"name": "Test test",
"terminalId": "b861ab50-8387-46c3-be6e-f439d4492c3c",
"invoiceId": "80000148",
"description": "Оплата",
"accountId": "",
"email": "nemesis_311@gmail.com",
"phone": "+77078071180",
"backLink": "http://example/backLink",
"failureBackLink": "http://example/failureBackLink",
"postLink": "http://example/postLink",
"failurePostLink": "http://example/failurePostLink",
"cardSave": false,
"useBonus": false,
"paymentType": "googlePay",
"googlePay": {
"apiVersionMinor": 0,
"apiVersion": 2,
"paymentMethodData": {
"description": "Visa •••• 1111",
"tokenizationData": {
"type": "PAYMENT_GATEWAY",
"token": "{\"signature\":\"MEQCIG0Pt0VSb8/W00fzbPLtO5z3DYNrG1IrU94YI0U3VZw3AiAekJRW2Bcq1+hPbcbBniw9vRNSH2w3+qFX5EcQwkJo1w\\u003d\\u003d\",\"intermediateSigningKey\":{\"signedKey\":\"{\\\"keyValue\\\":\\\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEwIIrniC3/DfJjejVaHVsBGZLO9LW9ggLXWaoEVnpZuFgLSH4qEanNlHvZkr6A04aVq/7HgYaxLkotk6ZKSr3qQ\\\\u003d\\\\u003d\\\",\\\"keyExpiration\\\":\\\"1695271732552\\\"}\",\"signatures\":[\"MEQCIFurLZqmGGY9jZ+ZL+8iHtdxFRY3VMdKwcxrO0tunvuoAiBywEKS7Q2qwh4SmjY99tNaVYrfr8/Cygd8c/0XoP2K4Q\\u003d\\u003d\"]},\"protocolVersion\":\"ECv2\",\"signedMessage\":\"{\\\"encryptedMessage\\\":\\\"5XrIV3etzcSBdH8fgO+eCIxH3jWrGSUPPVXci3s22nD5Ab+9EtihPz/Zc3ODVwINNWOtkqfJxiu3UUaz1LbICfM1I2rhqyANCc35fK+Fd/JZNQv7eFNVVNxVdt2eBiQxPod+2K5v4jCJJkGevdbqQUW1OncL1QXpt8e/dNj1o7CTGCxxV6iN+8DjAo4xyvZJqKsjA3PzzKDhfNdM6zohKcgNqtPP30uI8EGK1PdGQDFCuPYFRYpKCVOx3qibRuI5x46pHV86GLUmMDbETSNOIYnwpOu0RVcMLdb74xQ9awoiXILSSM/IGhQUJnxeUbckzYsqwbZ88Ks6kmbHmCs3oHcgL4Lblt7hE07vW1Y1VJQ05/oTcT98R9WWzKeOTSvA8ru7o3oUxdwww1QIb9VytOz2IbGiI+ZepGehImTxsOUJkG3QwoFevDVDV67cf6KfTxUd97OarcE6Nk3crwO+GIASJw/U5lycj74HRd/h25Fme8TFf6BMmcOHUezy6Tx+iHO5j3P0QMDT0a4bVb8wuUPa0CE1DQH75E+EVSUb2tmRURkqDrDKCN6GP2VCvxqsSzV26zZbl8Xv\\\",\\\"ephemeralPublicKey\\\":\\\"BOmDg7vgShCeyoYT5EgzyV8NGdh3AbDe1yHmf2WRv+tKYlfjd8bhGJnc1hkLVjY80VKFBxUw2eDhqd1bGzXoxQ0\\\\u003d\\\",\\\"tag\\\":\\\"I9P/hCUvJTg+cVO7H+snaOAtACB9J0gySh/LEih0yH8\\\\u003d\\\"}\"}"
},
"type": "CARD",
"info": {
"cardNetwork": "VISA",
"cardDetails": "1111"
}
}
}
}
Поля запроса:
amount | Сумма платежа в валюте указанной в поле currency |
---|
currency | Валюта платежа в формате ISO 4217 (например, "KZT" для казахстанского тенге) |
name | Имя плательщика |
terminalId | Идентификатор терминала или магазина для обработки платежа |
invoiceId | Идентификатор счета или заказа, связанный с платежом |
description | Описание платежа |
accountId | Идентификатор аккаунта плательщика (если применимо) |
email | Адрес электронной почты плательщика |
phone | Телефонный номер плательщика |
backLink | URL для перенаправления пользователя после успешного завершения платежа |
FailureBacklink | URL для перенаправления пользователя в случае неудачного завершения платежа |
postlink | URL, на который провайдер платежей отправит обратную связь о статусе платежа после успешного завершения |
failurePostlink | URL, на который провайдер платежей отправит обратную связь о статусе платежа в случае неудачного завершения |
cardSave | Флаг, указывающий, нужно ли сохранять данные карты плательщика для будущих платежей (в данном случае установлено значение false) |
useBonus | Флаг, указывающий, нужно ли использовать бонусные средства плательщика для оплаты (в данном случае установлено значение false) |
paymentType | Тип платежа, в данном случае установлено значение googlePay |
googlePay | Объект, содержащий информацию о платеже с использованием Google Pay |
apiVersionMinor | Версия API Google Pay (в данном случае установлено значение 0) |
apiVersion | Версия API Google Pay (в данном случае установлено значение 2) |
paymentMethodData | Объект, содержащий информацию об используемом способе оплаты |
descrption | Описание способа оплаты (например,"Visa •••• 1111") |
tokenizationData | Объект, содержащий информацию о токенизации платежных данных |
type | Тип токенизации (в данном случае установлено значение PAYMENT_GATEWAY) |
token | Значение токена полученное от системы Google |
type | Тип способа оплаты (в данном случае установлено значение CARD) |
info | Объект, содержащий информацию о платежной карте |
cardNetwork | Сеть платежной карты (например, "VISA") |
cardDetails | Последние четыре цифры номера платежной карты (например, "1111") |
После отправки запроса на API оплаты, вы ожидаете получить ответ с информацией о статусе платежа. Обработайте ответ соответствующим образом в вашей системе используя сервис проверки статуса платежа
TEST URL: GET https://testepay.homebank.kz/api/check-status/payment/transaction/:invoiceid
PROD URL: GET https://epay-api.homebank.kz/check-status/payment/transaction/:invoiceid
Требуется авторизации: client credentials
Запрос
Получение токена
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"
terminal: "67e34d63-102f-4bd1-898e-370781d0074d"
Поле | Описание |
---|
grant type | Тип авторизации, для проведения платежа используется тип client_credentials |
scope | Ресурс |
client id | Идентификатор коммерсанта, можно получить в кабинете, выдается при регистрации |
client secret | Ключ доступа коммерсанта, можно получить в кабинете, выдается при регистрации |
terminal | Идентификатор точки продаж, можно получит в кабинете, выдается при регистрации |
Ответ:
{
"access_token": "DCEB8O_ZM5U7SO_T_U5EJQ",
"expires_in": 7200,
"scope": "webapi usermanagement email_send verification statement statistics payment",
"token_type": "Bearer"
}
Поле | Описание |
---|
access token | Токен для проведения операции |
expires in | Время истечения токена |
refresh token | Не используется при данном типе авторизации |
scope | Ресурс, для проведения платежа используется ресурс |
token type | Тип авторизации |
Headers
Authorization: Bearer dGVzdGNsaWVudDpzZWNyZXQ=
HTTP CODE 200
Responce Body JSON:
{
"resultCode": "100",
"resultMessage": "SUCCESS",
"transaction": {
"id": "af2089fe-43b1-47eb-a61f-c78dd196e18d",
"createdDate": "2022-11-15T03:52:17.289853+06:00",
"invoiceID": "205218074",
"amount": 12.22,
"amountBonus": 0,
"payoutAmount": 10,
"orgAmount": 22.22,
"approvalCode": "170243",
"data": "{\"custom_id\":\"2023.03.10-15:03:58\",\"email\":\"epay@halykbank.kz\",\"deal_number\":\"1111111\",\"offer_code\":\"1111111\",\"sum\":33900}",
"currency": "KZT",
"terminal": "98120001",
"terminalID":"67e34d63-102f-4bd1-898e-370781d0074d",
"accountID": "",
"description": "order 205218074",
"language": "RU",
"cardMask": "400303...9821",
"cardType": "VISA",
"issuer": "Казкоммерцбанк",
"reference": "231951411351",
"reason": "Successfully",
"reasonCode": "00",
"intReference": "67140D7DE97139A7",
"secure": false,
"statusID": "5bbb7dd5-4691-41ee-a6a5-755a3d23a218",
"statusName": "REFUND",
"name": "ARMAN ALI",
"email": "epay@halykbank.kz",
"phone": "",
"cardID": "e8a09f98-04b4-71a6-e053-1d1a000aa0d2",
"xlsRRN": "",
"ip": "46.148.239.182",
"ipCountry": "Kazakhstan",
"ipCity": "",
"ipRegion": "",
"ipDistrict": "",
"ipLatitude": 55.7386,
"ipLongitude": 37.6068
}
}
Error:
{
"resultCode": "101",
"resultMessage": "reject",
"transaction": null
}
resultcode
Поле | Описание | |
---|
100 | Success | Успех выполнения запроса, в каком состоянии находиться платеж необходимо смотреть по statusName |
101 | Reject | Tранзакция неуспешная |
102 | Invoice not found, try again later or check transaction type (payment/p2p) | Hомер invoiceId не найден в системе, возможно ваша транзакция проходила по сервису p2p. |
103 | Try again or contact support | необходимо повторить запрос либо обратиться в службу поддержки |
104 | Field terminal absent in token | Oтсутствует параметр TerminalID при запросе токена |
106 | Error, incorrect terminalID | Hекорректный TerminalID при запросе токена |
107 | In progress | операция в процессе выполнения, запросите статус позже |
statusName
Поле | Описание |
---|
REFUND | Был осуществлён возврат списанной суммы |
AUTH | Сумма в блоке |
CANCEL | Сумма разблокирована |
CHARGE | Сумма списана |
CANCEL_OLD | Отмена авторизации на стороне Эмитента происходит в случае истечения срока действия операции CHARGE/CANCEL |
FAILED | Транзакция неуспешная |
3D | Ошибка на стадии проверки 3D |
NEW | Операция создалась но пока находится в промежуточном состоянии (если вы получили этот статус при запросе статуса транзакции вручную, то примите во внимание что он может быть изменён) |
REJECT | Неуспешная попытка оплаты |