NAV
RU EN
HTTP cURL

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:

Ishni boshlanishi

API REST protokoli bo‘yicha ishlaydi, barcha xabarlar formati JSON. API bilan ishlashni boshlash uchun savdogar ATMOSdan quyidagi ma’lumotlarni olishi kerak:

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:

  1. Har bir to‘lovda karta egasiga bir martalik tasdiqlash kodini yuborish orqali;
  2. 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:

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
account To’lov identifikatori
terminal_id merchant terminal id-si yo’q
store_id merchant is-si
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.

  1. Bir martalik SMS tasdiqlash kodi orqali yechib olish uchun ’card_number’ va ’expiry’ maydonlaridan foydalaning.

  2. 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)
transaction_id avval yaratilgan tranzaksiya raqami

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.

  1. Bir martalik SMS tasdiqlash kodi orqali yechib olish uchun ’card_number’ va ’expiry’ maydonlaridan foydalaning.

  2. 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:

  1. Karta tokenini yaratish uchun ariza (karta egasiga tasdiqlash sms-kodi yuboriladi);
  2. Tasdiqlash kodining ATMOS API xabari orqali karta ulanishini tasdiqlash;
  3. 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/create Kelajakda ishlash uchun platforma tomonida tranzaksiya yaratish

So‘rov parametrlari

nomi tavsifi majburiyatligi
ext_id mijoz tomonidagi unikal tranzaksiya identifikatori
first_name ism
last_name familiya
middle_name otasining ismi
pinfl JSHSHIR
passport_series pasport seriyasi
passport_number passport raqami
contract_number mijoz bilan shartnoma raqami
amount yechib olish summasi tiyinda
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)
description javob holatlari tavsifi yo’q
payload yaratilgan tranzaksiya ma’lumotlariga ega obyekti
available_balance kartaning joriy balansi

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 tasdiqlash

HTTP Request

POST https://apigw.atmos.uz/ppa/transaction/confirm

So’rov parametrlari

Nomi Tavsifi Majburiyatligi
ext_id tranzaksiya unikal identifikatori
transaction_id atmos tomonida tranzaksiya id-si

Javob parametrlari

Nomi Tavsifi Majburiyatligi
code javob holati (ok, progress, error)
message javob holati tavsifi yo’q
payload yaratilgan tranzaksiya ma’lumotlariga ega obyekt

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 qaytaradi

HTTP Request

POST https://apigw.atmos.uz/ppa/transaction/check

So’rov parametrlari

Prametr Tavsif Majburiyligi
ext_id tranzaksiya unikal identifikatori
pinfl JSHSHIR
passport_series passport seriyasi
passport_number passport raqami

Javob parametrlari

Parametr Tavsif Majburiyligi
code javob holati (ok, progress, error)
message javob holati tavsifi yo’q
payload yaratilgan tranzaksiya ma’lumotlariga ega obyekt

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 qiladi

HTTP Request

POST https://apigw.atmos.uz/ppa/transaction/cancel

So’rov parametrlari

Parametr Tavsif Majburiyligi
ext_id unikal tranzaksiya identifikatori
transaction_id atmos tomonidagi tranzaksiya id

Javob parametrlari

Parametr Tavsif Majburiyligi
code javob holati (ok, progress, error)
message javob holati tavsifi yo’q
payload yaratilgan tranzaksiya ma’lumotlariga ega obyekt

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-list So‘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
ext_id Mijoz tomonidagi unikal so‘rov identifikatori yo’q
epos.branch_id filial id-si
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

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’rsatilgan external_id avval ishlatilgan. | | -303 | Invalid external id | Noto’g’ri identifikator external_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’ri packageCode. | | -303 | Invalid TIN | Noto’g’ri STIR. | | -303 | branch_id must not be null or empty | branch_id maydoni bo’sh qolmasligi kerak. | | -303 | terminal_group_id must not be null or empty | terminal_group_id maydoni 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_id ko’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/bind Keyingi 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:

  1. Usul chaqiruvi bo‘yicha havola shakllantiriladi;
  2. Havola karta egasiga uzatiladi. Karta ma’lumotlari kiritiladi, bir martalik SMS-parol orqali bog‘lash amalga oshiriladi;
  3. Muvaffaqiyatli ulanish holatida tizim quyidagi mazmundagi hamkor bilingi so‘rovini bajaradi: ’{ "api_key": "card_id": 1231 }’;
  4. Tizim quyidagi mazmundagi hamkor bilingidan javob kutmoqda: ’{ "status": 1, "message": "Muvaffaqiyatli" }’;
  5. 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
5 FAILED
6 CANCELLED
7 REVERTED
8 PENDING_CANCELLED
9 PENDING_REVERTED

"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 :

  1. PAN: 9860090101014364 Expiry: 02/28
  2. PAN: 9860090101893213 Expiry: 02/28
  3. PAN: 9860090101842392 Expiry: 02/28
  4. PAN: 9860090101469915 Expiry: 02/28

Xatolarni to‘g‘rilash(otladka) uchun sinov kartalari:

  1. PAN: 8600492986215602 Expiry: 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:

  1. ATMOS tomonida to‘lov shakllantiriladi va to‘lov jarayoni ishga tushiriladi;
  2. 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
  3. 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/>
  1. HTML sahifangizga <script src="url"></script> tagini joylashtiring. Script tagining src atributida 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
  2. Sayt panelida berilgan kodni HTML markup ichiga joylashtiring;

  3. Widget ishlashi uchun zarur parametrlarni belgilang;

  4. 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:

  1. /merchant/pay/create metodini chaqirib, to'lov uchun draft transaction yarating;
  2. 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