Kirish
Umumiy ma’lumot
ATMOS to‘lovlarni qabul qilishning universal platformasi savdogarlarga UzCard va Humo bank kartalaridan to‘lovlarni qabul qilishni tashkil etish maqsadida o‘z sayti yoki mobil ilovasini to‘lov shlyuziga integratsiya qilish imkonini beradi. ATMOS to‘lov platformasi bilan integratsiya quyidagi yo‘llar bilan amalga oshirilishi mumkin:
- Mijoz tomonida to‘lov vidjetini chaqirish;
- To‘lov sahifasiga o‘tish orqali to‘lov;
- API bilan integratsiya va tashqi mijozda to‘lovlarni qabul qilish;
Ishni boshlanishi
API REST protokoli bo‘yicha ishlaydi, barcha xabarlar formati JSON. API bilan ishlashni boshlash uchun savdogar ATMOSdan quyidagi ma’lumotlarni olishi kerak:
- Consumer key
- Consumer secret
Shuningdek, ishni boshlashdan oldin Callback API ishlash tamoyili bilan tanishish kerak.
Sinov ma’lumotlari
Qum qutisi bo‘limida integratsiya va tizimning ishlashi bilan tanishish uchun test ma’lumotlari keltirilgan.
API avtorizatsiyasi
ATMOS API bilan ishlash uchun har bir so‘rov sarlavhasiga o‘rnatiladigan va to‘lov operatsiyalarini amalga oshirishda noyob identifikator bo‘lib xizmat qiladigan kirish tokenini olish kerak. Quyida API kirish tokenini olish bo‘yicha ko‘rsatmalar keltirilgan.
Token olish
Bearer- tokenini olish uchun:
curl --location --request POST 'https://apigw.atmos.uz/token?grant_type=client_credentials' \
--header 'Authorization: Basic Base64(consumer-key:consumer-secret)'
POST /token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Authorization: Basic Base64(consumer-key:consumer-secret)
Host: apigw.atmos.uz
Content-Length: 29
//form-data
grant_type=client_credentials
```json
{
"access_token": "<access_token>",
"scope": "am_application_scope default",
"token_type": "Bearer",
"expires_in": 2525
}
HTTP Request
’POST https://apigw.atmos.uz/token’
Base64 (consumer_key + ’:’ + consumer_secret) formulasi bo‘yicha base64 formatida shifrlangan satrni parametr sifatida qabul qiladi. Serverning javobida 3600 soniya (1 soat) amal qiladigan kirish tokeni qaytariladi.
Token yangilanishi
Tashuvchi tokenini yangilash uchun:
curl --location 'https://apigw.atmos.uz/token' \
--header 'Authorization: Basic Base64(consumer-key:consumer-secret)' \
--header 'Content-Length: 29' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'refresh_token=<access_token>'
POST /token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Authorization: Basic Base64(consumer-key:consumer-secret)
Host: apigw.atmos.uz
Content-Length: 29
//form-data
grant_type=client_credentials
refresh_token=<access_token>
Javob namunasi:
{
"access_token": "<access_token>",
"scope": "am_application_scope default",
"token_type": "Bearer",
"expires_in": 2525
}
HTTP Request
’POST https://apigw.atmos.uz/token’
U avvalgi usulga o‘xshash funksiyalarga ega, faqat berilgan tokenning amal qilish muddatini uzaytiradi.
Token sharhi
Tashuvchi bearer-tokenini bekor qilish uchun:
curl --request POST \
--url https://apigw.atmos.uz/revoke \
--header 'Authorization: Basic Base64(consumer-key:consumer-secret) \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data token=<access_token>
POST /revoke HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Authorization: Basic Base64(consumer-key:consumer-secret)
Host: apigw.atmos.uz
Content-Length: 29
//form-data
token=<access_token>
Javob namunasi:
{
"access_token": "<access_token>",
"scope": "am_application_scope default",
"token_type": "Bearer",
"expires_in": 2525
}
HTTP Request
POST https://apigw.atmos.uz/revoke
Allaqachon berilgan tokenni bekor qiladi.
To‘lovlar
ATMOS API quyidagi yo‘llar bilan to‘lovlarni amalga oshirish imkonini beradi:
- Har bir to‘lovda karta egasiga bir martalik tasdiqlash kodini yuborish orqali;
- Tasdiqlash va rekvizitlarni kiritish zaruratisiz keyinchalik hisobdan chiqarish uchun kartani merchantga bog‘lash orqali.
Har bir so‘rov ("To‘lovlar" bo‘limining endpointlari uchun) serverdan olinadigan matnli ma’lumotlar tilini tanlash uchun o‘z tanasida ixtiyoriy lang maydonini o‘z ichiga olishi mumkin.
Lang maydoni uchun quyidagi qiymatlar joiz: uz, ru, en.
Har bir javob tanasida ("To‘lovlar" bo‘limining yakuniy nuqtalari uchun) hoshiyali natija obyekti mavjud:
- code - muvaffaqiyatli so‘rovlar uchun "OK" yoki xato raqami ko‘rsatilgan satr (Qarang: Tizim xatolari);
- description - Muvaffaqiyatli so‘rovlar uchun "Xatolar yo‘q" yoki xatolik tavsifi keltirilgan satr.
Tranzaksiya yaratish
So‘rov:
curl --request POST \
--url https://apigw.atmos.uz/merchant/pay/create \
--header 'Authorization: Bearer <access-token>' \
--header 'Content-Type: application/json' \
--data '{
"amount": 5000000,
"account": "12345",
"terminal_id": "XXXXXXXX",
"store_id": "XXXX",
"lang": "ru"
}'
POST /merchant/pay/create HTTP/1.1
Content-Type: application/json
Authorization: Bearer <access-token>
Host: apigw.atmos.uz
Content-Length: 123
{
"amount": 5000000,
"account": "12345",
"terminal_id": "XXXXXXXX",
"store_id": "XXXX",
"lang": "ru"
}
Response example:
{
"result": {
"code": "OK",
"description": "Xatolar yo’q"
},
"transaction_id": 111111,
"store_transaction": {
"success_trans_id": null,
"trans_id": 222222,
"store": {
"id": 0000,
"name": "Store name",
"desc": "",
"logo": null,
"ga_id": null
},
"terminal_id": "00000000",
"account": "000000000",
"amount": 5000000,
"confirmed": false,
"prepay_time": null,
"confirm_time": null,
"label": {
"type_id": 64,
"label_ru": "Номер инвойса",
"label_uz": "Invoys raqami",
"label_en": "Number of Invoice"
},
"details": null,
"commission_value": "0",
"commission_type": "0",
"total": 5000000,
"card_id": null,
"status_code": null,
"status_message": null
}
}
Kelgusida oldindan tasdiqlash va yakuniy tasdiqlash uchun tizimda tranzaksiyaning qoralamasini yaratadi va yaratilgan operatsiya raqamini qaytaradi.
HTTP so‘rovi
’POST https://apigw.atmos.uz/merchant/pay/create’
So‘rov parametrlari
| Parametr | Tavsuf | Majburiyligi |
|---|---|---|
| amount | To’lov summasi tiyinda | hа |
| account | To’lov identifikatori | hа |
| terminal_id | merchant terminal id-si | yo’q |
| store_id | merchant is-si | hа |
| lang | server javob berishi uchun til | yo’q |
Javob parametrlari
| Parametr | Tavsif |
|---|---|
| natija | server javobi holatidagi obyekt |
| transaction_id | tizimda yaratilgan tranzaksiya raqami |
| store_transaction | tranzaksiya tafsilotlari bilan obyekt |
| - terminal_id | tranzaksiya yaratilgan terminal id |
| - account | to‘lov identifikatori |
| - amount | tranzaksiya summasi tiyinlarda |
| - confirmed | tranzaksiya tasdiqlandimi |
| - prepay_time | tranzaksiyani oldindan tasdiqlash vaqti |
| - confirm_time | tranzaksiyani tasdiqlash vaqti |
| - label | Invoys raqami va meta-ma’lumotlari bilan obyekt
| - details | tranzaksiya tafsilotlari |
| - commission_value | komissiya miqdori tiyinlarda |
| - commission_type | xizmat maydoni |
| - total | tranzaksi yaning yakuniy summasi |
| - card_id | bu holatda null |
| - status_code | bu holatda null |
| - status_message | bu holatda null |
Tranzaksiyani oldindan tasdiqlash
So‘rov:
POST merchant/pay/pre-apply HTTP/1.1
Content-Type: application/json
Authorization: Bearer <access_token>
Host: apigw.atmos.uz
Content-Length: 102
{
"card_token": <card-token>,"
"store_id": 0000,
"transaction_id": 00000
}
curl --request POST \
--url https://apigw.atmos.uz/merchant/pay/pre-apply \
--header 'Authorization: <access_token \
--header 'Content-Type: application/json' \
--data '{
"card_token": "<card-token>",
"store_id": 0000,
"transaction_id": 00000
}'
Response example:
{
"transaction_id": 202072,
"result": {
"code": "OK",
"description": "Xatolar yo’q"
}
}
Yaratilgan tranzaksiya raqamini qabul qiladi va uni hisobdan chiqarishga tayyorlaydi. Karta raqami va amal qilish muddati usulga o‘tkazilgan taqdirda, karta egasiga tranzaksiyani tasdiqlash uchun bir martalik SMS-kod yuboriladi.
Bir martalik SMS tasdiqlash kodi orqali yechib olish uchun ’card_number’ va ’expiry’ maydonlaridan foydalaning.
Ilgari xizmatga biriktirilgan karta bo‘yicha yechib olish uchun card_number va expiry bo‘lmagan card_token maydonidan foydalanish kifoya.
HTTP so‘rovi
’POST https://apigw.atmos.uz/merchant/pay/pre-apply’
So‘rov parametrlari
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| card_token | Karta tokeni | +/- |
| card_number | Karta raqami | +/- |
| expiry | kartaning amal qilish muddati (YYmm) | +/- |
| store_id | merchant id(store) | hа |
| transaction_id | avval yaratilgan tranzaksiya raqami | hа |
Javob parametrlari
| Parametr | Tavsif |
|---|---|
| transaction_id | tranzaksiya id |
| result | server javobi maqomiga ega obyekt |
Tranzaksiya tasdig‘i
So‘rov:
POST /merchant/pay/apply HTTP/1.1
Content-Type: application/json
Authorization: Bearer Bearer <access-token>
Host: apigw.atmos.uz
Content-Length: 63
{
"transaction_id": 00000,
"otp": 111111,
"store_id": 0000
}
curl --request POST \
--url https://apigw.atmos.uz/merchant/pay/apply \
--header 'Authorization: Bearer <access-token>' \
--header 'Content-Type: application/json' \
--data '{
"transaction_id": 00000,
"otp": 111111,
"store_id": 0000
}'
Response example:
{
"result": {
"code": "OK",
"description": "Xatolar yo’q"
},
"store_transaction": {
"success_trans_id": 0000000,
"trans_id": 11111,
"store": {
"id": 0000,
"name": "XXXXX",
"desc": "",
"logo": null,
"ga_id": null
},
"terminal_id": "00000000",
"account": "0001",
"amount": 5000000,
"confirmed": true,
"prepay_time": 1656326498000,
"confirm_time": 1656326529324,
"label": {
"type_id": 64,
"label_ru": "Номер инвойса",
"label_uz": "Invoys raqami",
"label_en": "Number of Invoice"
},
"details": null,
"commission_value": "0",
"commission_type": "0",
"total": 5000000,
"card_id": "XXXXXX",
"status_code": "0",
"status_message": "Success"
},
"ofd_url": "https://ofd2.atmos.uz/api/ofd/bUFLd0Erc2NyTEJMWGFyQlNaRUdRZz09",
"ofd_url_commission": "https://ofd2.atmos.uz/api/ofd-commission/bUFLd0Erc2NyTEJMWGFyQlNaRUdRZz09"
}
Tranzaksiyani tasdiqlaydi va kartadan pulni sotuvchi terminaliga yechib oladi.
HTTP so‘rovi
’POST https://apigw.atmos.uz/merchant/pay/apply’
So‘rov parametrlari
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| result | serverning javob holatiga ega obyekt | |
| transaction_id | tizimda yaratilgan tranzaksiya raqami | |
| store_transaction | tranzaksiya tafsilotlari bilan obyekt | |
| - success_trans_id | muvaffaqiyatli tranzaksiyaning doimiy raqami | |
| - trans_id | tranzaksiya raqami | |
| - store | merchant ma’lumotlariga ega obyekt | |
| - terminal_id | tranzaksiya yaratilgan terminal id | |
| - account | to‘lov identifikatori | |
| - amount | tranzaksiya summasi tiyinlarda | |
| - confirmed | tranzaksiya tasdiqlandimi | |
| - prepay_time | tranzaksiyani oldindan tasdiqlash vaqti | |
| - confirm_time | tranzaksiyani tasdiqlash vaqti | |
| - label | Invoys raqami va meta-ma’lumotlari bilan obyekt | |
| - details | tranzaksiya tafsilotlari | |
| - commission_value | komissiya miqdori tiyinlarda | |
| - commission_type | xizmat maydoni | |
| - total | tranzaksiyaning yakuniy summasi | |
| - card_id | karta tokeni | |
| - status_code | xizmat maydoni | |
| - status_message | tranzaksiya holati | |
| ofd_url | mahsulot/xizmat uchun fiskal chek havolasi | |
| ofd_url_comission | fiskal chek havolasi (komissiya) |
Multi-tranzaksiya yaratish
So‘rov:
POST /merchant/bulk/pay/create HTTP/1.1
Content-Type: application/json
Authorization: Bearer <access-token>
Host: apigw.atmos.uz
Content-Length: 208
{
"store_id": <store-id>,
"params": [
{
"account": "user_1",
"amount": 50000,
"details": " Xizmat uchun 1"
},
{
"account": "user_1",
"amount": 100000,
"details": " Xizmat uchun 1"
}
]
}
curl --request POST \
--url https://apigw.atmos.uz/merchant/bulk/pay/create \
--header 'Authorization: <access_token \
--header 'Content-Type: application/json' \
--data '{
"store_id": <store-id>,
"params": [
{
"account": "user_1",
"amount": 50000,
"details": " Xizmat uchun 1"
},
{
"account": "user_1",
"amount": 100000,
"details": "Xizmat uchun 1"
}
]
}'
Response example:
{
"result": {
"code": "OK",
"description": "Xatolar yo’q"
},
"transaction_id": [111111, 222222],
"store_transactions": [
{
"success_trans_id": null,
"trans_id": 111111,
"store": {
"id": 0000,
"name": "Store name",
"desc": "",
"logo": null,
"ga_id": null
},
"terminal_id": "00000000",
"account": "000000000",
"amount": 50000,
"confirmed": false,
"prepay_time": null,
"confirm_time": null,
"label": {
"type_id": 64,
"label_ru": "Номер инвойса",
"label_uz": "Invoys raqami",
"label_en": "Number of Invoice"
},
"details": "Для услуги 1",
"commission_value": "0",
"commission_type": "0",
"total": 50000,
"card_id": null,
"status_code": null,
"status_message": null
},
{
"success_trans_id": null,
"trans_id": 222222,
"store": {
"id": 0000,
"name": "Store name",
"desc": "",
"logo": null,
"ga_id": null
},
"terminal_id": "00000000",
"account": "000000000",
"amount": 50000,
"confirmed": false,
"prepay_time": null,
"confirm_time": null,
"label": {
"type_id": 64,
"label_ru": "Номер инвойса",
"label_uz": "Invoys raqami",
"label_en": "Number of Invoice"
},
"details": "Для услуги 2",
"commission_value": "0",
"commission_type": "0",
"total": 100000,
"card_id": null,
"status_code": null,
"status_message": null
}
]
}
POST https://apigw.atmos.uz/merchant/bulk/pay/createKelgusida oldindan tasdiqlash va yakuniy tasdiqlash uchun tizimda multitranzaksiya qoralamasini yaratadi va yaratilgan operatsiya raqamini qaytaradi. Bir to‘lov doirasida bir nechta to‘lovlarni (jumladan, turli terminallar uchun) amalga oshirish imkonini beradi.
HTTP Request
’POST https://apigw.atmos.uz/merchant/bulk/pay/create’
So‘rov parametrlari
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| sum | To‘lov summasi tiyin | ha |
| params | Yaratilgan tranzaksiya ma’lumotlar massivi | ha |
| - account | To‘lov identifikatori | ha |
| - terminal_id | savdogar terminali id | yo‘q |
| - store_id | savdogar id (store) | ha |
| - lang | server javobi tili | yo‘q |
Javob parametrlari
| Parametr | Tavsif
| ------------------ | ------------------------------------------------|
| natija | serverning javob holatiga ega obyekt |
| transaction_id | tizimda yaratilgan tranzaksiya raqami |
| store_transaction | tranzaksiya tafsilotlari bilan obyektlar massivi|
| - terminal_id | tranzaksiya yaratilgan terminal id |
| - hisob | to‘lov identifikatori |
| - summa | tranzaksiya summasi tiyinlarda |
| - tasdiqlangan | tranzaksiya tasdiqlandimi |
| - prepay_time | tranzaksiyani oldindan tasdiqlash vaqti |
| - confirm_time | tranzaksiyani tasdiqlash vaqti |
| - label | Invoys raqami va meta-ma’lumotlari bilan obyekt
| - details | tranzaksiya tafsilotlari |
| - commission_value | komissiya miqdori tiyinlarda |
| - commission_type | xizmat maydoni |
| - jami | tranzaksiyaning yakuniy summasi
| - card_id | bu holatda null |
| - status_code | bu holatda null |
| - status_message | bu holatda null |
Multi-tranzaksiyani oldindan tasdiqlash
So‘rov:
POST merchant/bulk/pay/pre-apply HTTP/1.1
Content-Type: application/json
Authorization: Bearer <access_token>
Host: apigw.atmos.uz
Content-Length: 102
{
"card_token": "<card-token>",
"store_id": 0000,
"transaction_id": [00000, 11111]
}
curl --request POST \
--url https://apigw.atmos.uz/merchant/bulk/pay/pre-apply \
--header 'Authorization: <access_token \
--header 'Content-Type: application/json' \
--data '{
"card_token": "<card-token>",
"store_id": 0000,
"transaction_id": [00000, 11111]
}'
Response example:
{
"result": {
"code": "OK",
"description": "Xatolar yo’q"
}
}
Yaratilgan multitranzaksiya raqamini qabul qiladi va uni mablag‘larni hisobdan chiqarishga tayyorlaydi. Karta raqami va amal qilish muddati usulga o‘tkazilgan taqdirda, karta egasiga tranzaksiyani tasdiqlash uchun bir martalik SMS-kod yuboradi.
Bir martalik SMS tasdiqlash kodi orqali yechib olish uchun ’card_number’ va ’expiry’ maydonlaridan foydalaning.
Ilgari xizmatga biriktirilgan karta bo‘yicha yechib olish uchun card_number va expiry bo‘lmagan card_token maydonidan foydalanish kifoya.
HTTP so‘rovi
’POST https://apigw.atmos.uz/merchant/bulk/pay/pre-apply’
So‘rov parametrlari
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| card_token | Karta tokeni | +/- |
| card_number | Karta raqami | +/- |
| expiry | kartaning amal qilish muddati (YYmm) | +/- |
| store_id | savdogar id (store) | ha |
| transaction_id | avval yaratilgan tranzaksiya raqami | ha |
Javob parametrlari
| Parametr | Tavsif |
|---|---|
| natija | server javobi holatidagi obyekt |
So‘rov:
curl --request POST \
--url https://apigw.atmos.uz/merchant/bulk/pay/create \
--header 'Authorization: Bearer <access-token>' \
--header 'Content-Type: application/json' \
--data '{
"store_id": <store-id>,
"params": [
{
"account": "user_1",
"amount": 50000,
"details": "Xizmat uchun 1"
},
{
"account": "user_1",
"amount": 100000,
"details": " Xizmat uchun 1"
}
]
}'
Multitranzaksiya tadiqlanishi
So‘rov:
POST merchant/bulk/pay/apply HTTP/1.1
Content-Type: application/json
Authorization: Bearer <access-token>
Host: apigw.atmos.uz
Content-Length: 63
{
"store_id": 000,
"otp": "111111",
"transaction_id": [11111, 22222]
}
curl --request POST \
--url https://apigw.atmos.uz/merchant/bulk/pay/apply \
--header 'Authorization: Bearer <access-token>' \
--header 'Content-Type: application/json' \
--data '{
"store_id": 000,
"otp": "111111",
"transaction_id": [11111, 22222]
}
'
Response example:
{
"result": {
"code": "OK",
"description": "Xatilar yo’q"
},
"store_transaction": [
{
"success_trans_id": 2728805,
"trans_id": 45702,
"store": {
"id": 000,
"name": "Store name",
"desc": "",
"logo": null,
"ga_id": null
},
"terminal_id": "7777777",
"account": "user_1",
"amount": 50000,
"confirmed": true,
"prepay_time": 1635828973000,
"confirm_time": 1635829043427,
"label": {
"type_id": 49,
"label_ru": "Номер инвойса",
"label_uz": "Invoys raqami",
"label_en": "Invoice number"
},
"details": "Для услуги 1",
"commission_value": "0",
"commission_type": "0",
"total": 50000,
"card_id": "<card-id>",
"status_code": "0",
"status_message": "Success"
},
{
"success_trans_id": 2728806,
"trans_id": 45703,
"store": {
"id": 271,
"name": "Store name",
"desc": "",
"logo": null,
"ga_id": null
},
"terminal_id": "7777777",
"account": "user_1",
"amount": 100000,
"confirmed": true,
"prepay_time": 1635828973000,
"confirm_time": 1635829043432,
"label": {
"type_id": 49,
"label_ru": "Номер инвойса",
"label_uz": "Invoys raqami",
"label_en": "Invoice number"
},
"details": "Xizmat uchun 2",
"commission_value": "0",
"commission_type": "0",
"total": 100000,
"card_id": "<card-id>",
"status_code": "0",
"status_message": "Success"
}
]
}
Multi-tranzaksiyani tasdiqlaydi va kartadan mablag‘larni savdogar (store) terminallariga yechib oladi.
HTTP so‘rovi
’POST https://apigw.atmos.uz/merchant/bulk/pay/apply’
So‘rov parametrlari
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| otp | SMS kod | ha |
| store_id | savdogar id | ha |
| transaction_id | avval yaratilgan tranzaksiya raqami | ha |
Javob parametrlari
| Parametr | Tavsif |
|---|
| transaction_id | tizimda yaratilgan tranzaksiya raqami |
| store_transaction | tranzaksiyalar bo‘yicha tafsilotlarga ega obyektlar massivi
|
| - success_trans_id | muvaffaqiyatli tranzaksiyaning doimiy raqami |
| - trans_id | tranzaksiya raqami |
| - store | merchant ma’lumotlariga ega obyekt |
| - terminal_id | tranzaksiya yaratilgan terminal id |
| - hisob | to‘lov identifikatori |
| - summa | tranzaksiya summasi tiyinlarda |
| - tasdiqlangan | tranzaksiya tasdiqlandimi |
| - prepay_time | tranzaksiyani oldindan tasdiqlash vaqti |
| - confirm_time | tranzaksiyani tasdiqlash vaqti |
| - label | Invoys raqami va meta-ma’lumotlari bilan obyekt |
| - details | tranzaksiya tafsilotlari |
| - commission_value | komissiya miqdori tiyinlarda |
| - commission_type | xizmat maydoni |
| - jami | tranzaksiyaning yakuniy summasi |
| - card_id | karta tokeni |
| - status_code | xizmat maydoni |
| - status_message | tranzaksiya holati |
Tasdiqlash kodini qayta so‘rash
So‘rov:
POST /merchant/pay/otp-resend HTTP/1.1
Content-Type: application/json
Authorization: Bearer 9281a6ab-c963-3c1c-9d95-dbed95db955c
Host: api.atmos.uz
Content-Length: 28
{
"transaction_id": 00001
}
curl --request POST \
--url https://api.atmos.uz/merchant/pay/otp-resend \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <access-token>' \
--data '{
"transaction_id": 10000
}'
Response example:
{
"result": {
"code": "OK",
"description": " Xatolar yo’q"
},
"transaction_id": 10000
}
SMS tasdiqlash kodini karta egasiga qayta yuboradi.
HTTP Request
POST https://api.atmos.uz/merchant/pay/otp-resend
So‘rov parametrlari
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| transaction_id | avval yaratilgan tranzaksiya raqami | ha |
Javob parametrlari
| Parametr | Tavsif |
|---|---|
| transaction_id | tasdiqlash kodi qayta yuborilgan tranzaksiya raqami |
Tranzaksiyani bekor qilish
So‘rov:
POST /merchant/pay/reverse HTTP/1.1
Content-Type: application/json
Authorization: Bearer <access-token>
Host: apigw.atmos.uz
Content-Length: 54
{
"transaction_id": 000001,
"reason": "Something"
}
curl --request POST \
--url https://apigw.atmos.uz/merchant/pay/reverse \
--header 'Authorization: Bearer <access-token>' \
--header 'Content-Type: application/json' \
--data '{
"transaction_id": 000001,
"reason": "Something"
}'
Response example:
{
"result": {
"code": "OK",
"description": " Xatilar yo’q "
},
"transaction_id": 000001
}
Avval to‘langan tranzaksiyani bekor qiladi va pulni kartaga qaytaradi.
HTTP Request
POST https://apigw.atmos.uz/merchant/pay/reverse
So‘rov parametrlari
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| store_id | ATMOS tizimidagi sotuvchi id (store) | ha |
| transaction_id | so‘ralgan tranzaksiya raqami | ha |
Javob parametrlari
| Parametr | Tavsif |
|---|---|
| natija | server javobi holatidagi obyekt |
| store_transaction | tranzaksiya tafsilotlari bilan obyekt |
| store_transaction.success_trans_id | muvaffaqiyatli tranzaksiyaning doimiy raqami |
| store_transaction.trans_id | tranzaksiya raqami |
| store_transaction.store | merchant ma’lumotlariga ega obyekt |
| store_transaction.terminal_id | tranzaksiya yaratilgan terminal id |
| store_transaction.hisob | to‘lov identifikatori |
| store_transaction.summa | tranzaksiya summasi tiyinlarda |
| store_transaction.tasdiqlangan | tranzaksiya tasdiqlandimi |
| store_transaction.prepay_time | tranzaksiyani oldindan tasdiqlash vaqti |
| store_transaction.confirm_time | tranzaksiyani tasdiqlash vaqti |
| store_transaction.label | Invoys raqami va meta-ma’lumotlari bilan obyekt |
| store_transaction.details | tranzaksiya tafsilotlari |
| store_transaction.commission_value | komissiya miqdori tiyinlarda |
| store_transaction.commission_type | xizmat maydoni |
| store_transaction.jami | tranzaksiyaning yakuniy summasi |
| store_transaction.card_id | karta tokeni |
| store_transaction.status_code | xizmat maydoni |
| store_transaction.status_message | tranzaksiya holati |
Qisman bekor qilishni yaratish
Oldin tasdiqlangan tranzaksiya bo‘yicha summaning bir qismini bekor qilish uchun so‘rov yaratadi.
Karta egasiga mablag‘ning bir qismini qaytarish zarur bo‘lganda ishlatiladi. Ushbu metod tizimda operatsiya yaratadi, uni yakunlash uchun qo‘shimcha “Qisman bekor qilishni tasdiqlash” metodini chaqirish talab etiladi.
So‘rov:
POST /merchant/pay/create-reverse-partial HTTP/1.1
Content-Type: application/json
Authorization: Bearer <access-token>
Host: apigw.atmos.uz
{
"transaction_id": 12764764,
"store_id": 10370,
"amount": 100000,
"reason": "Test",
"request_id": "test-req",
"lang": "RU"
}
curl --request POST --url https://apigw.atmos.uz/merchant/pay/create-reverse-partial --header 'Authorization: Bearer <access-token>' --header 'Content-Type: application/json' --data '{
"transaction_id": 12764764,
"store_id": 10370,
"amount": 100000,
"reason": "Test",
"request_id": "test-req",
"lang": "RU"
}'
Javob namunasi:
{
"transaction_id": 12764764,
"transaction_partial_reverse_id": 3,
"result": {
"code": "OK",
"description": "Xatolar yo‘q"
},
"request_id": "test-req"
}
HTTP So‘rov
POST https://apigw.atmos.uz/merchant/pay/create-reverse-partial
So‘rov parametrlari
| Parametr | Tavsif | Majburiy |
|---|---|---|
| transaction_id | tranzaksiya raqami | ha |
| store_id | merchant (store) identifikatori | ha |
| amount | qisman bekor qilish summasi (tiyinlarda) | ha |
| reason | bekor qilish sababi | yo‘q |
| request_id | so‘rov identifikatori | yo‘q |
| lang | javob tili (RU/UZ/EN) | yo‘q |
Javob parametrlari
| Parametr | Tavsif |
|---|---|
| transaction_id | tranzaksiya raqami |
| transaction_partial_reverse_id | yaratilgan qisman bekor qilish raqami |
| result | server javobi holati obyekti |
| request_id | so‘rov identifikatori (agar uzatilgan bo‘lsa) |
Qisman bekor qilishni tasdiqlash
Oldin yaratilgan qisman bekor qilishni tasdiqlaydi va mablag‘larni qaytarishni yakunlaydi.
So‘rov:
POST /merchant/pay/confirm-reverse-partial HTTP/1.1
Content-Type: application/json
Authorization: Bearer <access-token>
Host: apigw.atmos.uz
{
"transaction_id": 12764764,
"transaction_partial_reverse_id": 3,
"store_id": 10370,
"ofd_items": [
{
"name": "stringName",
"ofd_code": "stringCode",
"amount": 100000,
"details": [
{
"key": "stringKey",
"value": "stringValue",
"description": "stringDesc",
"status": 1,
"type": 0
}
]
}
],
"request_id": "test-req",
"lang": "RU"
}
curl --request POST --url https://apigw.atmos.uz/merchant/pay/confirm-reverse-partial --header 'Authorization: Bearer <access-token>' --header 'Content-Type: application/json' --data '{
"transaction_id": 12764764,
"transaction_partial_reverse_id": 3,
"store_id": 10370,
"ofd_items": [
{
"name": "stringName",
"ofd_code": "stringCode",
"amount": 100000,
"details": [
{
"key": "stringKey",
"value": "stringValue",
"description": "stringDesc",
"status": 1,
"type": 0
}
]
}
],
"request_id": "test-req",
"lang": "RU"
}'
Javob namunasi:
{
"transaction_id": 12764764,
"transaction_partial_reverse_id": 3,
"transaction_reverted_amount": 100000,
"transaction_left_amount": 100000,
"result": {
"code": "OK",
"description": "Xatolar yo‘q"
},
"request_id": "test-req"
}
HTTP So‘rov
POST https://apigw.atmos.uz/merchant/pay/confirm-reverse-partial
So‘rov parametrlari
| Parametr | Tavsif | Majburiy |
|---|---|---|
| transaction_id | tranzaksiya raqami | ha |
| transaction_partial_reverse_id | qisman bekor qilish raqami | ha |
| store_id | merchant (store) identifikatori | ha |
| ofd_items | OFD pozitsiyalari massivi | ha |
| - name | pozitsiya nomi | ha |
| - ofd_code | OFD kodi | ha |
| - amount | pozitsiya summasi (tiyinlarda) | ha |
| - details | metama’lumotlar massivi | yo‘q |
| --- key | metama’lumot kaliti | yo‘q |
| --- value | metama’lumot qiymati | yo‘q |
| --- description | tavsif | yo‘q |
| --- status | holat (int) | yo‘q |
| --- type | tur (int) | yo‘q |
| request_id | so‘rov identifikatori | yo‘q |
| lang | javob tili (RU/UZ/EN) | yo‘q |
Javob parametrlari
| Parametr | Tavsif |
|---|---|
| transaction_id | tranzaksiya raqami |
| transaction_partial_reverse_id | qisman bekor qilish raqami |
| transaction_reverted_amount | muvaffaqiyatli bekor qilingan summa |
| transaction_left_amount | bekordan keyin qolgan summa |
| result | server javobi holati obyekti |
| request_id | so‘rov identifikatori (agar uzatilgan bo‘lsa) |
Qisman bekor qilish haqida ma’lumot olish
Qisman bekor qilish bo‘yicha joriy holat va summalarni qaytaradi.
So‘rov:
POST /merchant/pay/get-reverse-partial HTTP/1.1
Content-Type: application/json
Authorization: Bearer <access-token>
Host: apigw.atmos.uz
{
"transaction_id": 12764764,
"transaction_partial_reverse_id": 3,
"store_id": 10370,
"lang": "RU"
}
curl --request POST --url https://apigw.atmos.uz/merchant/pay/get-reverse-partial --header 'Authorization: Bearer <access-token>' --header 'Content-Type: application/json' --data '{
"transaction_id": 12764764,
"transaction_partial_reverse_id": 3,
"store_id": 10370,
"lang": "RU"
}'
Javob namunasi:
{
"transaction_id": 12764764,
"transaction_partial_reverse_id": 3,
"transaction_reverted_amount": 100000,
"transaction_left_amount": 100000,
"result": {
"code": "OK",
"description": "Xatolar yo‘q"
},
"request_id": "test-req"
}
HTTP So‘rov
POST https://apigw.atmos.uz/merchant/pay/get-reverse-partial
So‘rov parametrlari
| Parametr | Tavsif | Majburiy |
|---|---|---|
| transaction_id | tranzaksiya raqami | ha |
| transaction_partial_reverse_id | qisman bekor qilish raqami | ha |
| store_id | merchant (store) identifikatori | ha |
| lang | javob tili (RU/UZ/EN) | yo‘q |
Javob parametrlari
| Parametr | Tavsif |
|---|---|
| transaction_id | tranzaksiya raqami |
| transaction_partial_reverse_id | qisman bekor qilish raqami |
| transaction_reverted_amount | muvaffaqiyatli bekor qilingan summa |
| transaction_left_amount | bekordan keyin qolgan summa |
| result | server javobi holati obyekti |
| request_id | so‘rov identifikatori (agar oldin uzatilgan bo‘lsa) |
Kartani biriktirish
Kartalarni ulash mobil ilovalar, veb-xizmatlar, muntazam ravishda mablag‘ yechib olinishi yoki har bir tranzaksiyaning SMS-kodi orqali tasdiqsiz to‘lov talab qilinadigan platformalarda foydali bo‘lishi mumkin. Kartani bog‘lash quyidagi ketma-ketlikda amalga oshiriladi:
- Karta tokenini yaratish uchun ariza (karta egasiga tasdiqlash sms-kodi yuboriladi);
- Tasdiqlash kodining ATMOS API xabari orqali karta ulanishini tasdiqlash;
- Karta tokenini olish.
Kartani biriktirish so‘rovi
So‘rov:
POST /partner/bind-card/init HTTP/1.1
Content-Type: application/json
Authorization: Bearer <access-token>
Host: apigw.atmos.uz
Content-Length: 57
{
"card_number": "8600490744313347",
"expiry": "2410"
}
curl --request POST \
--url https://apigw.atmos.uz/partner/bind-card/init \
--header 'Authorization: Bearer <access-token>' \
--header 'Content-Type: application/json' \
--data '{
"card_number": "8600332914249390",
"expiry": "2509"
}'
Response example:
{
"result": {
"code": "OK",
"description": " Xatilar yo’q "
},
"transaction_id": 442,
"phone": "998900222222"
}
Kartani biriktirish talabini yaratish Agar barcha ma’lumotlar to‘g‘ri bo‘lsa, keyinchalik arizani tasdiqlash uchun transaction_id maydoniga qiymat qaytaradi va karta egasiga tasdiqlash sms-kodini yuboradi.
HTTP so‘rovi
’POST https://apigw.atmos.uz/partner/bind-card/init’
So‘rov parametrlari
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| card_number | Kartaning old tomonidagi 16 xonali kod | ha |
| expiry | kartaning amal qilish sanasi (YYmm) | ha |
Javob parametrlari
| Parametr | Tavsif |
|---|---|
| result | serverning javob holatiga ega obyekt |
| transaction_id | id amallari |
| phone | karta egasining telefon raqami |
Karta biriktirilishini tasdiqlash
So‘rov:
POST /partner/bind-card/confirm HTTP/1.1
Content-Type: application/json
Authorization: Bearer Bearer <access-token>
Host: apigw.atmos.uz
Content-Length: 44
{
"transaction_id": 383,
"otp": "111111"
}
curl --request POST \
--url https://apigw.atmos.uz/partner/bind-card/confirm \
--header 'Authorization: Bearer Bearer <access-token>' \
--header 'Content-Type: application/json' \
--data '{
"transaction_id": 383,
"otp": "111111"
}'
Response example:
{
"result": {
"code": "OK",
"description": "Xatilar yo’q"
},
"data": {
"card_id": 1579076,
"pan": "986009******1840",
"expiry": "2505",
"card_holder": "TEST",
"balance": 1000000000,
"phone": "998989999999",
"card_token": "<card-token>"
},
"transaction_id": 4789
}
Ilgari yaratilgan kartani merchant xizmatiga ulash operatsiyasini tasdiqlaydi va to‘lovlarni amalga oshirish uchun token beradi.
HTTP so‘rovi
’POST https://apigw.atmos.uz/partner/bind-card/confirm’
So‘rov parametrlari
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| transaction_id | avval yaratilgan tranzaksiya raqami | ha |
| otp | karta egasi sms shaklida olgan kod | ha |
Javob parametrlari
| Parametr | Tavsif |
|---|---|
| result | serverning javob holatiga ega obyekt |
| data | xarita ma’lumotlariga ega obyekt |
| transaction_id | tranzaksiya identifikatori |
Merchantga biriktirilgan kartalar ro‘yxati
So‘rov:
POST /partner/list-cards HTTP/1.1
Content-Type: application/json
Authorization: Bearer <access-token>
Host: apigw.atmos.uz
Content-Length: 32
{
"page": 1,
"page_size": 10
}
curl --request POST \
--url https://apigw.atmos.uz/partner/list-cards \
--header 'Authorization: Bearer <access-token>' \
--header 'Content-Type: application/json' \
--data '{
"page": 1,
"page_size": 10
}'
Response example:
{
"result": {
"code": "OK",
"description": "Xatilar yo’q"
},
"cardDataSmallList": [
{
"card_id": 1579076,
"card_token": "<card-token>",
"pan": "986009******1840",
"expiry": "2505"
}
]
}
Merchant xizmatiga ulangan barcha kartochkalar ro‘yxatini qaytaradi.
HTTP Request
https://apigw.atmos.uz/partner/list-cards
So‘rov parametrlari
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| page | sahifa raqami | yo‘q |
| page_size | har bir sahifadagi elementlar soni | yo‘q |
Javob parametrlari
| Parametr | Tavsif |
|---|---|
| result | server javobi holatidagi obyekt |
| cardDataSmallList | xizmatga ulangan kartalar massivi |
Ulangan kartani bekor qilish
So‘rov:
POST /partner/remove-card HTTP/1.1
Content-Type: application/json
Authorization: Bearer <bearer-token>
Host: apigw.atmos.uz
Content-Length: 64
{
"id": 1666711,
"token": "<card-token>"
}
curl --request POST \
--url https://apigw.atmos.uz/partner/remove-card \
--header 'Authorization: Bearer <bearer-token>' \
--header 'Content-Type: application/json' \
--data '{
"id": 1666711,
"token": "<card-token>"
}'
Response example:
{
"result": {
"code": "OK",
"description": "Нет ошибок"
},
"data": {
"card_id": 1666711,
"pan": null,
"expiry": null,
"card_holder": null,
"balance": null,
"phone": null,
"card_token": null
}
}
Ilgari xizmatga biriktirilgan karta tokenini bekor qiladi va u orqali keyingi to‘lovlarni amalga oshirish imkonsiz bo‘ladi.
HTTP so‘rovi
’https://apigw.atmos.uz/partner/remove-card’
So‘rov parametrlari:
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| id | karta id | ha |
| token | karta tokeni | ha |
Javob parametrlari:
| Parametr | Tavsif |
|---|---|
| result | serverning javob holatiga ega obyekt |
| data | ma’lumotlari bekor qilingan obyekt |
Xolding
Xolding - kartadagi pul mablag‘larini ma’lum bir vaqt oralig‘ida hisobdan chiqarmasdan muzlatish vositasi. ATMOS API summani xaridor hisobiga saqlash va zarur bo‘lganda darhol hisobdan chiqarish imkonini beradi. Shuningdek, savdogarlar xoldingni bekor qilish imkoniyatiga ega.
Xolding uchun ariza yaratish
So‘rov:
POST /hold/create HTTP/1.1
Content-Type: application/json
Authorization: Bearer <access-token>
Host: apigw.atmos.uz
Content-Length: 168
{
"card_token": "<card-token>",
"store_id": "0001",
"account": "12345",
"payment_details": "",
"amount": "50000",
"duration": "1"
}
curl --request POST \
--url https://apigw.atmos.uz/hold/create \
--header 'Authorization: Bearer <access-token>' \
--header 'Content-Type: application/json' \
--data '{
"card_token": "<card-token>",
"store_id": "0001",
"account": "12345",
"payment_details": "",
"amount": "50000",
"duration": "1"
}'
Response example:
{
"result": {
"code": "OK",
"description": "Xatilar yo’q"
},
"hold_id": 1173,
"account": null
}
Xolding uchun ariza yaratadi, karta egasiga tasdiqlash kodini yuboradi (agar karta bog‘lanmagan bo‘lsa) va keyinchalik tasdiqlash uchun operatsiya raqamini qaytaradi
HTTP Request
POST https://apigw.atmos.uz/hold/create
So‘rov parametrlari:
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| card_token | karta tokeni | +/- |
| card_number | karta raqami | +/- |
| card_expiry | kartaning amal qilish muddati (YYmm) | +/- |
| store_id | merchant id (store) | ha |
| hisob | to‘lov identifikatori | ha |
| payment_details | to‘lov tafsilotlari | yo‘q |
| amount | tiyindagi xolding summasi | ha |
| duration | saqlash muddati daqiqa | ha |
Javob parametrlari:
| Parametr | Tavsif |
|---|---|
| natija | serverning javob holatiga ega obyekt |
| hold_id | yaratilgan amal raqami |
Xolding arizasini tasdiqlash
So‘rov:
PUT /hold/apply/{id} HTTP/1.1
Content-Type: application/json
Authorization: Bearer <access-token>
Host: apigw.atmos.uz
Content-Length: 20
{
"otp": "111111"
}
curl --request PUT \
--url https://apigw.atmos.uz/hold/apply/{id} \
--header 'Authorization: Bearer <access-token>' \
--header 'Content-Type: application/json' \
--data '{
"otp": "111111"
}'
Server javobi misoli:
{
"result": {
"code": "OK",
"description": "Xatilar yo’q"
},
"hold_id": 1173,
"card_token": "<card-token>",
"card_pan": "986009******1840",
"hold_till": "2022-06-30T14:55:19.597"
}
Saqlash talabini tasdiqlaydi va kartadagi mablag‘larni muzlatadi.
HTTP Request
PUT https://apigw.atmos.uz/hold/apply/{id}}
URL parametrlari:
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| id | avval yaratilgan tranzaksiya id | ha |
So‘rov parametrlari:
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| javob | sms kod | ha |
Javob parametrlari:
| Parametr | Tavsif |
|---|---|
| natija | serverning javob holatiga ega obyekt |
| hold_id | tasdiqlangan operatsiya raqami |
| hold_till | muzlatish sanasi |
Bir nechta xolding uchun ariza yaratish
So‘rov:
POST /hold/multiple/create HTTP/1.1
Content-Type: application/json
Authorization: Bearer <access-token>
Host: apigw.atmos.uz
Content-Length: 168
{
"card_token": "<card-token>",
"duration": "1",
"items": [
{
"store_id": "<store_id>",
"account": "<account>",
"payment_details": "",
"amount": "1000000"
},
{
"store_id": "<store_id>",
"account": "<account>",
"payment_details": "",
"amount": "1000000"
}
]
}
curl --request POST \
--url https://apigw.atmos.uz/hold/multiple/create \
--header 'Authorization: Bearer <access-token>' \
--header 'Content-Type: application/json' \
--data '{
"card_token": "<card-token>",
"duration": "1",
"items": [
{
"store_id": "<store_id>",
"account": "<account>",
"payment_details": "",
"amount": "1000000"
},
{
"store_id": "<store_id>",
"account": "<account>",
"payment_details": "",
"amount": "1000000"
}
]
}'
Response example:
{
"result": {
"code": "OK",
"description": "Нет ошибок"
},
"parent_id": 261,
"items": [
{
"result": null,
"hold_id": 1543,
"account": "255432"
},
{
"result": null,
"hold_id": 1544,
"account": "2345645"
}
]
}
Umumiy summani saqlash nuqtai nazaridan bir nechta operatsiyalar uchun ariza yaratadi (ular uchun mablag‘lar alohida yechib olinishi mumkin), karta egasiga tasdiqlash kodini yuboradi (agar karta bog‘lanmagan bo‘lsa) va keyinchalik tasdiqlash uchun operatsiya raqamini qaytaradi.
HTTP so‘rovi
’POST https://apigw.atmos.uz/hold/multiple/create’
So‘rov parametrlari:
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| card_token | karta tokeni | +/- |
| davomiyligi | saqlash muddati daqiqa | ha |
| items | xolding buyurtmalari massivi | ha |
Javob parametrlari:
| Parametr | Tavsif |
| --------- | ------------------------------------------------ | | natija | server javobi holatidagi obyekt | | parent_id | yaratilgan (asosiy) amal raqami | | items | tasdiqlashni kutayotgan xolding uchun qabul qilingan arizalar massivi |
Bir nechta xoldingga arizani tasdiqlash
So‘rov:
PUT /hold/multiple/apply/{id} HTTP/1.1
Content-Type: application/json
Authorization: Bearer <access-token>
Host: apigw.atmos.uz
Content-Length: 168
{
"otp": "111111"
}
curl --request PUT \
--url https://apigw.atmos.uz/hold/multiple/apply/{id} \
--header 'Authorization: Bearer <access-token>' \
--header 'Content-Type: application/json' \
--data '{
"otp": "111111"
}'
Response example:
{
"result": {
"code": "OK",
"description": "Нет ошибок"
},
"parent_id": 260,
"items": [
{
"result": {
"code": "OK",
"description": "Нет ошибок"
},
"hold_id": 1541,
"card_token": "<card-token>",
"card_pan": "XXXXXXXXXXXXXXXX",
"hold_till": "2022-09-28T16:46:22.762"
},
{
"result": {
"code": "OK",
"description": "Xatilar yo’q"
},
"hold_id": 1542,
"card_token": "<card-token>",
"card_pan": "XXXXXXXXXXXXXXXX",
"hold_till": "2022-09-28T16:46:23.118"
}
]
}
Umumiy summani ushlab turish kontekstida bir nechta operatsiyalar uchun avval yaratilgan arizani tasdiqlaydi, bu esa mablag‘larni yechib olish imkonini beradi.
HTTP so‘rovi
’PUT https://apigw.atmos.uz/hold/multiple/apply/{id}’
So‘rov parametrlari:
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| otp | "111111" standart qiymati, agar yechib olish karta tokeni bo‘yicha amalga oshirilsa | ha |
Javob parametrlari:
| Parametr | Tavsif |
|---|---|
| natija | server javobi holatidagi obyekt |
| parent_id | asosiy amal raqami |
| items | xolding uchun qabul qilingan arizalar massivi, ularning holatlari bilan |
Muzlatilgan summani yechib olish
So‘rov:
POST /hold/{id} HTTP/1.1
Authorization: Bearer <access-token>
Content-Type: application/json
Host: apigw.atmos.uz
curl --request POST \
--url https://apigw.atmos.uz/hold/{id} \
--header 'Authorization: Bearer <access-token>' \
--header 'Content-Type: application/json'
Response example:
{
"result": {
"code": "OK",
"description": "Нет ошибок"
},
"store_transaction": {
"success_trans_id": 000001,
"trans_id": 12345,
"store": {
"id": 0001,
"name": "XXXXX",
"desc": "",
"logo": null,
"ga_id": null
},
"terminal_id": "0000001",
"account": "12345",
"amount": 5000000,
"confirmed": true,
"prepay_time": 1656325395000,
"confirm_time": 1656325681944,
"label": {
"type_id": 64,
"label_ru": "Номер инвойса",
"label_uz": "Invoys raqami",
"label_en": "Number of Invoice"
},
"details": "",
"commission_value": "0",
"commission_type": "0",
"total": 5000000,
"card_id": "<card-token>",
"status_code": "0",
"status_message": "Success"
},
"ofd_url": "https://ofd2.atmos.uz/api/ofd/blU3NTZPMGZOZGZyMkZPMWtqN1lGZz09",
"ofd_url_commission": "https://ofd2.atmos.uz/api/ofd-commission/blU3NTZPMGZOZGZyMkZPMWtqN1lGZz09"
}
Avval muzlatilgan summa hisobidan to‘lovni amalga oshiradi. Xoldning amal qilish vaqti tugamagan bo‘lsa, ishlaydi.
HTTP so‘rovi
’POST https://apigw.atmos.uz/hold/{id}’
URL parametrlari:
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| id | tranzaksiya id | ha |
Javob parametrlari:
| Parametr | Tavsif |
|---|---|
| result | server javobi holatidagi obyekt |
| transaction_id | tizimda yaratilgan tranzaksiya raqami |
| store_transaction | tranzaksiya tafsilotlari bilan obyekt |
| - success_trans_id | muvaffaqiyatli tranzaksiyaning doimiy raqami |
| - trans_id | tranzaksiya raqami |
| - store | merchant ma’lumotlariga ega obyekt |
| - terminal_id | tranzaksiya yaratilgan terminal id |
| - hisob | to‘lov identifikatori |
| - summa | tranzaksiya summasi tiyinlarda |
| - tasdiqlangan | tranzaksiya tasdiqlandimi |
| - prepay_time | tranzaksiyani oldindan tasdiqlash vaqti |
| - confirm_time | tranzaksiyani tasdiqlash vaqti |
| - label | Invoys raqami va meta-ma’lumotlari bilan obyekt |
| - details | tranzaksiya tafsilotlari |
| - commission_value | komissiya miqdori tiyinlarda |
| - commission_type | xizmat maydoni |
| - jami | tranzaksiyaning yakuniy summasi |
| - card_id | karta tokeni |
| - status_code | xizmat maydoni |
| - status_message | tranzaksiya holati |
| ofd_url | mahsulot/xizmat uchun fiskal chek havolasi |
| ofd_url_comission | fiskal chek havolasi (komissiya) |
Holdingni bekor qilish
So‘rov:
DELETE /hold/24888 HTTP/1.1
Host: apigw.atmos.uz
Authorization: Bearer <access-token>
Content-Type: application/json
Content-Length: 26
{
"send_cancel_sms": true
}
curl --location --request DELETE 'https://apigw.atmos.uz/hold/24888' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"send_cancel_sms": true
}'
Response example:
{
"result": {
"code": "STPIMS-ERR-145",
"description": "Holding bekor qilindi"
},
"status": -242,
"processing": "UZCARD"
}
Avval yaratilgan xoldni bekor qiladi.
HTTP Request
’DELETE https://apigw.atmos.uz/hold/{id}’
URL parametrlari:
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| id | tranzaksiya id | ha |
So‘rov parametrlari:
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| send_cancel_sms | SMS orqali xolding bekor qilingani haqida ogohlantirish | ha |
Javob parametrlari:
| Parametr | Tavsif |
|---|---|
| result | server javobi holatidagi obyekt |
| status | ma’lumotnoma bo‘yicha batafsil holat |
| processing | karta ushlagichning protsessing markazi |
Xolding amali haqida ma’lumot so‘rovi
So‘rov:
GET /hold/{id} HTTP/1.1
Authorization: Bearer <access-token>
Content-Type: application/json
Host: apigw.atmos.uz
Content-Length: 168
{
"amount": 5000000
}
curl --request GET \
--url https://apigw.atmos.uz/hold/{id} \
--header 'Authorization: Bearer <access-token>' \
--header 'Content-Type: application/json' \
--data '{
"amount": 5000000
}
Response example:
{
"result": {
"code": "OK",
"description": "Нет ошибок"
},
"store_transaction": {
"success_trans_id": 000001,
"trans_id": 12345,
"store": {
"id": 0001,
"name": "XXXXX",
"desc": "",
"logo": null,
"ga_id": null
},
"terminal_id": "0000001",
"account": "12345",
"amount": 5000000,
"confirmed": true,
"prepay_time": 1656325395000,
"confirm_time": 1656325681944,
"label": {
"type_id": 64,
"label_ru": "Номер инвойса",
"label_uz": "Invoys raqami",
"label_en": "Number of Invoice"
},
"details": "",
"commission_value": "0",
"commission_type": "0",
"total": 5000000,
"card_id": "<card-token>",
"status_code": "0",
"status_message": "Success"
}
}
Avval yaratilgan xolding amali bo‘yicha ma’lumotlarni qaytaradi
HTTP Request
’GET https://apigw.atmos.uz/hold/{id}’
URL parametrlari:
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| id | tranzaksiya id | ha |
So'rov parametrlari
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| amount | O‘zgartirilgan hold summasi (ilgari xold qilingan summadan oshmasligi kerak) | yo‘q |
Javob parametrlari:
| Parametr | Tavsif |
|---|---|
| result | serverning javob holatiga ega obyekt |
| store_transaction | tranzaksiya tafsilotlari bilan obyekt |
| - success_trans_id | muvaffaqiyatli tranzaksiyaning doimiy raqami |
| - trans_id | tranzaksiya raqami |
| - store | merchant ma’lumotlariga ega obyekt |
| - terminal_id | tranzaksiya yaratilgan terminal id |
| - account | to‘lov identifikatori |
| - amount | tranzaksiya miqdori tiyinlarda |
| - confirmed | tranzaksiya tasdiqlandimi |
| - prepay_time | tranzaksiyani oldindan tasdiqlash vaqti |
| - confirm_time | tranzaksiyani tasdiqlash vaqti |
| - label | Invoys raqami va meta-ma’lumotlari bilan obyekt |
| - details | tranzaksiya tafsilotlari |
| - commission_value | komissiya miqdori tiyinlarda |
| - commission_type | xizmat maydoni |
| - total | tranzaksiyaning yakuniy summasi |
| - card_id | karta tokeni |
| - status_code | xizmat maydoni |
| - status_message | tranzaksiya holati |
JSHSHIR bo’yicha yechib olish
Xizmat bilan ishlash uchun har bir so‘rovning sarlavhalariga o‘rnatiladigan va operatsiyalarni amalga oshirishda noyob identifikator bo‘lib xizmat qiladigan kirish tokenini olish kerak. Avtorizatsiya jarayoni tafsilotlari API orqali avtorizatsiya bo‘limida keltirilgan
Quyida sanab o‘tilgan endpoints uchun xizmat bilan ishlash uchun quyidagi manzil mavjud
Base URL: https://apigw.atmos.uz/ppa
Tranzaksiya yaratish(JSHSHIR)
Запрос:
shell curl -X POST https://apigw.atmos.uz/ppa/transaction/create \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <access-token>" \ -d '{ "ext_id": "12345789", "first_name": "Ivan", "last_name": "Ivanov", "middle_name": "Ivanovich", "pinfl": "123456789123456789", "passport_series": "AA", "passport_number": "123456789", "contract_number": "123456", "amount": 100500, "partial_debit": true, "ofd_items": { "ofd_code": "ofd_code_exm", "package_code": "123456", "tin" : "100100100" }, "epos": { "branch_id": "branch_id", "terminal_group_id": "terminal_group_id" } }'http POST /transaction/create HTTP/1.1 Host: apigw.atmos.uz Content-Type: application/json Authorization: Bearer <access-token> { "ext_id": "12345789", "first_name": "Ivan", "last_name": "Ivanov", "middle_name": "Ivanovich", "pinfl": "123456789123456789", "passport_series": "AA", "passport_number": "123456789", "contract_number": "123456", "amount": 100500, "partial_debit": true, "ofd_items": { "ofd_code": "ofd_code_exm", "package_code": "123456", "tin" : "100100100" }, "epos": { "branch_id": "branch_id", "terminal_group_id": "terminal_group_id" } }Javob misoli:json { "payload": { "available_balance": 123456789, "transaction_status": "CREATED", "transaction_id": "12345678", "ext_id": "12345789", "amount": "100500", "first_name": "Ivan", "middle_name": "Ivanovich", "last_name": "Ivanov", "date_created": "2023-12-12 00:00:00" }, "code": "200", "description": "Transaction confirmed" }HTTP Request
POST https://apigw.atmos.uz/ppa/transaction/createKelajakda ishlash uchun platforma tomonida tranzaksiya yaratishSo‘rov parametrlari
nomi tavsifi majburiyatligi ext_id mijoz tomonidagi unikal tranzaksiya identifikatori hа first_name ism hа last_name familiya hа middle_name otasining ismi hа pinfl JSHSHIR hа passport_series pasport seriyasi hа passport_number passport raqami hа contract_number mijoz bilan shartnoma raqami hа amount yechib olish summasi tiyinda hа partial_debit qisman hisobdan chiqarish bayrog‘I (true/false). Standart bo’yicha - false yo’q ofd_items FMO malumotlari yo’q ofd_items.ofd_code FMO kodi yo’q ofd_items.package_code markirovka kodi yo’q ofd_items .tin STIR yo’q epos yechib olinayotgan epos va hamkor filiali ma’lumotlari yo’q epos.branch_id hamkor filial/departament id-si yo’q epos.terminal_group_id hamkor terminallar guruhi id-si yo’q Javob parametrlari
nomi tavsifi majburiyatligi code javob holatlari (ok, progress, error) hа description javob holatlari tavsifi yo’q payload yaratilgan tranzaksiya ma’lumotlariga ega obyekti hа available_balance kartaning joriy balansi hа Tranzaksiya tasdig‘I (JSHSHIR)
So’rov:
shell curl -X POST https://apigw.atmos.uz/ppa/transaction/confirm \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <access-token>" \ -d '{ "ext_id": "12345789", "transaction_id": "1113423543" }'http POST /ppa/transaction/confirm HTTP/1.1 Host: apigw.atmos.uz Content-Type: application/json Authorization: Bearer <access-token> { "ext_id": "12345789", "transaction_id": "1113423543" }Response example:json { "payload": { "transaction_id": "12345678", "ext_id": "12345789", "transaction_status": "SUCCESS", "details": [ { "pan": "860066******5544", "amount": "100", "upper_commission": "1", "status": "SUCCESS" } ], "ofd_url": "www.ofd_url_example.uz" }, "code": "200", "message": null }Unikal tranzaksiya identifikatorlari bo‘yicha yechib olishni tasdiqlashHTTP Request
POST https://apigw.atmos.uz/ppa/transaction/confirmSo’rov parametrlari
Nomi Tavsifi Majburiyatligi ext_id tranzaksiya unikal identifikatori hа transaction_id atmos tomonida tranzaksiya id-si hа Javob parametrlari
Nomi Tavsifi Majburiyatligi code javob holati (ok, progress, error) hа message javob holati tavsifi yo’q payload yaratilgan tranzaksiya ma’lumotlariga ega obyekt hа Tanzaksiya ma’lumotlari haqida so’rov
So’rov:
http POST /transaction/check HTTP/1.1 Host: apigw.atmos.uz Authorization: Bearer <access-token> Content-Type: application/json { "ext_id": 12345789, "pinfl": "123456789123456789", "passport_series": "AA", "passport_number": "123456789", "contract_number": "123456", "amount": 100500 }shell curl -X POST https://apigw.atmos.uz/ppa/transaction/check \ -H "Authorization: Bearer <access-token>" \ -H "Content-Type: application/json" \ -d '{ "ext_id": 12345789, "pinfl": "123456789123456789", "passport_series": "AA", "passport_number": "123456789", "contract_number": "123456", "amount": 100500 }'Response example:json { "payload": { "transaction_id": 12345678, "ext_id": 12345789, "transaction_status": "SUCCESS", "details": [ { "pan": "860066******5544", "amount": 100, "upper_commission": 1, "status": "SUCCESS" } ], "ofd_url": "www.ofd_url_example.uz" }, "code": "200", "message": null }Ko‘rsatilgan rekvizitlar bo‘yicha tranzaksiyani topadi va uning tafsilotlarini qaytaradiHTTP Request
POST https://apigw.atmos.uz/ppa/transaction/checkSo’rov parametrlari
Prametr Tavsif Majburiyligi ext_id tranzaksiya unikal identifikatori hа pinfl JSHSHIR hа passport_series passport seriyasi hа passport_number passport raqami hа Javob parametrlari
Parametr Tavsif Majburiyligi code javob holati (ok, progress, error) hа message javob holati tavsifi yo’q payload yaratilgan tranzaksiya ma’lumotlariga ega obyekt hа Tranzaksiya bekor qilinishi (JSHSHIR)
So’rov:
shell curl -X POST https://apigw.atmos.uz/ppa/transaction/cancel \ -H "Authorization: Bearer <access-token>" \ -H "Content-Type: application/json" \ -d '{ "ext_id": 12345789, "transaction_id": "1113423543" }'http POST /ppa/transaction/cancel HTTP/1.1 Host: apigw.atmos.uz Authorization: Bearer <access-token> Content-Type: application/json { "ext_id": 12345789, "transaction_id": "1113423543" }Response example:json { "payload": { "transaction_id": 12345678, "ext_id": 12345789, "transaction_status": "CANCELED" }, "code": "200", "message": null }ATMOS.PAYdagi tranzaksiyani tasdiqlanishidan oldin unikal identifikatorlar juftligi bo‘yicha bekor qiladiHTTP Request
POST https://apigw.atmos.uz/ppa/transaction/cancelSo’rov parametrlari
Parametr Tavsif Majburiyligi ext_id unikal tranzaksiya identifikatori hа transaction_id atmos tomonidagi tranzaksiya id hа Javob parametrlari
Parametr Tavsif Majburiyligi code javob holati (ok, progress, error) hа message javob holati tavsifi yo’q payload yaratilgan tranzaksiya ma’lumotlariga ega obyekt hа JSHSHIR bo’yicha yangilash
So‘rov:
shell curl -X POST https://apigw.atmos.uz/ppa/cards/update-cards-list \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <access-token>" \ -d '{ "pinfl": "12345678911234", "ext_id": "1234567", "epos": { "branch_id": 546, "terminal_group_id": 266 } }'http POST /ppa/cards/update-cards-list HTTP/1.1 Host: apigw.atmos.uz Content-Type: application/json Authorization: Bearer <access-token> { "pinfl": "12345678911234", "ext_id": "1234567", "epos": { "branch_id": 546, "terminal_group_id": 266 } }HTTP Request
POST https://apigw.atmos.uz/ppa/cards/update-cards-listSo‘ralgan JSHSHIR bo‘yicha karta ma’lumotlarini sinxronlash/yangilash. Usul quyidagi hollarda qo‘llaniladi: - - Agar egasining kartalari tizimda topilmagan bo‘lsa; - JSHSHIR egasi tomonidan yaqinda ochilgan yangi kartalar haqida ma’lumot olish uchun kartalar ro‘yxatini yangilash zarur.So‘rov parametrlari
nomi tavsifi majburiyatligi pinfl soralgan shaxsning JSHSHIR hа ext_id Mijoz tomonidagi unikal so‘rov identifikatori yo’q epos.branch_id filial id-si hа epos.terminal_group_id terminallar guruhi id-si ha Javob parametrlari
Mavjud emas
Kartalarni yangilash holatini tekshirish
So’rov:
shell curl -X POST https://apigw.atmos.uz/ppa/cards/check/{ext_id} \ -H "Authorization: Bearer <access-token>" \http POST /ppa/cards/check/{ext_id} HTTP/1.1 Host: apigw.atmos.uz Authorization: Bearer <access-token>Response example:json { "code": 200, "message": null, "payload": { "ext_id": "example_ext_id", "masked_pinfl": "3210xxxxxxx067", "status": "SUCCESSFUL", "request_date": "2024-11-26 16:11:47" } }HTTP Request
POST https://apigw.atmos.uz/ppa/cards/check/{ext_id}JSHSHIR bo‘yicha kartalar ro‘yxatini yangilash holatini aniqlash uchun foydalaniladi. Payload.status maydonida tizimdagi so‘rov holatini qaytaradi. ’SUCCESSFUL’ ma’nosi tizimda jismoniy shaxsning JSHSHIR bo‘yicha kartalari muvaffaqiyatli yangilanganligini bildiradi.So’rovning parametrlari
Nomi Tavsif majburiyligi ext_id so’rovning unikal identifikatori hа Javobning parametrlari
Nomi Tavsif code javobning holati (ok, progress, error) message javob holatining tavsifi payload.ext_id So’rovning unikal identifikatori payload.masked_pinfl Замаскированный идентификатор пользователя payload.status So’rovning bararilishini holati payload.request_date So’rovning yaratilgan vaqti va sanasi Holatlar ma’lumotnomasi
Serverning har bir javobi tanasida(body) status maydoni mavjud bo‘lib, u yoki bu operatsiyaning holatini o‘zida saqlaydi. Odatda, foydalanuvchi so‘rovi muvaffaqiyatli bajarilganda, maydon ’200’ kodini o‘z ichiga oladi. Xatolik holatlarining tafsilotlari quyidagi jadvalda keltirilgan. | Hatoliklarni kodi | Xatoliklarni matni | Tavsif | | ---------- | ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | | -100 | Unexpected exception | Kutilmagan xatolik. Texnik yordam xizmatiga murojaat qiling. | | -101 | Contract registration was unsuccessful | Kontrakt ro‘yxatdan o‘tkazishda xatolik yuz berdi. | | -102 | Client registration was unsuccessful | Mijozni ro‘yxatdan o‘tkazishda xatolik yuz berdi. | | -103 | Client with PINFL [pin num] is not available | ko‘rsatilgan JSHSHIR [pin num] bilan ro‘yxatdan o‘tgan mijoz tranzaksiyani amalga oshirish uchun mavjud emas. | | -105 | No cards with sufficient balance were found | Tranzaksiyani amalga oshirish uchun mavjud minimal balansga ega kartalar topilmadi. | | -106 | Not enough balance | Tranzaksiyani amalga oshirish uchun mablag‘ yetarli emas (faqat "partial_debit": "false" bo‘lsa). | | -107 | Could not initiate payment in full amount | Ko‘rsatilgan summaga tranzaksiyani amalga oshirish uchun mablag‘lar yetarli emas (qisman hisobdan yechish). | | -108 | Cards balance is not available | Kartalar balansi mavjud emas. | | -109 | Cards attributable to PINFL [pinfl] not found | JSHSHIR [pinfl] ga tegishli kartalar topilmadi Ko‘rsatilgan JSHSHIR [pinfl] ga tegishli kartalar topilmadi. .
update-cards-list. usuli yordamida kartalar ro‘yxatini yangilash talab qilinadi. | | -200 | Unexpected error. Please try again later | Kutilmagan xato. Keyinroq qayta urining yoki texnik yordam xizmatiga murojaat qiling. | | -202 | Transaction with external id: [trans id] failed | Muvaffaqiyatsiz tranzaksiya [trans id]. FaqatCheckusulida qaytariladi.. | | -301 | Client or contract or ePOS not found | Tranzaksiyani tasdiqlash uchun ko‘rsatilgan ma’lumotlar tranzaksiyani yaratishda ko‘rsatilgan ma’lumotlarga mos kelmaydi | | -302 | External id [external id] is already used | Ko’rsatilganexternal_idavval ishlatilgan. | | -303 | Invalid external id | Noto’g’ri identifikatorexternal_id. | | -303 | Invalid firstname | Noto’g’ri mijozning ismi. | | -303 | Invalid lastname | Noto’g’ri mijozning familiyasi . | | -303 | Invalid middle name | Noto’g’ri mijozning otasining ismi. | | -303 | Invalid PINFL | Noto’g’ri JSHSHIR. | | -303 | Invalid passport series | Noto’g’ri passport seriyasi. | | -303 | Invalid passport number | Noto’g’ri passport raqami. | | -303 | Invalid contract number | Noto’g’ri kontrakt raqami. | | -303 | Invalid amount | Noto’g’ri summa . | | -303 | Invalid packageCode | Noto’g’ripackageCode. | | -303 | Invalid TIN | Noto’g’ri STIR. | | -303 | branch_id must not be null or empty |branch_idmaydoni bo’sh qolmasligi kerak. | | -303 | terminal_group_id must not be null or empty |terminal_group_idmaydoni bo’sh qolmasligi kerak. | | -306 | Requested amount is less than minimum allowed | Ko’rsatilgan summa yechib olish mumkin bo’lgan minimal miqdoridan kam. | | -307 | ePOS with branch id: [branch id] not found | ko’rsatilgan parametrlar bilann ePOS topilmadi. | | -307 | ePOS details were not sent | ePOS tafsilotlari yuborilmadi. | | -308 | Request with provided external id not found |external_idko’rsatilgan bilan topilmadi |
Visa/Mastercard ekvayring
MPS tizimi - bu O‘zbekiston Respublikasi hududida o‘z faoliyatini amalga oshirayotgan yuridik shaxslarga Visa va Mastercard kartalaridan to‘lovlarni qabul qilish imkonini beruvchi ekvayring platformasi.
Tizimga ulanganda, hamkorga noyob API kaliti beriladi, u platforma bilan ishlayotganda ’apikey’ sarlavhasi ko‘rinishida har qanday so‘rovga kiritilishi kerak.
’Asosiy URL: https://apigw.atmos.uz/mps’
Avtorizatsiya
So‘rov:
shell
curl --location ’https://apigwshell
curl --location 'https://apigw.atmos.uz/token' \
--header 'Authorization: Basic Base64(consumer-key:consumer-secret)' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data grant_type=client_credentials
http
POST /token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Authorization: Basic Base64(consumer-key:consumer-secret)
Host: apigw.atmos.uz
Response example:
json { "access_token": "string", "refresh_token": "string", "expires_in": 1234 }
HTTP so‘rovi
’POST https://apigw.atmos.uz/token’
Base64 (consumer_key + ’:’ + consumer_secret) formulasi bo‘yicha base64 formatida shifrlangan satrni parametr sifatida qabul qiladi. Serverning javobida 3600 soniya (1 soat) amal qiladigan kirish tokeni qaytariladi.
Token amal qilish muddatini uzaytirish
So‘rov:
curl --location 'https://apigw.atmos.uz/token' \
--header 'Authorization: Basic Base64(consumer-key:consumer-secret)' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data grant_type=client_credentials
POST /token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Authorization: Basic Base64(consumer-key:consumer-secret)
Host: apigw.atmos.uz
Response example:
json { "access_token": "string", "refresh_token": "string", "expires_in": 1234 }HTTP Request
POST https://apigw.atmos.uz/token
Avvalgi usulga o‘xshash funksionalga ega, faqat u allaqachon berilgan tokenning amal qilish muddatini uzaytiradi.
Kartalarni biriktirish – BIND
Kartani biriktirish
So‘rov:
curl --location 'https://apigw.atmos.uz/mps/pay/card/bind' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <access-token>' \
--data-raw '{
"store_id": 1,
"pan": "4278310022884134",
"expiry": "2508",
"card_name": "TEST",
"cvc2": "075",
"client_ip_addr": "192.168.200.01",
"ext_id": "1"
}'
POST /mps/pay/card/bind HTTP/1.1
Host: apigw.atmos.uz
Content-Type: application/json
Authorization: Bearer <access-token>
{
"store_id": 1,
"pan": "4278310022884134",
"expiry": "2508",
"card_name": "TEST",
"cvc2": "075",
"client_ip_addr": "192.168.200.01",
"ext_id": "1"
}
Response example:
json { "payload": { "id": 144, "status": 1, "type": "DEFAULT", "amount": 10000, "card": { "id": 67, "status": true, "masked_pan": "402306********9999", "masked_card_holder": "CUSTOMER NAME", "card_type": "VISA", "date_created": "2024-03-26 14:28:11", "date_updated": "2024-03-26 14:28:11", "verified_state": "PENDING", "card_region": "DOMESTIC" }, "api_id": 1, "card_id": 67, "external_id": "82b9c105-95f2-45ce-b33a-74ba4ea11ee4", "mps_ext_id": "r2PlRV8Y8CjwBAM4gzzFcVJ504c=", "status_ps": "Approved", "result_code": "Approved", "masked_pan": "402306********9327", "client_ip_addr": "192.168.200.01", "date_created": "2024-03-26 14:28:11", "date_updated": "2024-03-26 14:28:11", "redirect_uri": "https://ecomm.kapital24.uz:6443/ecomm2/ClientHandler?trans_id=r2PlRV8Y8CjwBAM4gzzFcVJ504c%3D" }, "status": { "code": 0, "message": "Success", "trace_id": "6602952bd44ca285f56c38255f2c1e15" } }HTTP Request
POST https://apigw.atmos.uz/mps/pay/card/bindKeyingi muntazam to‘lovlarni amalga oshirish uchun kartani biriktirish imkonini beradi
So‘rov parametrlari
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| store_id | Hamkor ID | ha |
| pan | Karta raqami | ha |
| expiry | MMYY formatidagi kartaning amal qilish muddati | ha |
| card_name | Karta nomi | ha |
| cvc2 | Karta xavfsizlik kodi (CVC2/CVV2) | ha |
| client_ip_addr | Mijozning IP manzili | ha |
| ext_id | Kartaning tashqi identifikatori | ha |
Javob parametrlari
| Parametr | Tavsif |
| ------------------------------- | ---------------------------------- |
| payload | Tranzaksiya ma’lumotlari obyekti |
| payload.id | Tranzaksiya identifikatori |
| payload.status | Tranzaksiya holati |
| payload.type | Tranzaksiya turi |
| payload.amount | Tranzaksiya summasi valyutada |
| payload.card | Xarita ma’lumotlari obyekti |
| payload.card.id | Karta identifikatori |
| payload.card.status | maxfiy karta raqami |
| payload.card.masked_card_holder | Karta egasining yashirin ismi |
| payload.card.card_type | Karta turi |
| payload.card.date_created | Xarita yaratilgan sana |
| payload.card.date_updated | Karta yangilangan sana |
| payload.card.verified_state | Kartani tasdiqlash holati
| payload.card.card_region | Xarita hududi |
| payload.api_id | ID API |
| payload.card_id | Karta identifikatori | | payload.external_id | Tranzaksiya tashqi identifikatori | | payload.mps_ext_id | MPS tashqi tranzaksiya identifikatori | | payload.status_ps | PS maqomi |
| payload.result_code | Natija kodi |
| payload.client_ip_addr | Mijozning IP manzili |
| payload.date_created | Tranzaksiya yaratilgan sana |
| payload.date_updated | Tranzaksiya yangilangan sana | | payload.redirect_uri | 3DS dan keyin mijozni qayta yo‘naltirish uchun havola | | status | Operatsiya holati haqidagi ma’lumotga ega obyekt | | status.code | Amal holati kodi |
| status.message | Amal holati xabari |
| status.trace_id | Amalni kuzatish identifikatori |
Karta egasi tomonidan biriktirilmoqda
curl -X POST "https://apigw.atmos.uz/checkout/card-bind/create" \
-H "Host: https://apigw.atmos.uz" \
-H "Authorization: Bearer <access-token>" \
-H "Content-Type: application/json" \
-d '{
"request_id": "1231312312",
"store_id": 3,
"account": "DFSDF",
"success_url": "https://atmos.uz"
}'
POST https://apigw.atmos.uz/checkout/card-bind/create HTTP/1.1
Host: https://apigw.atmos.uz
Authorization: Bearer <access-token>
Content-Type: application/json
{
"request_id": "1231312312",
"store_id": 3,
"account": "DFSDF",
"success_url": "https://atmos.uz",
}
Response example:
{
"store_id": 3,
"payment_id": 272,
"token": "9Y53Bh_hFirZgxxFqBTwtA==",
"url": "https://checkout.atmos.uz/bind?id=9Y53Bh_hFirZgxxFqBTwtA==",
"status": {
"code": "OK",
"description": "Success",
"trace_id": "6602952bd44ca285f56c38255f2c1e15"
}
}
HTTP Request
POST https://apigw.atmos.uz/checkout/card-bind/create
Karta egasi (karta egasi) tomonidan kartani bog‘lash orqali havolani yaratish usuli. Biriktirilgandan keyin, hamkor o‘z tomonidagi kartadan yechib olingan mablag‘lar ko‘paytmasiga kirish huquqiga ega bo‘ladi.
Jarayon ketma-ketligi:
- Usul chaqiruvi bo‘yicha havola shakllantiriladi;
- Havola karta egasiga uzatiladi. Karta ma’lumotlari kiritiladi, bir martalik SMS-parol orqali bog‘lash amalga oshiriladi;
- Muvaffaqiyatli ulanish holatida tizim quyidagi mazmundagi hamkor bilingi so‘rovini bajaradi: ’{ "api_key":
"card_id": 1231 }’; - Tizim quyidagi mazmundagi hamkor bilingidan javob kutmoqda: ’{ "status": 1, "message": "Muvaffaqiyatli" }’;
- Karta muvaffaqiyatli biriktirildi va hamkor berilgan ’card_id’ bo‘yicha to‘lovlarni amalga oshirishi mumkin. #### So‘rov parametrlari | Parametr | Tavsif | Majburiylik | | ----------- | ------------------------------------ | -------------- | | request_id | Unikal identifikator (hamkor tomonida shakllanadi) | ha | | store_id | tizimdagi hamkor id | ha | | hisob | Operatsiya identifikatori (hamkor tomonida shakllanadi) | ha | | success_url | Muvaffaqiyatli javob berilganda foydalanuvchini yo‘naltirish sahifasi | ha |
Javob parametrlari
| Parametr | Tavsif |
|---|---|
| store_id | hamkor ID |
| payment_id | Tranzaksiya identifikatori |
| token | Tranzaksiya tokeni |
| url | Kartani biriktirish uchun havola |
| status | Operatsiya holati haqidagi ma’lumotga ega obyekt |
| status.code | Amal holati kodi |
| status.message | Amal holati xabari |
| status.trace_id | Amalni kuzatish identifikatori |
Ulangan karta tafsilotlarini olish
So‘rov:
curl --location 'https://apigw.atmos.uz/mps/pay/card/32' \
--header 'Authorization: Bearer <access-token>'
GET /mps/pay/card/32 HTTP/1.1
Host: apigw.atmos.uz
Authorization: Bearer <access-token>
Response example:
json { "payload": { "card": { "id": 928, "status": true, "approved": true, "masked_pan": "427831********5430", "masked_card_holder": "TEST", "card_type": "VISA", "date_created": "2024-11-21 10:58:12", "date_updated": "2024-11-21 10:58:12", "verified_state": "FAILED", "status_3ds": "FAILED", "card_region": "ONUS", "store_id": 1 }, "card_id": 928 }, "status": { "code": 0, "message": "Success", "trace_id": "65dd6c72a94bfe3856d7f821e8ac37eb" } }HTTP Request
’GET https://apigw.atmos.uz/mps/pay/card/32’
Xizmatga avval biriktirilgan karta ma’lumotlarini qaytaradi
So‘rov parametrlari
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| id | Karta identifikatori | ha |
Javob parametrlari
| nomi | tavsifi |
|---|---|
| payload | Ma’lumotlar obyekti |
| card | Karta ma’lumotlariga ega obyekt |
| card.id | Karta identifikatori |
| card.status | Kartani biriktirish holati |
| card.masked_pan | Karta raqami niqoblangan |
| card.masked_card_holder | Karta egasining niqoblangan ismi |
| card.card_type | Karta turi |
| card.date_created | Karta biriktirmasi yaratilgan sana |
| card.date_updated | Kartani ulash sanasi |
| card.verified_state | Kartaning tasdiqlash holati |
| card.status_3ds | 3DS holati |
| card.card_region | Karta registratsiya qilingan hudud |
| card.store_id | Hamkor ID |
| card_id | Tizimdagi karta ID |
| status | Operatsiya holati haqidagi ma’lumotga ega |
| obyekt | |
| status.code | Amal holati kodi |
| status.message | Amal holati xabari |
| status.trace_id | Amalni kuzatish identifikatori |
Tranzaksiya loyihasini yaratish (bind)
So‘rov:
curl -X POST https://apigw.atmos.uz/mps/pay/transaction/pre-create \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <access-token>" \
-d '{
"amount": 10000,
"ext_id": "{{$randomUUID}}",
"store_id": 3,
"ofd_items": [],
"account": "i-203451",
"invoice_id": "00023213"
}'
POST /mps/pay/transaction/pre-create HTTP/1.1
Host: apigw.atmos.uz
Content-Type: application/json
Authorization: Bearer <access-token>
{
"amount": 10000,
"ext_id": "{{$randomUUID}}",
"store_id": 3,
"ofd_items": [],
"account": "i-203451",
"invoice_id": "00023213"
}
Response example:
json { "payload": { "id": 898, "status": 0, "type": "DEFAULT", "amount": 10000, "api_id": 1, "external_id": "9f7ab26c-9ddd-47bf-b5ee-c7e04714f162", "date_created": "2024-11-20 16:12:38", "date_updated": "2024-11-20 16:12:38", "ofd_redirect_uri": "https://ofd.atmos.uz/api/ofd/bVYxRGo5cjQxOFN4RlRpZjRST3hFdz09", "store_id": 3, "upper_commission": 0, "lower_commission": 0 }, "status": { "code": 0, "message": "Success", "trace_id": "673dc426d9e792630a9dec5bb25603a8" } }HTTP Request
POST https://apigw.atmos.uz/mps/pay/transaction/pre-create
Bog‘langan kartadan keyinchalik yechib olish uchun tranzaksiya loyihasini (qoralama) yaratish
So‘rov parametrlari
| Nomi | Tavsifi | Majburiyati |
|---|---|---|
| miqdor | Tranzaksiya summasi (tiyin) | Ha |
| ext_id | Unikal so‘rov identifikatori | Ha |
| store_id | Hamkor identifikatori | Ha |
| ofd_items | Obyektlarning FMO ro‘yxati | Ha |
| hisob | Mijoz tomonidagi operatsiya identifikatori | Ha |
| invoice_id | Hisob raqami | Ha |
Javob parametrlari
| Maydon nomi | Tavsif |
|---|---|
| id | Tranzaksiyaning unikal identifikatori |
| status | Tranzaksiya holati |
| type | Tranzaksiya turi |
| amount | Tranzaksiya summasi (tiyin) |
| api_id | API identifikatori |
| external_id | Tranzaksiyaning tashqi identifikatori |
| date_created | Tranzaksiya yaratilgan sana |
| date_updated | Oxirgi tranzaksiya yangilangan sana |
| ofd_redirect_uri | OFDni yo‘naltirish uchun havola |
| store_id | Hamkor identifikatori |
| upper_commission | Yuqori komissiya |
| lower_commission | Quyi komissiya |
| code | Javob holati kodi |
| xabar | Javob holati xabari |
| trace_id | Unikal so‘rov identifikatori |
Loyihadan tranzaksiya yaratish (bind)
curl -X POST https://apigw.atmos.uz/mps/pay/transaction/create/bind \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <access-token>" \
-d '{
"card_id": 855,
"amount": 1000,
"client_ip_addr": "192.168.200.201",
"transaction_id": 883
}'
POST /mps/pay/transaction/create/bind HTTP/1.1
Host: apigw.atmos.uz
Content-Type: application/json
Authorization: Bearer <access-token>
{
"card_id": 855,
"amount": 1000,
"client_ip_addr": "192.168.200.201",
"transaction_id": 883
}
Response example:
json { "payload": { "id": 735, "status": 1, "rrn": "420810227278", "type": "DEFAULT", "amount": 10000, "card": { "id": 923, "status": true, "masked_pan": "419525********1540", "masked_card_holder": "NAME TEST", "card_type": "VISA", "date_created": "2024-11-20 16:20:19", "date_updated": "2024-11-20 16:20:19", "verified_state": "PENDING", "card_region": "DOMESTIC" }, "api_id": 1, "card_id": 923, "external_id": "fce222d7-2f5a-4052-9170-b68c30bd9890", "mps_ext_id": "BhOEry3oY7G5hHtNTFABHiCLsfQ=", "status_ps": "Approved", "result_code": "Approved", "app_code": "249138", "masked_pan": "419525********1540", "client_ip_addr": "192.168.200.01", "date_created": "2024-11-20 16:20:19", "date_updated": "2024-11-20 16:20:19", "redirect_uri": "https://ecomm.kapital24.uz:2443/ecomm2/ClientHandler?trans_id=BhOEry3oY7G5hHtNTFABHiCLsfQ%3D", "ofd_redirect_uri": "https://ofd.atmos.uz/api/ofd/blBlR3p1RmVlS0pQSHY4QjRlM1k3UT09", "store_id": 3, "upper_commission": 100, "lower_commission": 0, "ofd_commission_uri": "https://ofd.atmos.uz/api/ofd/SDRxWDc3ejc0cmZYQmlDT3BGMVFmQT09" }, "status": { "code": 0, "message": "Success", "trace_id": "673dc5f3080d8074fd3a272cb3d0c365" } }HTTP Request
’POST https://apigw.atmos.uz/mps/pay/transaction/create/bind’
Qoralama (qoralama) dan tranzaksiya yaratish va unga to‘lov kartasini biriktirish
So‘rov parametrlari
| Maydon nomi | Tavsif | Majburiy |
|---|---|---|
| card_id | Tranzaksiya amalga oshiriladigan karta identifikatori | Ha |
| miqdor | Tranzaksiya summasi (tiyin) | Ha |
| client_ip_addr | Tranzaksiyani boshlagan mijozning IP manzili | Ha |
| transaction_id | Operatsiya bog‘lanadigan tranzaksiya identifikatori | Ha |
Javob parametrlari
| Maydon nomi | Tavsif |
|---|
| id | Unikal tranzaksiya identifikatori |
| status | Tranzaksiya holati |
| rrn | So‘rovga havola raqami (Retrieval Reference Number) |
| type | Tranzaksiya turi |
| summa | Tranzaksiya summasi |
| card.id | Unikal karta identifikatori |
| card.status | Karta holati (true/false) |
| card.masked_pan | Karta raqami niqoblangan |
| card.masked_card_holder | Karta egasining yashirin ismi |
| card.card_type | Karta turi |
| api_id | API identifikatori |
| card_id | Karta identifikatori |
| external_id | Tranzaksiyaning tashqi identifikatori |
| mps_ext_id | MPS platformasining tashqi identifikatori |
| status_ps | Jarayon tomonidagi holat |
| result_code | Tranzaksiya natijasi kodi |
| app_code | Tranzaksiyaga aloqador ilova kodi |
| masked_pan | Karta raqami niqoblangan |
| client_ip_addr | Mijozning IP manzili |
| date_created | Tranzaksiya yaratilgan sana va vaqt |
| date_updated | Tranzaksiya yangilangan sana va vaqt |
| redirect_uri | Tranzaksiyadan keyin qayta yo‘naltirish uchun URI | | ofd_redirect_uri | OFD tizimiga yo‘naltirish uchun URI |
| store_id | Hamkor identifikatori |
| upper_commission | Yuqori komissiya |
| lower_commission | Pastki komissiya |
| ofd_commission_uri | OFD komissiyasi uchun URI |
Tranzaksiyani tasdiqlash (bind)
So‘rov:
curl -X POST https://apigw.atmos.uz/mps/pay/transaction/apply \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <access-token>" \
-d '{
"transaction_id": 59
}'
POST https://apigw.atmos.uz/mps/pay/transaction/apply HTTP/1.1
Host: apigw.atmos.uz
Content-Type: application/json
Authorization: Bearer <access-token>
{
"transaction_id": 59
}
Response example:
json { "payload": { "id": 735, "status": 4, "rrn": "420810227278", "type": "DEFAULT", "amount": 10000, "card": { "id": 923, "status": true, "masked_pan": "419525********1540", "masked_card_holder": "NAME TEST", "card_type": "VISA", "date_created": "2024-11-20 16:20:19", "date_updated": "2024-11-20 16:20:19", "verified_state": "VERIFIED", "card_region": "DOMESTIC" }, "api_id": 1, "card_id": 923, "external_id": "fce222d7-2f5a-4052-9170-b68c30bd9890", "mps_ext_id": "BhOEry3oY7G5hHtNTFABHiCLsfQ=", "status_ps": "Approved", "result_code": "Approved", "app_code": "249138", "masked_pan": "419525********1540", "client_ip_addr": "192.168.200.01", "date_created": "2024-11-20 16:20:19", "date_updated": "2024-11-20 16:20:19", "ofd_redirect_uri": "https://ofd.atmos.uz/api/ofd/blBlR3p1RmVlS0pQSHY4QjRlM1k3UT09", "store_id": 3, "upper_commission": 100, "lower_commission": 0, "ofd_commission_uri": "https://ofd.atmos.uz/api/ofd/SDRxWDc3ejc0cmZYQmlDT3BGMVFmQT09" }, "status": { "code": 0, "message": "Success", "trace_id": "673dc5f3080d8074fd3a272cb3d0c365" } }HTTP Request
POST https://apigw.atmos.uz/mps/pay/transaction/apply
Avval yaratilgan va tasdiqlangan tranzaksiyani tasdiqlash
So‘rov parametrlari
| Maydon nomi | Tavsif | Majburiy |
|---|---|---|
| transaction_id | Yaratilgan tranzaksiya identifikatori | ha |
Javob parametrlari
| Nomi | Tavsifi |
|---|---|
| id | Tranzaksiya identifikatori |
| status | Tranzaksiya holati |
| rrn | Tranzaksiya referent raqami |
| summa | Tranzaksiya summasi |
| card.id | Karta identifikatori |
| card.status | Karta holati |
| card.masked_pan | Karta raqami niqoblangan |
| card.masked_card_holder | Karta egasining yashirin ismi |
| card.card_type | Karta turi |
| card.date_created | Xarita yaratilgan sana |
| card.date_updated | Kartani yangilash sanasi |
| card.verified_state | Kartaning tasdiqlash holati |
| card.card_region | Xarita mintaqasi |
| api_id | API identifikatori |
| card_id | Karta identifikatori |
| external_id | Tashqi identifikator |
| mps_ext_id | MPS tizimidagi identifikator |
| status_ps | To‘lov tizimi holati |
| result_code | Natija kodi |
| app_code | Ilova kodi |
| masked_pan | Karta raqami niqoblangan |
| client_ip_addr | Mijozning IP manzili |
| date_created | Tranzaksiya yaratilgan sana |
| date_updated | Tranzaksiya yangilangan sana |
| ofd_redirect_uri | OFD redirekti uchun URI |
| store_id | Hamkor identifikatori |
| upper_commission | Yuqori komissiya |
| lower_commission | Pastki komissiya |
| ofd_commission_uri | OFD komissiyasi uchun URI |
| status | So‘rov holatidagi obyekt |
| code | Holat kodi (0 - muvaffaqiyatli so‘rov) |
| xabar | Holat xabari |
| trace_id | So‘rovni kuzatish identifikatori |
to‘lovlar (MPS)
Hisob-kitob (MPS)
So’rov
curl -X POST 'https://apigw.atmos.uz/checkout/invoice/create' \
--header 'Authorization: Bearer <access-token>' \
--header 'Content-Type: application/json' \
--data '{
"request_id": "1231312312",
"store_id": 3,
"expiration_time": 10,
"expiration_date": "2024-07-11T11:12:12",
"account": "DFSDF",
"amount": 100000,
"success_url": "https://atmos.uz",
"items": [
{
"items_id": "1",
"name": "book 1",
"amount": 50000,
"quantity": 3,
"details": {
"name": "some key",
"values": "some value"
}
},
{
"items_id": "2",
"name": "service",
"amount": 50000,
"details": {
"name": "some key 2",
"values": "some value 2"
}
}
]
}'
POST https://apigw.atmos.uz/checkout/invoice/create HTTP/1.1
Host: https://apigw.atmos.uz
Authorization: Bearer <access-token>
Content-Type: application/json
{
"request_id": "1231312312",
"store_id": 3,
"expiration_time": 10,
"expiration_date": "2024-07-11T11:12:12",
"account": "DFSDF",
"amount": 100000,
"success_url": "https://atmos.uz",
"items": [
{
"items_id": "1",
"name": "book 1",
"amount": 50000,
"quantity": 3,
"details": {
"name": "some key",
"values": "some value"
}
},
{
"items_id": "2",
"name": "service",
"amount": 50000,
"details": {
"name": "some key 2",
"values": "some value 2"
}
}
]
}
Response example:
json { "store_id": 3, "payment_id": 272, "token": "9Y53Bh_hFirZgxxFqBTwtA==", "url": "https://checkout.atmos.uz/ru/invoice?id=9Y53Bh_hFirZgxxFqBTwtA==", # ссылка инвойса для открытия в браузере "status": { "code": "OK", "description": "Success" } }HTTP Request
POST https://apigw.atmos.uz/checkout/invoice/create
Veb-interfeys (to‘lov sahifasi) orqali to‘lov bilan tizimda to‘lovni yaratadi. To‘lov sahifasi URL manzili server javobida yuboriladi.
So‘rov parametrlari
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| request_id | Unikal so‘rov identifikatori | ha |
| store_id | Hamkor identifikatori | ha |
| expiration_time | Invoys muddati tugashigacha bo‘lgan vaqt, daqiqa | yo‘q |
| expiration_date | YYYY-MM-DDTHH:MM:SS formatidagi invoysning tugash sanasi va vaqti | yo‘q |
| hisob | Hamkor to‘lov identifikatori | ha |
| amount | Summa (tiyin) | ha |
| success_url | Muvaffaqiyatli to‘lov uchun qayta yo‘naltirish havolasi | ha |
| items | Mahsulot yoki xizmatlar ro‘yxati | ha |
| items[].items_id | Mahsulot yoki xizmat identifikatori | ha |
| items[].name | Mahsulot yoki xizmat nomi | ha |
| items[].amount | Mahsulot yoki xizmat uchun summa (tiyin) | ha |
| items[].quantity | Mahsulot yoki xizmat miqdori (agar mavjud bo‘lsa) | yo‘q |
| items[].details | Mahsulot yoki xizmat tafsilotlari | yo‘q |
| items[].details.name | Mahsulot yoki xizmat tafsilotlari kalitining nomi | yo‘q |
| items[].details.values | Mahsulot yoki xizmat tafsilot kalitining qiymati | yo‘q |
Javob parametrlari
| Parametr | Tavsif |
|---|---|
| store_id | Hamkor identifikatori |
| payment_id | To‘lov identifikatori |
| token | Invoys tokeni |
| url | Brauzerda ochish uchun invoys havolasi |
| status | Javob holati |
| status.code | Holat kodi |
| status.description | Holat tavsifi |
Tranzaksiya yaratish (MPS)
So‘rov:
curl --location 'https://apigw.atmos.uz/mps/pay/transaction/create' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <access-token>' \
--data-raw '{
"pan": "4278310021875430",
"expiry": "2508",
"amount": 10000,
"transaction_id": 1,
"card_name": "TEST",
"cvc2": "680",
"client_ip_addr": "192.168.200.01",
"ext_id": "64bedd41-f21b-4298-aa88-1206107670b8"
}'
POST /mps/pay/transaction/create HTTP/1.1
Host: apigw.atmos.uz
apikey: <api-key>
Authorization: Bearer <access-token>
Content-Type: application/json
{
"pan": "4278310021875430",
"expiry": "2508",
"amount": 10000,
"transaction_id": 1,
"card_name": "TEST",
"cvc2": "680",
"client_ip_addr": "192.168.200.01",
"ext_id": "64bedd41-f21b-4298-aa88-1206107670b8"
}
Response example:
{
"payload": {
"id": 735,
"status": 1,
"rrn": "420810227278",
"type": "DEFAULT",
"amount": 10000,
"card": {
"id": 929,
"status": true,
"masked_pan": "419525********1540",
"masked_card_holder": "ANDREY PAK",
"card_type": "VISA",
"date_created": "2024-11-21 16:00:15",
"date_updated": "2024-11-21 16:00:15",
"verified_state": "PENDING",
"card_region": "DOMESTIC"
},
"api_id": 1,
"card_id": 929,
"external_id": "fce222d7-2f5a-4052-9170-b68c30bd9890",
"mps_ext_id": "EueYPCDKlXDhyE9chwPzPcHO89s=",
"status_ps": "Approved",
"result_code": "Approved",
"app_code": "249138",
"masked_pan": "419525********1540",
"client_ip_addr": "192.168.200.01",
"date_created": "2024-11-21 16:00:15",
"date_updated": "2024-11-21 16:00:15",
"redirect_uri": "https://ecomm.kapital24.uz:2443/ecomm2/ClientHandler?trans_id=EueYPCDKlXDhyE9chwPzPcHO89s%3D",
"ofd_redirect_uri": "https://ofd.atmos.uz/api/ofd/blBlR3p1RmVlS0pQSHY4QjRlM1k3UT09",
"store_id": 3,
"upper_commission": 100,
"lower_commission": 0,
"ofd_commission_uri": "https://ofd.atmos.uz/api/ofd/SDRxWDc3ejc0cmZYQmlDT3BGMVFmQT09"
},
"status": {
"code": 0,
"message": "Success",
"trace_id": "673f12bff4d74919c7fcd40ef4dd24ce"
}
}
HTTP Request
POST https://apigw.atmos.uz/mps/pay/transaction/create
Tizimda keyinchalik tasdiqlanishi kerak bo‘lgan tranzaksiyani yaratadi
So‘rov parametrlari
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| transaction_id | Tranzaksiya loyihasi ID raqami | ha |
| pan | Karta raqami | ha |
| expiry | MMYY formatidagi kartaning amal qilish muddati | ha |
| amount | Tranzaksiya summasi tiyinlarda | ha |
| card_name | Karta nomi | ha |
| cvc2 | Karta xavfsizlik kodi (CVC2/CVV2) | ha |
| client_ip_addr | Mijozning IP manzili | ha |
| ext_id | Mijoz tomonida yaratilgan unikal tranzaksiya identifikatori (UUID) | ha |
Javob parametrlari
| Parametr | Tavsif |
| --------------------- | ------------------------------ |
| payload | Tranzaksiya ma’lumotlariga ega obyekt |
| payload.id | Tranzaksiya identifikatori |
| payload.status | Tranzaksiya holati |
| payload.rrn | Tranzaksiyani qaytarish havolasi raqami |
| payload.type | Tranzaksiya turi |
| payload.amount | Tranzaksiya summasi valyutada |
| payload.card | Xarita ma’lumotlari obyekti |
| payload.card.id | Karta identifikatori |
| payload.card.status | Karta holati |
| maxfiy karta raqami |
| payload.card.masked_card_holder | Karta egasining yashirin ismi |
| payload.card.card_type | Karta turi (masalan, VISA) |
| payload.card.date_created | Xarita yaratilgan sana |
| payload.card.date_updated | Karta yangilangan sana |
| payload.card.verified_state | Kartani tasdiqlash holati |
| payload.card.card_region | Xarita hududi |
| payload.api_id | ID API |
| payload.card_id | Karta identifikatori |
| payload.external_id | Tranzaksiya tashqi identifikatori |
| payload.mps_ext_id | MPS tashqi tranzaksiya identifikatori |
| payload.status_ps | PS maqomi |
| payload.result_code | Natija kodi |
| payload.app_code | Jarayon parametrlari |
| payload.masked_pan | Berkitilgan karta raqami |
| payload.client_ip_addr | Mijozning IP manzili |
| payload.date_created | Tranzaksiya yaratilgan sana |
| payload.date_updated | Tranzaksiya yangilangan sana |
| payload.redirect_uri | 3DS dan keyin mijozni qayta yo‘naltirish uchun havola
|
| payload.ofd_redirect_uri | OFDga yo‘naltirish uchun havola |
| payload.store_id | Hamkor ID |
| payload.upper_commission | Yuqori komissiya |
| payload.lower_commission | Quyi komissiya |
| payload.ofd_commission_uri | Fiskallashtirish cheki havolasi |
| status | Operatsiya holati haqidagi ma’lumotga ega obyekt |
| status.code | Amal holati kodi |
| status.message | Amal holati xabari |
| status.trace_id | Amalni kuzatish identifikatori |
Rekurrent to‘lovni (MPS) yaratish
So‘rov:
shell curl --location 'https://apigw.atmos.uz/mps/pay/transaction/create/template' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <access-token>' \ --data-raw '{ "card_id": 1, "amount": 1000, "client_ip_addr": "192.168.200.201", "ext_id": "12d649ad-38ac-44c5-8f10-3700bfda5efe" }'http POST /mps/pay/transaction/create/template HTTP/1.1 Host: apigw.atmos.uz apikey: <api-key> Authorization: Bearer <access-token> Content-Type: application/json { "card_id": 1, "amount": 1000, "client_ip_addr": "192.168.200.201", "ext_id": "12d649ad-38ac-44c5-8f10-3700bfda5efe" }Response example:json { "payload": { "id": 110, "status": 1, "type": "TEMPLATE", "api_id": 1, "card_id": 36, "external_id": "c4cea503-4838-440e-aac2-4509e1319f4e", "mps_ext_id": "I7cQTxAUXz0LPy75q09sldnOzTk=", "status_ps": "Approved", "status_3ds": "AUTHENTICATED", "result_code": "Approved", "masked_pan": "427831********5430", "client_ip_addr": "192.168.200.01", "date_created": "2024-02-26 17:13:05", "date_updated": "2024-02-26 17:13:05", "redirect_uri": null }, "status": { "code": 0, "message": "Success", "trace_id": "65dc805134eb63b90d2e048d1d4fb38a" } }HTTP Request
POST https://apigw.atmos.uz/mps/pay/transaction/create/template
Usul tizimda muntazam to‘lovni yaratadi. To‘lovni muvaffaqiyatli yaratish uchun so‘rovda uzatilgan karta avval tizimga ulangan bo‘lishi va qo‘shilganda 3DS tekshiruvi o‘tkazilgan bo‘lishi kerak. 3DS tasdiqlash holatini /card/{id} orqali tekshirish mumkin
So‘rov parametrlari
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| card_id | Karta identifikatori | ha |
| summa | Tindagi muntazam to‘lov summasi | ha |
| client_ip_addr | Mijozning IP manzili | ha |
| ext_id | Mijoz tomonida yaratilgan unikal tranzaksiya identifikatori (UUID) | ha |
Javob parametrlari
| Parametr | Tavsif |
|---|---|
| payload | Muntazam to‘lov ma’lumotlariga ega obyekt |
| id | Doimiy to‘lov identifikatori |
| status | Muntazam to‘lov holati |
| type | Muntazam to‘lov turi |
| api_id | ID API |
| card_id | Karta identifikatori |
| external_id | Tashqi muntazam to‘lov ID |
| mps_ext_id | MPS muntazam to‘lov tashqi identifikatori |
| status_ps | Muntazam to‘lov PS holati |
| status_3ds | 3DS muntazam to‘lov holati |
| result_code | Muntazam to‘lov natijasi kodi |
| masked_pan | Karta raqami niqoblangan |
| client_ip_addr | Mijozning IP manzili |
| date_created | Muntazam to‘lov yaratilgan sana |
| date_updated | Muntazam to‘lov yangilangan sana |
| redirect_uri | 3DS dan keyin mijozni qayta yo‘naltirish uchun havola |
| status | Operatsiya holati haqidagi ma’lumotga ega obyekt |
| code | Operatsiya holati kodi |
| message | Operatsiya holati haqida xabar |
| trace_id | Amalni kuzatish identifikatori |
Tranzaksiya tafsilotlarini olish (MPS)
So‘rov:
curl --location 'https://apigw.atmos.uz/mps/pay/transaction/get/52' \
--header 'Authorization: Bearer <access-token>'
GET /mps/pay/transaction/get/52 HTTP/1.1
Host: apigw.atmos.uz
apikey: <api-key>
Authorization: Bearer <access-token>
Content-Type: application/json
Response example:
json { "payload": { "id": 235, "status": 6, "rrn": "417310203285", "type": "DEFAULT", "amount": 100000, "api_id": 2, "card_id": 220, "external_id": "checkout_32157", "mps_ext_id": "JEpQ9xa98OhSPPHLRIExPZBlufQ=", "status_ps": "Accepted (for reversal)", "result_code": "Accepted", "app_code": "999284", "masked_pan": "419525********1783", "client_ip_addr": "10.228.1.26", "date_created": "2024-06-21 05:38:25", "date_updated": "2024-06-21 05:38:57", "redirect_uri": "https://ecomm.kapital24.uz:2443/ecomm2/ClientHandler?trans_id=JEpQ9xa98OhSPPHLRIExPZBlufQ%3D", "ofd_redirect_uri": "https://ofd.atmos.uz/api/ofd/bjhMWnRWaDNxb2NWMHRGL2hLMXlYQT09", "store_id": 3, "upper_commission": 0, "lower_commission": 0 }, "status": { "code": 0, "message": "Success", "trace_id": "673f1773cdc429d9cdb5bc0b0d982291" } }HTTP Request
GET https://apigw.atmos.uz/mps/pay/transaction/get/${id}So‘ralgan tranzaksiya bo‘yicha tizimdagi mavjud tafsilotlarni qaytaradi
So‘rov parametrlari
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| transaction_id | Tranzaksiya identifikatori | ha |
Javob parametrlari
| Parametr | Tavsif |
|---|
|payload | Tranzaksiya ma’lumotlari obyekti |
| payload.id | Tranzaksiya identifikatori |
| payload.status | Tranzaksiya holati |
| payload.rrn | Tranzaksiyani qaytarish havolasi raqami |
| payload.type | Tranzaksiya turi |
| payload.amount | Tranzaksiya summasi valyutada |
| payload.api_id | ID API |
| payload.card_id | Karta identifikatori |
| payload.external_id | Tranzaksiya tashqi identifikatori |
| payload.mps_ext_id | MPS tashqi tranzaksiya identifikatori |
| payload.status_ps | PS maqomi |
| payload.result_code | Natija kodi |
| payload.app_code | Avtorizatsiya kodi |
| payload.masked_pan | Berkitilgan karta raqami |
| payload.client_ip_addr | Mijozning IP manzili |
| payload.date_created | Tranzaksiya yaratilgan sana |
| payload.date_updated | Tranzaksiya yangilangan sana |
| payload.redirect_uri | 3DS dan keyin mijozni qayta yo‘naltirish uchun havola |
| payload.ofd_redirect_uri | OFDga yo‘naltirish uchun havola |
| payload.store_id | Hamkor ID |
| payload.upper_commission | Yuqori komissiya |
| payload.lower_commission | Quyi komissiya |
| status | Operatsiya holati haqidagi ma’lumotga ega obyekt |
| status.code | Amal holati kodi |
| status.message | Amal holati xabari |
| status.trace_id | Amalni kuzatish identifikatori |
Tranzaksiya tafsilotlarini tashqi identifikator (TID) orqali olish
So‘rov:
curl -X POST \
https://apigw.atmos.uz/mps/pay/get/ext_id \
-H 'Content-Type: application/json' \
-d '{
"ext_id": "<ext-id>"
}'
POST /mps/pay/get/ext_id HTTP/1.1
Host: apigw.atmos.uz
Content-Type: application/json
{
"ext_id": "<ext-id>"
}
Response example:
json { "payload": { "id": 131, "status": 1, "type": "DEFAULT", "amount": 10000, "card": { "id": 55, "status": true, "masked_pan": "427831********9999", "masked_card_holder": "TEST", "card_type": "VISA", "date_created": "2024-03-18 05:27:54", "date_updated": "2024-03-18 05:27:54", "verified_state": "PENDING", "card_region": "ONUS" }, "api_id": 1, "card_id": 55, "external_id": "f6d7c050-1927-43d6-a828-6a22235d6f32", "mps_ext_id": "E0ZwTIl60PFsSbOz1o8yCwcXEn8=", "status_ps": "Approved", "result_code": "Approved", "masked_pan": "427831********5430", "client_ip_addr": "192.168.200.01", "date_created": "2024-03-18 05:27:54", "date_updated": "2024-03-18 05:27:54" }, "status": { "code": 0, "message": "Success", "trace_id": "66029622c951aa197d8196bd89d65308" } }HTTP Request
POST https://apigw.atmos.uz/mps/pay/get/ext_id
tashqi kalit orqali tranzaksiya ma’lumotlarini qaytaradi
So‘rov parametrlari
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| ext_id | Tranzaksiyaning tashqi identifikatori | ha |
Javob parametrlari
| Parametr | Tavsif |
|---|---|
| payload | Tranzaksiya ma’lumotlari obyekti |
| payload.id | Tranzaksiya identifikatori |
| payload.status | Tranzaksiya holati |
| payload.type | Tranzaksiya turi |
| payload.amount | Tranzaksiya summasi valyutada |
| payload.card | Xarita ma’lumotlari obyekti |
| payload.card.id | Karta identifikatori |
| payload.card.status | Karta holati |
| maxfiy karta raqami | |
| payload.card.masked_card_holder | Karta egasining yashirin ismi |
| payload.card.card_type | Karta turi |
| payload.card.date_created | Xarita yaratilgan sana |
| payload.card.date_updated | Karta yangilangan sana |
| payload.card.verified_state | Kartani tasdiqlash holati |
| payload.card.card_region | Xarita hududi |
| payload.api_id | ID API |
| payload.card_id | Karta identifikatori |
| payload.external_id | Tranzaksiya tashqi identifikatori |
| payload.mps_ext_id | MPS tashqi tranzaksiya identifikatori |
| payload.status_ps | PS maqomi |
| payload.result_code | Natija kodi |
| payload.client_ip_addr | Mijozning IP manzili |
| payload.date_created | Tranzaksiya yaratilgan sana |
| payload.date_updated | Tranzaksiya yangilangan sana |
| status | Operatsiya holati haqidagi ma’lumotga ega obyekt |
| status.code | Amal holati kodi |
| status.message | Amal holati xabari |
| status.trace_id | Amalni kuzatish identifikatori |
Xolding (MPS)
Xolding operatsiyasini yaratish (MPS)
curl -X POST "https://apigw.atmos.uz/mps-extend/uklon/hold" \
-H "Content-Type: application/json" \
-d '{
"ext_id": "uklon_001",
"amount": 12000,
"store_id": 100002,
"ofd_items": [
{
"items_id": "1",
"ofd_code": "03402004012000000",
"name": "105 UMUMIY TOZALASH 1000 ML",
"amount": 6000,
"quantity": 1
},
{
"items_id": "1",
"ofd_code": "10105001001000000",
"name": "Yetkazib berish",
"amount": 6000,
"quantity": 1
}
],
"account": "user_account",
"invoice_id": "INV-00001",
"card_id": 947,
"client_ip_addr": "192.168.1.1"
}'
POST /mps-extend/uklon/hold HTTP/1.1
Host: apigw.atmos.uz
Content-Type: application/json
{
"ext_id": "uklon_001",
"amount": 12000,
"store_id": 100002,
"ofd_items": [
{
"items_id": "1",
"ofd_code": "03402004012000000",
"name": "105 UMUMIY TOZALASH 1000 ML",
"amount": 6000,
"quantity": 1
},
{
"items_id": "1",
"ofd_code": "10105001001000000",
"name": "Yetkazib berish",
"amount": 6000,
"quantity": 1
}
],
"account": "user_account",
"invoice_id": "INV-00001",
"card_id": 947,
"client_ip_addr": "192.168.1.1"
}
Response example:
json { "payload": { "id": 925, "status": 4, "rrn": "435206074577", "type": "TEMPLATE", "amount": 12000, "card": { "id": 947, "status": true, "approved": true, "masked_pan": "419525********11111", "masked_card_holder": "NAME LASTNAME", "card_type": "VISA", "date_created": "2024-12-16 12:21:43", "date_updated": "2024-12-16 12:21:43", "verified_state": "VERIFIED", "status_3ds": "AUTHENTICATED", "card_region": "DOMESTIC", "store_id": 000002 }, "card_id": 947, "external_id": "PARTNER_001", "mps_ext_id": "TrZZ5RRDVRr4GY5FBub5Pjubix8=", "status_ps": "Approved", "status_3ds": "AUTHENTICATED", "result_code": "Approved", "masked_pan": "419525********9556", "client_ip_addr": "192.168.1.1", "date_created": "2024-12-17 06:42:43", "date_updated": "2024-12-17 11:42:43", "ofd_redirect_uri": "https://ofd.atmos.uz/api/ofd/T1VXWkVMejFYQVhvS3dNVHNXV1kwZz00", "store_id": 100002, "upper_commission": 0, "lower_commission": 0 }, "status": { "code": 0, "message": "Success", "trace_id": "67611d6344179f211d0ed71bf666e71c" } }
MPS tizimi doirasida mijoz kartasidagi mablag‘larni saqlash operatsiyasini yaratish
HTTP so‘rovi
’POST https://apigw.atmos.uz/mps-extend/uklon/hold’
So‘rov parametrlari
| Parametr | Tavsif | Majburiylik |
| ------------------ | ------------------------------ | ------------- |
| ext_id | Tashqi identifikator | ha |
| summa | Tranzaksiya summasi | ha |
| store_id | Hamkor identifikatori | ha |
| ofd_items.items_id | OFD ro‘yxatidagi mahsulot identifikatori | ha |
| ofd_items.ofd_code | OFD ro‘yxatidagi mahsulot kodi | ha |
| ofd_items.name | OFD ro‘yxatidagi mahsulot nomi | ha |
| ofd_items.amount | OFD ro‘yxatidagi mahsulot miqdori | ha |
| ofd_items.quantity | OFD ro‘yxatidagi mahsulot miqdori | ha |
| hisob | Ichki identifikator | ha |
| invoice_id | Hisob identifikatori | ha |
| card_id | Karta identifikatori | ha |
| client_ip_addr | Mijozning IP manzili | ha |
Javob parametrlari
| Parametr | Tavsif | | ---------------- | ---------------- ------------------------- | | code | Operatsiya holati kodi | | description | Javob holati tavsifi |
| payload.id | Tranzaksiya identifikatori |
| payload.status | Tranzaksiya holati |
| payload.rrn | Tranzaksiya raqami |
| payload.type | Tranzaksiya turi |
| payload.amount | Tranzaksiya summasi |
| payload.card.id | Karta identifikatori |
| payload.card.status | Karta holati |
| payload.card.approved | Kartani tasdiqlash holati |
| maxfiy karta raqami |
| payload.card.masked_card_holder | Karta egasining yashirin ismi |
| payload.card.card_type | Karta turi |
| payload.card.date_created | Xarita yaratilgan sana |
| payload.card.date_updated | Karta oxirgi yangilangan sana |
| payload.card.verified_state | Kartani tasdiqlash holati |
| payload.card.status_3ds | Kartani tasdiqlashning 3DS holati |
| payload.card.card_region | Xarita hududi |
| payload.card.store_id | Hamkor identifikatori |
| payload.card_id | Karta identifikatori (payload.card.id bilan bir xil) | | payload.external_id | Tashqi identifikator |
| payload.mps_ext_id | Tashqi tranzaksiya identifikatori |
| payload.status_ps | To‘lov holati |
| payload.status_3ds | 3DS tranzaksiya holati |
| payload.result_code | To‘lov natijasi |
| payload.masked_pan | Berkitilgan karta raqami (payload.card.masked_pan bilan bir xil) |
| payload.client_ip_addr | Mijozning IP manzili |
| payload.date_created | Tranzaksiya yaratilgan sana |
| payload.date_updated | Oxirgi tranzaksiya yangilangan sana |
| payload.ofd_redirect_uri | Yo‘naltirish uchun URI |
| payload.store_id | Hamkor identifikatori
(payload.card.store_id va payload.store_id bilan bir xil) |
| payload.upper_commission | Yuqori komissiya |
| payload.lower_commission | Pastki komissiya |
| status.trace_id | So‘rovni kuzatish identifikatori |
Xolding summasini yechib olish
curl -X POST "https://apigw.atmos.uz/mps-extend/uklon/apply" \
-H "Content-Type: application/json" \
-d '{
"transaction_id": 925
}'
POST /mps-extend/uklon/apply HTTP/1.1
Host: apigw.atmos.uz
Content-Type: application/json
{
"transaction_id": 925
}
Response example:
json { "payload": { "id": 925, "status": 4, "rrn": "435206074577", "type": "TEMPLATE", "amount": 12000, "card": { "id": 947, "status": true, "approved": true, "masked_pan": "419525********1111", "masked_card_holder": "NAME LASTNAME", "card_type": "VISA", "date_created": "2024-12-16 12:21:43", "date_updated": "2024-12-16 12:21:43", "verified_state": "VERIFIED", "status_3ds": "AUTHENTICATED", "card_region": "DOMESTIC", "store_id": 100002 }, "card_id": 947, "external_id": "uklon_001", "mps_ext_id": "TrZZ5RRDVRr4GY5FBub5Pjubix8=", "status_ps": "Approved", "status_3ds": "AUTHENTICATED", "result_code": "Approved", "masked_pan": "419525********9556", "client_ip_addr": "192.168.1.1", "date_created": "2024-12-17 06:42:43", "date_updated": "2024-12-17 06:42:43", "redirect_uri": "https://ecomm.kapital24.uz:2443/ecomm2/ClientHandler?trans_id=TrZZ5RRDVRr4GY5FBub5Pjubix8%30", "ofd_redirect_uri": "https://ofd.atmos.uz/api/ofd/T1VXWkVMejFYQVhvS3dNVHNXV1kwZz00", "store_id": 100002, "upper_commission": 0, "lower_commission": 0 }, "status": { "code": 0, "message": "Success", "trace_id": "67611e3b6b932e56690f31668951dbf2" } }
Avval muzlatilgan summa asosida pul mablag‘larini hisobdan chiqaradi
HTTP so‘rovi
’POST https://apigw.atmos.uz/mps-extend/uklon/apply’
So‘rov parametrlari
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| transaction_id | Tranzaksiya identifikatori | ha |
Javob parametrlari
| Parametr | Tavsif | | | -------- | ------------------------------------ |
| code | Operatsiya holati kodi |
| description | Javob holati tavsifi |
| payload.id | Tranzaksiya identifikatori |
| payload.status | Tranzaksiya holati |
| payload.rrn | Tranzaksiya raqami |
| payload.type | Tranzaksiya turi |
| payload.amount | Tranzaksiya summasi |
| payload.card.id | Karta identifikatori |
| payload.card.status | Karta holati |
| payload.card.approved | Kartani tasdiqlash holati | | maxfiy karta raqami |
| payload.card.masked_card_holder | Karta egasining yashirin ismi |
| payload.card.card_type | Karta turi
| payload.card.date_created | Xarita yaratilgan sana |
| payload.card.date_updated | Karta oxirgi yangilangan sana |
| payload.card.verified_state | Kartani tasdiqlash holati |
| payload.card.status_3ds | Kartani tasdiqlashning 3DS holati |
| payload.card.card_region | Xarita hududi |
| payload.card.store_id | Hamkor identifikatori |
| payload.card_id | Karta identifikatori (payload.card.id bilan bir xil) |
| payload.external_id | Tashqi identifikator |
| payload.mps_ext_id | Tashqi tranzaksiya identifikatori |
| payload.status_ps | To‘lov holati
| payload.status_3ds | 3DS tranzaksiya holati |
| payload.result_code | To‘lov natijasi |
| payload.masked_pan | Berkitilgan karta raqami (payload.card.masked_pan bilan bir xil) |
| payload.client_ip_addr | Mijozning IP manzili |
| payload.date_created | Tranzaksiya yaratilgan sana |
| payload.date_updated | Tranzaksiyaning oxirgi yangilangan sanasi |
| payload.redirect_uri | Mijozni qayta yo‘naltirish uchun URI | | payload.ofd_redirect_uri | OFD tizimiga yo‘naltirish uchun URI |
| payload.store_id | Hamkor identifikatori (payload.card.store_id va payload.store_id bilan bir xil) |
| payload.upper_commission | Yuqori komissiya |
| payload.lower_commission | Pastki komissiya |
| status.trace_id | So‘rovni kuzatish identifikatori |
Xolding operatsiyasini bekor qilish
So‘rov:
curl -X POST "https://apigw.atmos.uz/mps-extend/uklon/cancel" \
-H "Content-Type: application/json" \
-d '{
"store_id": 100002,
"transaction_id": 925
}'
POST /mps-extend/uklon/cancel HTTP/1.1
Host: apigw.atmos.uz
Content-Type: application/json
{
"store_id": 100002,
"transaction_id": 925
}
Response example:
json { "status": { "code": 0, "message": "Success", "trace_id": "67611fd176ffefc6b963f36dbe32e582" } }Avval yaratilgan xolding amalini bekor qiladi
HTTP so‘rovi
’POST https://apigw.atmos.uz/mps-extend/uklon/cancel’
So‘rov parametrlari
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| store_id | Hamkor identifikatori | ha |
| transaction_id | Tranzaksiya identifikatori | ha |
Javob parametrlari
| Parametr | Tavsif |
|---|---|
| code | Operatsiya holati kodi |
| description | Javob holati tavsifi |
| status.code | Javob holati kodi (masalan, 0 - muvaffaqiyatli so‘rov) |
| status.message | Javob holati tavsifi (masalan, Success) |
| status.trace_id | So‘rovni kuzatish identifikatori |
Tugallangan xolding operatsiyasi (MPS) bo‘yicha pulni qaytarish
So‘rov:
curl -X POST "https://apigw.atmos.uz/mps-extend/uklon/return" \
-H "Content-Type: application/json" \
-d '{
"transaction_id": 923
}'
POST /mps-extend/uklon/return HTTP/1.1
Host: apigw.atmos.uz
Content-Type: application/json
{
"transaction_id": 923
}
Response example:
json { "payload": { "id": 923, "status": 7, "rrn": "000206071000", "type": "TEMPLATE", "amount": 10000, "card_id": 947, "external_id": "store_1", "mps_ext_id": "AYhQoiCyvfwBOJLqEj24w0ioLHU0", "status_ps": "Approved", "status_3ds": "AUTHENTICATED", "result_code": "Approved", "masked_pan": "419525********1111", "client_ip_addr": "192.168.1.1", "date_created": "2024-12-17 06:17:17", "date_updated": "2024-12-17 12:12:17", "redirect_uri": "https://ecomm.kapital24.uz:2443/ecomm2/ClientHandler?trans_id=AYhQoiCyvfwBOJLqEj24w0ioLHU%30", "ofd_redirect_uri": "https://ofd.atmos.uz/api/ofd/blMxbUNIUEZ0WTNNWGFDVC9VVGQ1dz00", "upper_commission": 0, "lower_commission": 0 }, "status": { "code": 0, "message": "Success", "trace_id": "676124513032520bff53bc5309ac8488" } }
Xolding operatsiyasi asosida ilgari yechib olingan mablag‘larni qaytaradi
HTTP so‘rovi
’POST https://apigw.atmos.uz/mps-extend/uklon/return’
So‘rov parametrlari
| Parametr | Tavsif | Majburiylik |
|---|---|---|
| transaction_id | Tranzaksiya identifikatori | ha |
Javob parametrlari
| Parametr | Tavsif |
|---|---|
| code | Operatsiya holati kodi |
| description | Javob holati tavsifi |
| payload.id | Tranzaksiya identifikatori |
| payload.status | Tranzaksiya holati |
| payload.rrn | Tranzaksiya raqami |
| payload.type | Tranzaksiya turi |
| payload.amount | Tranzaksiya summasi |
| payload.card_id | Karta identifikatori |
| payload.external_id | Tashqi identifikator |
| payload.mps_ext_id | Tashqi tranzaksiya identifikatori |
| payload.status_ps | To‘lov holati |
| payload.status_3ds | 3DS tranzaksiya holati |
| payload.result_code | To‘lov natijasi |
| payload.masked_pan | Berkitilgan karta raqami |
| payload.client_ip_addr | Mijozning IP manzili |
| payload.date_created | Tranzaksiya yaratilgan sana |
| payload.date_updated | Oxirgi tranzaksiya yangilangan sana |
| payload.redirect_uri | Mijozni qayta yo‘naltirish uchun URI |
| payload.ofd_redirect_uri | OFD tizimiga yo‘naltirish uchun URI |
| payload.upper_commission | Yuqori komissiya |
| payload.lower_commission | Quyi komissiya |
| status.trace_id | So‘rovni kuzatish identifikatori |
Tizim holatlari va xatoliklar
ATMOS API xatolik yuz berganda quyidagi jadvalda keltirilgan umumiy qabul qilingan holatlarni qaytaradi:
| Javob holati | Ma’no |
|---|---|
| 400 | Bad Request -- So‘rovda xatolik mavjud. |
| 401 | Unauthorized -- Tizimda avtorizatsiya qilinmagansiz. |
| 403 | Forbidden – Kirish taqiqlangan. |
| 404 | Not Found -- Qoniqarli natijalar topilmadi. |
| 405 | Method Not Allowed -- Usul mavjud emas.. |
| 429 | Too Many Requests -- Juda ko‘p so‘rovlar. |
| 500 | Internal Server Error -- Server tomonida xatolik yuz berdi. Keyinroq qayta urining. |
| 503 | Service Unavailable -- Xizmat vaqtincha mavjud emas. |
Tranzaksiya xatolari
| Xatolik kodi | Xatolik tavsifi |
|---|---|
| STPIMS-ERR-001 | Ichki xato |
| STPIMS-ERR-003 | Noto‘g‘ri hamkor |
| STPIMS-ERR-004 | Karta topilmadi |
| STPIMS-ERR-005 | Karta telefon raqamga ulanmagan |
| STPIMS-ERR-006 | Kerakli sozlamalar topilmadi |
| STPIMS-ERR-007 | Sozlama formati xato |
| STPIMS-ERR-008 | Каrta ro’yxatdan o’tmagan |
| STPIMS-ERR-009 | Noto’g’ri so’zlamalar |
| STPIMS-ERR-010 | Hisob mavjud emas |
| STPIMS-ERR-011 | To‘lov uchun noto‘g‘ri opsiyalar (parametrlar) |
| STPIMS-ERR-012 | Tranzaksiya identifikatori noto‘g‘ri |
| STPIMS-ERR-013 | Foydalanuvchi ma’lumotlari noto‘g‘ri |
| STPIMS-ERR-014 | Kirish bo‘yicha noto‘g‘ri urinish. |
| STPIMS-ERR-015 | Noto‘g‘ri ro‘yxatga o’tish |
| STPIMS-ERR-016 | Noto‘g‘ri to‘lov |
| STPIMS-ERR-017 | Faol bo‘lmagan hamkor |
| STPIMS-ERR-021 | Noto‘g‘ri telefon raqami |
| STPIMS-ERR-022 | Mobil operator ishlamayapti |
| STPIMS-ERR-023 | Servis topilmadi |
| STPIMS-ERR-024 | Bank bilan ulanib bo‘lmadi |
| STPIMS-ERR-025 | Bank topilmadi |
| STPIMS-ERR-026 | Keyinroq urunib ko’ring |
| STPIMS-ERR-027 | Administrator bilan bog‘laning |
| STPIMS-ERR-028 | Bank bilan bog’lanish rad etildi |
| STPIMS-ERR-029 | Ro‘yxatdan o‘tmagan bank |
| STPIMS-ERR-030 | Bankda karta topilmadi |
| STPIMS-ERR-031 | So‘rovlar limiti oshib ketdi |
| STPIMS-ERR-032 | Agent topilmadi |
| STPIMS-ERR-033 | Telefon raqami mos kelmayapti |
| STPIMS-ERR-034 | Tranzaksiya amalga oshirilmadi |
| STPIMS-ERR-037 | Do‘kon IDsi topilmadi |
| STPIMS-ERR-039 | To‘lov uchun noto‘g‘ri summa |
| STPIMS-ERR-042 | Ruxsat etilmagan to‘lov summasi |
| STPIMS-ERR-043 | Bank kartasi topilmadi |
| STPIMS-ERR-044 | Joriy ID bilan do‘kon topilmadi |
| STPIMS-ERR-048 | Raqam allaqachon ro‘yxatga olingan |
| STPIMS-ERR-050 | Kartani ro‘yxatdan o‘tkazib bo‘lmaydi |
| STPIMS-ERR-051 | Ma’lumot topilmadi |
| STPIMS-ERR-053 | Mobil prefiks topilmadi |
| STPIMS-ERR-054 | Mobil yangilashlar soni 2dan ortiq |
| STPIMS-ERR-055 | Raqamlar topilmadi |
| STPIMS-ERR-056 | Avtorizatsiyada muammo yuz berdi |
| STPIMS-ERR-057 | Mablag‘ yetarli emas |
| STPIMS-ERR-058 | Karta bloklangan |
| STPIMS-ERR-060 | Ro‘yxatdan o‘tmagan foydalanuvchi |
| STPIMS-ERR-061 | So‘ralgan tranzaksiya topilmadi |
| STPIMS-ERR-062 | Noto‘g‘ri so‘rov |
| STPIMS-ERR-064 | To‘lov bekor qilindi |
| STPIMS-ERR-065 | To‘lov jarayonda |
| STPIMS-ERR-066 | Yaqinda shu shaxsiy hisobga to‘lov qildingiz, keyinroq urinib ko‘ring |
| STPIMS-ERR-067 | Kartangizning amal qilish muddati tugadi. Iltimos, bankga murojaat qiling. |
| STPIMS-ERR-068 | Emitent bilan bog‘laning. Iltimos, bankga murojaat qiling. |
| STPIMS-ERR-069 | Shubhali karta aniqlandi. Iltimos, bankga murojaat qiling. |
| STPIMS-ERR-070 | Tranzaksiya rad etildi. Iltimos, bankga murojaat qiling. |
| STPIMS-ERR-072 | Sizning operatsiyalaringiz taqiqlangan. Iltimos, bankga murojaat qiling. |
| STPIMS-ERR-073 | Sizning kartangiz yo‘qolgan deb belgilangan. Iltimos, bankga murojaat qiling. |
| STPIMS-ERR-074 | Kartangiz bilan bog‘liq muammo bor. Iltimos, bankga murojaat qiling |
| STPIMS-ERR-075 | Kartangiz bilan bog‘liq muammo bor. Iltimos, bankga murojaat qiling. |
| STPIMS-ERR-076 | Karta amal yaroqsiz. Iltimos, bankga murojaat qiling. |
| STPIMS-ERR-077 | Kartangiz bilan bog‘liq muammo bor. Iltimos, bankga murojaat qiling. |
| STPIMS-ERR-078 | Kartangiz bilan bog‘liq muammo bor. Iltimos, bankga murojaat qiling. |
| STPIMS-ERR-079 | Sizning kartangiz bloklangan (faollashtirilmagan). Iltimos, bankga murojaat qiling. |
| STPIMS-ERR-080 | IN kodini kiritish urinishlari soni oshdi. Iltimos, bankga murojaat qiling. |
| STPIMS-ERR-081 | Majburiy PIN kodi o‘zgartirilishi talab etiladi. Iltimos, bankga murojaat qiling. |
| STPIMS-ERR-082 | Kartangiz kredit bo‘yicha qarzdorlik sababli bloklangan. Iltimos, bankga murojaat qiling. |
| STPIMS-ERR-083 | Virtual karta faollashtirilmagan |
| STPIMS-ERR-084 | Ushbu karta bo‘yicha faqat PIN tranzaksiyalari mavjud |
| STPIMS-ERR-085 | Kartangiz shaxsiylashtirilmagan. Iltimos, bankga murojaat qiling. |
| STPIMS-ERR-086 | Kartangiz bilan bog‘liq muammo bor. Iltimos, bankga murojaat qiling. |
| STPIMS-ERR-087 | Vaqtinchalik foydalanuvchi tomonidan bloklangan |
| STPIMS-ERR-088 | Ushbu karta foydalanuvchi tomonidan bloklangan. Iltimos, bankga murojaat qiling. |
| STPIMS-ERR-089 | SMS-xabarnoma xizmati ulanmagan. Iltimos, SMS-xabarnoma xizmatini ulang. |
| STPIMS-ERR-090 | Ushbu raqam bilan karta topilmadi. Kartangizning amal qilish sanasi noto‘g‘ri ko‘rsatilgan. |
| STPIMS-ERR-092 | Tranzaksiya yopilgan |
| STPIMS-ERR-093 | Yetkazib beruvchi billing tizimida xato |
| STPIMS-ERR-094 | EOPC bilan aloqa yo‘q |
| STPIMS-ERR-095 | Foydalanuvchi bloklangan |
| STPIMS-ERR-097 | Karta mavjud |
| STPIMS-ERR-098 | OTP kodi noto‘g‘ri ko‘rsatilgan |
| STPIMS-ERR-099 | EPOS ma’lumotlari ko‘rsatilmagan |
| STPIMS-ERR-100 | So‘ralgan tranzaksiya ilgari bekor qilingan |
| STPIMS-ERR-101 | Tranzaksiya bekor qilinmadi |
| STPIMS-ERR-102 | SMS jo‘natilmadi, ehtimol SMS shlyuzi mavjud emas |
| STPIMS-ERR-103 | Terminаl topilmadi |
| STPIMS-ERR-104 | Ushbu bank uchun P2P o‘tkazmalari o‘chirilgan |
| STPIMS-ERR-105 | Foydalanuvchi va karta o‘zaro bog‘lanmagan |
| STPIMS-ERR-106 | SMS formati noto‘g‘ri |
| STPIMS-ERR-107 | Muddatli to’lov / Avtoto‘lov / Kredit topilmadi |
| STPIMS-ERR-108 | To‘lov ma’lumotlari noto‘g‘ri |
| STPIMS-ERR-109 | EPOS ma’lumotlari noto‘g‘ri |
| STPIMS-ERR-111 | Jo‘natuvchi va qabul qiluvchi kartalar bir xil bo‘lmasligi kerak |
| STPIMS-ERR-112 | Kartada to‘lovni amalga oshirish uchun yetarli mablag‘ mavjud emas |
| STPIMS-ERR-113 | To‘lov yopilgan |
| STPIMS-ERR-114 | To‘lov yopilgan |
| STPIMS-ERR-116 | Kartaning ma’lumotlarini olishda xatolik yuz berdi |
| STPIMS-ERR-117 | Karta raqami noto‘g‘ri |
| STPIMS-ERR-118 | To‘lov holati noma’lum |
| STPIMS-ERR-120 | To‘lov vaqtincha mumkin emas |
| STPIMS-ERR-121 | O‘tkazma qayta ishlanmoqda |
| STPIMS-ERR-124 | oydalanuvchi sessiyasi kaliti yaratilmagan |
| STPIMS-ERR-125 | Foydalanuychi sessiyasi o‘chirilmagan |
| STPIMS-ERR-127 | Hamkor hisobida hech qanday karta mavjud emas yoki karta aktiv emas. |
| STPIMS-ERR-128 | Ko‘rsatilgan hisob raqami ko‘rsatilgan tranzaksiyada topilmadi |
| STPIMS-ERR-130 | Rejalashtiruvchi yaratishda yechib olish uchun karta ko‘rsatilishi shart |
| STPIMS-ERR-134 | Jo‘natuvchi karta ko‘rsatilmagan |
| STPIMS-ERR-135 | Qabul qiluvchi karta ko‘rsatilmagan |
| STPIMS-ERR-136 | Korporativ kartalar bilan o‘tkazmalar taqiqlangan |
| STPIMS-ERR-137 | Korporativ kartalar bilan o‘tkazmalar taqiqlangan |
| STPIMS-ERR-138 | Korporativ kartalar bilan o‘tkazmalar taqiqlangan |
| STPIMS-ERR-139 | P2P uchun bir martalik limit oshib ketdi |
| STPIMS-ERR-140 | P2P uchun bir martalik limit oshib ketdi |
| STPIMS-ERR-142 | Hold qilingan mablag‘ tasdiqlanmadi |
| STPIMS-ERR-143 | Hold qilingan mablag‘ bekor qilinmadi |
| STPIMS-ERR-144 | Hold-ni vaqti tugadi |
| INFO-201 | Tasdiqlash kodi SMS-xabar ulangan telefon raqamga yuborildi |
| INFO-202 | To’lov qayta ishlanmoqda |
Tizim xatoliklari(MPS)
| Kod | Tavsif | Izoh |
|---|---|---|
| 0 | Muvaffaqiyat | Operatsiya muvaffaqiyatli yakunlandi |
| -1 | Ichki xato | Administrator bilan bog‘laning, tizim xatosi yuz berdi |
| -20 | Terminal topilmadi | Terminal topilmadi yoki ro‘yxatdan o‘tmagan. Administrator bilan bog‘laning |
| -11 | Tranzaksiya noaniq holatda | Tranzaksiyani davom ettirib bo‘lmaydi. Bajarilayotgan operatsiya va tranzaksiya holatiga bog‘liq |
| -12 | Tranzaksiya topilmadi | Berilgan identifikator bo‘yicha tranzaksiya topilmadi |
| -100 | Protsessingda xato yuz berdi | Protsessingda xato yuz berdi |
| -200 | Karta topilmadi | Karta topilmadi |
| -201 | Karta verifikatsiyadan o‘tmagan | Karta 3DS verifikatsiya tekshiruvidan o‘tmadi |
Tizim holatlari (MPS)
| Holat | Tavsif |
|---|---|
| 1 | Tranzaksiya yaratildi |
| 2 | Tranzaksiya yaratish holati kutilmoqda |
| 3 | Tranzaksiyani tasdiqlash holati kutilmoqda |
| 4 | Tranzaksiyani tasdiqlash |
| 5 | Tranzaksiya muvaffaqiyatsiz yakunlandi |
| 6 | Tranzaksiyani bekor qilish muvaffaqiyatli yakunlandi |
| 7 | Tranzaksiyani qaytarish muvaffaqiyatli yakunlandi |
| 8 | Tranzaksiya bekor qilish holati kutilmoqda |
| 9 | Tranzaksiyani qaytarish holati kutilmoqda |
3DS tasdiqlash holatlari (MPS)
| Holat | Tavsilot |
|---|---|
| PENDING | 3DS kartani tasdiqlash kutilmoqda |
| VERIFIED | 3DS tekshiruvdan muvaffaqiyatli o‘tdi |
| FAILED | 3DS tekshiruvdan muvaffaqiyatsiz o‘tdi |
Status va turlar ma’lumotnomasi (MPS - Kartalarni ulash)
Xatoliklar kodi
| Kod | Nomi | Tavsiflar |
|---|---|---|
| 0 | OK | Muvaffaqiyatli so’rov |
| -1 | ERROR | Tizimda xatolik yuz berdi |
| -2 | UNDEFINED | No’malum hatolik |
| -100 | PROCESSING_ERROR | So‘rovni qayta ishlashda |
| xatolik yuz berdi | ||
| -10 | TRANSACTION_UNIQUENESS_ERROR | Tranzaksiya allaqachon mavjud |
| -11 | TRANSACTION_INVALID_STATE_ERROR | Tranzaksiya yaroqsiz holatda |
| -12 | TRANSACTION_NOT_FOUND | Tranzaksiya topilmadi |
| -15 | TRANSACTION_NOT_CANCELLED | Tranzaksiyani bekor qilish |
| imkonsiz, keyinroq qayta urining | ||
| -203 | TRANSACTION_DECLINED | Tranzaksiya bekor qilindi |
| to‘lov provayderi tomonidan | ||
| -300 | INSUFFICIENT_FUNDS | Mablag‘ yetarli emasligi |
| sababli tranzaksiya rad etildi | ||
| -13 | COMMISSION_ERROR | Komissiyani hisoblashda xatolik |
| -200 | CARD_NOT_FOUND | Karta topilmadi |
| -201 | CARD_NOT_VERIFIED | Kartaning 3D avtorizatsiyasi |
| kutilmoqda | ||
| -202 | CARD_NOT_VALID | Karta yaroqsiz |
| -204 | CARD_BIND_NOT_VALID | Привязка карты не активна |
| -20 | TERMINAL_NOT_FOUND | Терминал не найден |
| -21 | TERMINAL_CONFIGURATION_ERROR | Ошибка конфигурации терминала |
| -350 | STORE_NOT_FOUND | Магазин не найден по идентификатору |
| -400 | API_KEY_NOT_FOUND | API-kaliti topilmadi |
Tranzaksiyalar holati (status)
| Kod | Holat | Yakuniy |
|---|---|---|
| 0 | NEW | yo’q |
| 1 | OPEN | yo’q |
| 2 | PENDING_OPEN | yo’q |
| 3 | PENDING_CONFIRM | yo’q |
| 4 | SUCCESS | hа |
| 5 | FAILED | hа |
| 6 | CANCELLED | hа |
| 7 | REVERTED | hа |
| 8 | PENDING_CANCELLED | hа |
| 9 | PENDING_REVERTED | hа |
"Yakuniy - yo‘q" belgisi tranzaksiya qayta ishlanayotganini va vaqt o‘tganidan so‘ng holatni qayta so‘rash kerakligini bildiradi
Kartalarni tasdiqlash holatlari(verified_state)
| Holat |
|---|
| OPEN |
| PENDING |
| VERIFIED |
| FAILED |
Protsessing tranzaksiyalarning turi (card_type)
| Turi |
|---|
| VISA |
| MASTERCARD |
Sandbox
API orqali sinovdan o‘tkazish va integratsiya qilish uchun sinov to‘lov ma’lumotlaridan foydalanish tavsiya etiladi. Keltirilgan kartalar bilan amalga oshiriladigan barcha operatsiyalar namoyishkorona xarakterga ega bo‘lib, haqiqiy pul mablag‘larini hisobdan chiqarishni nazarda tutmaydi.
Sinov kartalari :
- PAN:
9860090101014364Expiry:02/28 - PAN:
9860090101893213Expiry:02/28 - PAN:
9860090101842392Expiry:02/28 - PAN:
9860090101469915Expiry:02/28
Xatolarni to‘g‘rilash(otladka) uchun sinov kartalari:
- PAN:
8600492986215602Expiry:03/20- kartaning amal qilish muddati tugagan
Callback API
Callback API - o‘tkazilayotgan tranzaksiyalarni merchant bilan kelishish mexanizmi. Har bir tranzaksiyani amalga oshirilganda ATMOS tizimi merchantning billing tizimiga murojaat qiladi va unga JSON formatida to‘lov ma’lumotlarini uzatadi. Merchant tomonidan muvaffaqiyatli holat olingandan song summa yechib olinadi.
Xizmat provayderi uchun ATMOS tizimida kiruvchi xabarlarni tekshirish uchun api_key taqdim etiladi.
### Yuboriladigan ma’lumotlar Callback API provayder quyidagi ma’lumotlarni tizimga yuboradi: Parametr| Ma’no -------- | -------- store_id | merchantning ID-si transaction_id | tranzaksiya ID-si transaction_time | to’lovning vaqti amount | to’lov summasi invoice | to‘langan invoys identifikatori sign | unikal raqamli imzo{
"status": 1,
"message": " muvaffaqiyatli "
}
{
"status": 0,
"message": "123 raqamli invoys tizimda mavjud emas"
}
Ta’minotchi (merchant) billing javobiga misollar
Callback API to‘lovni faqat merchantning billing javobi status 1 parametri va javob kodi 200 qiymatiga ega bo‘lgandagina tasdiqlaydi. Javob namunalari yon tomondagi maydonda keltirilgan
| Parametrlar | Ma’no |
|---|---|
| status | javobning holati |
| message | matnli habar (holat tafsilotlari) |
Harakatlar ketma-ketligi
Yuqoridagi ma’lumotlarga asoslanib, Callback API mexanizmining ishlash tamoyilini bosqichma-bosqich quyidagicha tavsiflash mumkin:
- ATMOS tomonida to‘lov shakllantiriladi va to‘lov jarayoni ishga tushiriladi;
- To‘lovni tasdiqlashdan oldin ATMOS tizimi to‘lov ma’lumotlarini yuborish orqali merchantning billing tizimiga murojaat qiladi (yuboriladigan ma’lumotlarga qarang);3. Merchant to‘lovni tasdiqlaydi yoki rad etadi (yetkazib beruvchining (merchantning) billing javobi misollariga qarang
- Tranzaksiya yakunlandi
Alternativ to'lov usullari
HTML-widget
Widget orqali to'lov — ATMOS to'lov xizmati bilan soddalashtirilgan integratsiya uchun yechimdir. To'lov widgeti savdogarning veb-saytida maxsus yaratilgan widget orqali to'lovlarni qabul qilish imkonini beradi. Widget konstruktor vositasi orqali, quyida batafsil tavsiflanadigan zarur parametrlarni belgilash bilan yaratiladi.
Saytga widgetni o'rnatish bo'yicha ko'rsatmalar
Qo'yiladigan kod:
<!-- tag head -->
<script src="https://cdn.pays.uz/checkout/js/v1.0.1/test-checkout.js">
</script>
<!-- tag head -->
<div id="parent-frame">
<script th:inline="javascript">
/*<![CDATA[*/
paymo_open_widget({
parent_id: "parent-frame", // widgetni joylashtirish uchun HTML element ID
store_id: 0, // do'konning unik ID
account: "abc", // to'lov identifikatori
terminal_id: 0, // terminal ID (agar mavjud bo'lsa)
success_redirect: "url", // muvaffaqiyatli to'lovdan keyingi yo'naltirish manzili
fail_redirect: "url", // to'lov muvaffaqiyatsiz bo'lganda yo'naltirish manzili
version: "1.0.0", // widget versiyasi
amount: 500000, // to'lov summasi tiyinlarda
details: "string", // to'lov tafsilotlari (string)
lang:"ru", // widget tili (en, ru, uz)
key: // avtorizatsiya kaliti
theme: "blue" // widget rang sxemasi
});
/*]]>*/
</script>
<div/>
HTML sahifangizga
<script src="url"></script>tagini joylashtiring. Script taginingsrcatributida skriptni olish uchun URL ko'rsatiladi:- test uchun:
http://cdn.pays.uz/checkout/js/v1.0.1/test-checkout.js - haqiqiy to'lovlar uchun:
https://cdn.pays.uz/checkout/js/v1.0.1/checkout.js
- test uchun:
Sayt panelida berilgan kodni HTML markup ichiga joylashtiring;
Widget ishlashi uchun zarur parametrlarni belgilang;
Widget tayyor va ishlashga tayyor.
Widget parametrlari
| Parametr | Ta'rif | Majburiy |
|---|---|---|
| parent_id | Widgetni joylashtirish uchun HTML element ID | ha |
| store_id | Sizning do'kon ID | ha |
| account | To'lov identifikatori (ixtiyoriy string) | ha |
| terminal_id | Terminal ID (agar mavjud bo'lsa) | yo'q |
| success_redirect | Muvaffaqiyatli to'lovdan keyingi yo'naltirish URL | ha |
| fail_redirect | To'lov muvaffaqiyatsiz bo'lsa yo'naltirish URL | ha |
| version | Widget versiyasi | yo'q |
| amount | To'lov summasi tiyinlarda | ha |
| details | To'lov tafsilotlari (ixtiyoriy string) | yo'q |
| lang | Widget tili (en, ru, uz) | yo'q |
| key | Avtorizatsiya kaliti | ha |
| theme | Widget rang sxemasi | yo'q |
To'lov sahifasi
To'lov sahifasi mobil ilovalar uchun eng qulay yechim bo'lib, ATMOS tomonida xavfsiz to'lovlarni amalga oshirishni ta'minlaydi.
To'lov sahifasi orqali to'lash uchun:
/merchant/pay/createmetodini chaqirib, to'lov uchun draft transaction yarating;- Quyidagi parametrlarni belgilab, to'lov sahifasiga o'ting:
- storeId - do'konning unik IDsi;
- transactionId - ilgari yaratilgan transaction IDsi;
- redirectLink - to'lovdan keyingi yo'naltirish URLsi (ixtiyoriy).
Natijada, hosil bo'lgan link quyidagicha ko'rinadi:
https://test-checkout.pays.uz/invoice/get?storeId=1111&transactionId=222222&redirectLink=http://site.com
Test sahifa (sandbox): http://test-checkout.pays.uz/invoice/get
To'lov sahifasi (production): https://checkout.pays.uz/invoice/get