Skip to content

P2P Перенос

Обзор
Функция P2P Transfer API позволяет осуществлять беспрепятственные одноранговые транзакции, предоставляя пользователям безопасный и эффективный способ перевода средств. API состоит из трех основных конечных точек: получение информации о карте получателя, создание транзакции P2P и подтверждение транзакции.

Перед отправкой запроса

  • Убедитесь, что у вас есть API-ключ подписки, предоставленный Paylov.
  • Включите ключ API в заголовки запросов.

1. Получить информацию о карте получателя по номеру карты

Описание: Получает информацию о карте получателя на основе предоставленного номера карты.

Сведения о конечной точке

Метод: POST
URL: BASE_URL/merchant/p2p/receiver/
Заголовок:

http
Authorization: Bearer < ACCESS_TOKEN >

Параметры запроса

ПараметрТипТребуетсяОписание
cardNumberstringДаНомер карты получателя. Принимает pan, token или cardId

Примечание. Принимает pan, токен или cardId.

  • cardId: Вы можете получить cardId, добавив карту в систему Paylov, используя методы createUserCard, а затем confirmUserCardCreate. методы.
  • токен: вы можете получить token, вызвав конечную точку p2p/receiver/list/.

Пример запроса

json
{
  "cardNumber": "9860000000000000" # pan | cardId | token
}

Пример ответа (SUCCESS)

json

{
  "result": {
    "card": {
      "holderName": "Test Test",
      "cardNumber": "986034******8888"
      "vendor": "Humo",
      "processing": "Humo"
    },
    "bank": {
      "id": 32,
      "name": "TengeBank"
    }
  }
}

Пример ответа (FAIL)**

json
{
  "error": {
    "code": "card_not_found",
    "message": "card_not_found"
  }
}

2. Получите карты получателя по номеру телефона

Описание: Получает информацию о карте получателя по номеру телефона.

Подробности конечной точки

Метод: POST
URL: BASE_URL/merchant/p2p/receiver/list/
Заголовок:

http
Authorization: Bearer <ACCESS_TOKEN>

Параметры запроса

ПараметрТипТребуетсяОписание
phoneNumberstringДаТелефон получателя (+998***)

Пример запроса

json
{
  "phoneNumber": "+999*********"
}

Пример ответа (SUCCESS)

json

{
  "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)

json
{
  "error": {
    "code": "card_not_found",
    "message": "card_not_found"
  }
}

💡 Примечание. Поле token можно использовать как cardNumber в методе создания транзакции P2P.


3. Создать транзакцию P2P

Описание: Инициирует транзакцию P2P между отправителем и получателем. В этой части необходима только информация о получателе.

Подробности конечной точки

Метод: POST
URL: BASE_URL/merchant/p2p/transfer/create/
Заголовок:

http
Authorization: Bearer <ACCESS_TOKEN>

Тело запроса

Поляsample_dataтиптребуетсяОписание
cardNumber9860000000000001stringДаНомер карты или токен получателя
amount10000intДаСумма перевода
cardId9f877739-bc25-4f0f-a13f-ec485fd04250stringНетcardId, созданная в системе Paylov (карта плательщика).
serviceId9f877739-bc25-4f0f-a13f-ec485fd04250stringНетИдентификатор, предоставленный поставщиком платежей, чтобы указать, какой терминал следует использовать для перевода денег. Если он не указан, будет использоваться терминал по умолчанию.
комиссия100intНетЕсли комиссия взимается вашей стороной, вы должны предоставить ее здесь в тийыне (1/100 суммы). Это поле не применяется для транзакций Humo2Humo и Humo2Uzcard — в этом случае комиссия, определенная в терминале, будет автоматически рассчитана на основе суммы транзакции.

Пример запроса

json

{
  "cardNumber": "9860340101278885", # pan or token
  "amount": 10000     # amount in tiyn (100 = 1 SUM)
}

Пример ответа

json

{
  "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/
Заголовок:

http
Authorization: Bearer <ACCESS_TOKEN>

Тело запроса

ПараметрТипТребуетсяОписание
transactionIdstringДаУникальный идентификатор транзакции для подтверждения
cardIdstringДаУникальный идентификатор карты, который создается в системе Paylov.

Пример запроса

json
{
  "transactionId": "dad9cb0e-957c-47ab-841d-b4943f583a7a",
  "cardId": "5b01aea9-5ad3-4c6a-a721-220c449c8d14"
}

Пример ответа

json
{
  "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_found
  • receiver_card_not_valid
  • unsupported_transfer
  • same_cards
  • server_error
  • error_at_pay

Структура ошибки

json
{
  "error": {
    "code": "string",
    "message": "string",
	  "data": {} // dict or string, Null 
  }
}

# 'data' field might not be in error response