Air Canada · AsyncAPI Specification
Air Canada Ocn Webhooks
Version
View Spec
View on GitHub
TravelCanadaAviationAirlineNDCDistributionBookingAirlinesLoyaltyAsyncAPIWebhooksEvents
AsyncAPI Specification
generated: '2026-07-28'
method: searched
source: https://ndc.aircanada.com/api/documentation/orderchangenotification
spec_type: none
description: >-
Air Canada publishes no AsyncAPI document, but it does run a real
airline-initiated event surface: OrderChangeNotification (OCN). Sellers
register a webhook host and URL with Air Canada and receive an NDC 17.2
OrderChangeNotif message whenever an involuntary change is made to an Order
they created - a disruption, schedule change, or the passenger's response to
one. This file captures that webhook surface verbatim from the published
documentation. It is push-only: there is no streaming, queue, or polling event
API, and there is no self-service webhook management UI.
surface:
kind: webhook
direction: outbound (Air Canada calls the seller)
message: OrderChangeNotif
schema: IATA NDC 17.2 OrderChangeNotification schema
transport: HTTPS POST to a seller-supplied webhook URL
opt_in: true
opt_in_note: >-
Verbatim: "Such messages will only be sent to sellers that have registered
with AC to receive OCN messages."
registration:
channel: email
contact: ACDirectconnectNDC@aircanada.ca
instruction: >-
Verbatim: "To register with AC for reception of these messages, please send
an encrypted email or share a secure location with
ACDirectconnectNDC@aircanada.ca and include the below data required before
connectivity testing can begin."
required_data:
- Webhook host
- Webhook URL
- Authentication method (OAuth)
- AT system credentials
- PRD system credentials (optional for testing, required for go live)
- OAuthTokenURL (if OAuth is the authentication method)
- OAuthScope (if OAuth is the authentication method)
- Any headers required in the request
self_service: false
signature_verification:
published: false
note: >-
No HMAC signature, shared secret or replay-protection scheme is published.
Authenticity rests on the seller-side OAuth/system credentials Air Canada
is given at registration.
payload:
fields:
- Booking reference (Order)
- Status Code, indicating the change that triggered the notification
- Order Details
consumer_expectation: >-
Verbatim: "Sellers are expected to retrieve the affected Order to view the
latest version of the Order." OCN is a change signal, not a full state
transfer - the seller follows it with OrderRetrieve.
event_catalog:
description: >-
"List of Status Codes currently supported", verbatim from the OCN
documentation page. Reason codes 1-27 are involuntary, 28-35 cover voluntary
changes and ticketing-time-limit expiry.
events:
- {code: 1, type: involuntary, name: Flight number change}
- {code: 2, type: involuntary, name: Flight Time Change}
- {code: 3, type: involuntary, name: Flight Cancelled}
- {code: 4, type: involuntary, name: Flight Delayed}
- {code: 5, type: involuntary, name: Flight Added}
- {code: 21, type: involuntary, name: Other}
- {code: 22, type: involuntary, name: Accepted by Customer}
- {code: 23, type: involuntary, name: Alternative Chosen by Customer}
- {code: 24, type: involuntary, name: Cancelled by Customer}
- {code: 25, type: involuntary, name: Aircraft Changed}
- {code: 26, type: involuntary, name: Date Change}
- {code: 27, type: involuntary, name: Cabin Change}
- {code: 28, type: voluntary, name: Flight Change}
- {code: 29, type: voluntary, name: Seat Change}
- {code: 31, type: voluntary, name: Cancellation - Retain for Future Credit}
- {code: 32, type: voluntary, name: Name Change}
- {code: 33, type: ticketing, name: PNR On Hold - Itinerary Cancelled by Expired Ticketing Time Limit}
- {code: 34, type: ticketing, name: PNR On Hold - Ancillary Cancelled by Expired Ticketing Time Limit}
- {code: 35, type: voluntary, name: Travel Option Change}
count: 19
note: >-
Codes 6-20 and 30 are not listed by Air Canada; the published table jumps
from 5 to 21 and from 29 to 31. Recorded as published, with no interpolation.
scope:
triggers:
- Involuntary Order changes (flight disruptions)
- Reprotection acceptance or refusal - passenger accepts the disruption, opts for a refund because of it, or selects alternate flights because of it
excluded:
published: false
note: Air Canada does not publish a retry policy, delivery guarantee, ordering guarantee or dead-letter behaviour for OCN.
related_api: air-canada:air-canada-ndc-orderchangenotification-api
cross_links:
authentication: authentication/air-canada-authentication.yml
conventions: conventions/air-canada-conventions.yml