مستندات

جست‌وجو در مستندات

نام اندپوینت، موضوع یا کلیدواژه را بنویسید

API رزرو پرواز

API رزرو پرواز، برنامهٔ سفری را که اعتبارسنجی مجدد شده رزرو می‌کند و تا مهلت صدور بلیت نگه می‌دارد.

POST/Air/AirBook

دسترسی نیازمند مجوز air_book

بعد از اعتبارسنجی مجدد رزرو کنید. اطلاعات مسافران و یک مخاطب اصلی را بفرستید. پاسخ یک UniqueId و یک TktTimeLimit به شما می‌دهد. در این مرحله هنوز بلیتی صادر نشده است. صندلی تا پایان مهلت نگه داشته می‌شود؛ پس بلیت را پیش از آن صادر کنید.

پارامترهای مسیر#

ندارد.

پارامترهای کوئری#

ندارد.

پارامترهای بدنه#

نامنوعالزامیپیش‌فرضتوضیح
SessionIdstringالزامی-شناسهٔ نشست شما.
FareSourceCodestringالزامی-کدی که اعتبارسنجی مجدد برگردانده است.
ClientUniqueIdstringاختیاری-شناسهٔ مرجع خودتان. بعداً می‌توانید آن را به‌جای UniqueId در اطلاعات رزرو به کار ببرید.
MarkupForAdultnumberاختیاری0مارک‌آپ (سود افزوده) به‌ازای هر بزرگسال.
MarkupForChildnumberاختیاری0مارک‌آپ به‌ازای هر کودک.
MarkupForInfantnumberاختیاری0مارک‌آپ به‌ازای هر نوزاد.
TravelerInfo object، الزامی
نامنوعالزامیتوضیح
PhoneNumberstringالزامیشمارهٔ تلفن مخاطب اصلی.
Emailstringالزامیایمیل مخاطب اصلی.
AirTravelersarray of objectالزامیبرای هر مسافر یک مورد؛ دست‌کم یکی. تعداد باید با ترکیب مسافران در جست‌وجو یکی باشد.
AirTravelers[] object
نامنوعالزامیتوضیح
PassengerTypeintegerالزامیکد نوع مسافر، مثلاً 1 برای بزرگسال.
Genderintegerالزامی0 مرد، 1 زن.
DateOfBirthstringالزامیتاریخ تولد به قالب YYYY-MM-DD.
PassengerName.PassengerFirstNamestringالزامینام، دقیقاً مطابق گذرنامه.
PassengerName.PassengerLastNamestringالزامینام خانوادگی، دقیقاً مطابق گذرنامه.

درخواست#

curl -X POST https://api.simorghapi.com/api/Air/AirBook \
  -H "Content-Type: application/json" \
  -d '{
    "SessionId": "8f3c81d2-4a5b-4c6d-9e0f-1a2b3c4d5e6f",
    "FareSourceCode": "dHA6ODc0NTE6ZmwxMjM0OjMyNw==",
    "ClientUniqueId": "order-0001",
    "TravelerInfo": {
      "PhoneNumber": "+441234567890",
      "Email": "traveller@example.com",
      "AirTravelers": [
        {
          "PassengerType": 1,
          "Gender": 0,
          "DateOfBirth": "1990-05-14",
          "PassengerName": {
            "PassengerFirstName": "Jane",
            "PassengerLastName": "Doe"
          }
        }
      ]
    }
  }'
const res = await fetch("https://api.simorghapi.com/api/Air/AirBook", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    SessionId: "8f3c81d2-4a5b-4c6d-9e0f-1a2b3c4d5e6f",
    FareSourceCode: "dHA6ODc0NTE6ZmwxMjM0OjMyNw==",
    ClientUniqueId: "order-0001",
    TravelerInfo: {
      PhoneNumber: "+441234567890",
      Email: "traveller@example.com",
      AirTravelers: [
        {
          PassengerType: 1,
          Gender: 0,
          DateOfBirth: "1990-05-14",
          PassengerName: { PassengerFirstName: "Jane", PassengerLastName: "Doe" }
        }
      ]
    }
  })
});

const data = await res.json();
import requests

res = requests.post(
    "https://api.simorghapi.com/api/Air/AirBook",
    json={
        "SessionId": "8f3c81d2-4a5b-4c6d-9e0f-1a2b3c4d5e6f",
        "FareSourceCode": "dHA6ODc0NTE6ZmwxMjM0OjMyNw==",
        "ClientUniqueId": "order-0001",
        "TravelerInfo": {
            "PhoneNumber": "+441234567890",
            "Email": "traveller@example.com",
            "AirTravelers": [
                {
                    "PassengerType": 1,
                    "Gender": 0,
                    "DateOfBirth": "1990-05-14",
                    "PassengerName": {
                        "PassengerFirstName": "Jane",
                        "PassengerLastName": "Doe",
                    },
                }
            ],
        },
    },
)

data = res.json()

پاسخ#

فیلدنوعتوضیح
Successbooleanدر صورت موفقیت true.
UniqueIdstringشناسهٔ رزرو. برای صدور بلیت، پیگیری و لغو به آن نیاز دارید.
TktTimeLimitstringمهلت صدور بلیت. پیش از این زمان صادر کنید، وگرنه رزرو آزاد می‌شود.
TktTimeLimitTimeZonestringمنطقهٔ زمانی TktTimeLimit.
Categoryinteger10: رزرو شده، در انتظار صدور بلیت.
Statusinteger10: رزرو شده، در انتظار صدور بلیت.
PriceChangebooleanاگر نرخ هنگام رزرو تغییر کرده باشد true.
WarningMessagestringهر هشدار غیربحرانی؛ در غیر این صورت null.
Errorobjectدر صورت موفقیت null.
{
  "Success": true,
  "UniqueId": "TP-2026-000512",
  "TktTimeLimit": "2026-10-10T18:00:00",
  "TktTimeLimitTimeZone": "UTC",
  "Category": 10,
  "Status": 10,
  "PriceChange": false,
  "WarningMessage": null,
  "Error": null
}
رزرو، بلیت نیست. وضعیت 10 فقط صندلی را نگه می‌دارد. بلیت را پیش از TktTimeLimit با AirOrderTicket صادر کنید، وگرنه رزرو آزاد می‌شود.

خطاها#

کدمعناراه‌حل
Err0106001یکی از فیلدهای الزامی مسافر ارسال نشده یا نامعتبر است.فیلدی را که در پیام آمده اصلاح کنید.
Err0102003نرخ دیگر در دسترس نیست.دوباره جست‌وجو و اعتبارسنجی مجدد کنید.
Err0102005نرخ منقضی شده است.دوباره جست‌وجو و اعتبارسنجی مجدد کنید.
ویرایش این صفحه در گیت‌هابمشکلی دیدید؟ از پنل ← پشتیبانی خبرمان کنید.