FR24 OpenAPI
  1. API 参考
FR24 OpenAPI
  • FR24_API_V2.0
    • 指南
      • API调用流程
      • 介绍
      • 附录
      • 错误码
    • API 参考
      • OrderChangeInforming 订单信息变更通知
      • Shopping 航班搜索接口
        POST
      • Pricing 校验接口
        POST
      • Booking 生单接口
        POST
      • Ticketing 申请出票接口
        POST
      • OrderDetail 订单详情接口
        POST
      • PresaleAncillaryShopping 售前辅营搜索接口
        POST
      • PostsaleAncillaryShopping 售后行李搜索接口
        POST
      • seatMap 机型图接口
        POST
      • AncillaryBooking 辅营生单接口
        POST
      • AncillaryPurchase 辅营支付接口
        POST
      • AncillaryOrderDetail 辅营订单详情
        POST
      • ChangeReshop 改期搜索接口
        POST
      • ReissueRequest 改期申请接口
        POST
      • RefundRequest 退票申请接口
        POST
      • RefundConfirming 退票确认接口
        POST
      • VoidRequest 废票提交接口
        POST
      • FileUpload 文件上传
        POST
      • SelectBalance 余额查询接口
        POST
    • 关于我们
      • API 能力
      • 商务合作
      • 门户网站
  1. API 参考

Booking 生单接口

POST
/api/new/booking.do
通过调用booking接口,合作方确认占座。
备注:booking依赖于Pricing 接口的调用结果。在调用booking接口之前,必须调用pricing 接口。 若调用间隔时间超过30min,则需重新调用pricing接口获取最新价格和座位后再调用生单接口。

请求参数

