Supergood | Flight Centre Travel Group API

Supergood | Flight Centre Travel Group API

Programmatically access Flight Centre Travel Group traveler profiles, trips/PNRs, approvals, and invoice data with a stable REST API. Supergood builds and operates production-grade, unofficial Flight Centre Travel Group integrations so your team can automate corporate travel workflows without heavy custom engineering.

Plain English: Flight Centre Travel Group (FCTG) is a global travel company spanning leisure and corporate brands (e.g., FCM, Corporate Traveler) that helps organizations book, manage, and reconcile business travel across flights, hotels, cars, and rail. An unofficial API lets you pull traveler profiles, trips and itineraries (PNRs, tickets, hotel/car confirmations), approval and policy outcomes, invoices/receipts, and risk events—and push updates to approvals, traveler details, and document attachments.

For a tech company integrating with FCTG, this means you can sync traveler and trip data into your platform, power live dashboards for upcoming travel, automate approval flows from your app, reconcile invoices with your ERP/accounting (e.g., QuickBooks, Xero), drive duty-of-care alerts, enrich expense records with itemized segments, and keep HRIS/finance/ops in lockstep. You can also trigger traveler notifications, attach policy documents, and standardize cost centers and GL codes across brands and regions.

What is Flight Centre Travel Group?

Flight Centre Travel Group (https://www.fctgl.com/) is a global travel retailer and travel management company serving both leisure travelers and businesses. Its corporate brands (including FCM and Corporate Traveler) provide booking tools, approvals, policy enforcement, supplier content, analytics/reporting, traveler assistance, and duty-of-care services. Teams use FCTG platforms to coordinate complex itineraries, enforce policy, manage approvals, issue tickets, and reconcile costs with detailed invoicing and reporting across regions and currencies.

Core product areas include:

  • Corporate Travel Management (Online booking tools, approvals, policy compliance)
  • Trip & Itinerary Management (PNRs, tickets/e-tickets, flight/hotel/car/rail segments)
  • Finance & Reporting (Invoices, taxes, cost centers, GL codes, multi-currency)
  • Risk & Duty of Care (Traveler tracking, disruption/risk alerts, communication)
  • Traveler Experience (Mobile apps/assistants, messages, documents, preferences)
  • Supplier & Content (GDS/aggregators, negotiated rates, fare rules)

Common data entities:

  • Companies, Users/Travelers, Roles/Permissions
  • Traveler Profiles (personal data, documents, loyalty memberships, preferences)
  • Travel Policies and Approval Rules
  • Trips/Itineraries (record locators/PNRs, statuses)
  • Bookings/Segments (air, hotel, car, rail; fare/rate details; tickets)
  • Approvals (states, approvers, timestamps, notes)
  • Invoices and Receipts (line items, taxes, currency, cost allocations)
  • Cost Centers/GL Codes, Projects, Departments
  • Suppliers (airlines, hotels, car rental brands)
  • Risk Events and Traveler Location Data

The Flight Centre Travel Group Integration Challenge

Corporate travel teams rely on FCTG platforms daily, but turning portal-centered workflows into API-driven automation can be hard:

  • Multi-brand, portal-first experiences: Different brands and regions expose different views and workflows
  • Complex data lineage: Itinerary data may span GDS records, mid-/back-office, and ticketing systems
  • Policy and approvals: Context-rich decisions (in-policy vs. out-of-policy) tied to specific segments and fares
  • Financial rigor: Invoices, taxes, cost centers, and multi-currency require careful normalization
  • Authentication & SSO: Enterprise SSO/MFA complicates unattended, headless automation
  • Reporting exports: Many teams rely on scheduled reports/CSVs or paid data extracts with limited webhook support

How Supergood Creates Flight Centre Travel Group APIs

Supergood reverse-engineers authenticated browser flows and network interactions to deliver a resilient API endpoint layer for your FCTG tenant.

  • Handles username/password, SSO/OAuth, and MFA (SMS, email, TOTP) securely
  • Maintains session continuity with automated refresh, challenge handling, and change detection
  • Normalizes GDS- and brand-specific fields (airline codes, fare classes, ticket numbers, rate plans) into consistent schemas
  • Aligns with customer entitlements and role-based permissions to ensure compliant access across brands/regions

Use Cases

Traveler & Trip Data Sync

  • Mirror traveler profiles and itineraries to your data warehouse or internal systems
  • Keep upcoming trips current for operations, traveler communications, and analytics
  • Normalize PNRs, ticket numbers, loyalty IDs, and segment metadata across suppliers

Approvals & Policy Automation

  • Trigger approval workflows from your app or chat tools and push decisions back
  • Capture policy context (reason codes, exception notes) for audit and analytics
  • Drive SLA alerts and notify stakeholders when itineraries change

Duty Of Care & Traveler Communications

  • Ingest trip changes and disruptions to target affected travelers
  • Power traveler location dashboards and risk scoring
  • Send messages and attach updates/documents to trips

Financials: Invoices, Taxes, and ERP Sync

  • Pull invoices and itemized segments to reconcile against ERP/accounting (e.g., QuickBooks, Xero)
  • Map cost centers, GL codes, and taxes; convert currency consistently
  • Generate attachments and cross-reference tickets/receipts for audits

Available Endpoints

Authentication

POST /sessions: Establish a session using credentials. Supergood manages MFA (SMS, email, TOTP) and SSO/OAuth when enabled. Returns a short-lived auth token maintained by the platform.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/sessions \
  --header 'Authorization: Basic <Base64 encoded token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "username": "[email protected]",
    "password": "<password>",
    "mfa": { "type": "totp", "code": "123456" }
  }'

