P2P – переводы

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

Запрос

grant_type: "client_credentials"
scope: " transfer"
client_id: "test"
client_secret:  "yF587AV9Ms94qN2QShFzVR3vFnWkhjbAK3sG"
invoiceID: "000000001"
amount: 	100
currency: "KZT"
terminal: "3ad0f5bd-88a8-464c-a9a4-cdb16d1dd31"
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":"transfer",
  "token_type":"Bearer"
}

ПолеОписание
access_tokenТокен для проведения операции
expires_inВремя истечения токена
refresh_tokenНе используется при данном типе авторизации
scopeРесурс, для проведения платежа используется ресурс
token_typeТип авторизации
ПолеОписание
access_tokenТокен для проведения операции
expires_inВремя истечения токена
refresh_tokenНе используется при данном типе авторизации
scope Ресурс, для проведения платежа используется ресурс
token_typeТип авторизации

Перенаправление на платежную страницу

На странице нужно подключить JS-библиотеку и вызвать в ней метод halyk.p2p().

В метод halyk.p2p() нужно передать следующие параметры.

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: "rus",
	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.p2p(createPaymentObject(auth, invoiceId, amount));

ПолеОписание
invoiceIdНомер заказа, генерируется коммерсантом, должен быть уникальный для каждого нового заказа,от 6 до 15 цифр. Если ваш номер заказа содержит более 6 символов, то дополнительно уникальность должна соблюдаться по последним 6ти символам
invoiceIdAltдополнительный номер заказа, генерируется коммерсантом, должен быть уникальный для каждого нового заказа,от 6 до 15 цифр
backLinkСсылка для возврата в магазин при удачном платеже
failureBackLinkСсылка для возврата в магазин при не удачном платеже
postLinkУведомление о платеже
failurePostLinkУведомление о неудачном платеже, если не заполнено, то информация будет отправлена на адрес указанный в postLink
languageЯзык rus/kaz/eng
descriptionОписание заказа, допустимое количество символов 125 байтов
accountIdполе для указания идентификатора клиента магазина, обазятелен при сохранений карты (cardSave:true) для сервиса получения списка сохраненных карт
terminalИдентификатор магазина
amountСумма заказа
currencyВалюта
phoneномер телефона клиента (не обязательно)
emailemail клиента (не обязательно)
cardSaveсохренение карты
authТокен / передается полностью как объект, все данные полученные от epay по запросу токена
dataдополнительное поле транслируется в отчете при заполнении (не обязательно)

Postlink

На указанный URL указанный в поле postLink будет отправлено сообщение. В случае если вы не получили postlink,или для проверки запроса от системы ePay, рекомендуем воспользоваться сервисом Статус транзакции

Ответ в случае успеха:

"id": "00879b4f-374e-4c3d-b48e-7cb3d249e3b0",
"amount": 100,
"fee": 100,
"accountID": "",
"currency": "KZT",
"email": "parkhomchik@gmail.com",
"description": "Оплата в интернет магазине",
"reference": "329957092146",
"orderID": "1698317548682",
"senderCardID": "f8953a37-aed8-240c-e053-1d1a000ae80c",
"senderCardPAN": "440563...5096",
"senderCardType": "VISA",
"senderTransferType": "TYPEPAN",
"receiverCardID": "f8953a37-aed9-240c-e053-1d1a000ae80c",
"receiverCardPAN": "552204...6736",
"receiverCardType": "MasterCard",
"receiverTransferType": "TYPEPAN",
"intReference": "BE8FC5EA0167B04B",
"terminalID": "c36b282f-6819-4d4f-85df-a4bdc8a8f703",
"code": 0,
"status": "CHARGE"

Проведение перевода по сохраненным картам

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

  1. Для проведения перевода с сохраненной карты на не сохраненную:
  • необходимо передать раннее полученный cardId отправителя в параметр senderCardId.
  • accountId персональный идентификатор Клиента в Системе коммерсанта.

sender 2. Для проведения перевода с не сохраненной карты на сохраненную карту:

  • необходимо передать раннее полученный cardId отправителя в параметр receiverCardId.
  • accountId персональный идентификатор Клиента в Системе коммерсанта.

receiver