Document Overview

Welcome to use the FareMarket interface to support your ticket sales business. We will continue to update the documentation to ensure that more ticket sales scenarios are met. Accurate and easy-to-use documentation is our pursuit. If you have any questions or uncertainties, please contact AeroHub and we will be happy to work with you to refine the documentation.

Integration Process

Please follow the development process below and ensure that all interfaces are fully developed.

Endpoint URLs

IP Whitelist

To protect the security of your service, our API uses an IP whitelisting mechanism to ensure that only authorized IP addresses can access it. If you need to access our API from a specific IP address or range of IP addresses, you will need to provide those addresses to us for whitelisting.

  • You can provide the IP address in two formats:
  • CIDR format: For example, 209.85.231.104/24, this format can represent an IP address range.
  • Dedicated IP address: For example, 209.85.231.104, this format represents a specific IP address.
    Please carefully determine which IP addresses or address ranges need to be added to the whitelist to protect the security of your service. Please only provide IP addresses or address ranges that are necessary to access our API.

Encryption

  • Encryption mode: AES/CBC/PKCS5Padding, BASE64 transcoding after AES encryption, the key must be 128 bits

  • Crypto initialization vector: empty byte array of length 16

  • Example key (first 16 digits of vendor APIKEY): xxxnv1b653H8pTKf

  • original:
    {"requestId": "test", "tripType": 1, "sessionId": "11fe29ed46f8c4624bd2b12c9ec85442mwtze5pj", "orderNo": "1697779645", "passengers": [{"name": "QIN/GANGFENG", "ageType": 0, "birthday": "19890910", "gender": "M", "cardNo": "", "cardType": "", "cardIssuePlace": "CN", "cardExpired": "20201125", "nationality": "CN"}], "contact": {"fullName": "KAYSEN/XU", "address": "xxx Building, No.99 Fuquan Road, Shanghai, China", "postCode": "200335", "email": "[xxx@test.tech](mailto:xxx@test.tech)", "mobile": "13000000000", "useGuestMail": true}, "routing": {"data": "eyJzIjogIjExZmUyOWVkNDZmOGM0NjI0YmQyYjEyYzllYzg1NDQyIiwgIm0iOiAiRERXRUIiLCAicHQiOiB7fSwgImNsIjogeyJmYyI6IFsiWSJdLCAicmMiOiBbXX0sICJwaXQiOiAiIn0=", "fromSegments": [{"marketingCarrier": "DD", "depAirport": "HKT", "depTime": "202310301125", "arrAirport": "DMK", "arrTime": "202310301250", "seatClass": "W", "seatGrade": "Y", "flightNumber": "DD525", "codeShare": false, "aircraftCode": "320", "operatingCarrier": "", "operatingFlightNo": "", "segmentNo": 0, "stopCities": ""}], "retSegments": []}, "passengerBaggages": [{"passengerName": "QIN/GANGFENG", "payBaggages": []}]}

  • After encryption:

