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-keymavjudligiga 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:
Authorization: Bearer < ACCESS_TOKEN >Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| cardNumber | string | Yes | Qabul qiluvchi kartasining raqami. pan, token yoki cardId qabul qilinadi |
Note: pan, token yoki cardId qabul qilinadi
- cardId:
createUserCardva undan keyinconfirmUserCardCreatemetodlari orqali kartani Paylov tizimiga qo‘shibcardIdolishingiz mumkin - token:
p2p/receiver/list/endpoint’ini chaqirish orqalitokenolishingiz mumkin
Request example
{
"cardNumber": "9860000000000000"
}Response example (SUCCESS)
{
"result": {
"card": {
"holderName": "Test Test",
"cardNumber": "986034******8888",
"vendor": "Humo",
"processing": "Humo"
},
"bank": {
"id": 32,
"name": "TengeBank"
}
}
}Response example (FAIL)
{
"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:
Authorization: Bearer <ACCESS_TOKEN>Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| phoneNumber | string | Yes | Qabul qiluvchining telefon raqami (+998***) |
Request example
{
"phoneNumber": "+999*********"
}Response example (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"
}
]
}
}Response example (FAIL)
{
"error": {
"code": "card_not_found",
"message": "card_not_found"
}
}💡 Note:
tokenmaydoni Create P2P Transaction metodidacardNumbersifatida 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:
Authorization: Bearer <ACCESS_TOKEN>Request Body
| Fields | sample_data | type | required | Description |
|---|---|---|---|---|
| cardNumber | 9860000000000001 | string | Yes | Qabul qiluvchining karta raqami yoki token’i |
| amount | 10000 | int | Yes | O‘tkaziladigan summa |
| cardId | 9f877739-bc25-4f0f-a13f-ec485fd04250 | string | No | Paylov tizimida yaratilgan cardId (to‘lovchi karta) |
| serviceId | 9f877739-bc25-4f0f-a13f-ec485fd04250 | string | No | Qaysi terminal orqali pul o‘tkazilishi kerakligini ko‘rsatish uchun to‘lov provayderi tomonidan berilgan identifikator. Agar yuborilmasa, standart terminal ishlatiladi |
| commission | 100 | int | No | Agar 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
{
"cardNumber": "9860340101278885",
"amount": 10000
}Response example
{
"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:
Authorization: Bearer <ACCESS_TOKEN>Request body
| Parameter | Type | Required | Description |
|---|---|---|---|
| transactionId | string | Yes | Tasdiqlanishi kerak bo‘lgan tranzaksiyaning noyob identifikatori |
| cardId | string | Yes | Paylov tizimida yaratilgan kartaning noyob identifikatori |
Request example
{
"transactionId": "dad9cb0e-957c-47ab-841d-b4943f583a7a",
"cardId": "5b01aea9-5ad3-4c6a-a721-220c449c8d14"
}Response example
{
"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_foundreceiver_card_not_validunsupported_transfersame_cardsserver_errorerror_at_pay
Error Structure
{
"error": {
"code": "string",
"message": "string",
"data": {}
}
}data maydoni error response ichida bo‘lmasligi ham mumkin.