Header 参数
Accept-Encoding
string 
必需
使用gzip压缩格式
默认值:
gzip, deflate, br
content-Type
string 
响应格式
必需
默认值:
application/json
appKey
string 
用户账户
必需
默认值:
{{appKey}}
Body 参数application/json
authentication
object 
用户认证信息
必需
sign
string 
签名
必需
appkey + appsecret + timestamp加密后的字符串,加密见附录
timestamp
string 
使用 unix 时间戳
必需
单位:秒
offerId
string 
报价的唯一id
必需
partnerOrderNo
string 
合作方订单号
可选
passengers
string 
加密乘客信息
必需
使用AES对全部内容加密后的字符串,解密后的参数见passengers说明
decodePassengers
array[object (乘客信息) {14}] 
乘客信息
可选
需要加密的乘客信息内容,不需要传输
paxId
integer 
乘客序列号
必需
name
string 
姓名
必需
英文大写LastName/FirstName
姓/名
不可含有空格
paxType
enum<string> 
乘客类型
必需
枚举值:
ADTCHDINF
birthday
string <date>
出生日期
可选
格式:YYYY-MM-dd
>= 10 字符<= 10 字符
正则匹配:
^\d{4}-\d{2}-\d{2}$
gender
enum<string> 
性别
必需
>= 1 字符<= 1 字符
枚举值:
FM
正则匹配:
^[F|M]$
cardNum
string 
证件号码
可选
cardType
enum<string> 
证件类型
可选
枚举值:
IDPPGATWTBHXHY
cardIssuedPlace
string 
证件发行国家
可选
使用IATA国家标准二字代码
cardExpiryDate
string <date>
证件有效期
可选
格式:YYYY-MM-DD
nationality
string 
乘客国籍
可选
使用IATA国家标准二字代码
<= 2 字符
paxEmail
string 
乘客联系邮箱
可选
paxMobile
string 
乘客联系电话
可选
areaCode
string 
国家电话区号
可选
accompaniedPaxId
string 
关联成人的id
可选
当购票乘客含有婴儿或儿童时,关联成人id必填
正则匹配:
^\d*$
agentContact
object 
订单变动联系方式
必需
agentName
string 
姓名
必需
英文大写
LastName/FirstName MiddleName
姓/名
agentEmail
string 
联系人邮箱
可选
mobile
string 
联系人手机号
可选
areaCode
string 
国家电话区号
可选
ancillary
array[object (预定辅营详情) {7}] 
售前辅营生单信息
可选
paxId
string 
乘客id
必需
若购买行李,该项为必填项
segmentIds
array[string]
航段id组合
必需
auxId
string 
辅营id
必需
quantity
number 
该乘客购买件数
必需
auxType
enum<integer> 
辅营类型
必需
枚举值:
12
baggage
array [object {4}] 
辅营行李信息
可选
auxType为 1 必传
seatInfos
array [object {6}] 
辅营选座信息
可选
auxType为 2必传
seriesTraceId
string 
上一个业务请求接口返回的traceId
可选
此字段为开发者选项,FR24通过此traceId追踪并分析合作商的上一个调用接口,方便双方在出现问题时能够快速追踪整条链路。
seriesRsTime
number 
上一个业务请求接口,从请求该接口到获取结果的时长
可选
单位为ms;此字段为开发者选项,FR24通过该时长分析合作商的网络延迟情况,以提升双方的数据质量。
示例
{
  "authentication": {
    "sign": "{{sign}}",
    "timestamp": "{{time}}"
  },
  "offerId": "18599007684923392",
  "partnerOrderNo": null,
  "passengers": "jinbT5NSaaTMnN62Xz88oWjBqNTZayZI0eXz6zHeSioRKzPjFs74NEascfvuWVu1Ol5/cDsGIWWMN51GRxhCwr+OzE4y/or+SlxopJ9qzU2K+G1LRJvzxH7Dy0WTZzBZKVMMoFA/CsMYjAlEoxdUC73GeDqm9tPKsi6hppY3HIqDkoJlqXopT/xFj22pJpDFdPAID2rwcCR3DeSw8Jp2EgsazTxZ+Kt8OiKkmOgNfHWhrxOm+Znyt0ZHcl9TK8GI02HbpBHJjaLjqXVF6bhS2pdzz04iO+F8OSdhObcGKFZILyDYDiC2EwS4O9Uxraf87CBFSDcFMMrbNXZC/rIaEHYmQoRb/4isV9enx9H5rptfJd7gYTjxdCxhFx/eo8Z6kok4FDt6UIGyf0IXqjZ7T+W3VHrIGnAPhMND5/DQkwISpAFvI8lwZ+28dx+miYThDMS8hQujKFDFyyWUXCajTZtTfk1eyys7T7QY3WIO3WbNpav2v7Y0DWGJVr7KgMcU",
  "agentContact": {
    "agentName": "ZHANG/SAN",
    "agentEmail": "34091742@qq.com",
    "mobile": "12456732",
    "areaCode": "CN"
  },
  "seriesTraceId": "verify_NEWAPI250117113637244071144",
  "seriesRsTime": 5320
}

示例代码

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
请求示例请求示例
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://flight-test.flightroutes24.com/api/new/booking.do' \
--header 'Accept-Encoding;' \
--header 'appKey;' \
--header 'content-Type: application/json' \
--data-raw '{
    "authentication": {
        "sign": "",
        "timestamp": "{{time}}"
    },
    "offerId": "18599007684923392",
    "partnerOrderNo": null,
    "passengers": "jinbT5NSaaTMnN62Xz88oWjBqNTZayZI0eXz6zHeSioRKzPjFs74NEascfvuWVu1Ol5/cDsGIWWMN51GRxhCwr+OzE4y/or+SlxopJ9qzU2K+G1LRJvzxH7Dy0WTZzBZKVMMoFA/CsMYjAlEoxdUC73GeDqm9tPKsi6hppY3HIqDkoJlqXopT/xFj22pJpDFdPAID2rwcCR3DeSw8Jp2EgsazTxZ+Kt8OiKkmOgNfHWhrxOm+Znyt0ZHcl9TK8GI02HbpBHJjaLjqXVF6bhS2pdzz04iO+F8OSdhObcGKFZILyDYDiC2EwS4O9Uxraf87CBFSDcFMMrbNXZC/rIaEHYmQoRb/4isV9enx9H5rptfJd7gYTjxdCxhFx/eo8Z6kok4FDt6UIGyf0IXqjZ7T+W3VHrIGnAPhMND5/DQkwISpAFvI8lwZ+28dx+miYThDMS8hQujKFDFyyWUXCajTZtTfk1eyys7T7QY3WIO3WbNpav2v7Y0DWGJVr7KgMcU",
    "agentContact": {
        "agentName": "ZHANG/SAN",
        "agentEmail": "34091742@qq.com",
        "mobile": "12456732",
        "areaCode": "CN"
    },
    "seriesTraceId": "verify_NEWAPI250117113637244071144",
    "seriesRsTime": 5320
}'

