Skip to content

Hold Payment

API Documentation: Hold Create & Hold Charge & Hold Dismiss

Ushbu API foydalanuvchi mablag‘iga vaqtinchalik hold qo‘yish va keyinchalik hold qilingan summani yechib olish imkonini beradi.

  • Hold Create foydalanuvchi kartasida ko‘rsatilgan summani cheklangan muddatga band qiladi.
  • Hold Charge hold qilingan summaning to‘liq qismini yoki undan kichik qismini yechib olib, to‘lovni amalga oshiradi.
  • Hold Dismiss avval yaratilgan hold’ni bekor qiladi. Hold bekor qilingandan so‘ng band qilingan summa yechiladi va ushbu hold bo‘yicha boshqa yechim amalga oshirib bo‘lmaydi.

1. Hold Create

Method: POST
URL: BASE_URL/merchant/payment/hold/create/
Header:

http
Authorization: Bearer <ACCESS_TOKEN>

Request body

FieldSample DataTypeRequiredDescription
amount1000intYesSumma SUM ko‘rinishida yuboriladi (1000 = 1,000 SUM)
userId123stringNoMerchant tomonidan berilgan foydalanuvchi identifikatori
account{"field_name": "sample data"}dictNoQo‘shimcha ma’lumot bo‘lmasa bo‘sh dict {} yuboring
cardId9f877739-bc25-4f0f-a13f-ec485fd04250stringYesPaylov tizimida yaratilgan Card ID
time10intYesHold muddati daqiqalarda. Maksimal qiymat: 40320 (28 kun)
externalIdexternalId1stringNoTashqi identifikator. Maksimal uzunligi: 64 ta belgi
serviceId9f877739-bc25-4f0f-a13f-ec485fd04250stringNoTo‘lov tizimi tomonidan taqdim etiladi
json
{
  "userId": "string",
  "cardId": "string",
  "amount": 10,
  "account": {
    "additionalProp1": "string",
    "additionalProp2": "string",
    "additionalProp3": "string"
  },
  "time": 10,
  "externalId": "string",
  "serviceId": "uuid"
}
FieldTypeRequiredDescription
userIdstringYesFoydalanuvchining noyob identifikatori
cardIdstringYesHold uchun ishlatilayotgan kartaning noyob identifikatori
amountintegerYesHold qilinadigan summa (sum ko‘rinishida)
accountobjectNoAccount uchun qo‘shimcha xususiyatlarni o‘z ichiga oladi
account.additionalProp1stringOptionalMaxsus account ma’lumoti
account.additionalProp2stringOptionalMaxsus account ma’lumoti
account.additionalProp3stringOptionalMaxsus account ma’lumoti
timeintegerYesHold muddati daqiqalarda. Maksimal ruxsat etilgan qiymat 28 kun (40320 daqiqa)

Success response

json
{
  "result": {
    "transactionId": "uuid4"
  }
}
Fieldsample_dataTypeDescription
transactionIduuid4stringTranzaksiyaning noyob identifikatori

2. Hold Charge

Method: POST
URL: /merchant/payment/hold/charge/
Header:

http
Authorization: Bearer <ACCESS_TOKEN>

Request body

json
{
  "transactionId": "string",
  "amount": 10
}
FieldTypeRequiredDescription
transactionIdstringYesHold tranzaksiyasining noyob identifikatori
amountintegerYesHold ichidan yechib olinadigan summa

Success Response

json
{
  "result": {
    "transactionId": "string",
    "cardId": "string",
    "payedAt": "YYYY-MM-DD HH:mm:ss"
  }
}
FieldTypeDescription
transactionIdstringTranzaksiyaning noyob identifikatori
cardIdstringTo‘lov amalga oshirilgan karta
payedAtstringTo‘lov amalga oshirilgan vaqt. Format: YYYY-MM-DD HH:mm:ss

3. Hold Dismiss

Ushbu API band qilingan mablag‘ni foydalanuvchiga qayta ochib berish kerak bo‘lganda ishlatiladi. Hold qilingan mablag‘ foydalanuvchi bank kartasida yana foydalanish uchun mavjud bo‘ladi.

Method: POST
URL: /merchant/payment/hold/dismiss/
Header:

http
Authorization: Bearer <ACCESS_TOKEN>

Request Body

json
{
  "transactionId": "string"
}
FieldTypeRequiredDescription
transactionIdstringYesBekor qilinishi kerak bo‘lgan hold tranzaksiyasining noyob identifikatori

Success response

json
{
  "result": {
    "transactionId": "uuid",
    "status": "cancelled"
  }
}
FieldTypeDescription
transactionIdstring (UUID)Bekor qilingan hold tranzaksiyasining noyob identifikatori
statusstringTranzaksiya holati

HOLD Status

Method: GET
Endpoint: BASE_URL/merchant/payment/hold/status/
queryParams: externalId yoki transactionId

Example GET request with external id

Method: GET
URL: BASE_URL/merchant/payment/hold/status/?externalId=123
Header:

http
Authorization: Bearer <ACCESS_TOKEN>

Response

json
{
  "result": {
    "transactionId": "d1be13da-4355-4b27-956d-d83b87e013f1",
    "status": "cancelled",
    "cancelTime": "2025-02-03 11:13:42",
    "payedAt": null,
    "amount": 10,
    "serviceId": "d1be13da-4355-4b27-956d-d83b87e013f1"
  }
}

Result statuses

paid — muvaffaqiyatli tranzaksiya
cancelled — bekor qilingan tranzaksiya
hold — hold holatidagi tranzaksiya, agar hold muddati tugamagan bo‘lsa charge qilish mumkin
created — yaratilgan

Error response structure

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

Error codes

plaintext
hold_not_found
hold_time_expired
invalid_amount
field_not_valid
gateway_not_working
field_required
transaction_not_found