X6NJgTJi7+sf63Vq3NNH0Xh5pW7sbIpzxEL56vipvC+Lt3cord8Truu13ELyUaZomeH53cbDIEEbW5UYaIXJywWvgN7aO/96q4FmHjNL54jwzHZgWniT5QZXQkLfIXl7aRZAXaOdbEKNqdsZRU4sV9ROoYtnwtO71Gp0yEU56NnGWy7Vx4FlrW5wcTRA1NsVBbZ1uSNZ8aUaJSNbgEV5DwW6+pBf8oRl6PfNM6TgnFfauV8b1TKUTK27FSpRWAZS3wTcxtPaIj3y15/HvTMkeG3w/rlNIo7IrMdRwto5wy/vpoC6jRjFrrJelDOGQ4uWOEXE6jK4jQxQz9uQe4rKCB1Xp/XIdk8ORiwOUGfERznfPcfqcDE0wVYh2iVytNnA5CukOCfyfxvpXiHBNIWa/4vmmLHG9LmiGZKioNfJNKYHBCsH8k5aC0isP3jRgrC1QGD6bAiEg7MBWU1AasPlAWjwgUCmH2PgC8+Uj/j7BYKR2McFhu3c4yAFfk4fIKWx33YXvOtMTRL/Httbjtm2fE5BpWOYqcJybNWlOBIfNGN+Zts/QQT/VjXzn1GqEYvSGfoNolc7wEngM55Uz71BtYPKJctOzorZcUNiLUKxLcK7wNxmO6v0pAnzQa1YmYME++dNuTD9fE6dtuBastyOj555OX+r61VAy3a/xwXcSVXldxonqHBKszpFS4O0YA2VDj/Hk+FlDtz3vDJQrSqYTih2JWDqW9NRWr1l8fIvF62HZEQjL4rpnVWpx1cc9ts+jNbnLvCohseWrMjLrcfET+Jx3s6LOv+x8kaBditIWjwCgeWs9cmTM69+SIh2Gvqx5D1dmAHcefTwiuAKQ3oVxE0P61zH7OMPsQrWutoSjp1cficsUh6eQwG46zoPhdjNBR2S+if5NBPJ6bijqPjyFTDtg7GqCU27bYOW8kHURM4BQLdhMfUiFTXsCehaN+sJrYCRKmyP2mLMdqQ3DwcYmNOboY2c2eNIsbMbX2B09ttoiMUYEp+z0nMhgA0WZlgyEWfAaPxYYuz8qYS+8deDC5kaYstFIO+nc6OaEofHYdA5lflJ9KLtDJIRL2tb0knUy9+kE/eHZM/3aA/PyqeTp1Itzza54XphfSFgB/jGYSmwPHv2+Iwmvm0/ChPlYe7bcK1zQe55zRt5tljzir+hV3tt57MqQ4igZkl3zXT7d/eWKGGRwbRpi7kpyDPD/GO269gHTTCGsFtHUKj7k9qCHhhmVkofnBX379EGH50MIgRc+nP0pTTfPCSxIZkJsDvajjqSvY+curhOvxTEJ1URTmFe6/LoVsr4mgPY489HlCzngSInwOhCzNxzmHNKwo938fxWhX5JKBR7QhixvobMWgPS/+DGY8Shjb95Z7RJlzD1FNwyuFQC+NnzbQnKMaeHMIFPbmczG9wI5Qge7BK+c8zFaQ85OFWAtEBcLpOUlQHWoKzzs/vToJoDAljr7gqhBCAzxWqPKpNrhjisjVjy7Q==

Market Errors:

marketErrorCode marketErrorMsg
200 Successful
400 Failed
1002 The route has no pricing available
1003 Airline Route Not Covered (Flight Number Search)
1004 No Available Seats for Specified Flight Number (Flight Number Search)
5013 There are no quotes available for SSR.
5102 Quote data cache has expired
5104 Policy not found
5105 Invalid request
5107 Passenger not allowed
5109 No Available Seats in Requested Class (Verify)
5110 No Available Seats in Requested Class (Order)
5111 No Available Seats in Requested Class (PayValid)
5113 Promo changed
5117 Metadata not found
5118 System error
5119 Route not supported
5120 Route not in whitelist
5121 Route in blacklist
5122 No policy for route
5123 Search date not supported
5124 No method supported
5125 No carrier supported
5126 Trip type not supported
5127 Over max waiting time
5128 Request Does Not Meet Airline Policy Requirements

Custom package name definition instructions:

Package code Package type Naming conventions and examples
AHBasic The lowest price product package, the requirement cannot be non-standard products The package name is empty or use AHBasic directly.
AHPremium Two-cabin product package Use AHPremium as the package name
AHBag Luggage product package Use package CODE + baggage kilogram as the package name: AHBag15 means the package baggage kilogram is 15 kilograms
AHNS Non-standard product package Use AHNS as the package name
Author:AeroHub  Create time:2023-07-10 19:09
Last editor:AeroHub  Update time:2026-10-20 11:28