FR24 OpenAPI
  1. API Reference
FR24 OpenAPI
  • FR24_API_V2.0
    • Guides
      • API Work Flow
      • Introduction
      • Appendix
      • Error Code
    • API Reference
      • 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
    • About us
      • API capability
      • Business Cooperation
      • Portal
  1. API Reference

Booking

POST
/api/new/booking.do
By calling the booking API, partner confirms the order.
Note: Booking API depends on the calling result of Pricing API. Pricing API must be called before the Booking API can be called. If the calling interval is more than 30min, the Pricing API needs to be called again to obtain the latest price and seat availability, then call Booking API.

Request

Header Params
Accept-Encoding
string 
required
Use gzip compression format
Default:
gzip, deflate, br
content-Type
string 
required
Response format
Default:
application/json
appKey
string 
required
User account
Default:
{{appKey}}
Body Params application/json
authentication
object 
User authentication
required
sign
string 
Signature
required
The encrypted string of appkey, appSecret and timestamp.Refer to Appendix I
timestamp
string 
Unix timestamp
required
measuring in Second
offerId
string 
Offer ID of quotation
required
partnerOrderNo
string 
Partner’s order number
optional
passengers
string 
Passenger information
required
Use AES to encrypt all the characters. Decrypted parameters refer to decodePassengers.
decodePassengers
array[object (Passenger information) {14}] 
Passenger information
optional
Need to encrypt the content of passenger information, do not need to transmit
paxId
integer 
Passenger serial number
required
name
string 
Passengers’ Name
required
English capital LastName/FirstNameSpaces are not permitted
paxType
enum<string> 
Passenger Type
required
Allowed values:
ADTCHDINF
birthday
string <date>
Date of birth
optional
format:YYYY-MM-dd
>= 10 characters<= 10 characters
Match pattern:
^\d{4}-\d{2}-\d{2}$
gender
enum<string> 
Gender
required
>= 1 characters<= 1 characters
Allowed values:
FM
Match pattern:
^[F|M]$
cardNum
string 
Document number
optional
cardType
enum<string> 
Type of document
optional
Allowed values:
IDPPGATWTBHXHY
cardIssuedPlace
string 
Document issued country
optional
code by IATA
cardExpiryDate
string <date>
Card expiry date
optional
format:YYYY-MM-DD
nationality
string 
Nationality
optional
code by IATA
<= 2 characters
paxEmail
string 
Passenger’s email
optional
paxMobile
string 
Passenger’s mobile number
optional
areaCode
string 
Passenger’s telephone area code
optional
accompaniedPaxId
string 
Need to record accompanied adult’s id
optional
The accompanied adult’s id is required when the ticketed passenger is an infant or child.
Match pattern:
^\d*$
agentContact
object 
Contact information for order changes
required
agentName
string 
Name
required
English capital LastName/FirstName
agentEmail
string 
Contact email
optional
mobile
string 
Contact the phone number
optional
areaCode
string 
Telephone area code
optional
ancillary
array[object (The content of ancillary pre-sales) {7}] 
The content of ancillary pre-sales
optional
paxId
string 
Passenger ID
required
segmentIds
array[string]
Combination of segment IDs
required
auxId
string 
Ancillary ID
required
quantity
number 
purchased pieces
required
auxType
integer 
required
Types of Ancillary Sales 1. Baggage 2. Seat Selection 3. Meals 4. Check-in
baggage
array [object {4}] 
Ancillary baggage information
optional
Mandatory when auxType is 1.
seatInfos
array [object {6}] 
Ancillary seat selection information
optional
Mandatory when auxType is 2.
seriesTraceId
string 
The traceId returned by the last service request interface
optional
This field is a developer option. FR24 uses this traceId to track and analyze the last call interface of the partner, so that both parties can quickly track the entire link when problems occur.
seriesRsTime
number 
The last service request interface, the time from requesting the interface to obtaining the result, in ms
optional
This field is a developer option. FR24 uses this time to analyze the partner's network delay to improve the data quality of both parties.
Example
{
  "authentication": {
    "sign": "{{sign}}",
    "timestamp": "{{time}}"
  },
  "offerId": "15803139091927040",
  "partnerOrderNo": null,
  "passengers": "xEmzT/4wz4i8kCMIFwNpRvYuIndFLC3O1g8w5fCFU31hxZXhHGkPJX7MT0C/8JIschPAshsfiBIwX7j+5b4iwuv9uNJXCTbs4DNdJMQSkqd4rGv7Ap7Tz0xEVwaLadcM+fK/vglFI48feimxlCtMAcfe7YJ8Uwr9sxHvNc2bFg8QO120TytClhiP5LZjMawlkmI+mUVsnppfPFgdxLYplontWGF6euXIhgYtrUigRDEQAf+jefsxYrw90QdDll+yx0gBK3IN3R7kCgzBKCPU6/G70z9ssafAe8af/mfq2EsbXh5hUieMf3VlN6kth3aENnhtr32Go8CE0MdCt5ix9fR1zUtORcGPTeilc9xWQNS7h6T2ZCxZhkVIfJ0FMkfW5Nq5/uNzY7DDm5P3xVz++f4n31kH64UhOs1Z7FhtLBcQlpneEN4eQtNcS+SEwaWovZoTA3dsrZv6rijXn2p4j6YKIDZsdVGh2yeObOPR9RQp0XjwBAVbAtPGSICIozPJXlUkYUxzfZBVa8kzI3bS8RAr5jUsBWPYf2OynjD1/GZAt5LDFLUfO8iC81KxfG3fDGjmsDNXb/17dXLazC56J3MqIok3eOYpqMmLuuVb71B6iJNLyLo0RMD7xC6b7mfmjl5/KmzahBiAqYIC0eTfxkV//XX+wvdRVgdRl8I7HyhG56mYrri/lDZosZKWpYPmhk/tDoJVdFD07UdfaYllS/DjXCtIS3+0KyKqoCHdCOe8rYo+HB04wUNp0fOJGFBtrfJFL97BcByejNt9ltpp7ecH4SvcHACNG1Z+vYzmSpxq8Efi4tsnZOd4bbfSX2PadcXjUGoXP2mQOYNBCInsfadtx9Jf7ItYjITIOXbSedNmaSaBpChxyArN6sK1PEXejrp/9Xn9I1N6sTCRbGZzNagY3O9k+0vzERxrGw2IEd/FkgstsLiBccX5PnYfJwQibpLSmW8CxND2wmQPaV5VTJmUz2u4j5q97/A0oFNHl23qBt6+C0GYku9aw/13RaL6JEqSUeU3sfWqfzIP8DI3awdc7Ej62FgySuM2/PlEgI5kV949AuL7BaBbC2dK8K053Ynf2uWTHlT7BEMr+Vn/9+bY3dh3l3PeSHG0c1hN2FHOYC6LPu2s7gxgOy3fAe1kXsBa0FFQIwpQO2qjPYnXiQl9cUEwEM0YrsbTAZdJS2OntdYPzDMSX4TjexlAUK5VXl72mu+YipdLzKnlLboXtRj9D5dRNzSZw52SZPI/BEJbOC3vrqRH7F9RFBrUTbspoM+waR87W7pPtpwEdKzqOqXISKQr9iAeUvkI9SwvBsxkvqWr1t5A1ay5ir3ETpmk1mgUdWYM5SU6hssBHMMz5Ve3CLzbxoXDtYRVYPr/d0w=",
  "agentContact": {
    "agentName": "ZHANG/SAN",
    "agentEmail": "3425003@qq.com",
    "mobile": "agent_mobile",
    "areaCode": "CN"
  },
  "seriesTraceId": "price_202410101503481394",
  "seriesRsTime": 5
}

