Virgin Atlantic · Authentication Profile

Virgin Atlantic Authentication

Authentication

Virgin Atlantic's NDC API authenticates with a single API key carried in an HTTP header. There is no OAuth 2.0, no OpenID Connect, no mTLS and no signed-request scheme published anywhere on VS NDC Connect, and no OpenAPI exists from which securitySchemes could be derived - this profile is read directly from the published build documentation. The header name and the Azure Front Door DNS for ndc.virginatlantic.com indicate the gateway is Microsoft Azure API Management.

Virgin Atlantic secures its APIs with apiKey across 1 declared security scheme, as derived from its OpenAPI definitions.

TravelUnited KingdomAviationAirlineDistributionNDCBookingGDS
Methods: apiKey Schemes: 1 OAuth flows: API key in: header

Security Schemes

VSNDCApiKey apiKey
· in: header ()

Source

Authentication Profile

virgin-atlantic-authentication.yml Raw ↑
generated: '2026-07-28'
method: searched
source: >-
  https://ndc.virginatlantic.com/help/how-to-start-your-build,
  https://ndc.virginatlantic.com/help/how-to-access-ndc-apis,
  https://ndc.virginatlantic.com/certification,
  https://ndc.virginatlantic.com/docs/orderchangenotif
docs: https://ndc.virginatlantic.com/help/how-to-start-your-build
description: >-
  Virgin Atlantic's NDC API authenticates with a single API key carried in an HTTP header. There is
  no OAuth 2.0, no OpenID Connect, no mTLS and no signed-request scheme published anywhere on VS NDC
  Connect, and no OpenAPI exists from which securitySchemes could be derived - this profile is read
  directly from the published build documentation. The header name and the Azure Front Door DNS for
  ndc.virginatlantic.com indicate the gateway is Microsoft Azure API Management.
summary:
  types: [apiKey]
  api_key_in: [header]
  oauth2_flows: []
  oidc: false
  mutual_tls: false
schemes:
  - name: VSNDCApiKey
    type: apiKey
    in: header
    parameter_name: Ocp-Apim-Subscription-Key
    example_header: 'Ocp-Apim-Subscription-Key: [API-KEY-VALUE]'
    verbatim: >-
      "The HTTP header must include your API Client Key to grant access to the API. This would have
      been provided to you as part of the NDC API Access process."
    gateway: Microsoft Azure API Management (inferred from the Ocp-Apim-Subscription-Key header name
      and the avahfrontdoorprod.azurefd.net Azure Front Door DNS)
    environments: [Test, Production]
    failure_code: '111 - Invalid Agent''s IATA API Key'
    sources: [https://ndc.virginatlantic.com/help/how-to-start-your-build]
request_headers:
  - {name: Ocp-Apim-Subscription-Key, value: '[API-KEY-VALUE]', required: true, note: VS NDC API key}
  - {name: Accept, value: application/xml, required: true}
  - {name: Content-Type, value: application/xml, required: true}
encoding: UTF-8 required on both request and response
transport:
  method: POST
  note: >-
    "We make a POST call to all of our API endpoints" - every NDC message is an HTTP POST with an
    IATA NDC 21.3 XML body. No base URL is published; endpoints are issued with the key.
callback_authentication:
  surface: OrderChangeNotif (airline-to-seller push)
  note: >-
    Registering to receive OrderChangeNotif requires the seller to supply its own endpoint URL, SOAP
    Action and API login credentials (UserID and Password) plus API username/key and IATA number /
    Aggregator ID - so the inbound direction is authenticated by seller-supplied credentials, not by
    a Virgin Atlantic signature header.
  docs: https://ndc.virginatlantic.com/docs/orderchangenotif
  detail: asyncapi/virgin-atlantic-orderchangenotif-webhooks.yml
access_gate:
  self_serve_test_key: true
  production_requirements:
    - Valid IATA accreditation and Virgin Atlantic ticketing authority (Direct Connection), or an
      approved Service Provider Connection
    - RED Tier certification minimum
    - Signed Technical User Agreement (TUA), Data Processing Agreement (DPA) and, for agents, the
      Agency Sales Agreement (ASA)
  docs: https://ndc.virginatlantic.com/help/how-to-access-ndc-apis
not_published:
  - OAuth 2.0 / OpenID Connect (no /.well-known/openid-configuration or oauth-authorization-server
    document exists on any Virgin Atlantic host - see well-known/virgin-atlantic-well-known.yml)
  - Scopes or permission model (no OAuth surface, so scopes/ is intentionally absent)
  - Key rotation policy, key expiry or per-key rate limits
  - Request signing, mTLS or IP allow-listing requirements