返回响应

🟢200OK
application/json
Body
traceId
string 
追溯码
必需
code
string 
状态码
必需
000000 代表成功,其他代表失败
message
string 
状态说明
必需
processingTime
number 
处理时长
必需
单位:ms
>= 0
data
object 
返回的所有数据
必需
当status为(失败)时,内容为空
orderNo
string 
FR24订单号
必需
orderStatus
string 
订单状态
可选
partnerOrderNo
string 
合作方订单号
可选
currency
string 
订单币种
必需
totalPrice
number 
订单总价
必需
总价 = (成人单票价 + 成人单税费 + 服务费)* 成人人数 + (儿童单票价 + 儿童单税费 + 服务费) * 儿童人数 + (婴儿单票价 + 婴儿单税费 + 服务费) * 婴儿人数
offer
object 
订单详情
必需
legs
object (行程信息) 
行程信息
必需
包含了所有航班组合
segments
array [object {16}] 
航段信息
必需
ticketInfo
array [object {5}] 
机票其他信息
必需
payDeadline
string <date-time>
最晚支付时间
必需
格式:YYYY-MM-DDThh:mm,2022-10-21T21:23
voidDeadline
string <date-time>
废票截止时间
可选
格式:YYYY-MM-DDThh:mm,GMT+8
时间仅供参考
passengers
string 
乘客信息
必需
agentContact
object 
订单变动联系方式
必需
ancillary
object (辅营信息) 
辅营信息
可选
tktgAcctInfos
array [object {4}] 
账号密码信息
可选
decodePassengers
object 
乘客信息
可选
不响应,乘客信息解密后的数据结构
splitJoint
boolean 
是否拼接行程
可选
ticketInfo_V2
array [object {3}] 
新票号传输格式
可选
示例
{
  "traceId": "order_NEWAPI250117113939340071145",
  "code": "000000",
  "message": "成功",
  "processingTime": 12051,
  "data": {
    "orderNo": "18599020016177152",
    "orderStatus": "11",
    "partnerOrderNo": "",
    "currency": "CNY",
    "offer": {
      "offerId": "18599007684923392",
      "legId": "1ebb56358b1c617a18a597543feceb77",
      "platingCarrier": "CX",
      "pricePerPax": [
        {
          "paxType": "ADT",
          "baseFare": 581,
          "totalTax": 493,
          "taxBreakdown": [],
          "serviceFee": 10000
        }
      ],
      "cabin": [
        "Y"
      ],
      "fareBasis": [
        "QR21SGAO"
      ],
      "extraInfo": {
        "freeBaggageAllowance": [
          {
            "segmentId": "4453068fd343a3eb89b823fc48cc2cd9",
            "cabinBagPc": "1-e-e",
            "cabinBagSize": "e-e-e",
            "cabinBagWeight": "7-e-e",
            "checkedBagPc": "1-e-e",
            "checkedBagSize": "e-e-e",
            "checkedBagWeight": "e-e-e"
          }
        ]
      },
      "eligibilityFlag": false,
      "eligibilityDetail": null,
      "rules": {
        "refund": [
          {
            "paxType": "ADT",
            "couponStatus": 0,
            "refundPolicy": "airlinePolicyApplied",
            "applicableTime": null,
            "fullRefundAP": null,
            "refundFee": null
          }
        ],
        "change": [
          {
            "paxType": "ADT",
            "couponStatus": 0,
            "changePolicy": "airlinePolicyApplied",
            "applicableTime": null,
            "changeFee": null
          }
        ]
      },
      "productType": null,
      "productTag": {
        "ticketPromise": null,
        "refuseDeadline": null,
        "ticketingTime": null,
        "reschedulePendingTime": null,
        "voluntaryRefundTime": null,
        "involuntaryRefundTime": null,
        "refundCondition": null,
        "reissueCondition": null,
        "voidingCondition": false,
        "voluntaryServiceStandard": null,
        "involuntaryServiceStandard": null,
        "rescheduleProcessingTime": null,
        "productSupplier": null,
        "RBDChangedRisk": false,
        "fareBrand": [
          ""
        ],
        "posArea": [
          null
        ]
      },
      "productSource": "OTH",
      "paymentMethod": null,
      "RBD": [
        "Q"
      ]
    },
    "legs": {
      "legId": "1ebb56358b1c617a18a597543feceb77",
      "segmentIds": [
        "4453068fd343a3eb89b823fc48cc2cd9"
      ]
    },
    "segments": [
      {
        "segmentId": "4453068fd343a3eb89b823fc48cc2cd9",
        "duration": 255,
        "carrier": "CX",
        "flightNo": "636",
        "codeShare": false,
        "operatingCarrier": null,
        "operatingFlightNo": null,
        "aircraftCode": "333",
        "depAirport": "SIN",
        "depTerminal": "4",
        "depTime": "2025-04-15T20:10",
        "arrAirport": "HKG",
        "arrTerminal": "1",
        "arrTime": "2025-04-16T00:25",
        "stopAirport": null,
        "stopDuration": null
      }
    ],
    "tktgAcctInfos": null,
    "ticketInfo": [
      {
        "airlinePnr": "",
        "gdsPnr": "RMIOBA",
        "paxId": "1",
        "paxName": "VJKOX/SBLUE",
        "ticketNo": null
      },
      {
        "airlinePnr": "",
        "gdsPnr": "RMIOBA",
        "paxId": "2",
        "paxName": "ZBI/QHNEA",
        "ticketNo": null
      }
    ],
    "ticketInfo_V2": null,
    "payDeadline": "2025-01-17T19:09",
    "voidDeadline": null,
    "agentContact": {
      "agentName": "Michael/Harris",
      "agentEmail": "n.ngztjow@jvpm.cu",
      "mobile": "18638226812",
      "areaCode": "CN"
    },
    "totalPrice": 22148,
    "ancillary": null,
    "splitJoint": false,
    "passengers": "Jltj0mYeuV8bdPbOE9GS8xZ/rT2cQpNYB2wYkii25078ZZ3UPTmXzI++HdfrT4qfwzH3CXgcCVrSEYrj0XbvWeUv2LskLhPg65YGkap1DeqCV7wlWws8EqK2IN1p54FTtjjWyPKVUxd3oNUoPca6eXL1XM2Rw9F5wi/hYrglEmLFscfxxRp+xJfNAJ9Y3ieinSEvTSMmDf97fX+JoqVyCNPxpOeX0UCHkHbzcyJvxxH6Ku7Ss0lqlXd+QaNwU12g4iyiiJIOYvP9KBqrr9sZzNISBaTjrQvUC7FmTDj+2q8CWKiOZ38QPpD8CmVf5w5dcnMRJC60q61zMvrjAnGitl2vsHjO45mOY2KiBssj09UEJ45oJFBS02rNv4z/9Xa+XDPNePlLhIE/enkBx/wbcJOfPT/xQnuORmIbvBATSM5hSxkftKChXt1P3TW5pggT+qmVnUZIEfOhjtpLHC/iUzwRB4mRiWENsviuXHOBchGA0OTjeD9NlA3EJqaPBpqovlk7HjWrHyAcx2VIKyc0add4lFax2bPVgaYY04XGmq+67Dgh+fTUByhwIJPVa0M6i5Fmb9f92ivBok6fVuxWF5QNH/G95e0uyH9RYJiT8MRKrOo1A42BWL0p7FUmbtnQpBqpj9gJ60Aqz7Dqd+QuxT53U+7pBaeVlqRHOzVxLVhduTpUKhb+AG6dQF332cfnS/ISQWt6Gmoe8U/elPecXC/qsOk/ao4Vwz5oJxRALXnp+wl8xj+U5UjbPspgeOzXEWXPgsc27FQCItxlgAYs5xx6bS84TCi+KDT3mNI0ioU="
  }
}
修改于 2025-02-12 08:58:06
上一页
Pricing 校验接口
下一页
Ticketing 申请出票接口
Built with