Example response

{
  "authToken": "eyJhbGciOi...",
  "expiresIn": 3600,
  "user": {
    "id": "u_fctg_9a21c0",
    "name": "Global Travel Manager",
    "entitlements": ["travelers", "trips", "approvals", "invoices"]
  }
}

POST /sessions/refresh: Refresh an existing token to keep sessions uninterrupted.

Travelers

GET /travelers: List traveler profiles with filters and summary details.

Query parameters

  • companyId: string
  • email: string
  • status: active | inactive
  • updatedFrom, updatedTo: ISO 8601 timestamps
  • page, pageSize: integers for pagination

Example response

{
  "items": [
    {
      "travelerId": "trv_1a2b3c",
      "firstName": "Maya",
      "lastName": "Patel",
      "email": "[email protected]",
      "employeeId": "E-10293",
      "status": "active",
      "companyId": "co_88f210",
      "department": "Sales",
      "costCenter": "CC-NA-SALE",
      "policyId": "pol_corp_std",
      "loyaltyPrograms": [
        {"program": "AA", "membershipNumber": "AA1234567"},
        {"program": "MR", "membershipNumber": "MR998877"}
      ],
      "documents": {
        "passport": {"country": "US", "expiresOn": "2028-06-30"},
        "visa": null
      },
      "preferences": {
        "seat": "aisle",
        "hotelBedType": "queen",
        "carTransmission": "automatic"
      },
      "updatedAt": "2026-01-20T13:45:00Z"
    }
  ],
  "page": 1,
  "pageSize": 50,
  "total": 1
}

Trips

GET /trips: List trips/itineraries with PNRs, segments, approval and policy context.

Query parameters

  • companyId: string
  • travelerId: string
  • status: booked | ticketed | canceled | pending_approval
  • startDateFrom, endDateTo: ISO dates
  • updatedFrom, updatedTo: ISO 8601 timestamps
  • page, pageSize: integers for pagination

Example response

{
  "items": [
    {
      "tripId": "trip_72f510",
      "recordLocator": "Q7Z4HT",
      "bookingDate": "2026-01-18T09:22:10Z",
      "status": "ticketed",
      "policyStatus": "in_policy",
      "traveler": {
        "travelerId": "trv_1a2b3c",
        "name": "Maya Patel",
        "email": "[email protected]"
      },
      "segments": [
        {
          "type": "air",
          "carrier": "AA",
          "flightNumber": "100",
          "class": "Y",
          "departure": {"airport": "JFK", "time": "2026-02-02T08:00:00-05:00"},
          "arrival": {"airport": "LAX", "time": "2026-02-02T11:04:00-08:00"},
          "ticketNumber": "0012345678901",
          "status": "confirmed"
        },
        {
          "type": "hotel",
          "supplierName": "Hilton Los Angeles",
          "checkIn": "2026-02-02",
          "checkOut": "2026-02-05",
          "city": "Los Angeles",
          "confirmationNumber": "HIL-778899",
          "rate": {"currency": "USD", "nightly": 209.00, "taxIncluded": false},
          "status": "confirmed"
        }
      ],
      "approvals": {
        "state": "approved",
        "approvedBy": "u_mgr_501",
        "approvedAt": "2026-01-18T11:10:33Z",
        "notes": null
      },
      "cost": {
        "currency": "USD",
        "base": 820.00,
        "taxes": 96.40,
        "fees": 25.00,
        "total": 941.40
      },
      "risk": {"score": 12, "alerts": []},
      "updatedAt": "2026-01-20T14:05:44Z"
    }
  ],
  "page": 1,
  "pageSize": 50,
  "total": 1
}

Trip Approvals

POST /trips/{tripId}/approvals: Submit an approval decision with policy metadata and notes.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/trips/trip_72f510/approvals \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "action": "approve",
    "approverId": "u_mgr_501",
    "reasonCode": "business_critical",
    "notes": "Within policy; fare is lowest logical."
  }'

Example response

