Skip to content

P2P Transfer

Overview
P2P Transfer API foydalanuvchilar o‘rtasida mablag‘ o‘tkazishni xavfsiz va qulay tarzda amalga oshirish imkonini beradi. API uchta asosiy endpoint’dan iborat: qabul qiluvchi karta ma’lumotini olish, P2P tranzaksiyasini yaratish va tranzaksiyani tasdiqlash.

Before sending a request

  • Paylov tomonidan berilgan subscribe api-key mavjudligiga ishonch hosil qiling
  • So‘rov header qismida API key’ni yuboring

1. Get receiver card info by card number

Description: Berilgan karta raqami asosida qabul qiluvchi kartasi ma’lumotlarini qaytaradi.

Endpoint details

Method: POST
URL: BASE_URL/merchant/p2p/receiver/
Header:

http
Authorization: Bearer < ACCESS_TOKEN >

Request Parameters

ParameterTypeRequiredDescription
cardNumberstringYesQabul qiluvchi kartasining raqami. pan, token yoki cardId qabul qilinadi

Note: pan, token yoki cardId qabul qilinadi

  • cardId: createUserCard va undan keyin confirmUserCardCreate metodlari orqali kartani Paylov tizimiga qo‘shib cardId olishingiz mumkin
  • token: p2p/receiver/list/ endpoint’ini chaqirish orqali token olishingiz mumkin

Request example

json
{
  "cardNumber": "9860000000000000"
}

Response example (SUCCESS)

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

Response example (FAIL)

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

2. Get Receiver Cards by Phone Number

Description: Qabul qiluvchining karta ma’lumotlarini telefon raqami orqali qaytaradi.

Endpoint details

Method: POST
URL: BASE_URL/merchant/p2p/receiver/list/
Header:

http
Authorization: Bearer <ACCESS_TOKEN>

Request parameters

ParameterTypeRequiredDescription
phoneNumberstringYesQabul qiluvchining telefon raqami (+998***)

Request example

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

Response example (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"
      }
    ]
  }
}

Response example (FAIL)

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

💡 Note: token maydoni Create P2P Transaction metodida cardNumber sifatida ishlatilishi mumkin.


3. Create P2P Transaction

Description: Yuboruvchi va qabul qiluvchi o‘rtasida P2P tranzaksiyasini yaratadi. Bu qismda faqat qabul qiluvchi ma’lumoti kerak bo‘ladi.

Endpoint details

Method: POST
URL: BASE_URL/merchant/p2p/transfer/create/
Header:

http
Authorization: Bearer <ACCESS_TOKEN>

Request Body

Fieldssample_datatyperequiredDescription
cardNumber9860000000000001stringYesQabul qiluvchining karta raqami yoki token’i
amount10000intYesO‘tkaziladigan summa
cardId9f877739-bc25-4f0f-a13f-ec485fd04250stringNoPaylov tizimida yaratilgan cardId (to‘lovchi karta)
serviceId9f877739-bc25-4f0f-a13f-ec485fd04250stringNoQaysi terminal orqali pul o‘tkazilishi kerakligini ko‘rsatish uchun to‘lov provayderi tomonidan berilgan identifikator. Agar yuborilmasa, standart terminal ishlatiladi
commission100intNoAgar komissiya sizning tomondan undirilsa, uni bu yerda tiyin ko‘rinishida yuborishingiz kerak (1/100 sum). Bu maydon Humo2Humo va Humo2Uzcard tranzaksiyalarida qo‘llanmaydi. Bunday holatda terminalda belgilangan komissiya tranzaksiya summasiga qarab avtomatik hisoblanadi

Request example

json
{
  "cardNumber": "9860340101278885",
  "amount": 10000
}

Response example

json
{
  "result": {
    "transactionId": "dad9cb0e-957c-47ab-841d-b4943f583a7a",
    "receiver": {
      "holderName": "Test Test",
      "cardNumber": "986034******8885",
      "amount": 10000,
      "commission": 0
    },
    "sender": {
      "holderName": null,
      "cardNumber": null,
      "amount": 10100,
      "commission": 100
    }
  }
}

4. Confirm Transaction

Description: P2P tranzaksiyasini tasdiqlaydi va pul o‘tkazmasini yakunlaydi.

Endpoint details

Method: POST
URL: BASE_URL/merchant/p2p/transfer/confirm/
Header:

http
Authorization: Bearer <ACCESS_TOKEN>

Request body

ParameterTypeRequiredDescription
transactionIdstringYesTasdiqlanishi kerak bo‘lgan tranzaksiyaning noyob identifikatori
cardIdstringYesPaylov tizimida yaratilgan kartaning noyob identifikatori

Request example

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

Response example

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
}

Error Codes

  • receiver_card_not_found
  • receiver_card_not_valid
  • unsupported_transfer
  • same_cards
  • server_error
  • error_at_pay

Error Structure

json
{
  "error": {
    "code": "string",
    "message": "string",
    "data": {}
  }
}

data maydoni error response ichida bo‘lmasligi ham mumkin.