Request samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
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": "15803139091927040",
    "partnerOrderNo": null,
    "passengers": "xEmzT/4wz4i8kCMIFwNpRvYuIndFLC3O1g8w5fCFU31hxZXhHGkPJX7MT0C/8JIschPAshsfiBIwX7j+5b4iwuv9uNJXCTbs4DNdJMQSkqd4rGv7Ap7Tz0xEVwaLadcM+fK/vglFI48feimxlCtMAcfe7YJ8Uwr9sxHvNc2bFg8QO120TytClhiP5LZjMawlkmI+mUVsnppfPFgdxLYplontWGF6euXIhgYtrUigRDEQAf+jefsxYrw90QdDll+yx0gBK3IN3R7kCgzBKCPU6/G70z9ssafAe8af/mfq2EsbXh5hUieMf3VlN6kth3aENnhtr32Go8CE0MdCt5ix9fR1zUtORcGPTeilc9xWQNS7h6T2ZCxZhkVIfJ0FMkfW5Nq5/uNzY7DDm5P3xVz++f4n31kH64UhOs1Z7FhtLBcQlpneEN4eQtNcS+SEwaWovZoTA3dsrZv6rijXn2p4j6YKIDZsdVGh2yeObOPR9RQp0XjwBAVbAtPGSICIozPJXlUkYUxzfZBVa8kzI3bS8RAr5jUsBWPYf2OynjD1/GZAt5LDFLUfO8iC81KxfG3fDGjmsDNXb/17dXLazC56J3MqIok3eOYpqMmLuuVb71B6iJNLyLo0RMD7xC6b7mfmjl5/KmzahBiAqYIC0eTfxkV//XX+wvdRVgdRl8I7HyhG56mYrri/lDZosZKWpYPmhk/tDoJVdFD07UdfaYllS/DjXCtIS3+0KyKqoCHdCOe8rYo+HB04wUNp0fOJGFBtrfJFL97BcByejNt9ltpp7ecH4SvcHACNG1Z+vYzmSpxq8Efi4tsnZOd4bbfSX2PadcXjUGoXP2mQOYNBCInsfadtx9Jf7ItYjITIOXbSedNmaSaBpChxyArN6sK1PEXejrp/9Xn9I1N6sTCRbGZzNagY3O9k+0vzERxrGw2IEd/FkgstsLiBccX5PnYfJwQibpLSmW8CxND2wmQPaV5VTJmUz2u4j5q97/A0oFNHl23qBt6+C0GYku9aw/13RaL6JEqSUeU3sfWqfzIP8DI3awdc7Ej62FgySuM2/PlEgI5kV949AuL7BaBbC2dK8K053Ynf2uWTHlT7BEMr+Vn/9+bY3dh3l3PeSHG0c1hN2FHOYC6LPu2s7gxgOy3fAe1kXsBa0FFQIwpQO2qjPYnXiQl9cUEwEM0YrsbTAZdJS2OntdYPzDMSX4TjexlAUK5VXl72mu+YipdLzKnlLboXtRj9D5dRNzSZw52SZPI/BEJbOC3vrqRH7F9RFBrUTbspoM+waR87W7pPtpwEdKzqOqXISKQr9iAeUvkI9SwvBsxkvqWr1t5A1ay5ir3ETpmk1mgUdWYM5SU6hssBHMMz5Ve3CLzbxoXDtYRVYPr/d0w=",
    "agentContact": {
        "agentName": "ZHANG/SAN",
        "agentEmail": "3425003@qq.com",
        "mobile": "agent_mobile",
        "areaCode": "CN"
    },
    "seriesTraceId": "price_202410101503481394",
    "seriesRsTime": 5
}'