{
  "tripId": "trip_72f510",
  "approvals": {
    "state": "approved",
    "approvedBy": "u_mgr_501",
    "approvedAt": "2026-01-18T11:10:33Z",
    "reasonCode": "business_critical",
    "notes": "Within policy; fare is lowest logical."
  },
  "status": "pending_issuance",
  "updatedAt": "2026-01-18T11:10:33Z"
}

Invoices

GET /invoices: Retrieve invoices and itemized line items for reconciliation.

Query parameters

  • companyId: string
  • travelerId: string
  • status: open | paid | void
  • issueDateFrom, issueDateTo: ISO dates
  • currency: string (ISO 4217)
  • page, pageSize: integers for pagination

Example response

{
  "items": [
    {
      "invoiceId": "inv_9012af",
      "invoiceNumber": "FCTG-2026-000182",
      "issueDate": "2026-01-19",
      "dueDate": "2026-02-18",
      "status": "open",
      "currency": "USD",
      "companyId": "co_88f210",
      "travelerId": "trv_1a2b3c",
      "tripId": "trip_72f510",
      "costCenter": "CC-NA-SALE",
      "glCodes": {"airfare": "7001", "hotel": "7002", "fees": "7099"},
      "totals": {"net": 861.00, "tax": 80.40, "fees": 25.00, "grandTotal": 966.40},
      "lines": [
        {"type": "air", "description": "AA100 JFK-LAX", "net": 720.00, "tax": 67.20, "ticketNumber": "0012345678901"},
        {"type": "hotel", "description": "Hilton Los Angeles (3 nights)", "net": 141.00, "tax": 13.20, "confirmationNumber": "HIL-778899"},
        {"type": "fee", "description": "TMC Service Fee", "net": 25.00, "tax": 0.00}
      ],
      "pdf": {"fileName": "invoice_FCTG-2026-000182.pdf", "url": "https://files.supergood.ai/signed/inv_9012af.pdf", "expiresAt": "2026-01-20T18:00:00Z"},
      "updatedAt": "2026-01-19T17:15:10Z"
    }
  ],
  "page": 1,
  "pageSize": 50,
  "total": 1
}

Get full API Specs →


Technical Specifications

  • Authentication: Username/password with MFA (SMS, email, TOTP) and SSO/OAuth where enabled; supports service accounts or customer-managed credentials
  • Response format: JSON with consistent resource schemas and pagination across modules
  • Rate limits: Tuned for enterprise throughput while honoring customer entitlements and usage controls
  • Session management: Automatic reauth and cookie/session rotation with health checks
  • Data freshness: Near real-time retrieval of travelers, trips/PNRs, approvals, and invoices
  • Security: Encrypted transport, scoped tokens, and audit logging; respects role-based permissions across FCTG brands
  • Webhooks: Optional asynchronous delivery for long-running workflows (e.g., approvals, ticketing, itinerary changes)

Performance Characteristics

  • Latency: Sub-second responses for list/detail queries under normal load
  • Throughput: Designed for high-volume traveler and trip synchronization and invoice processing
  • Reliability: Retry logic, backoff, and idempotency keys minimize duplicate actions
  • Adaptation: Continuous monitoring for UI/API changes with rapid adapter updates

Getting Started

  1. Schedule Integration Assessment

Book a 30-minute session to confirm your modules, licensing, and authentication model.

  1. Supergood Builds and Validates Your API

We deliver a hardened Flight Centre Travel Group adapter tailored to your workflows and entitlements.

  1. Deploy with Monitoring

Go live with continuous monitoring and automatic adjustments as platforms evolve.

Schedule Integration Call →


Frequently Asked Questions

Q: Which Flight Centre Travel Group modules can this integration cover?

Supergood supports workflows commonly used in corporate travel, including Traveler Profiles, Trips/PNRs and segments (air, hotel, car, rail), Approvals and Policy outcomes, and Financials (Invoices, Taxes, Cost Centers, GL Codes). Exact coverage depends on your brand, region, and entitlements.

Q: How are MFA and SSO handled for automation?

We support username/password + MFA (SMS, email, TOTP) and can operate behind SSO/OAuth when enabled. Sessions are refreshed automatically with secure challenge handling for headless reliability.

Q: Can you sync invoices and trip data to our accounting system?

Yes. We normalize invoices, taxes, and itemized segments to match your ERP/accounting schema and deliver updates via webhooks or polling while complying with rate and permission constraints. We commonly integrate with QuickBooks and Xero.

Q: Do approval states and policy exceptions come through?

Yes. Approval states, approver metadata, reason codes, and exception notes are modeled explicitly in our normalized responses so you can audit policy adherence and trigger downstream actions.



Ready to automate your Flight Centre Travel Group workflows?

Supergood can have your Flight Centre Travel Group integration live in days with no ongoing engineering maintenance.

Get Started →

Read more