# قفل، خرید و بررسی

# خرید آیتم جستجو شده – Book

<span>این API به‌طور اختصاصی برای انجام عملیات رزرو چارتری طراحی شده است. از طریق این API تنها می‌توانید درخواست‌های رزرو جدید برای چارتری ارسال کنید و اطلاعات مربوط به رزرو انجام شده را دریافت نمایید.</span>

# رزرو از طریق API

<table border="1" class="has-fixed-layout align-center" id="bkmrk-%D8%B9%D9%86%D9%88%D8%A7%D9%86-%D9%88%D8%B6%D8%B9%DB%8C%D8%AA-%D9%85%D9%82%D8%A7%D8%AF%DB%8C%D8%B1-%D8%AA" style="border-collapse: collapse;"><tbody><tr><td class="has-text-align-left" data-align="left">**عنوان**</td><td>**وضعیت**</td><td>**مقادیر**</td><td>**توضیحات**</td></tr><tr><td class="has-text-align-left" data-align="left">Method</td><td>اجباری</td><td>POST</td><td>متد ارسال درخواست</td></tr><tr><td class="has-text-align-left" data-align="left">Domain</td><td>اجباری</td><td>نام دامنه ثبت شده در اتوماسیون</td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">Api Url</td><td>اجباری</td><td>دامنه هسته مرکزی سرویس</td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">Api version</td><td>اجباری</td><td>به نسخه فعلی سرویس API تلقی میشود که در قسمت [پیش نیازهای اتوماسیون](https://airplus.app/docs/%d9%be%db%8c%d8%b4-%d9%86%db%8c%d8%a7%d8%b2%d9%87%d8%a7-%d9%88-%d8%b4%d8%b1%d8%a7%db%8c%d8%b7-%d8%a7%d8%ae%d8%b0-api-%da%86%d8%a7%d8%b1%d8%aa%d8%b1%db%8c/) به ریز شرح داده شده است.</td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">Authorization</td><td>اجباری</td><td>توکن JWT تولید شده</td><td>این توکن بصورت JWT تولید میشود.</td></tr></tbody></table>

در این روش شما باید درخواست خود را از طریق لینک زیر ارسال فرمائید.

# سربرگ – Header

```
{{Api Url}}/book

HEADER
POST /api/reservation/{{Api version}}/book HTTP/1.1
Host: {{Your Host}}
Content-Type: application/json
Authorization: Bearer JWTToken
Domain: {{Your Domain}}
```

API Url از طریق پنل کاربری قابل مشاهده خواهد بود.

# مقادیر ارسالی – Request Data

<table border="1" class="has-fixed-layout align-center" id="bkmrk-%D8%B9%D9%86%D9%88%D8%A7%D9%86-%D9%86%D9%88%D8%B9-%D9%88%D8%B6%D8%B9%DB%8C%D8%AA-%D9%85%D9%82%D8%A7%D8%AF" style="border-collapse: collapse; width: 100%; height: 1094.64px;"><tbody><tr style="height: 46.4722px;"><td class="has-text-align-left" data-align="left" style="width: 31.3095%; height: 46.4722px;">**عنوان**</td><td style="width: 6.16071%; height: 46.4722px;">**نوع**</td><td style="width: 6.54596%; height: 46.4722px;">**وضعیت**</td><td style="width: 20.8895%; height: 46.4722px;">**مقادیر**</td><td style="width: 34.9885%; height: 46.4722px;">**توضیحات**</td></tr><tr style="height: 46.4722px;"><td class="has-text-align-left" data-align="left" style="width: 31.3095%; height: 46.4722px;">main\_id</td><td style="width: 6.16071%; height: 46.4722px;">Integer</td><td style="width: 6.54596%; height: 46.4722px;">اجباری</td><td style="width: 20.8895%; height: 46.4722px;">عطف چارتر</td><td style="width: 34.9885%; height: 46.4722px;"> </td></tr><tr style="height: 46.4722px;"><td class="has-text-align-left" data-align="left" style="width: 31.3095%; height: 46.4722px;">items</td><td style="width: 6.16071%; height: 46.4722px;">Array</td><td style="width: 6.54596%; height: 46.4722px;"> </td><td style="width: 20.8895%; height: 46.4722px;"> </td><td style="width: 34.9885%; height: 46.4722px;">تعداد آیتم های این فیلد متناسب با چارتر های انتخابی افزایش میابد</td></tr><tr style="height: 46.4722px;"><td class="has-text-align-left" data-align="left" style="width: 31.3095%; height: 46.4722px;">items\[index\].id</td><td style="width: 6.16071%; height: 46.4722px;">Integer</td><td style="width: 6.54596%; height: 46.4722px;">اجباری</td><td style="width: 20.8895%; height: 46.4722px;">آیدی کلاس چارتر</td><td style="width: 34.9885%; height: 46.4722px;"> </td></tr><tr style="height: 46.4722px;"><td class="has-text-align-left" data-align="left" style="width: 31.3095%; height: 46.4722px;">items\[index\].lock\_id</td><td style="width: 6.16071%; height: 46.4722px;">Integer</td><td style="width: 6.54596%; height: 46.4722px;">اجباری</td><td style="width: 20.8895%; height: 46.4722px;">آیدی قفل رزرو</td><td style="width: 34.9885%; height: 46.4722px;"> </td></tr><tr style="height: 46.4722px;"><td class="has-text-align-left" data-align="left" style="width: 31.3095%; height: 46.4722px;">items\[index\].local\_pnr</td><td style="width: 6.16071%; height: 46.4722px;">String</td><td style="width: 6.54596%; height: 46.4722px;">اجباری</td><td style="width: 20.8895%; height: 46.4722px;">pnr داخلی</td><td style="width: 34.9885%; height: 46.4722px;"> </td></tr><tr style="height: 46.4722px;"><td class="has-text-align-left" data-align="left" style="width: 31.3095%; height: 46.4722px;">items\[index\].amount</td><td style="width: 6.16071%; height: 46.4722px;">Integer</td><td style="width: 6.54596%; height: 46.4722px;">اجباری</td><td style="width: 20.8895%; height: 46.4722px;">مجموع قیمت</td><td style="width: 34.9885%; height: 46.4722px;"> </td></tr><tr style="height: 29.6806px;"><td class="has-text-align-left" data-align="left" style="width: 31.3095%; height: 29.6806px;">items\[index\].passengers</td><td style="width: 6.16071%; height: 29.6806px;">Array</td><td style="width: 6.54596%; height: 29.6806px;"> </td><td style="width: 20.8895%; height: 29.6806px;"> </td><td style="width: 34.9885%; height: 29.6806px;"> </td></tr><tr style="height: 46.4722px;"><td class="has-text-align-left" data-align="left" style="width: 31.3095%; height: 46.4722px;">items\[index\].passengers\[index\].gender</td><td style="width: 6.16071%; height: 46.4722px;">String</td><td style="width: 6.54596%; height: 46.4722px;">اجباری</td><td style="width: 20.8895%; height: 46.4722px;">male/female</td><td style="width: 34.9885%; height: 46.4722px;"> </td></tr><tr style="height: 29.6806px;"><td class="has-text-align-left" data-align="left" style="width: 31.3095%; height: 29.6806px;">items\[index\].passengers\[index\].fullname</td><td style="width: 6.16071%; height: 29.6806px;"> </td><td style="width: 6.54596%; height: 29.6806px;"> </td><td style="width: 20.8895%; height: 29.6806px;"> </td><td style="width: 34.9885%; height: 29.6806px;"> </td></tr><tr style="height: 46.4722px;"><td class="has-text-align-left" data-align="left" style="width: 31.3095%; height: 46.4722px;">items\[index\].passengers\[index\].fullname.first\_name</td><td style="width: 6.16071%; height: 46.4722px;"> </td><td style="width: 6.54596%; height: 46.4722px;"> </td><td style="width: 20.8895%; height: 46.4722px;"> </td><td style="width: 34.9885%; height: 46.4722px;"> </td></tr><tr style="height: 46.4722px;"><td class="has-text-align-left" data-align="left" style="width: 31.3095%; height: 46.4722px;">items\[index\].passengers\[index\].fullname.first\_name.en</td><td style="width: 6.16071%; height: 46.4722px;">String</td><td style="width: 6.54596%; height: 46.4722px;">اجباری</td><td style="width: 20.8895%; height: 46.4722px;">نام مسافر به صورت لاتین</td><td style="width: 34.9885%; height: 46.4722px;"> </td></tr><tr style="height: 46.4722px;"><td class="has-text-align-left" data-align="left" style="width: 31.3095%; height: 46.4722px;">items\[index\].passengers\[index\].fullname.first\_name.fa</td><td style="width: 6.16071%; height: 46.4722px;">String</td><td style="width: 6.54596%; height: 46.4722px;">اجباری</td><td style="width: 20.8895%; height: 46.4722px;">نام مسافر به صورت فارسی</td><td style="width: 34.9885%; height: 46.4722px;"> </td></tr><tr style="height: 46.4722px;"><td class="has-text-align-left" data-align="left" style="width: 31.3095%; height: 46.4722px;">items\[index\].passengers\[index\].fullname.last\_name</td><td style="width: 6.16071%; height: 46.4722px;"> </td><td style="width: 6.54596%; height: 46.4722px;"> </td><td style="width: 20.8895%; height: 46.4722px;"> </td><td style="width: 34.9885%; height: 46.4722px;"> </td></tr><tr style="height: 46.4722px;"><td class="has-text-align-left" data-align="left" style="width: 31.3095%; height: 46.4722px;">items\[index\].passengers\[index\].fullname.last\_name.en</td><td style="width: 6.16071%; height: 46.4722px;">String</td><td style="width: 6.54596%; height: 46.4722px;">اجباری</td><td style="width: 20.8895%; height: 46.4722px;">نام خانوادگی مسافر به صورت لاتین</td><td style="width: 34.9885%; height: 46.4722px;"> </td></tr><tr style="height: 46.4722px;"><td class="has-text-align-left" data-align="left" style="width: 31.3095%; height: 46.4722px;">items\[index\].passengers\[index\].fullname.last\_name.fa</td><td style="width: 6.16071%; height: 46.4722px;">String</td><td style="width: 6.54596%; height: 46.4722px;">اجباری</td><td style="width: 20.8895%; height: 46.4722px;">نام خانوادگی مسافر به صورت فارسی</td><td style="width: 34.9885%; height: 46.4722px;"> </td></tr><tr style="height: 29.6806px;"><td class="has-text-align-left" data-align="left" style="width: 31.3095%; height: 29.6806px;">items\[index\].passengers\[index\].identity</td><td style="width: 6.16071%; height: 29.6806px;"> </td><td style="width: 6.54596%; height: 29.6806px;"> </td><td style="width: 20.8895%; height: 29.6806px;"> </td><td style="width: 34.9885%; height: 29.6806px;"> </td></tr><tr style="height: 46.4722px;"><td class="has-text-align-left" data-align="left" style="width: 31.3095%; height: 46.4722px;">items\[index\].passengers\[index\].identity.nationality</td><td style="width: 6.16071%; height: 46.4722px;">String</td><td style="width: 6.54596%; height: 46.4722px;">اجباری</td><td style="width: 20.8895%; height: 46.4722px;"> </td><td style="width: 34.9885%; height: 46.4722px;"> </td></tr><tr style="height: 46.4722px;"><td class="has-text-align-left" data-align="left" style="width: 31.3095%; height: 46.4722px;">items\[index\].passengers\[index\].identity.id</td><td style="width: 6.16071%; height: 46.4722px;">String</td><td style="width: 6.54596%; height: 46.4722px;">اجباری</td><td style="width: 20.8895%; height: 46.4722px;"> </td><td style="width: 34.9885%; height: 46.4722px;"> </td></tr><tr style="height: 29.6806px;"><td class="has-text-align-left" data-align="left" style="width: 31.3095%; height: 29.6806px;">items\[index\].passengers\[index\].passport</td><td style="width: 6.16071%; height: 29.6806px;"> </td><td style="width: 6.54596%; height: 29.6806px;"> </td><td style="width: 20.8895%; height: 29.6806px;"> </td><td style="width: 34.9885%; height: 29.6806px;"> </td></tr><tr style="height: 46.4722px;"><td class="has-text-align-left" data-align="left" style="width: 31.3095%; height: 46.4722px;">items\[index\].passengers\[index\].passport.id</td><td style="width: 6.16071%; height: 46.4722px;">String</td><td style="width: 6.54596%; height: 46.4722px;">اجباری</td><td style="width: 20.8895%; height: 46.4722px;"> </td><td style="width: 34.9885%; height: 46.4722px;"> </td></tr><tr style="height: 46.4722px;"><td class="has-text-align-left" data-align="left" style="width: 31.3095%; height: 46.4722px;">items\[index\].passengers\[index\].passport.expire\_at</td><td style="width: 6.16071%; height: 46.4722px;">String</td><td style="width: 6.54596%; height: 46.4722px;">اجباری</td><td style="width: 20.8895%; height: 46.4722px;"> </td><td style="width: 34.9885%; height: 46.4722px;"> </td></tr><tr style="height: 46.4722px;"><td class="has-text-align-left" data-align="left" style="width: 31.3095%; height: 46.4722px;">items\[index\].passengers\[index\].birth</td><td style="width: 6.16071%; height: 46.4722px;">String</td><td style="width: 6.54596%; height: 46.4722px;">اجباری</td><td style="width: 20.8895%; height: 46.4722px;"> </td><td style="width: 34.9885%; height: 46.4722px;"> </td></tr><tr style="height: 46.4722px;"><td class="has-text-align-left" data-align="left" style="width: 31.3095%; height: 46.4722px;">items\[index\].passengers\[index\].mobile</td><td style="width: 6.16071%; height: 46.4722px;">String</td><td style="width: 6.54596%; height: 46.4722px;">اجباری</td><td style="width: 20.8895%; height: 46.4722px;"> </td><td style="width: 34.9885%; height: 46.4722px;"> </td></tr><tr style="height: 46.4722px;"><td class="has-text-align-left" data-align="left" style="width: 31.3095%; height: 46.4722px;">items\[index\].passengers\[index\].email</td><td style="width: 6.16071%; height: 46.4722px;">String</td><td style="width: 6.54596%; height: 46.4722px;">اجباری</td><td style="width: 20.8895%; height: 46.4722px;">  
</td><td>  
</td></tr></tbody></table>

```
{
  "main_id": 10001,
  "items": [
    {
      "id": 10001,
      "lock_id": 20005,
      "local_pnr": "DFEfs213",
      "amount": 7, // Integer 
      "passengers": [
        {
          "gender": "male", //male , female
          "fullname": {
            "first_name": {
              "en": "", // first name en
              "fa": "" // first name fa
            },
            "last_name": {
              "en": "", // last name en 
              "fa": "" // last name fa 
            }
          },
          "identity": {
            "nationality": "IR",
            "id": "" // national code
          },
          "passport": {
            "id": false,
            "expire_at": false
          },
          "birth": "1994-05-14",
          "mobile": "", // phone number
          "email": false
        },
        ...
      ]
    },
    ...
  ]
}

```

# پاسخ صحیح – Response True

جواب این api به صورت آرایه میباشد

<div class="wp-block-group" id="bkmrk-%D8%B9%D9%86%D9%88%D8%A7%D9%86-%D9%86%D9%88%D8%B9-%D9%85%D9%82%D8%A7%D8%AF%DB%8C%D8%B1-%D8%AA%D9%88%D8%B6"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained"><figure class="wp-block-table is-style-stripes"><table border="1" class="has-fixed-layout align-center" style="border-collapse: collapse;"><tbody><tr><td class="has-text-align-left" data-align="left">**عنوان**</td><td>**نوع**</td><td>**مقادیر**</td><td>**توضیحات**</td></tr><tr><td class="has-text-align-left" data-align="left">**items**</td><td>Array</td><td> </td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">items\[index\].status</td><td>Boolean</td><td>true/false</td><td>هنگام رزرو یک چارتر با موفقیت مقدار این کلید true خواهد بود و در صورت بروز ارور این کلید false خواهد شد و مثل رویه های قبلی برای مشاهده دلیل ارور با توجه به error code به صفحه error handling مراجعه فرمایید.</td></tr><tr><td class="has-text-align-left" data-align="left">**items\[index\].pnr**</td><td> </td><td> </td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">items\[index\].pnr.local</td><td>String</td><td>pnr داخلی</td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">items\[index\].pnr.original</td><td>String</td><td>pnr اصلی</td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">items\[index\].pnr.id</td><td>Integer</td><td>شماره بلیت</td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">items\[index\].item\_id</td><td>Integer</td><td> </td><td>هنگامی که کلید status برابر با false باشد این کلید وجود خواهد داشت.</td></tr><tr><td class="has-text-align-left" data-align="left">items\[index\].code</td><td>Integer</td><td>شماره خطا مربوطه</td><td>هنگامی که کلید status برابر با false باشد این کلید وجود خواهد داشت که باید جهت استعلام خطا میتوانید از طریق [این لینک](https://airplus.app/docs/%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d8%ae%d8%b7%d8%a7%d9%87%d8%a7-error-handling/) اقدام کنید.</td></tr><tr><td class="has-text-align-left" data-align="left">**meta**</td><td> </td><td> </td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">meta.timestamp</td><td>Timestamp</td><td> زمان تولید پاسخ</td><td> این زمان بر اساس timestamp می باشد – در صورت نیاز از این زمان استفاده شود.</td></tr></tbody></table>

دریافت این پاسخ با Status Code 200 دریافت خواهد شد. ```
{
    "items": [
        {
            "status": true,
            "pnr": {
                "local": "D0Efs213",
                "original": "htLQgDxD",
                "id": 10013
            }
        },
        {
            "status": false,
            "item_id": 10001,
            "code": 1006
        },
        ...
    ],
    "meta": {
      "timestamp": "Timestamp" // Timestamp    
    }
}
```

</figure></div></div>

# پاسخ نادرست – Response False

<table border="1" class="has-fixed-layout align-center" id="bkmrk-%D8%B9%D9%86%D9%88%D8%A7%D9%86-%D9%86%D9%88%D8%B9-%D9%85%D9%82%D8%A7%D8%AF%DB%8C%D8%B1-%D8%AA%D9%88%D8%B6" style="border-collapse: collapse;"><tbody><tr><td class="has-text-align-left" data-align="left">**عنوان**</td><td>**نوع**</td><td>**مقادیر**</td><td>**توضیحات**</td></tr><tr><td class="has-text-align-left" data-align="left">**error**</td><td> </td><td> </td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">error.code</td><td>Integer</td><td>شماره خطا مربوطه</td><td>جهت استعلام خطا میتوانید از طریق [این لینک](https://airplus.app/docs/%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d8%ae%d8%b7%d8%a7%d9%87%d8%a7-error-handling/) اقدام کنید.</td></tr><tr><td class="has-text-align-left" data-align="left">**meta**</td><td> </td><td> </td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">meta.timestamp</td><td>Timestamp</td><td> زمان تولید پاسخ</td><td> این زمان بر اساس timestamp می باشد – در صورت نیاز از این زمان استفاده شود.

</td></tr></tbody></table>

```
{
  "error": {
    "code":"Error Code"
  },
  "meta": {
    "timestamp": "Timestamp" // Timestamp
  }
}
```

در صورت مشاهده Status Code 404 URL درخواست خود را به اشتباه وارد نمود اید.

# آخرین وضعیت آیتم خریداری شده – Book Status

<span>در این بخش میتوانید از وضعیت رزرو خود مطلع شوید.</span>

# اطلاع از وضعیت رزرو از طریق API

<table border="1" class="has-fixed-layout align-center" id="bkmrk-%D8%B9%D9%86%D9%88%D8%A7%D9%86-%D9%88%D8%B6%D8%B9%DB%8C%D8%AA-%D9%85%D9%82%D8%A7%D8%AF%DB%8C%D8%B1-%D8%AA" style="border-collapse: collapse;"><tbody><tr><td class="has-text-align-left" data-align="left">**عنوان**</td><td>**وضعیت**</td><td>**مقادیر**</td><td>**توضیحات**</td></tr><tr><td class="has-text-align-left" data-align="left">Method</td><td>اجباری</td><td>GET</td><td>متد ارسال درخواست</td></tr><tr><td class="has-text-align-left" data-align="left">Domain</td><td>اجباری</td><td>نام دامنه ثبت شده در اتوماسیون</td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">Api Url</td><td>اجباری</td><td>دامنه هسته مرکزی سرویس</td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">Api version</td><td>اجباری</td><td>به نسخه فعلی سرویس API تلقی میشود که در قسمت [پیش نیازهای اتوماسیون](https://airplus.app/docs/%d9%be%db%8c%d8%b4-%d9%86%db%8c%d8%a7%d8%b2%d9%87%d8%a7-%d9%88-%d8%b4%d8%b1%d8%a7%db%8c%d8%b7-%d8%a7%d8%ae%d8%b0-api-%da%86%d8%a7%d8%b1%d8%aa%d8%b1%db%8c/) به ریز شرح داده شده است.</td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">Authorization</td><td>اجباری</td><td>توکن JWT تولید شده</td><td>این توکن بصورت JWT تولید میشود.</td></tr></tbody></table>

در این روش شما باید درخواست خود را از طریق لینک زیر ارسال فرمائید.

# سربرگ – Header

```
{{Api Url}}/book/status

HEADER
GET /api/reservation/{{Api version}}/book/status HTTP/1.1
Host: {{Your Host}}
Content-Type: application/json
Authorization: Bearer JWTToken
Domain: {{Your Domain}}
```

API Url از طریق پنل کاربری قابل مشاهده خواهد بود.

# مقادیر ارسالی – Request Data

<table border="1" class="has-fixed-layout align-center" id="bkmrk-%D8%B9%D9%86%D9%88%D8%A7%D9%86-%D9%86%D9%88%D8%B9-%D9%88%D8%B6%D8%B9%DB%8C%D8%AA-%D9%85%D9%82%D8%A7%D8%AF" style="border-collapse: collapse;"><tbody><tr><td class="has-text-align-left" data-align="left">**عنوان**</td><td>**نوع**</td><td>**وضعیت**</td><td>**مقادیر**</td><td>**توضیحات**</td></tr><tr><td class="has-text-align-left" data-align="left">local\_pnr</td><td>String</td><td>اجباری</td><td>pnr داخلی</td><td>  
</td></tr></tbody></table>

```
{
  "local_pnr": ""
}
```

# پاسخ صحیح – Response True

<table border="1" class="has-fixed-layout align-center" id="bkmrk-%D8%B9%D9%86%D9%88%D8%A7%D9%86-%D9%86%D9%88%D8%B9-%D9%85%D9%82%D8%A7%D8%AF%DB%8C%D8%B1-%D8%AA%D9%88%D8%B6" style="border-collapse: collapse; width: 100%;"><tbody><tr><td class="has-text-align-left" data-align="left" style="width: 10.1298%;">**عنوان**</td><td style="width: 6.7929%;">**نوع**</td><td style="width: 15.0159%;">**مقادیر**</td><td style="width: 68.0482%;">**توضیحات**</td></tr><tr><td class="has-text-align-left" data-align="left" style="width: 10.1298%;">**payload**</td><td style="width: 6.7929%;"> </td><td style="width: 15.0159%;"> </td><td style="width: 68.0482%;"> </td></tr><tr><td class="has-text-align-left" data-align="left" style="width: 10.1298%;">payload.status</td><td style="width: 6.7929%;">String</td><td style="width: 15.0159%;">confirmed/canceled/refund/done</td><td style="width: 68.0482%;">هنگام تایید مقدار کلید برابر با confirmed خواهد بود و هنگام کنسل شدن برابر با canceled خواهد بود و اگر استرداد شده بود برابر با refund و اگر پرواز انجام شده بود برابر با مقدار done خواهد بود.</td></tr><tr><td class="has-text-align-left" data-align="left" style="width: 10.1298%;">**payload.pnr**</td><td style="width: 6.7929%;"> </td><td style="width: 15.0159%;"> </td><td style="width: 68.0482%;"> </td></tr><tr><td class="has-text-align-left" data-align="left" style="width: 10.1298%;">payload.pnr.local</td><td style="width: 6.7929%;">String</td><td style="width: 15.0159%;">pnr داخلی</td><td style="width: 68.0482%;"> </td></tr><tr><td class="has-text-align-left" data-align="left" style="width: 10.1298%;">payload.pnr.original</td><td style="width: 6.7929%;">String</td><td style="width: 15.0159%;">pnr اصلی</td><td style="width: 68.0482%;"> </td></tr><tr><td class="has-text-align-left" data-align="left" style="width: 10.1298%;">payload.pnr.number</td><td style="width: 6.7929%;">Integer</td><td style="width: 15.0159%;">شماره بلیت</td><td style="width: 68.0482%;"> </td></tr><tr><td class="has-text-align-left" data-align="left" style="width: 10.1298%;">**payload.refund**</td><td style="width: 6.7929%;"> </td><td style="width: 15.0159%;"> </td><td style="width: 68.0482%;">اگر مقدار کلید payload.status برابر با refund بود این کلید وجود خواهد داشت.</td></tr><tr><td class="has-text-align-left" data-align="left" style="width: 10.1298%;">payload.refund.id</td><td style="width: 6.7929%;">Integer</td><td style="width: 15.0159%;"> </td><td style="width: 68.0482%;"> </td></tr><tr><td class="has-text-align-left" data-align="left" style="width: 10.1298%;">**meta**</td><td style="width: 6.7929%;"> </td><td style="width: 15.0159%;"> </td><td style="width: 68.0482%;"> </td></tr><tr><td class="has-text-align-left" data-align="left" style="width: 10.1298%;">meta.timestamp</td><td style="width: 6.7929%;">Timestamp</td><td style="width: 15.0159%;"> زمان تولید پاسخ</td><td style="width: 68.0482%;"> این زمان بر اساس timestamp می باشد – در صورت نیاز از این زمان استفاده شود.</td></tr></tbody></table>

دریافت این پاسخ با Status Code 200 دریافت خواهد شد.

```
{
    "payload": {
        "status": "refund",
        "pnr": {
            "local": "",
            "original": "",
            "number": 10011
        },
        "refund": {
            "id": 10007
        }
    },
    "meta": {
        "timestamp": "Timestamp" // Timestamp
    }
}
```

# پاسخ نادرست – Response False

<table border="1" class="has-fixed-layout align-center" id="bkmrk-%D8%B9%D9%86%D9%88%D8%A7%D9%86-%D9%86%D9%88%D8%B9-%D9%85%D9%82%D8%A7%D8%AF%DB%8C%D8%B1-%D8%AA%D9%88%D8%B6" style="border-collapse: collapse;"><tbody><tr><td class="has-text-align-left" data-align="left">**عنوان**</td><td>**نوع**</td><td>**مقادیر**</td><td>**توضیحات**</td></tr><tr><td class="has-text-align-left" data-align="left">**error**</td><td> </td><td> </td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">error.code</td><td>Integer</td><td>شماره خطا مربوطه</td><td>جهت استعلام خطا میتوانید از طریق [این لینک](https://airplus.app/docs/%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d8%ae%d8%b7%d8%a7%d9%87%d8%a7-error-handling/) اقدام کنید.</td></tr><tr><td class="has-text-align-left" data-align="left">**meta**</td><td> </td><td> </td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">meta.timestamp</td><td>Timestamp</td><td> زمان تولید پاسخ</td><td> این زمان بر اساس timestamp می باشد – در صورت نیاز از این زمان استفاده شود.</td></tr></tbody></table>

```
{
  "error": {
    "code":"Error Code"
  },
  "meta": {
    "timestamp": "Timestamp" // Timestamp
  }
}
```

در صورت مشاهده Status Code 404 URL درخواست خود را به اشتباه وارد نمود اید.

<div class="betterdocs-entry-content" id="bkmrk-"><div class="betterdocs-content" id="bkmrk--1"></div></div>

# قفل آیتم جستجو شده – Lock

<span>در این بخش شما میتوانید آیتم جستجو شده ی خود را جهت رزرو قفل کنید.</span>

# قفل آیتم از طریق API

<table border="1" class="has-fixed-layout align-center" id="bkmrk-%D8%B9%D9%86%D9%88%D8%A7%D9%86-%D9%88%D8%B6%D8%B9%DB%8C%D8%AA-%D9%85%D9%82%D8%A7%D8%AF%DB%8C%D8%B1-%D8%AA" style="border-collapse: collapse;"><tbody><tr><td class="has-text-align-left" data-align="left">**عنوان**</td><td>**وضعیت**</td><td>**مقادیر**</td><td>**توضیحات**</td></tr><tr><td class="has-text-align-left" data-align="left">Method</td><td>اجباری</td><td>POST</td><td>متد ارسال درخواست</td></tr><tr><td class="has-text-align-left" data-align="left">Domain</td><td>اجباری</td><td>نام دامنه ثبت شده در اتوماسیون</td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">Api Url</td><td>اجباری</td><td>دامنه هسته مرکزی سرویس</td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">Api version</td><td>اجباری</td><td>به نسخه فعلی سرویس API تلقی میشود که در قسمت [پیش نیازهای اتوماسیون](https://airplus.app/docs/%d9%be%db%8c%d8%b4-%d9%86%db%8c%d8%a7%d8%b2%d9%87%d8%a7-%d9%88-%d8%b4%d8%b1%d8%a7%db%8c%d8%b7-%d8%a7%d8%ae%d8%b0-api-%da%86%d8%a7%d8%b1%d8%aa%d8%b1%db%8c/) به ریز شرح داده شده است.</td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">Authorization</td><td>اجباری</td><td>توکن JWT تولید شده</td><td>این توکن بصورت JWT تولید میشود.</td></tr></tbody></table>

در این روش شما باید درخواست خود را از طریق لینک زیر ارسال فرمائید.

# سربرگ – Header

```
{{Api Url}}/lock

HEADER
POST /api/reservation/{{Api version}}/lock HTTP/1.1
Host: {{Your Host}}
Content-Type: application/json
Authorization: Bearer JWTToken
Domain: {{Your Domain}}
```

API Url از طریق پنل کاربری قابل مشاهده خواهد بود.

# مقادیر ارسالی – Request Data

<table border="1" class="has-fixed-layout align-center" id="bkmrk-%D8%B9%D9%86%D9%88%D8%A7%D9%86-%D9%86%D9%88%D8%B9-%D9%88%D8%B6%D8%B9%DB%8C%D8%AA-%D9%85%D9%82%D8%A7%D8%AF" style="border-collapse: collapse;"><tbody><tr><td class="has-text-align-left" data-align="left">**عنوان**</td><td>**نوع**</td><td>**وضعیت**</td><td>**مقادیر**</td><td>**توضیحات**</td></tr><tr><td class="has-text-align-left" data-align="left">charters</td><td>Array</td><td>اجباری</td><td> </td><td>آیتم های این کلید متناسب با تعداد چارتر های انتخاب شده تغییر میکند.</td></tr><tr><td class="has-text-align-left" data-align="left">charters\[index\].id</td><td>Integer</td><td>اجباری</td><td> </td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">charters\[index\].item\_id</td><td>Integer</td><td>اجباری</td><td> </td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">**charters\[index\].passengers**</td><td> </td><td> </td><td> </td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">charters\[index\].passengers.adult</td><td>Integer</td><td>اجباری</td><td> </td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">charters\[index\].passengers.infant</td><td>Integer</td><td>اجباری</td><td>  
</td><td>  
</td></tr></tbody></table>

```
{
  "charters": [
    {
      "id": 10002,
      "item_id": 10005,
      "passengers": {
        "adult": 2,
        "infant": 1
      }
    },
    ...
  ]
}
```

# پاسخ صحیح – Response True

<table border="1" class="has-fixed-layout align-center" id="bkmrk-%D8%B9%D9%86%D9%88%D8%A7%D9%86-%D9%86%D9%88%D8%B9-%D9%85%D9%82%D8%A7%D8%AF%DB%8C%D8%B1-%D8%AA%D9%88%D8%B6" style="border-collapse: collapse;"><tbody><tr><td class="has-text-align-left" data-align="left">**عنوان**</td><td>**نوع**</td><td>**مقادیر**</td><td>**توضیحات**</td></tr><tr><td class="has-text-align-left" data-align="left">**items**</td><td>Array</td><td> </td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">items\[index\].id</td><td>Integer</td><td> </td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">items\[index\].status</td><td>Boolean</td><td>true/false</td><td>ممکن است مقدارش true باشد و ممکن است بعضی از ایتم ها قفل نشوند بنابراین مقدار این کلید در آن آیتم ها false خواهد بود.</td></tr><tr><td class="has-text-align-left" data-align="left">items\[index\].lock\_id</td><td>Integer</td><td>آیدی قفل رزرو</td><td>هنگامی که کلید status true باشد این کلید وجود دارد</td></tr><tr><td class="has-text-align-left" data-align="left">items\[index\].duration</td><td>Integer</td><td>مدت زمان قفل رزرو</td><td>هنگامی که کلید status true باشد این کلید وجود دارد</td></tr><tr><td class="has-text-align-left" data-align="left">items\[index\].expiration</td><td>String</td><td>زمان انقضای قفل رزرو</td><td>هنگامی که کلید status true باشد این کلید وجود دارد</td></tr><tr><td class="has-text-align-left" data-align="left">items\[index\].code</td><td>Integer</td><td>code error</td><td>هنگامی که کلید status false باشد این کلید وجود دارد که مثل رویه های قبلی باید به صفحه error handling برای مشاهده دلیل ارور خود مراجعه فرمایید.</td></tr><tr><td class="has-text-align-left" data-align="left">**meta**</td><td> </td><td> </td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">meta.timestamp</td><td>Timestamp</td><td> زمان تولید پاسخ</td><td> این زمان بر اساس timestamp می باشد – در صورت نیاز از این زمان استفاده شود.</td></tr></tbody></table>

دریافت این پاسخ با Status Code 200 دریافت خواهد شد.

```
{
    "items": [
        {
            "id": 10001,
            "status": true,
            "lock_id": 20018,
            "duration": 5,
            "expiration": "2025-01-20 13:30:47"
        },
        {
            "id": 10002,
            "status": false,
            "code": 1002
        },
        ...
    ],
    "meta": {
        "timestamp": "Timestamp" // Timestamp
    }
}
```

# پاسخ نادرست – Response False

<table border="1" class="has-fixed-layout align-center" id="bkmrk-%D8%B9%D9%86%D9%88%D8%A7%D9%86-%D9%86%D9%88%D8%B9-%D9%85%D9%82%D8%A7%D8%AF%DB%8C%D8%B1-%D8%AA%D9%88%D8%B6" style="border-collapse: collapse;"><tbody><tr><td class="has-text-align-left" data-align="left">**عنوان**</td><td>**نوع**</td><td>**مقادیر**</td><td>**توضیحات**</td></tr><tr><td class="has-text-align-left" data-align="left">**error**</td><td> </td><td> </td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">error.code</td><td>Integer</td><td>شماره خطا مربوطه</td><td>جهت استعلام خطا میتوانید از طریق [این لینک](https://airplus.app/docs/%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d8%ae%d8%b7%d8%a7%d9%87%d8%a7-error-handling/) اقدام کنید.</td></tr><tr><td class="has-text-align-left" data-align="left">**meta**</td><td> </td><td> </td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">meta.timestamp</td><td>Timestamp</td><td> زمان تولید پاسخ</td><td> این زمان بر اساس timestamp می باشد – در صورت نیاز از این زمان استفاده شود.</td></tr></tbody></table>

```
{
  "error": {
    "code":"Error Code"
  },
  "meta": {
    "timestamp": "Timestamp" // Timestamp
  }
}
```

در صورت مشاهده Status Code 404 URL درخواست خود را به اشتباه وارد نمود اید.

# لغو قفل انجام شده – Unlock

<span>در این بخش شما میتوانید قفل یک رزرو را که قبلا با استفاده از api lock انجام داده اید لغو کنید.</span>

# لغو قفل آیتم از طریق API

<table border="1" class="has-fixed-layout align-center" id="bkmrk-%D8%B9%D9%86%D9%88%D8%A7%D9%86-%D9%88%D8%B6%D8%B9%DB%8C%D8%AA-%D9%85%D9%82%D8%A7%D8%AF%DB%8C%D8%B1-%D8%AA" style="border-collapse: collapse;"><tbody><tr><td class="has-text-align-left" data-align="left">**عنوان**</td><td>**وضعیت**</td><td>**مقادیر**</td><td>**توضیحات**</td></tr><tr><td class="has-text-align-left" data-align="left">Method</td><td>اجباری</td><td>POST</td><td>متد ارسال درخواست</td></tr><tr><td class="has-text-align-left" data-align="left">Domain</td><td>اجباری</td><td>نام دامنه ثبت شده در اتوماسیون</td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">Api Url</td><td>اجباری</td><td>دامنه هسته مرکزی سرویس</td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">Api version</td><td>اجباری</td><td>به نسخه فعلی سرویس API تلقی میشود که در قسمت [پیش نیازهای اتوماسیون](https://airplus.app/docs/%d9%be%db%8c%d8%b4-%d9%86%db%8c%d8%a7%d8%b2%d9%87%d8%a7-%d9%88-%d8%b4%d8%b1%d8%a7%db%8c%d8%b7-%d8%a7%d8%ae%d8%b0-api-%da%86%d8%a7%d8%b1%d8%aa%d8%b1%db%8c/) به ریز شرح داده شده است.</td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">Authorization</td><td>اجباری</td><td>توکن JWT تولید شده</td><td>این توکن بصورت JWT تولید میشود.</td></tr></tbody></table>

در این روش شما باید درخواست خود را از طریق لینک زیر ارسال فرمائید.

# سربرگ – Header

```
{{Api Url}}/unlock

HEADER
POST /api/reservation/{{Api version}}/unlock HTTP/1.1
Host: {{Your Host}}
Content-Type: application/json
Authorization: Bearer JWTToken
Domain: {{Your Domain}}
```

API Url از طریق پنل کاربری قابل مشاهده خواهد بود.

# مقادیر ارسالی – Request Data

<table border="1" class="has-fixed-layout align-center" id="bkmrk-%D8%B9%D9%86%D9%88%D8%A7%D9%86-%D9%86%D9%88%D8%B9-%D9%88%D8%B6%D8%B9%DB%8C%D8%AA-%D9%85%D9%82%D8%A7%D8%AF" style="border-collapse: collapse;"><tbody><tr><td class="has-text-align-left" data-align="left">**عنوان**</td><td>**نوع**</td><td>**وضعیت**</td><td>**مقادیر**</td><td>**توضیحات**</td></tr><tr><td class="has-text-align-left" data-align="left">lock\_id</td><td>Integer</td><td>اجباری</td><td>آیدی قفل آیتم مربوطه</td><td>  
</td></tr></tbody></table>

```
{
    "lock_id": 20021
}
```

هنگامی که فرآیند لغو قفل رزرو با موفقیت انجام شود status code درخواست برابر با 204 خواهد بود و جوابی برای این api وجود ندارد.

# پاسخ نادرست – Response False

<table border="1" class="has-fixed-layout align-center" id="bkmrk-%D8%B9%D9%86%D9%88%D8%A7%D9%86-%D9%86%D9%88%D8%B9-%D9%85%D9%82%D8%A7%D8%AF%DB%8C%D8%B1-%D8%AA%D9%88%D8%B6" style="border-collapse: collapse;"><tbody><tr><td class="has-text-align-left" data-align="left">**عنوان**</td><td>**نوع**</td><td>**مقادیر**</td><td>**توضیحات**</td></tr><tr><td class="has-text-align-left" data-align="left">**error**</td><td> </td><td> </td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">error.code</td><td>Integer</td><td>شماره خطا مربوطه</td><td>جهت استعلام خطا میتوانید از طریق [این لینک](https://airplus.app/docs/%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d8%ae%d8%b7%d8%a7%d9%87%d8%a7-error-handling/) اقدام کنید.</td></tr><tr><td class="has-text-align-left" data-align="left">**meta**</td><td> </td><td> </td><td> </td></tr><tr><td class="has-text-align-left" data-align="left">meta.timestamp</td><td>Timestamp</td><td> زمان تولید پاسخ</td><td> این زمان بر اساس timestamp می باشد – در صورت نیاز از این زمان استفاده شود.</td></tr></tbody></table>

```
{
  "error": {
    "code":"Error Code"
  },
  "meta": {
    "timestamp": "Timestamp" // Timestamp
  }
}

```

در صورت مشاهده Status Code 404 URL درخواست خود را به اشتباه وارد نمود اید.

# لیست خریدها – Book History (بزودی)

# بزودی…