Responses

🟢200OK
application/json
Body
traceId
string 
Traceability code
required
traceId can help locate problems when problems occur between partners and FR24.
code
string 
Status code
required
000000 means success, others mean failure.
message
string 
Error code message
required
processingTime
number 
Processing time
required
measuring in ms
>= 0
data
object 
All the data returned according to the Request
required
If code returns failure, data would be empty.
orderNo
string 
FR24 Order number
required
orderStatus
string 
Order status
optional
11, Successful Bookings 12, Ticketing Requested 13, Ticketing Completed 14, Awaiting Confirmation 15, Booking Canceled
partnerOrderNo
string 
Partner order number
optional
currency
string 
Order currency
required
totalPrice
number 
Total price of the order
required
offer
object 
Order details
required
legs
object (Itinerary information) 
Legs information
required
returns all flight combinations
segments
array [object {16}] 
Segment information
required
ticketInfo
array [object {5}] 
Other ticket information
required
payDeadline
string <date-time>
Payment deadline
required
YYYY-MM-DDThh:mm. (GMT+8)The order must be paid before the time, otherwise the order will be canceled.
voidDeadline
string <date-time>
Void deadline
optional
YYYY-MM-DDThh:mm. (GMT+8)The tickets can be voided before the time. Time is for reference only.
passengers
string 
Passenger information
required
agentContact
object 
Contact information for order changes
required
ancillary
object (Ancillary information) 
Ancillary information
optional
tktgAcctInfos
array [object {4}] 
Account and password information, used to log in to the airline's official website
optional
This field is optional. (If there is only one account and password, the flight segments and passengers with the same account and password are placed in the same list)
decodePassengers
object 
Passenger information
optional
No response, passenger information decrypted after the data structure
splitJoint
boolean 
Whether it is a spliced trip
optional
ticketInfo_V2
array [object {3}] 
optional
Examples
{
  "traceId": "order_NEWAPI2309111727001540916",
  "code": "000000",
  "message": "success",
  "processingTime": 413,
  "data": {
    "orderNo": "15803203776942080",
    "orderStatus": "11",
    "partnerOrderNo": "",
    "currency": "CNY",
    "offer": {
      "offerId": "15803200840142848",
      "legId": "55623c5bf92ccd6d3cf30b543c0bd5ad",
      "platingCarrier": "IJ",
      "pricePerPax": [
        {
          "paxType": "ADT",
          "baseFare": 2316,
          "totalTax": 1982,
          "taxBreakdown": [],
          "serviceFee": null
        }
      ],
      "cabin": [
        "Y"
      ],
      "fareBasis": [
        null
      ],
      "extraInfo": {
        "freeBaggageAllowance": [
          {
            "segmentId": "d50b31d910612e8edb45b9466649a3a3",
            "cabinBagPc": "e-e-e",
            "cabinBagSize": "e-e-e",
            "cabinBagWeight": "e-e-e",
            "checkedBagPc": "e-e-e",
            "checkedBagSize": "e-e-e",
            "checkedBagWeight": "20-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": "AAA",
      "productTag": {
        "ticketPromise": 0,
        "refuseDeadline": 0,
        "ticketingTime": 60,
        "reschedulePendingTime": 240,
        "voluntaryRefundTime": 21600,
        "involuntaryRefundTime": 21600,
        "refundCondition": 0,
        "reissueCondition": 0,
        "voidingCondition": false,
        "voluntaryServiceStandard": 2,
        "involuntaryServiceStandard": 1,
        "RBDChangedRisk": false,
        "fareBrand": [
          "basic economy^full flex",
          "basic economy",
          ""
        ],
        "posArea": [
          "US",
          "CN"
        ]
      },
      "productSource": "OTH",
      "paymentMethod": null,
      "RBD": [
        "K"
      ]
    },
    "legs": {
      "legId": "55623c5bf92ccd6d3cf30b543c0bd5ad",
      "segmentIds": [
        "d50b31d910612e8edb45b9466649a3a3"
      ]
    },
    "segments": [
      {
        "segmentId": "d50b31d910612e8edb45b9466649a3a3",
        "duration": 142,
        "carrier": "IJ",
        "flightNo": "5817",
        "codeShare": false,
        "operatingCarrier": null,
        "operatingFlightNo": null,
        "aircraftCode": "333",
        "depAirport": "SIN",
        "depTerminal": null,
        "depTime": "2023-11-15T00:25",
        "arrAirport": "HKG",
        "arrTerminal": null,
        "arrTime": "2023-11-15T02:47",
        "stopAirport": null,
        "stopDuration": null
      }
    ],
    "ticketInfo": [
      {
        "airlinePnr": null,
        "gdsPnr": "MNGG32",
        "paxId": "1",
        "paxName": "RING/BIN",
        "ticketNo": null
      },
      {
        "airlinePnr": null,
        "gdsPnr": "MNGG32",
        "paxId": "2",
        "paxName": "BING/LIN",
        "ticketNo": null
      }
    ],
    "payDeadline": "2023-09-11T22:57",
    "voidDeadline": null,
    "agentContact": {
      "agentName": "ZHANG/SAN",
      "agentEmail": "agent_email",
      "mobile": "agent_mobile",
      "areaCode": "CN"
    },
    "totalPrice": 8596,
    "ancillary": null,
    "splitJoint": false,
    "passengers": "xEmzT/4wz4i8kCMIFwNpRvYuIndFLC3O1g8w5fCFU31hxZXhHGkPJX7MT0C/8JIschPAshsfiBIwX7j+5b4iwuv9uNJXCTbs4DNdJMQSkqd4rGv7Ap7Tz0xEVwaLadcM+fK/vglFI48feimxlCtMAcfe7YJ8Uwr9sxHvNc2bFg8QO120TytClhiP5LZjMawlkmI+mUVsnppfPFgdxLYplontWGF6euXIhgYtrUigRDEQAf+jefsxYrw90QdDll+yx0gBK3IN3R7kCgzBKCPU6/G70z9ssafAe8af/mfq2EsbXh5hUieMf3VlN6kth3aENnhtr32Go8CE0MdCt5ix9fR1zUtORcGPTeilc9xWQNS7h6T2ZCxZhkVIfJ0FMkfW5Nq5/uNzY7DDm5P3xVz++f4n31kH64UhOs1Z7FhtLBcQlpneEN4eQtNcS+SEwaWovZoTA3dsrZv6rijXn2p4j6YKIDZsdVGh2yeObOPR9RQp0XjwBAVbAtPGSICIozPJXlUkYUxzfZBVa8kzI3bS8RAr5jUsBWPYf2OynjD1/GZAt5LDFLUfO8iC81KxfG3fDGjmsDNXb/17dXLazC56J3MqIok3eOYpqMmLuuVb71B6iJNLyLo0RMD7xC6b7mfmjl5/KmzahBiAqYIC0eTfxkV//XX+wvdRVgdRl8I7HyhG56mYrri/lDZosZKWpYPmhk/tDoJVdFD07UdfaYllS/DjXCtIS3+0KyKqoCHdCOe8rYo+HB04wUNp0fOJGFBtrfJFL97BcByejNt9ltpp7ecH4SvcHACNG1Z+vYzmSpxq8Efi4tsnZOd4bbfSX2PadcXjUGoXP2mQOYNBCInsfadtx9Jf7ItYjITIOXbSedNmaSaBpChxyArN6sK1PEXejrp/9Xn9I1N6sTCRbGZzNagY3O9k+0vzERxrGw2IEd/FkgstsLiBccX5PnYfJwQibpLSmW8CxND2wmQPaV5VTJmUz2u4j5q97/A0oFNHl23qBt6+C0GYku9aw/13RaL6JEqSUeU3sfWqfzIP8DI3awdc7Ej62FgySuM2/PlEgI5kV949AuL7BaBbC2dK8K053Ynf2uWTHlT7BEMr+Vn/9+bY3dh3l3PeSHG0c1hN2FHOYC6LPu2s7gxgOy3fAe1kXsBa0FFQIwpQO2qjPYnXiQl9cUEwEM0YrsbTAZdJS2OntdYPzDMSX4TjexlAUK5VXl72mu+YipdLzKnlLboXtRj9D5dRNzSZw52SZPI/BEJbOC3vrqRH7F9RFBrUTbspoM+waR87W7pPtpwEdKzqOqXISKQr9iAeUvkI9SwvBsxkvqWr1t5A1ay5ir3ETpmk1mgUdWYM5SU6hssBHMMz5Ve3CLzbxoXDtYRVYPr/d0w="
  }
}
Modified at 2025-04-18 04:11:00
Previous
Pricing
Next
Ticketing
Built with