{"id":11368,"date":"2026-04-07T19:09:59","date_gmt":"2026-04-07T13:39:59","guid":{"rendered":"https:\/\/beta-next.traveltekpro.com\/blog\/?p=11368"},"modified":"2026-04-07T19:14:19","modified_gmt":"2026-04-07T13:44:19","slug":"amadeus-quick-connect-aqc-api-integration-guide","status":"publish","type":"post","link":"https:\/\/beta-next.traveltekpro.com\/blog\/amadeus-quick-connect-aqc-api-integration-guide\/","title":{"rendered":"Amadeus Quick Connect (AQC) API Integration Guide"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"11368\" class=\"elementor elementor-11368\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6864a231 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6864a231\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7ef4641f\" data-id=\"7ef4641f\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1e195638 elementor-widget elementor-widget-text-editor\" data-id=\"1e195638\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h1><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">Amadeus Quick Connect (AQC) API Integration<\/span><span style=\"font-weight: 400;\"><br \/><\/span><span style=\"font-weight: 400;\">The Complete Developer &amp; Business Guide (2026)<\/span><\/span><\/h1><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">If you&#8217;re building a flight booking engine, an OTA (Online Travel Agency), or a corporate travel portal, chances are you&#8217;ve come across <\/span><b>Amadeus Quick Connect (AQC)<\/b><span style=\"font-weight: 400;\">. It promises enterprise-grade GDS connectivity, real-time airline inventory, and a faster path to market than legacy SOAP\/XML-based integrations.<\/span><\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">But what exactly is AQC? How does it differ from Amadeus Self-Service APIs? What does the integration lifecycle actually look like from authentication to ticket issuance? And what are the common pitfalls that burn development teams?<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">This guide covers all of it. No fluff, no marketing speak, just a thorough, practitioner-focused breakdown.<\/span><\/p><h2><span style=\"color: #000080;\"><b>What is Amadeus Quick Connect?<\/b><\/span><\/h2><p><span style=\"font-weight: 400; color: #000000;\"><span style=\"color: #000080;\"><a style=\"color: #000080;\" href=\"https:\/\/amadeus.com\/en\/travel-sellers\/products\/quick-connect\" target=\"_blank\" rel=\"noopener\"><strong>Amadeus Quick Connect<\/strong>\u00a0 <\/a><\/span>is a simple end-to-end API that provides access to superior flight offers, adapted to external experts with a traveller-oriented REST\/JSON interface.<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">As part of the broader Amadeus airline distribution framework, AQC enables direct REST-based GDS connectivity, giving travel businesses full control over the airline booking lifecycle from availability search and pricing to PNR management, ancillary services, ticketing, and cancellations.<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">Unlike traditional Amadeus integrations that relied on SOAP\/XML messaging (cryptic, verbose, and maintenance-heavy), AQC exposes a modern REST\/JSON interface. This makes it dramatically easier for software developers to work with while still delivering the full depth and reliability of enterprise GDS connectivity.<\/span><\/p><p><span style=\"color: #000000;\"><b>What AQC gives you access to:<\/b><\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">500+ full service and low-cost airlines from around the world, including NDC and Low-Cost content on top of standard Full Service carriers<\/span><a style=\"color: #000000;\" href=\"https:\/\/amadeus.com\/en\/travel-sellers\/products\/quick-connect\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">\u00a0<\/span><\/a><\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Real-time flight availability and live seat inventory<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Branded fare families (Basic Economy, Flex, Business, etc.)<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Ancillary services \u2014 paid baggage, seat selection, meals<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Full booking lifecycle: search \u2192 price \u2192 book \u2192 ticket \u2192 manage \u2192 cancel<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">PNR (Passenger Name Record) creation and management<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">Free and chargeable seats available through a seat map widget or through API, with content from more than 80 airlines<\/span><a style=\"color: #000000;\" href=\"https:\/\/amadeus.com\/en\/travel-sellers\/products\/quick-connect\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">\u00a0<\/span><\/a><\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Automated ticket issuance post-payment<br \/><br \/><\/span><\/li><\/ul><p><span style=\"font-weight: 400; color: #000000;\">With Quick Connect, your API connection will allow your application, website, or integration into your current IMS to be up and running in 4 to 6 weeks. Whatever the air content, the API handles all the orchestration, organizing the actions sequencing itself.\u00a0<\/span><\/p><h2><span style=\"color: #000080;\"><b>AQC vs. Self-Service APIs vs. Enterprise APIs<\/b><\/span><\/h2><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">One of the most common sources of confusion is understanding where AQC fits in Amadeus&#8217;s product lineup. Amadeus offers three main integration tiers: Self-Service APIs for developers who want to build applications with standard travel functionality; Enterprise APIs for large-scale implementations with custom requirements; and Quick Connect, a streamlined solution for rapid integration with pre-built connections.<\/span><a style=\"color: #000000;\" href=\"https:\/\/oneclicktraveltech.com\/centerofexcellence\/gds\/amadeus-quick-connect-api-guide\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">\u00a0<\/span><\/a><\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">Here&#8217;s a clear side-by-side comparison:<\/span><\/p><p><span style=\"color: #000000;\"><b>Self-Service APIs<\/b><\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Target: Startups, POC builds<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Content: Public fares only<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Integration: REST\/JSON<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Negotiated fares: No<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Time to market: Days to weeks<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Onboarding: Fully self-service<br \/><br \/><\/span><\/li><\/ul><p><span style=\"color: #000000;\"><b>Quick Connect (AQC)<\/b><\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Target: OTAs, travel agencies, mid-to-large platforms<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Content: GDS + NDC + LCC content<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Integration: REST\/JSON<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Negotiated fares: Yes (via IATA\/agency agreements)<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Time to market: 4\u20136 weeks<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Onboarding: Assisted by Amadeus team<br \/><br \/><\/span><\/li><\/ul><p><span style=\"color: #000000;\"><b>Enterprise APIs<\/b><\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Target: Large enterprises, airlines<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Content: Full custom access<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Integration: SOAP\/XML or REST<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Negotiated fares: Yes<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Time to market: 3\u20136 months<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Onboarding: Dedicated project team<br \/><br \/><\/span><\/li><\/ul><p><span style=\"font-weight: 400; color: #000000;\">The Self-Service APIs rely on modern REST architecture and JSON format. As of 2026, the Self-Service suite comprises 30 APIs, organized into five categories. However, the catalog provides access only to public fares private or negotiated rates are available exclusively through the Enterprise tier.<\/span><\/p><h2><span style=\"color: #000080;\"><b>Who Should Use AQC?<\/b><\/span><\/h2><p><span style=\"font-weight: 400; color: #000000;\">Amadeus Quick Connect Flight API integration allows travel agencies, online travel agencies (OTAs), and travel startups to connect their platforms with the Amadeus Global Distribution System. Through this integration, travel websites can access global airline inventory, retrieve live fares, validate pricing, and automate flight bookings.<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">AQC is purpose-built for:<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"color: #000000;\"><b>OTAs<\/b><span style=\"font-weight: 400;\"> that need real-time GDS connectivity and full booking automation<\/span><\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"color: #000000;\"><b>Corporate Travel Management Companies (TMCs)<\/b><span style=\"font-weight: 400;\"> managing complex itineraries with policy enforcement<\/span><\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"color: #000000;\"><b>Travel startups<\/b><span style=\"font-weight: 400;\"> that have moved past the POC stage and need production-grade inventory<\/span><\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"color: #000000;\"><b>Tour operators and travel aggregators<\/b><span style=\"font-weight: 400;\"> bundling flights with hotels and activities<\/span><\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"color: #000000;\"><b>Technology companies<\/b><span style=\"font-weight: 400;\"> building white-label travel booking engines for clients<\/span><\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"color: #000000;\"><b>Travel Management Systems (TMS)<\/b><span style=\"font-weight: 400;\"> integrating airline booking into expense or HR platforms<br \/><br \/><\/span><\/span><\/li><\/ul><p><span style=\"color: #000000;\"><b>When AQC is NOT the right fit:<\/b><\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">If you&#8217;re just prototyping \u2192 use Self-Service APIs (free sandbox, simpler onboarding)<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">If you need custom airline-direct integrations \u2192 Enterprise APIs are more appropriate<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">If your transaction volume is very low \u2192 the economics may not work in your favour<br \/><br \/><\/span><\/li><\/ul><h2><span style=\"color: #000080;\"><b>Prerequisites Before You Start<\/b><\/span><\/h2><p><span style=\"font-weight: 400; color: #000000;\">Before you write your first AQC API call, make sure these are in order.<\/span><\/p><p><span style=\"color: #000000;\"><b>Business prerequisites:<\/b><\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">IATA accreditation or affiliation with an IATA-accredited consolidator (required for ticketing)<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">BSP (Billing and Settlement Plan) membership or access through a host agency<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">An Amadeus commercial agreement \u2014 AQC is not self-signup; you work with an Amadeus sales and implementation team<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">A defined use case: B2C, B2B, or both, and whether you need NDC or LCC content<br \/><br \/><\/span><\/li><\/ul><p><span style=\"color: #000000;\"><b>Technical prerequisites:<\/b><\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">Reliable cloud infrastructure, secure API gateways, scalable backend systems, and high-performance databases<\/span><a style=\"color: #000000;\" href=\"https:\/\/www.codemechsolutions.com\/blog\/amadeus-api-integration-guide\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">\u00a0<\/span><\/a><\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Backend developers comfortable with REST APIs, OAuth2, and JSON<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Understanding of stateless API design \u2014 AQC is largely stateless, meaning each call stands alone except where session references are required<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Familiarity with airline industry concepts: PNR, fare basis, IATA codes, baggage policies, ticketing deadlines<br \/><br \/><\/span><\/li><\/ul><h2><span style=\"color: #000080;\"><b>Authentication: OAuth2 Step-by-Step<\/b><\/span><\/h2><p><span style=\"font-weight: 400; color: #000000;\">AQC provides a secure, production-ready integration model powered by OAuth2 authentication and enterprise-grade transaction handling.<\/span><\/p><h3><span style=\"color: #000000;\"><b>Step 1: Get your credentials<\/b><\/span><\/h3><p><span style=\"font-weight: 400; color: #000000;\">After your Amadeus commercial agreement is set up, you receive an API Key (client_id) and API Secret (client_secret). Keep these private and out of version control. Use environment variables or a secrets manager such as AWS Secrets Manager or HashiCorp Vault.<\/span><\/p><h3><span style=\"color: #000000;\"><b>Step 2: Request an access token<\/b><\/span><\/h3><p><span style=\"font-weight: 400; color: #000000;\">Send a POST request to:<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">POST <span style=\"color: #000080;\"><a style=\"color: #000080;\" href=\"https:\/\/test.api.amadeus.com\/v1\/security\/oauth2\/token\" target=\"_blank\" rel=\"noopener\"><strong>https:\/\/test.api.amadeus.com\/v1\/security\/oauth2\/token<\/strong><\/a><\/span><\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">Content-Type: application\/x-www-form-urlencoded<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">grant_type=client_credentials<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">&amp;client_id=YOUR_API_KEY<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">&amp;client_secret=YOUR_API_SECRET<\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">The body of the request is encoded as x-www-fo<\/span><span style=\"font-weight: 400;\">rm-urlencoded, where the keys and values are encoded in key-value tuples separated by &amp;, with a = between the key and the value.<\/span><a style=\"color: #000000;\" href=\"https:\/\/developers.amadeus.com\/self-service\/apis-docs\/guides\/developer-guides\/API-Keys\/authorization\/\" target=\"_blank\" rel=\"noopener\"> <span style=\"font-weight: 400;\">Amadeus<\/span><\/a><\/span><\/p><p><span style=\"color: #000000;\"><b>Step 3: Parse the token response<\/b><\/span><\/p><blockquote><p><span style=\"font-weight: 400; color: #000000;\">json<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">{<\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;type&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;amadeusOAuth2Token&#8221;<\/span><span style=\"font-weight: 400;\">,<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;token_type&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;Bearer&#8221;<\/span><span style=\"font-weight: 400;\">,<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;access_token&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;eyJhbGc&#8230;&#8221;<\/span><span style=\"font-weight: 400;\">,<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;expires_in&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">1799<\/span><span style=\"font-weight: 400;\">,<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;state&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;approved&#8221;<\/span><\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">}<\/span><\/p><\/blockquote><p><span style=\"font-weight: 400; color: #000000;\">The access token is valid for approximately 30 minutes (1799 seconds). Store it server-side and reuse it across requests until close to expiry.<\/span><\/p><h3><span style=\"font-weight: 400; color: #000000;\">Step 4: Use the token in all API calls<\/span><\/h3><p><span style=\"font-weight: 400; color: #000000;\">Include it as a header on every request:<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">Authorization: Bearer eyJhbGc.<\/span><\/p><h3><span style=\"font-weight: 400; color: #000000;\">Token management best practices:<\/span><\/h3><ul><li><span style=\"font-weight: 400; color: #000000;\">Reuse the same token until it expires rather than requesting a new token for every search. Automate OAuth2 authentication to refresh tokens proactively and handle 401 and 429 responses gracefully.\u00a0<\/span><\/li><li><span style=\"font-weight: 400; color: #000000;\">Implement proactive refresh when less than 60 seconds remain<\/span><\/li><li><span style=\"font-weight: 400; color: #000000;\">In production with multiple backend instances, store the token in a shared Redis cache<\/span><\/li><\/ul><p><span style=\"font-weight: 400; color: #000000;\">&#8211;<\/span><\/p><p><span style=\"color: #000000;\"><b>The Core AQC API Workflow<\/b><\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">The AQC booking journey follows a fixed, sequential flow. Understanding this sequence is critical skipping steps or reordering them causes booking failures.<\/span><\/p><blockquote><p><strong><span style=\"color: #000000;\">Search \u2192 Price \u2192 Book \u2192 Ticket \u2192 Manage \/ Cancel<\/span><\/strong><\/p><\/blockquote><h3><span style=\"font-weight: 400; color: #000000;\">Stage 1: Flight Offers Search<\/span><\/h3><p><span style=\"font-weight: 400; color: #000000;\"><strong>Endpoint<\/strong>: GET \/v2\/shopping\/flight-offers<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">This is the entry point. Because the API is stateless and offer-based, every search produces fresh, time-sensitive results directly from the GDS.\u00a0<\/span><\/p><p><strong><span style=\"color: #000000;\">Key request parameters:<\/span><\/strong><\/p><p><span style=\"font-weight: 400; color: #000000;\">originLocationCode = DEL<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">destinationLocationCode = LHR<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">departureDate = 2025-09-15<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">returnDate = 2025-09-25<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">adults = 2<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">travelClass = ECONOMY<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">currencyCode = USD<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">max = 20<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">sources = GDS<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">Sample response (simplified):<\/span><\/p><blockquote><p><span style=\"font-weight: 400; color: #000000;\">json<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">{<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">\u00a0\u00a0&#8220;data&#8221;: [{<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">\u00a0\u00a0\u00a0\u00a0&#8220;id&#8221;: &#8220;1&#8221;,<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">\u00a0\u00a0\u00a0\u00a0&#8220;source&#8221;: &#8220;GDS&#8221;,<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">\u00a0\u00a0\u00a0\u00a0&#8220;instantTicketingRequired&#8221;: false,<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">\u00a0\u00a0\u00a0\u00a0&#8220;lastTicketingDate&#8221;: &#8220;2025-08-01&#8221;,<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">\u00a0\u00a0\u00a0\u00a0&#8220;numberOfBookableSeats&#8221;: 7,<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">\u00a0\u00a0\u00a0\u00a0&#8220;itineraries&#8221;: [{<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8220;duration&#8221;: &#8220;PT9H25M&#8221;,<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8220;segments&#8221;: [{<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8220;departure&#8221;: { &#8220;iataCode&#8221;: &#8220;DEL&#8221;, &#8220;at&#8221;: &#8220;2025-09-15T01:30:00&#8221; },<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8220;arrival&#8221;: \u00a0 { &#8220;iataCode&#8221;: &#8220;LHR&#8221;, &#8220;at&#8221;: &#8220;2025-09-15T06:55:00&#8221; },<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8220;carrierCode&#8221;: &#8220;BA&#8221;,<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8220;number&#8221;: &#8220;258&#8221;<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}]<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">\u00a0\u00a0\u00a0\u00a0}],<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">\u00a0\u00a0\u00a0\u00a0&#8220;price&#8221;: {<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8220;currency&#8221;: &#8220;USD&#8221;,<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8220;total&#8221;: &#8220;1245.60&#8221;,<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8220;grandTotal&#8221;: &#8220;1245.60&#8221;<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">\u00a0\u00a0\u00a0\u00a0}<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">\u00a0\u00a0}]<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">}<\/span><\/p><\/blockquote><p><strong><span style=\"color: #000000;\">Important notes:<\/span><\/strong><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">The total price in Search is indicative, not locked in. Always call the Flight Offers Price API before final booking.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">lastTicketingDate is critical missing it triggers booking failures<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">numberOfBookableSeats shows remaining availability at that price point<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">instantTicketingRequired: true means the ticket must be issued immediately upon booking<br \/><br \/><\/span><\/li><\/ul><h3><span style=\"color: #000000;\"><b>Stage 2: Flight Offers Pricing<\/b><\/span><\/h3><p><span style=\"color: #000000;\"><b>Endpoint:<\/b><span style=\"font-weight: 400;\"> POST \/v1\/shopping\/flight-offers\/pricing<\/span><\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">The Flight Offers Pricing API establishes transactional integrity within an AQC integration. It confirms availability, fare basis accuracy, ancillary eligibility, payment compliance, and updated ticketing conditions. Because the API is stateless and offer-based, every pricing request recalculates the offer directly against live airline inventory.<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">You pass the entire offer object from the Search response. Do not modify any structural fields.<\/span><\/p><p><span style=\"color: #000000;\"><strong>Key fields to check in the response:<\/strong><\/span><\/p><blockquote><p><span style=\"font-weight: 400; color: #000000;\">json<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">{<\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;data&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">{<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;flightOffers&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">[{<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;price&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">{<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;total&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;1247.80&#8221;<\/span><span style=\"font-weight: 400;\"> \u00a0 <\/span><span style=\"font-weight: 400;\">\/\/ May differ from Search price<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">},<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;fareDetailsBySegment&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">[{<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;cabin&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;ECONOMY&#8221;<\/span><span style=\"font-weight: 400;\">,<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;fareBasis&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;YLWF2AU&#8221;<\/span><span style=\"font-weight: 400;\">,<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;class&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;Y&#8221;<\/span><span style=\"font-weight: 400;\">,<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;includedCheckedBags&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">{<\/span> <span style=\"font-weight: 400;\">&#8220;quantity&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">1<\/span> <span style=\"font-weight: 400;\">}<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">}]<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">}]<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">}<\/span><\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">}<\/span><\/p><\/blockquote><p><strong><span style=\"color: #000000;\">Best practices:<\/span><\/strong><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Always compare the Pricing response price with the Search price and surface any difference to the user before proceeding<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Store the full Pricing response \u2014 you&#8217;ll pass it verbatim to Create Order<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Pricing is mandatory even if no ancillaries are selected. Seat availability and fare validity must still be confirmed.<br \/><br \/><\/span><\/li><\/ul><h3><span style=\"color: #000000;\"><b>Stage 3: Flight Create Orders (Booking)<\/b><\/span><\/h3><p><span style=\"color: #000000;\"><b>Endpoint:<\/b><span style=\"font-weight: 400;\"> POST \/v1\/booking\/flight-orders<\/span><\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">This creates the PNR in the Amadeus GDS. This is the point of commitment.<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">Sample request body:<\/span><\/p><blockquote><p><span style=\"font-weight: 400; color: #000000;\">json<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">{<\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;data&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">{<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;type&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;flight-order&#8221;<\/span><span style=\"font-weight: 400;\">,<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;flightOffers&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">[<\/span> <span style=\"font-weight: 400;\">\/* full priced offer from Pricing API *\/<\/span> <span style=\"font-weight: 400;\">],<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;travelers&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">[{<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;id&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;1&#8221;<\/span><span style=\"font-weight: 400;\">,<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;dateOfBirth&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;1985-03-22&#8221;<\/span><span style=\"font-weight: 400;\">,<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;name&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">{<\/span> <span style=\"font-weight: 400;\">&#8220;firstName&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;RAHUL&#8221;<\/span><span style=\"font-weight: 400;\">,<\/span> <span style=\"font-weight: 400;\">&#8220;lastName&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;SHARMA&#8221;<\/span> <span style=\"font-weight: 400;\">},<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;gender&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;MALE&#8221;<\/span><span style=\"font-weight: 400;\">,<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;contact&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">{<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;emailAddress&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;rahul.sharma@example.com&#8221;<\/span><span style=\"font-weight: 400;\">,<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;phones&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">[{<\/span> <span style=\"font-weight: 400;\">&#8220;deviceType&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;MOBILE&#8221;<\/span><span style=\"font-weight: 400;\">,<\/span> <span style=\"font-weight: 400;\">&#8220;countryCallingCode&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;91&#8221;<\/span><span style=\"font-weight: 400;\">,<\/span> <span style=\"font-weight: 400;\">&#8220;number&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;9876543210&#8221;<\/span> <span style=\"font-weight: 400;\">}]<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">},<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;documents&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">[{<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;documentType&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;PASSPORT&#8221;<\/span><span style=\"font-weight: 400;\">,<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;number&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;P1234567&#8221;<\/span><span style=\"font-weight: 400;\">,<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;expiryDate&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;2030-01-14&#8221;<\/span><span style=\"font-weight: 400;\">,<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;issuanceCountry&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;IN&#8221;<\/span><span style=\"font-weight: 400;\">,<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;nationality&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;IN&#8221;<\/span><span style=\"font-weight: 400;\">,<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;holder&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">true<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">}]<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">}],<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;ticketingAgreement&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">{<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;option&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;DELAY_TO_CANCEL&#8221;<\/span><span style=\"font-weight: 400;\">,<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;delay&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;6D&#8221;<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">}<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">}<\/span><\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">}<\/span><\/p><\/blockquote><p><span style=\"color: #000000;\"><b>Passenger data rules (critical):<\/b><\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">Airline systems are sensitive to passenger data formatting. Small mistakes can cause booking failures.<\/span> <span style=\"font-weight: 400;\">Names must match the travel document exactly.<\/span><\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Passport number, expiry, and issuing country are required for international flights<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">dateOfBirth format: YYYY-MM-DD<br \/><br \/><\/span><\/li><\/ul><p><strong><span style=\"color: #000000;\">The response contains two references you must store:<\/span><\/strong><\/p><blockquote><p><span style=\"font-weight: 400; color: #000000;\">json<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">{<\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;data&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">{<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;id&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;MJ0MBSLTA0&#8221;<\/span><span style=\"font-weight: 400;\">,<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <\/span><span style=\"font-weight: 400;\">\/\/ AQC Order ID<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;associatedRecords&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">[{<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">&#8220;reference&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">&#8220;T85MS6&#8221;<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span><span style=\"font-weight: 400;\">\/\/ GDS PNR reference \u2014 show this to the customer<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">}]<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">}<\/span><\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">}<\/span><\/p><\/blockquote><p><span style=\"font-weight: 400; color: #000000;\">Store both. The AQC Order ID is used to manage the booking via API. The GDS PNR reference is what airlines and check-in systems recognise.<\/span><\/p><h3><span style=\"color: #000000;\"><b>Stage 4: Seat Maps and Ancillaries<\/b><\/span><\/h3><p><span style=\"font-weight: 400; color: #000000;\"><strong>Endpoint:<\/strong> POST \/v1\/shopping\/seatmaps<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">Request available seats for a flight offer or an existing booking. The response includes seat class (window, aisle, exit row), availability status, and pricing for paid seats. Seat map content is available from more than 80 airlines.\u00a0 For unsupported airlines, display a &#8220;seat selection at check-in&#8221; message.<\/span><\/p><h3><span style=\"color: #000000;\"><b>Stage 5: Ticket Issuance<\/b><\/span><\/h3><p><span style=\"font-weight: 400; color: #000000;\"><strong>Endpoint:<\/strong> POST \/v1\/orders\/{orderId}\/tickets<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">After payment is processed on your platform, trigger ticket issuance. This calls the airline reservation system and issues the e-ticket, generating the 13-digit ticket number.<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">Handling instantTicketingRequired:<\/span><\/p><ul><li><span style=\"font-weight: 400; color: #000000;\">If true: issue the ticket immediately after booking build this directly into your payment confirmation flow<\/span><\/li><li><span style=\"font-weight: 400; color: #000000;\">If false: you have until lastTicketingDate but never let it get close; automate ticketing within minutes of payment confirmation<br \/><br \/><\/span><\/li><\/ul><h3><span style=\"color: #000000;\"><b>Stage 6: PNR Management and Cancellations<\/b><\/span><\/h3><p><span style=\"font-weight: 400; color: #000000;\"><strong>Get order:<\/strong> GET \/v1\/booking\/flight-orders\/{orderId}<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\"><strong>Cancel order:<\/strong> DELETE \/v1\/booking\/flight-orders\/{orderId}<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">For cancellations, always check the fare rules first most Economy fares are non-refundable. Surface cancellation policy clearly to users before booking is confirmed.<\/span><\/p><h3><span style=\"color: #000000;\"><b>Stage 7. System Architecture for AQC Integration<\/b><\/span><\/h3><p><span style=\"font-weight: 400; color: #000000;\">A production-grade AQC integration involves multiple layers. Here is a recommended architecture pattern:<\/span><\/p><p><strong><span style=\"color: #000000;\">User Interface (Web \/ Mobile \/ B2B Portal)<\/span><\/strong><\/p><p><span style=\"font-weight: 400; color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u2193<\/span><\/p><p><strong><span style=\"color: #000000;\">API Gateway \/ BFF Layer<\/span><\/strong><\/p><p><span style=\"color: #000000;\">(Rate limiting, auth validation, logging)<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u2193<\/span><\/p><p><strong><span style=\"color: #000000;\">Booking Engine Backend<\/span><\/strong><\/p><ul><li><span style=\"font-weight: 400; color: #000000;\">Search Service<\/span><\/li><li><span style=\"font-weight: 400; color: #000000;\">Pricing Service<\/span><\/li><li><span style=\"font-weight: 400; color: #000000;\">Order Manager (PNR + Tickets)<\/span><\/li><\/ul><p><span style=\"font-weight: 400; color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u2193<\/span><\/p><p><strong><span style=\"color: #000000;\">AQC API Client Layer<\/span><\/strong><\/p><p><span style=\"font-weight: 400; color: #000000;\">(Token management, retry logic, rate limiting)<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u2193<\/span><\/p><p><strong><span style=\"color: #000000;\">Amadeus Quick Connect (GDS \/ NDC \/ LCC)<\/span><\/strong><\/p><p><span style=\"color: #000000;\"><b>Recommended technology components:<\/b><\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Backend: Node.js, Python, Java, or .NET (Amadeus provides SDKs for all)<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Caching: Redis (tokens, search results, offer metadata)<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Queue: RabbitMQ or AWS SQS (async ticketing jobs)<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Database: PostgreSQL for booking records<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Secrets: AWS Secrets Manager or HashiCorp Vault<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Monitoring: Datadog, New Relic, or Prometheus + Grafana<br \/><br \/><\/span><\/li><\/ul><h2><span style=\"color: #000080;\"><b>Key Technical Considerations<\/b><\/span><\/h2><h3><span style=\"color: #000000;\"><b>1. Statefulness in a stateless API<\/b><\/span><\/h3><p><span style=\"font-weight: 400; color: #000000;\">AQC APIs are mostly stateless but the booking flow has an implicit state machine. You cannot skip stages. Pricing output must reference Search output; Create Order must reference Pricing output; Ticketing must reference the Order ID. Use Redis with a session TTL to hold intermediate offer data between steps.<\/span><\/p><h3><span style=\"color: #000000;\"><b>2. Fare volatility<\/b><\/span><\/h3><p><span style=\"font-weight: 400; color: #000000;\">Flight prices change constantly. Best practices: always call Pricing before displaying the final price on the checkout screen; set a reasonable offer validity timer in your UI (5\u201310 minutes); if the price changes between Pricing and Order creation, surface the new price to the user and request re-confirmation.<\/span><\/p><h3><span style=\"color: #000000;\"><b>3. Content sources: GDS vs NDC<\/b><\/span><\/h3><blockquote><p><span style=\"font-weight: 400; color: #000000;\">json<\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">&#8220;sources&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">[<\/span><span style=\"font-weight: 400;\">&#8220;GDS&#8221;<\/span><span style=\"font-weight: 400;\">]<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <\/span><span style=\"font-weight: 400;\">\/\/ Traditional GDS content<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">&#8220;sources&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">[<\/span><span style=\"font-weight: 400;\">&#8220;NDCX&#8221;<\/span><span style=\"font-weight: 400;\">]<\/span><span style=\"font-weight: 400;\"> \u00a0 \u00a0 \u00a0 \u00a0 <\/span><span style=\"font-weight: 400;\">\/\/ NDC airline direct content<\/span><\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">&#8220;sources&#8221;<\/span><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">[<\/span><span style=\"font-weight: 400;\">&#8220;GDS&#8221;<\/span><span style=\"font-weight: 400;\">,<\/span> <span style=\"font-weight: 400;\">&#8220;NDCX&#8221;<\/span><span style=\"font-weight: 400;\">]<\/span><span style=\"font-weight: 400;\">\u00a0 <\/span><span style=\"font-weight: 400;\">\/\/ Mixed \u2014 returns combined results<\/span><\/span><\/p><\/blockquote><p><span style=\"font-weight: 400; color: #000000;\">NDC content often includes exclusive offers not available via traditional GDS, but requires more complex response handling. Ensure your response mapper handles both content types gracefully.<\/span><\/p><h2><span style=\"color: #000080;\"><b>Common Mistakes and How to Avoid Them<\/b><\/span><\/h2><ul><li><span style=\"color: #000000;\"><b>Using Search price as the final booking price<\/b><span style=\"font-weight: 400;\"> Impact: Price discrepancies, booking failures Fix: Always call Pricing before Create Order<\/span><\/span><\/li><li><span style=\"color: #000000;\"><b>Requesting a new OAuth token per API call<\/b><span style=\"font-weight: 400;\"> Impact: Added latency, rate limit hits Fix: Cache and reuse tokens until near expiry<\/span><\/span><\/li><li><span style=\"color: #000000;\"><b>Not handling lastTicketingDate<\/b><span style=\"font-weight: 400;\"> Impact: Missed ticketing deadlines, automatic cancellations Fix: Automated ticketing job triggered immediately on payment confirmation<\/span><\/span><\/li><li><span style=\"color: #000000;\"><b>Incorrect passenger name formatting<\/b><span style=\"font-weight: 400;\"> Impact: Booking rejections at airline level Fix: Validate names against passport exactly; use all caps<\/span><\/span><\/li><li><span style=\"color: #000000;\"><b>Caching flight offers too long<\/b><span style=\"font-weight: 400;\"> Flight offers are time-sensitive. Excessive caching can lead to ghost availability and increased booking failures.<\/span><span style=\"font-weight: 400;\"><br \/><\/span><span style=\"font-weight: 400;\">Fix: Cap offer cache at 5\u201310 minutes maximum<\/span><\/span><\/li><li><span style=\"color: #000000;\"><b>Modifying the offer object between Pricing and Booking<\/b><span style=\"font-weight: 400;\"> Impact: API rejections Fix: Pass the full Pricing response verbatim to Create Order<\/span><\/span><\/li><li><span style=\"color: #000000;\"><b>Not storing the GDS PNR reference<\/b><span style=\"font-weight: 400;\"> Impact: Unable to manage or cancel bookings Fix: Always store both the AQC Order ID and the GDS PNR reference<\/span><\/span><\/li><li><span style=\"color: #000000;\"><b>No retry logic on 429 and 503 responses<\/b><span style=\"font-weight: 400;\"> Impact: Silent booking failures under load Fix: Implement exponential backoff with jitter<br \/><br \/><\/span><\/span><\/li><\/ul><h2><span style=\"color: #000080;\"><b>Performance Optimization Tips<\/b><\/span><\/h2><p><span style=\"color: #000000;\"><b>Parallel requests where possible:<\/b><span style=\"font-weight: 400;\"> For multi-destination or multi-passenger searches, split into parallel API calls and aggregate results. Search is read-only \u2014 safe to parallelise.<\/span><\/span><\/p><p><span style=\"color: #000000;\"><b>Response compression:<\/b><span style=\"font-weight: 400;\"> Enable gzip\/brotli on both your server and Amadeus API calls. Search responses can be large \u2014 compression meaningfully reduces payload sizes.<\/span><\/span><\/p><p><span style=\"color: #000000;\"><b>Smart caching strategy:<\/b><\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">OAuth token: cache until 60 seconds before expiry<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Flight offers: maximum 3\u20135 minutes<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Airline logos and airport metadata: cache aggressively (days to weeks)<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Fare rules: cache per fare basis code for hours<br \/><br \/><\/span><\/li><\/ul><p><span style=\"color: #000000;\"><b>Connection pooling:<\/b><span style=\"font-weight: 400;\"> Maintain a persistent HTTP connection pool to Amadeus endpoints. Creating new TCP connections per request adds measurable latency at scale.<\/span><\/span><\/p><p><span style=\"color: #000000;\"><b>Asynchronous ticketing:<\/b><span style=\"font-weight: 400;\"> Never block the booking confirmation screen on ticket issuance. Accept payment, create the PNR, confirm to the user, then issue the ticket via a background job.<\/span><\/span><\/p><p><span style=\"color: #000000;\"><b>Load testing:<\/b><span style=\"font-weight: 400;\"> Before go-live, simulate peak traffic at 150% of projected volume. Bottlenecks in your own middleware will surface under load \u2014 better to find them in testing.<\/span><\/span><\/p><h2><span style=\"color: #000080;\"><b>Testing Strategy<\/b><\/span><\/h2><p><span style=\"color: #000000;\"><b>Sandbox environment<\/b><\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">Amadeus provides engineers with a test environment, code samples, and SDKs that simplify API embedding. The sandbox environment allows your application to make up to 10 requests per user per second.<\/span><\/p><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">Sandbox base URL:<\/span><a style=\"color: #000000;\" href=\"https:\/\/test.api.amadeus.com\" target=\"_blank\" rel=\"noopener\"> <span style=\"font-weight: 400;\">https:\/\/test.api.amadeus.com<\/span><\/a><\/span><\/p><p><span style=\"color: #000000;\"><b>What to test:<\/b><\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">Unit tests: Mock AQC responses and test your parsers, validators, and business logic independently.<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">Integration tests against sandbox: Cover the full flow \u2014 auth \u2192 search \u2192 price \u2192 book \u2192 ticket \u2192 cancel.<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">Edge cases to specifically target:<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Price change between Search and Pricing<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">instantTicketingRequired: true offers<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">NDC content alongside GDS content<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Multi-segment and multi-city itineraries<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Infant passengers (special handling requirements)<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Passport expiry validation (must be 6+ months beyond travel date)<br \/><br \/><\/span><\/li><\/ul><p><span style=\"font-weight: 400; color: #000000;\">Load tests: Use k6 or Locust against your backend to simulate concurrent searches at peak volume before go-live.<\/span><\/p><p><span style=\"color: #000000;\"><b> Go-Live Checklist<\/b><\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">OAuth2 token management implemented with automatic refresh<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Full search \u2192 price \u2192 book \u2192 ticket flow tested end-to-end in sandbox<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">instantTicketingRequired handling implemented and tested<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">lastTicketingDate monitoring and automated ticketing job in place<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Passenger data validation implemented (name, passport, DOB, contact details)<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Price change detection between Search, Pricing, and Create Order stages<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">GDS PNR reference stored in your database alongside the AQC Order ID<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Cancellation and refund flows implemented and tested<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Error handling and retry logic for 401, 429, 500, and 503 responses<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Logging and monitoring in place (request IDs, response times, error rates)<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Secrets stored in a secure vault \u2014 not in code or environment files<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Load testing completed at 150% of projected peak traffic<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">IATA\/BSP settlement workflow confirmed with your host agency<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Production AQC credentials received and smoke-tested<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Amadeus implementation team sign-off completed<br \/><br \/><\/span><\/li><\/ul><p><span style=\"font-weight: 400; color: #000000;\">Amadeus Quick Connect (AQC) is one of the most capable airline booking APIs available today. It gives travel platforms real-time GDS access, full booking lifecycle automation, and connectivity to 500+ airlines\u00a0 all through a modern REST\/JSON interface that experienced backend developers can work with efficiently.<\/span><\/p><p><span style=\"font-weight: 400; color: #000000;\">The integration is not trivial. You need proper architecture, smart token management, stateful offer handling, and thorough edge case testing. But teams that invest in getting it right will have a rock-solid foundation for building scalable, revenue-generating travel platforms.<\/span><\/p><h3><span style=\"color: #000000;\"><b>The key principles to take away:<\/b><\/span><\/h3><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Always price before booking never trust the Search price as final<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Manage OAuth2 tokens efficiently cache and reuse, never recreate per call<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Treat instantTicketingRequired and lastTicketingDate as first-class engineering concerns<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Validate passenger data rigorously before calling Create Order<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Build an async ticketing pipeline so the user experience never waits on ticket issuance<br \/><br \/><\/span><\/li><\/ul><p><span style=\"font-weight: 400; color: #000000;\">If you&#8217;re planning an AQC integration, start with the Amadeus for Developers sandbox to build confidence, then work with the Amadeus team to provision AQC production access when your architecture is solid and tested.<\/span><\/p><blockquote><p><span style=\"color: #000000;\"><strong>Read More:<\/strong><\/span> <span style=\"color: #000080;\"><a style=\"color: #000080;\" href=\"https:\/\/beta-next.traveltekpro.com\/blog\/why-amadeus-matters-in-todays-travel-ecosystem\/\"><strong>Why Amadeus Matters in Today&#8217;s Travel Ecosystem<\/strong><\/a><\/span><\/p><\/blockquote><h2><span style=\"color: #000080;\">FAQ&#8217;S<\/span><\/h2><h3><span style=\"color: #000000;\"><b>1. How long does Amadeus AQC onboarding take?<\/b><\/span><\/h3><p><span style=\"font-weight: 400; color: #000000;\">With Quick Connect, your integration will allow your application to be up and running in 4 to 6 weeks.This assumes your IATA\/BSP setup is ready and a dedicated development resource is assigned.<\/span><\/p><h3><span style=\"color: #000000;\"><b>2. Do I need IATA accreditation to use AQC?<\/b><\/span><\/h3><p><span style=\"font-weight: 400; color: #000000;\">For ticketing, yes you need either direct IATA accreditation or access through an IATA-accredited host agency. For search-only use cases, the requirement is more flexible. Confirm specifics with Amadeus during commercial discussions.<\/span><\/p><h3><span style=\"color: #000000;\"><b>3. Can AQC return low-cost carrier content?<\/b><\/span><\/h3><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">Yes. AQC integrates NDC and Low-Cost content on top of standard Full Service carriers.<\/span> <span style=\"font-weight: 400;\">Coverage varies by airline and region confirm your specific LCC requirements with Amadeus during onboarding.<\/span><\/span><\/p><h3><span style=\"color: #000000;\"><b>4. What is the difference between the AQC Order ID and the GDS PNR reference?<\/b><\/span><\/h3><p><span style=\"font-weight: 400; color: #000000;\">The AQC Order ID is Amadeus&#8217;s internal reference for managing the booking through the API. The GDS PNR reference (e.g. T85MS6) is the airline-visible record locator the one you show customers and that airline check-in systems recognise. You need both and must store both.<\/span><\/p><h3><span style=\"color: #000000;\"><b>5. Is there an SDK for Amadeus AQC?<\/b><\/span><\/h3><p><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">Amadeus provides SDKs in Ruby, Python, Java, Node.js, .NET, Kotlin (Android), and Swift (iOS), available through their official GitHub repository.<\/span> <span style=\"font-weight: 400;\">These handle authentication, request formatting, and response parsing significantly reducing integration time.<\/span><\/span><\/p><h3><span style=\"color: #000000;\"><b>6. What happens if a booking fails after payment is charged?<\/b><\/span><\/h3><p><span style=\"font-weight: 400; color: #000000;\">Implement a transaction compensation pattern: if the Create Order call fails after payment is charged, immediately trigger a refund via your payment gateway. Maintain a reconciliation log of payment and booking events to catch and handle these edge cases. Never rely on the user to report them.<\/span><\/p><h3><span style=\"color: #000000;\"><b>7. How are prices settled between my platform and airlines?<\/b><\/span><\/h3><p><span style=\"font-weight: 400; color: #000000;\">This is handled through BSP (Billing and Settlement Plan) via IATA. Your agency settles with airlines through BSP on a regular cycle, typically weekly. Your Amadeus account configuration, IATA membership, and host agency relationships determine the specifics.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-624346b7 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"624346b7\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-4839fa1\" data-id=\"4839fa1\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-182c5e60 elementor-widget elementor-widget-heading\" data-id=\"182c5e60\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Let's Start Your Project<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4c9b261c elementor-widget elementor-widget-text-editor\" data-id=\"4c9b261c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Let us help you achieve your goals, by creating the best solution for you!<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-7836c94b\" data-id=\"7836c94b\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-54c5a59e elementor-align-center elementor-widget elementor-widget-button\" data-id=\"54c5a59e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/beta-next.traveltekpro.com\/blog\/contact-us\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">GET STARTED<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Amadeus Quick Connect (AQC) API IntegrationThe Complete Developer &amp; Business Guide (2026) If you&#8217;re building a flight booking engine, an OTA (Online Travel Agency), or a corporate travel portal, chances are you&#8217;ve come across Amadeus Quick Connect (AQC). It promises enterprise-grade GDS connectivity, real-time airline inventory, and a faster path to market than legacy SOAP\/XML-based [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":11377,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1,215],"tags":[365,364],"class_list":["post-11368","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-all-blog","category-travel-api","tag-amadeus-quick-connect","tag-amadeus-quick-connect-api"],"acf":[],"_links":{"self":[{"href":"https:\/\/beta-next.traveltekpro.com\/blog\/wp-json\/wp\/v2\/posts\/11368","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/beta-next.traveltekpro.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/beta-next.traveltekpro.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/beta-next.traveltekpro.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/beta-next.traveltekpro.com\/blog\/wp-json\/wp\/v2\/comments?post=11368"}],"version-history":[{"count":12,"href":"https:\/\/beta-next.traveltekpro.com\/blog\/wp-json\/wp\/v2\/posts\/11368\/revisions"}],"predecessor-version":[{"id":11381,"href":"https:\/\/beta-next.traveltekpro.com\/blog\/wp-json\/wp\/v2\/posts\/11368\/revisions\/11381"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/beta-next.traveltekpro.com\/blog\/wp-json\/wp\/v2\/media\/11377"}],"wp:attachment":[{"href":"https:\/\/beta-next.traveltekpro.com\/blog\/wp-json\/wp\/v2\/media?parent=11368"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/beta-next.traveltekpro.com\/blog\/wp-json\/wp\/v2\/categories?post=11368"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/beta-next.traveltekpro.com\/blog\/wp-json\/wp\/v2\/tags?post=11368"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}