P2P Перенос
Обзор
Функция P2P Transfer API позволяет осуществлять беспрепятственные одноранговые транзакции, предоставляя пользователям безопасный и эффективный способ перевода средств. API состоит из трех основных конечных точек: получение информации о карте получателя, создание транзакции P2P и подтверждение транзакции.
Перед отправкой запроса
- Убедитесь, что у вас есть API-ключ подписки, предоставленный Paylov.
- Включите ключ API в заголовки запросов.
1. Получить информацию о карте получателя по номеру карты
Описание: Получает информацию о карте получателя на основе предоставленного номера карты.
Сведения о конечной точке
Метод:
POST
URL: BASE_URL/merchant/p2p/receiver/
Заголовок:
Authorization: Bearer < ACCESS_TOKEN >Параметры запроса
| Параметр | Тип | Требуется | Описание |
|---|---|---|---|
| cardNumber | string | Да | Номер карты получателя. Принимает pan, token или cardId |
Примечание. Принимает pan, токен или cardId.
- cardId: Вы можете получить
cardId, добавив карту в систему Paylov, используя методыcreateUserCard, а затемconfirmUserCardCreate. методы. - токен: вы можете получить
token, вызвав конечную точкуp2p/receiver/list/.
Пример запроса
{
"cardNumber": "9860000000000000" # pan | cardId | token
}Пример ответа (SUCCESS)
{
"result": {
"card": {
"holderName": "Test Test",
"cardNumber": "986034******8888"
"vendor": "Humo",
"processing": "Humo"
},
"bank": {
"id": 32,
"name": "TengeBank"
}
}
}Пример ответа (FAIL)**
{
"error": {
"code": "card_not_found",
"message": "card_not_found"
}
}2. Получите карты получателя по номеру телефона
Описание: Получает информацию о карте получателя по номеру телефона.
Подробности конечной точки
Метод:
POST
URL: BASE_URL/merchant/p2p/receiver/list/
Заголовок:
Authorization: Bearer <ACCESS_TOKEN>Параметры запроса
| Параметр | Тип | Требуется | Описание |
|---|---|---|---|
| phoneNumber | string | Да | Телефон получателя (+998***) |
Пример запроса
{
"phoneNumber": "+999*********"
}Пример ответа (SUCCESS)
{
"result": {
"cards": [
{
"holderName": "Levi A.",
"masked_pan": "986034******8888",
"token": "f04df295-4b58-4299-9dd4-72cd11e15512",
"processing": "Humo",
"vendor": "Humo"
},
{
"holderName": "Levi A.",
"masked_pan": "860003******3515",
"token": "2133b7b9-45d9-496e-99da-77c11a817d8b",
"processing": "Uzcard",
"vendor": "Uzcard"
}
]
}
}Пример ответа (FAIL)
{
"error": {
"code": "card_not_found",
"message": "card_not_found"
}
}💡 Примечание. Поле
tokenможно использовать какcardNumberв методе создания транзакции P2P.
3. Создать транзакцию P2P
Описание: Инициирует транзакцию P2P между отправителем и получателем. В этой части необходима только информация о получателе.
Подробности конечной точки
Метод:
POST
URL: BASE_URL/merchant/p2p/transfer/create/
Заголовок:
Authorization: Bearer <ACCESS_TOKEN>Тело запроса
| Поля | sample_data | тип | требуется | Описание |
|---|---|---|---|---|
| cardNumber | 9860000000000001 | string | Да | Номер карты или токен получателя |
| amount | 10000 | int | Да | Сумма перевода |
| cardId | 9f877739-bc25-4f0f-a13f-ec485fd04250 | string | Нет | cardId, созданная в системе Paylov (карта плательщика). |
| serviceId | 9f877739-bc25-4f0f-a13f-ec485fd04250 | string | Нет | Идентификатор, предоставленный поставщиком платежей, чтобы указать, какой терминал следует использовать для перевода денег. Если он не указан, будет использоваться терминал по умолчанию. |
| комиссия | 100 | int | Нет | Если комиссия взимается вашей стороной, вы должны предоставить ее здесь в тийыне (1/100 суммы). Это поле не применяется для транзакций Humo2Humo и Humo2Uzcard — в этом случае комиссия, определенная в терминале, будет автоматически рассчитана на основе суммы транзакции. |
Пример запроса
{
"cardNumber": "9860340101278885", # pan or token
"amount": 10000 # amount in tiyn (100 = 1 SUM)
}Пример ответа
{
"result": {
"transactionId": "dad9cb0e-957c-47ab-841d-b4943f583a7a",
"receiver": {
"holderName": "Test Test",
"cardNumber": "986034******8885",
"amount": 10000, # amount that reciver gets
"commission": 0
},
"sender": {
"holderName": null,
"cardNumber": null,
"amount": 10100, # amount that will be withdrawn
"commission": 100
}
}
}4. Подтвердить транзакцию
Описание: Подтверждает транзакцию P2P и завершает передачу.
Подробности конечной точки
Метод:
POST
URL: BASE_URL/merchant/p2p/transfer/confirm/
Заголовок:
Authorization: Bearer <ACCESS_TOKEN>Тело запроса
| Параметр | Тип | Требуется | Описание |
|---|---|---|---|
| transactionId | string | Да | Уникальный идентификатор транзакции для подтверждения |
| cardId | string | Да | Уникальный идентификатор карты, который создается в системе Paylov. |
Пример запроса
{
"transactionId": "dad9cb0e-957c-47ab-841d-b4943f583a7a",
"cardId": "5b01aea9-5ad3-4c6a-a721-220c449c8d14"
}Пример ответа
{
"result": {
"transactionId": "dad9cb0e-957c-47ab-841d-b4943f583a7a",
"status": "paid",
"amount": 10000,
"commission": 100,
"currency": 860
"paid_at": "2024-08-13 14:30:45",
},
"error": null
}Коды ошибок
receiver_card_not_foundreceiver_card_not_validunsupported_transfersame_cardsserver_errorerror_at_pay
Структура ошибки
{
"error": {
"code": "string",
"message": "string",
"data": {} // dict or string, Null
}
}
# 'data' field might not be in error response