Air Canada · Authentication Profile

Air Canada Authentication

Authentication

Air Canada's NDC API is authenticated by a single opaque API key issued by Air Canada, carried in an "apikey" HTTP header on every SOAP request, plus an in-payload identity chain that the platform authorises against: the SellerID in the aggregation envelope and, for agency flows, the accredited IATA number and Agency ID inside the IATA NDC message itself. There is no OAuth, no OpenID Connect and no self-service key issuance on the inbound path - keys are handed out only after a commercial agreement and certification. OAuth appears in exactly one place, and it is outbound: when a seller registers a webhook to receive OrderChangeNotification messages, Air Canada supports OAuth as the authentication method it will use when calling the seller's endpoint.

Air Canada secures its APIs with apiKey across 2 declared security schemes, as derived from its OpenAPI definitions.

TravelCanadaAviationAirlineNDCDistributionBookingAirlinesLoyalty
Methods: apiKey Schemes: 2 OAuth flows: API key in: header

Security Schemes

apikey apiKey
· in: header ()
TP-Proxy-Key apiKey
· in: header ()

Source

Authentication Profile

air-canada-authentication.yml Raw ↑
generated: '2026-07-28'
method: searched
source: https://ndc.aircanada.com/api/gettingstarted/apisetup
docs: https://ndc.aircanada.com/api/gettingstarted/apisetup
description: >-
  Air Canada's NDC API is authenticated by a single opaque API key issued by Air
  Canada, carried in an "apikey" HTTP header on every SOAP request, plus an
  in-payload identity chain that the platform authorises against: the SellerID
  in the aggregation envelope and, for agency flows, the accredited IATA number
  and Agency ID inside the IATA NDC message itself. There is no OAuth, no
  OpenID Connect and no self-service key issuance on the inbound path - keys are
  handed out only after a commercial agreement and certification. OAuth appears
  in exactly one place, and it is outbound: when a seller registers a webhook to
  receive OrderChangeNotification messages, Air Canada supports OAuth as the
  authentication method it will use when calling the seller's endpoint.
summary:
  types: [apiKey]
  api_key_in: [header]
  oauth2_flows: []
  self_service_issuance: false
  gate: commercial agreement + display certification + accredited IATA/ARC codes
schemes:
  - name: apikey
    type: apiKey
    in: header
    parameter_name: apikey
    description: >-
      "The API key is a unique authorization key issued by Air Canada. To access
      the Air Canada NDC Platform API, each seller should provide the 'apikey' in
      the HTTP header." (verbatim, API Setup page)
    failure_mode: >-
      "Please be sure to add this or you will experience an authentication error
      (i.e., 400 Bad Request)." (verbatim)
    environments:
      - name: gold (sandbox / certification)
        base_url: https://gold-ndcpartners.aircanada.com/
      - name: production
        base_url: https://ndcpartners.aircanada.com/
    sources: [https://ndc.aircanada.com/api/gettingstarted/apisetup]
  - name: TP-Proxy-Key
    type: apiKey
    in: header
    parameter_name: TP-Proxy-Key
    status: retired
    description: >-
      Formerly required alongside apikey on OrderCreateRQ and OrderChangeRQ. Air
      Canada now states verbatim: "NOTE: You no longer need to submit the two
      additional parameters given below, when sending an OrderCreateRQ or
      OrderChangeRQ" (TP-Proxy-Key and Tx-http-timeout).
    sources: [https://ndc.aircanada.com/api/gettingstarted/apisetup]
in_payload_identity:
  description: >-
    Authorisation is not carried by the API key alone. The NDC aggregation
    envelope and the IATA message both carry identity elements that Air Canada
    validates, and error code 89975 ("The validation of OfficeID and credentials
    has resulted in failure") is returned when they do not line up.
  elements:
    - element: NDCMSG_Header/Sender/SellerID
      required: true
      description: The seller's key in the aggregation (SOAP) envelope. Example value in the docs is ac.gndc.Test.
    - element: NDCMSG_Header/Recipient/Address/Company
      required: true
      description: Offer owner airline designator; AC for Air Canada.
    - element: Party/Sender/TravelAgencySender/IATA_Number
      required: for agency bookings
      description: >-
        The seller's accredited 8-digit IATA number (or TIDS). Air Canada
        documents "In production, sellers must pass their accredited IATA codes
        only" and "Do not use any IATA codes that are used in examples."
    - element: Party/Sender/TravelAgencySender/AgencyID
      required: true
      description: Agency identifier provided by Air Canada. Example value in the docs is 493.
    - element: Party/Sender/TravelAgencySender/PseudoCity
      required: false
    - element: Party/Sender/TravelAgencySender/AgentUser/AgentUserID
      required: false
    - element: PointOfSale/Location/CountryCode
      required: mandatory for direct consumer flows, optional for agency bookings
outbound_callback_auth:
  surface: OrderChangeNotification (OCN) webhook
  description: >-
    Sellers registering to receive OCN messages must supply, verbatim: "Webhook
    host, Webhook URL, Authentication method (OAuth), AT system credentials, PRD
    system credentials, OAuthTokenURL (if OAuth is the authentication method),
    OAuthScope (if OAuth is the authentication method), Any headers required in
    the request."
  registration_contact: ACDirectconnectNDC@aircanada.ca
  detail: asyncapi/air-canada-ocn-webhooks.yml
authentication_errors_detail: errors/air-canada-error-codes.yml
authentication_errors:
  - code: 89975
    message: The validation of OfficeID and credentials has resulted in failure and hence, cannot proceed with the shopping search
  - code: 199994
    message: CompanyShortName is not supported
  - code: 199999
    message: IATA not allowed
  - code: 1533
    message: INVALID OFFICE IDENTIFICATION CODE
  - code: 1914
    message: OFFICE RESTRICTED
not_supported:
  - oauth2 (inbound)
  - openIdConnect
  - mutualTLS (not documented)
  - http basic / bearer
  - self-service key generation or rotation portal