openapi: 3.0.3
info:
title: Airline Analytics Disruption Guarantee (DG) API
version: v1.1
description: In order to measure and continuously improve HTS Ancillaries performance, specific events occurring during a customer session can be sent by the partner airlines using some dedicated endpoints.
servers:
- url: https://airlines-api.hopper.com/airline/v1.1
tags:
- description: "**What is Disruption Guarantee?**\n\nDisruption Guarantee (DG) offers a premium disruption assistance service to customers in case of flight disruption, including rebooking options on any airline or a refund option.\n\n****\n\n**How it works**\n\nThere are two distinct flows for DG:\n\n- The _purchase flow_, enabling customers to purchase the product within the airline’s booking flow.\n- The _exercise flow_, enabling customers to benefit from the premium disruption assistance service in case of a flight disruption.\n\nFor the _purchase flow_, the first step is to [Create a Session](#operation/postSessions)\n\nBoth the purchase and the exercise of DG should be tracked by the airline in the airline’s Passenger Name Record (PNR) according to the applicable industry standards.\n\n****\n\n**Purchase flow**\n\nDG follows the industry standard of a two step purchase process.\n\n1. Once the user is landing on the page displaying the DG offer, the airline will call the [Create DG Offers](#operation/postDg_offers) endpoint. DG Offers can be created at multiple granular levels. The request must include a description of the Itinerary for which the offers are requested. The response will contain\n\n - the price for the product (`premium`),\n - the refundable amount (`coverage`),\n - the maximum price per passenger for a new flight (`service_cap`),\n - the delay threshold to trigger the policy (`min_minuted_delay`),\n - the start of the timeframe to trigger the policy (`max_hours_before_departure`)\n - and the description of the offer in the user’s language (`contents`).\n\n2. If a user is attaching DG to his booking, the airline will call the [Create DG Contract](#operation/postDg_contracts) endpoint. The request must include the selected offer\\_id(s) and a description of the Itinerary for which the contract is requested, which must match the one of the Offer. At this stage, the DG Contract is only _created_. It will be confirmed once the customer has made the payment, which can be done in two ways:\n\n 1. If the airline is the Merchant of Records (MoR), it will capture the payment for the total amount of the booking, including the DG fee amount. Upon a successful payment, the airline will call the Update DG Contract Status endpoint to set the DG contract to _confirmed_. The airline will track this purchase in its PNR following the industry standards that apply to ticketing or ticketless carriers.\n 2. If HTS is the Merchant of Records (MoR), the airline will capture the payment for the amount of the booking excluding the DG fee, while HTS will capture the payment for the DG fee amount. Upon a successful payment of its portion, the airline will call the Process DG Payment endpoint for HTS to capture the payment for the DG fee amount. Once successful, the DG contract will be set to _confirmed_. The airline will track this purchase in its PNR.\n \nThe details of a DG contract can be retrieved at any time through the [Get a DG Contract](#operation/getDg_contractsId) endpoint.\n\n****\n\n**Exercise flow**\n\nIn this version of the API, the DG exercise is powered by HTS as a standalone flow, without any endpoint publicly exposed.\\\nIn a future version of the API, the DG exercise will be initialized from the “Manage My Bookings” (MMB) page of the airline. New endpoints will be released to that purpose.\n"
name: Disruption Guarantee (DG)
paths:
/dg_offers:
post:
description: Create DG offers for a user's trip
operationId: postDg_offers
parameters:
- description: The ID of the current airline session, see [Sessions](#tag/Sessions)
example: 9fd3f2f9-e5aa-4128-ace9-3c4ee37b685f
explode: false
in: header
name: HC-Session-ID
required: false
schema:
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/create_dg_offers_request'
required: true
responses:
'201':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/create_dg_offer_item_response'
type: array
description: The created DG offers
headers:
Expires:
explode: false
required: true
schema:
type: string
style: simple
Cache-Control:
explode: false
required: true
schema:
type: string
style: simple
HTS-Session-ID:
description: The ID of the current session, see [Sessions](#tag/Sessions)
example: 9fd3f2f9-e5aa-4128-ace9-3c4ee37b685f
explode: false
required: true
schema:
type: string
style: simple
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request'
description: Syntactic errors were encountered while handling the request
'401':
description: The client could not be authenticated
'403':
description: The authenticated client does not have permission to call this endpoint
'404':
description: The requested resource could not be found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/unprocessable_entity'
description: Semantic errors were encountered while handling the request
'500':
description: The server encountered an internal error
security:
- PartnerAuth: []
apiKeyAuth: []
summary: Create DG Offers
tags:
- Disruption Guarantee (DG)
/dg_contracts:
post:
description: Create a DG contract from selected DG offer(s).
operationId: postDg_contracts
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/create_dg_contract_request'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/dg_contract'
description: The created DG contract
headers:
Expires:
explode: false
required: true
schema:
type: string
style: simple
Cache-Control:
explode: false
required: true
schema:
type: string
style: simple
'204':
description: The DG contract creation request was successfully validated but not performed
headers:
Expires:
explode: false
required: true
schema:
type: string
style: simple
Cache-Control:
explode: false
required: true
schema:
type: string
style: simple
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request'
description: Syntactic errors were encountered while handling the request
'401':
description: The client could not be authenticated
'403':
description: The authenticated client does not have permission to call this endpoint
'404':
description: The requested resource could not be found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/unprocessable_entity'
description: Semantic errors were encountered while handling the request
'500':
description: The server encountered an internal error
security:
- PartnerAuth: []
apiKeyAuth: []
summary: Create a DG Contract
tags:
- Disruption Guarantee (DG)
/dg_contracts/{id}:
get:
description: Get a DG contract
operationId: getDg_contractsId
parameters:
- description: A unique identifier for a contract
explode: false
in: path
name: id
required: true
schema:
type: string
style: simple
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/dg_contract'
description: The requested DG contract
headers:
Expires:
explode: false
required: true
schema:
type: string
style: simple
Cache-Control:
explode: false
required: true
schema:
type: string
style: simple
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request'
description: Syntactic errors were encountered while handling the request
'401':
description: The client could not be authenticated
'403':
description: The authenticated client does not have permission to call this endpoint
'404':
description: The requested resource could not be found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/unprocessable_entity'
description: Semantic errors were encountered while handling the request
'500':
description: The server encountered an internal error
security:
- PartnerAuth: []
apiKeyAuth: []
summary: Get a DG contract
tags:
- Disruption Guarantee (DG)
/dg_contracts/{id}/payment:
post:
description: "When HTS is the Merchant of Record (MoR), the customer's credit card is charged by HTS for the DG fee.\n\nHTS is relying on an external payment gateway to process the payments, it allows the partner airline to tokenize the customer's credit card details and then pass the generated token in HTS Ancillaries for Airlines API payment endpoints in order to process the payment and confirm the contract related to the purchased product.\n\n**Token URL**: https://core.spreedly.com/v1/payment_methods.json\n \n**Example Token Request**: \n \n``` \ncurl --request POST --url https://core.spreedly.com/v1/payment_methods.json --header 'content-type: application/json' -u \"login:password\" --data '{\n\t\"payment_method\": {\n\t\t\"email\": \"aaa@bbb.ccc\",\n\t\t\"credit_card\": {\n\t\t\t\"number\": \"4111111111111111\",\n\t\t\t\"month\": \"09\",\n\t\t\t\"year\": \"2029\",\n\t\t\t\"first_name\": \"John\",\n\t\t\t\"last_name\": \"Smith\",\n\t\t\t\"address1\": \"123 12th St\",\n\t\t\t\"address2\": \"Building B\",\n\t\t\t\"city\": \"Quebec City\",\n\t\t\t\"state\": \"QC\",\n\t\t\t\"zip\": \"G1R 4S9\",\n\t\t\t\"country\": \"CA\",\n\t\t\t\"verification_value\": \"123\"\n\t\t}\n\t}\n}'\n```\n**Example Token Response**: \n``` \n{\n\t\"transaction\": {\n\t\t\"token\": \"KtToV20m9qT1Yi8pbTeLNz0Ypns\",\n\t\t\"created_at\": \"2023-11-29T13:31:56Z\",\n\t\t\"updated_at\": \"2023-11-29T13:31:56Z\",\n\t\t\"succeeded\": true,\n\t\t\"transaction_type\": \"AddPaymentMethod\",\n\t\t\"retained\": false,\n\t\t\"state\": \"succeeded\",\n\t\t\"message_key\": \"messages.transaction_succeeded\",\n\t\t\"message\": \"Succeeded!\",\n\t\t\"payment_method\": {\n\t\t\t\"token\": \"MxyYEhDK12CUAA18bJDkAq0ab3y\",\n\t\t\t\"created_at\": \"2023-11-29T13:31:56Z\",\n\t\t\t\"updated_at\": \"2023-11-29T13:31:56Z\",\n\t\t\t\"email\": \"aaa@bbb.ccc\",\n\t\t\t\"data\": null,\n\t\t\t\"storage_state\": \"cached\",\n\t\t\t\"test\": true,\n\t\t\t\"metadata\": null,\n\t\t\t\"callback_url\": null,\n\t\t\t\"last_four_digits\": \"1111\",\n\t\t\t\"first_six_digits\": \"411111\",\n\t\t\t\"card_type\": \"visa\",\n\t\t\t\"first_name\": \"John\",\n\t\t\t\"last_name\": \"Smith\",\n\t\t\t\"month\": 9,\n\t\t\t\"year\": 2029,\n\t\t\t\"address1\": \"123 12th St\",\n\t\t\t\"address2\": \"Building B\",\n\t\t\t\"city\": \"Quebec City\",\n\t\t\t\"state\": \"QC\",\n\t\t\t\"zip\": \"G1R 4S9\",\n\t\t\t\"country\": \"CA\",\n\t\t\t\"phone_number\": null,\n\t\t\t\"company\": null,\n\t\t\t\"full_name\": \"John Smith\",\n\t\t\t\"eligible_for_card_updater\": true,\n\t\t\t\"shipping_address1\": null,\n\t\t\t\"shipping_address2\": null,\n\t\t\t\"shipping_city\": null,\n\t\t\t\"shipping_state\": null,\n\t\t\t\"shipping_zip\": null,\n\t\t\t\"shipping_country\": null,\n\t\t\t\"shipping_phone_number\": null,\n\t\t\t\"issuer_identification_number\": \"41111111\",\n\t\t\t\"click_to_pay\": false,\n\t\t\t\"managed\": true,\n\t\t\t\"payment_method_type\": \"credit_card\",\n\t\t\t\"errors\": [],\n\t\t\t\"bin_metadata\": {\n\t\t\t\t\"message\": \"BIN Metadata is available only to Advanced Vault enrolled customers and payment methods. Reach out to your account representative for more details.\"\n\t\t\t},\n\t\t\t\"fingerprint\": \"7ccffcf38900f224fc946cf2a9c8e260072b\",\n\t\t\t\"verification_value\": \"XXX\",\n\t\t\t\"number\": \"XXXX-XXXX-XXXX-1111\"\n\t\t}\n\t}\n}\n```\nHere the returned payment method token **MxyYEhDK12CUAA18bJDkAq0ab3y** has to be used in the Process DG Payment request below."
operationId: postDg_contractsIdPayment
parameters:
- description: A unique identifier for a contract
explode: false
in: path
name: id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/process_dg_payment_request'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/dg_payment'
description: The contract has been paid
headers:
Expires:
explode: false
required: true
schema:
type: string
style: simple
Cache-Control:
explode: false
required: true
schema:
type: string
style: simple
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request'
description: Syntactic errors were encountered while handling the request
'401':
description: The client could not be authenticated
'403':
description: The authenticated client does not have permission to call this endpoint
'404':
description: The requested resource could not be found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/unprocessable_entity'
description: Semantic errors were encountered while handling the request
'500':
description: The server encountered an internal error
security:
- PartnerAuth: []
apiKeyAuth: []
summary: Process DG payment
tags:
- Disruption Guarantee (DG)
/dg_contracts/{id}/update_status:
put:
description: Update DG Contract Status
operationId: putDg_contractsIdUpdate_status
parameters:
- description: A unique identifier for a contract
explode: false
in: path
name: id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/update_dg_contract_status_request'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/dg_contract'
description: The Updated DG contract
headers:
Expires:
explode: false
required: true
schema:
type: string
style: simple
Cache-Control:
explode: false
required: true
schema:
type: string
style: simple
'204':
description: The DG contract status update request was successfully validated but not performed
headers:
Expires:
explode: false
required: true
schema:
type: string
style: simple
Cache-Control:
explode: false
required: true
schema:
type: string
style: simple
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request'
description: Syntactic errors were encountered while handling the request
'401':
description: The client could not be authenticated
'403':
description: The authenticated client does not have permission to call this endpoint
'404':
description: The requested resource could not be found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/unprocessable_entity'
description: Semantic errors were encountered while handling the request
'500':
description: The server encountered an internal error
security:
- PartnerAuth: []
apiKeyAuth: []
summary: Update DG Contract Status
tags:
- Disruption Guarantee (DG)
/dg_contracts/{id}/itinerary_slices:
put:
description: Update itinerary slices of a DG contract.
operationId: putDg_contractsIdItinerary_slices
parameters:
- description: A unique identifier for a contract
explode: false
in: path
name: id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
schema:
items:
$ref: '#/components/schemas/dg_itinerary_slice'
minItems: 1
type: array
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/dg_contract'
description: The Updated DG contract
headers:
Expires:
explode: false
required: true
schema:
type: string
style: simple
Cache-Control:
explode: false
required: true
schema:
type: string
style: simple
'204':
description: The DG Contract Itinerary Slices update request was successfully validated but not performed
headers:
Expires:
explode: false
required: true
schema:
type: string
style: simple
Cache-Control:
explode: false
required: true
schema:
type: string
style: simple
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request'
description: Syntactic errors were encountered while handling the request
'401':
description: The client could not be authenticated
'403':
description: The authenticated client does not have permission to call this endpoint
'404':
description: The requested resource could not be found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/unprocessable_entity'
description: Semantic errors were encountered while handling the request
'500':
description: The server encountered an internal error
security:
- PartnerAuth: []
apiKeyAuth: []
summary: Update DG Contract Itinerary Slices
tags:
- Disruption Guarantee (DG)
/dg_contract_exercises:
post:
description: Record that a request to exercise a DG contract has occurred.
operationId: postDg_contract_exercises
parameters:
- description: The ID of the current airline session, see [Sessions](#tag/Sessions)
example: 9fd3f2f9-e5aa-4128-ace9-3c4ee37b685f
explode: false
in: header
name: HC-Session-ID
required: false
schema:
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/create_dg_contract_exercise_request'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/create_dg_contract_exercise_response'
description: The created DG contract exercise
headers:
Expires:
explode: false
required: true
schema:
type: string
style: simple
Cache-Control:
explode: false
required: true
schema:
type: string
style: simple
HTS-Session-ID:
description: The ID of the current session, see [Sessions](#tag/Sessions)
example: 9fd3f2f9-e5aa-4128-ace9-3c4ee37b685f
explode: false
required: true
schema:
type: string
style: simple
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request'
description: Syntactic errors were encountered while handling the request
'401':
description: The client could not be authenticated
'403':
description: The authenticated client does not have permission to call this endpoint
'404':
description: The requested resource could not be found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/unprocessable_entity'
description: Semantic errors were encountered while handling the request
'500':
description: The server encountered an internal error
security:
- PartnerAuth: []
apiKeyAuth: []
summary: Create DG Exercise
tags:
- Disruption Guarantee (DG)
/customer/dg/payout/receipt:
get:
description: Download payout receipt as PDF
operationId: getCustomerDgPayoutReceipt
parameters:
- explode: false
in: header
name: verification-code
required: false
schema:
type: string
style: simple
responses:
'200':
content:
application/pdf:
schema:
format: binary
type: string
description: PDF receipt file
headers:
Expires:
explode: false
required: true
schema:
type: string
style: simple
Cache-Control:
explode: false
required: true
schema:
type: string
style: simple
Content-Type:
explode: false
required: true
schema:
type: string
style: simple
Content-Disposition:
explode: false
required: true
schema:
type: string
style: simple
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request'
description: Syntactic errors were encountered while handling the request
'401':
description: The client could not be authenticated
'403':
description: The authenticated client does not have permission to call this endpoint
'404':
description: The requested resource could not be found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/unprocessable_entity'
description: Semantic errors were encountered while handling the request
'500':
description: The server encountered an internal error
security:
- {}
- SessionAuth: []
summary: Get payout receipt PDF
tags:
- Disruption Guarantee (DG)
/customer/dg_exercises/{id}/session:
get:
description: Retrieve the session ID for a given DG exercise ID
operationId: getCustomerDg_exercisesIdSession
parameters:
- description: A unique identifier for a exercise
explode: false
in: path
name: id
required: true
schema:
type: string
style: simple
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/get_dg_exercise_session_response'
description: The session ID for the DG exercise
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request'
description: Syntactic errors were encountered while handling the request
'404':
description: The requested resource could not be found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/unprocessable_entity'
description: Semantic errors were encountered while handling the request
'500':
description: The server encountered an internal error
summary: Get session ID by DG exercise ID
tags:
- Disruption Guarantee (DG)
components:
schemas:
dg_passenger_pricing:
example:
individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
properties:
passenger_count:
$ref: '#/components/schemas/passenger_count'
individual_price:
description: Price per passenger
example: '20.55'
minimum: 0
type: string
taxes:
description: Taxes applicable to this itinerary
items:
$ref: '#/components/schemas/dg_passenger_tax'
type: array
required:
- individual_price
- passenger_count
title: dg_passenger_pricing
type: object
process_dg_payment_request:
description: A process DG payment request
properties:
payment_token:
description: 'The Token of the Form of Payment used to pay for the DG fee. '
example: MxyYEhDK12CUAA18bJDkAq0ab3y
type: string
first_name:
description: First name of the cardholder
example: John
type: string
last_name:
description: Last name of the cardholder
example: Smith
type: string
address_line1:
description: Address of the cardholder (first line)
example: 123 12th St
type: string
address_line2:
description: Address of the cardholder (second line)
example: Building B
type: string
city:
description: City of the cardholder
example: Quebec City
type: string
state_or_province:
description: State or province of the cardholder
example: QC
type: string
postal_code:
description: Postal code of the cardholder
example: G1R 4S9
type: string
country:
description: Country of the cardholder
example: CA
type: string
pnr_reference:
description: Reference of the PNR in the airline system
example: ABC123
type: string
email_address:
description: Email address of the user
example: aaa@bbb.ccc
type: string
phone_number:
description: Phone number of the customer
example: '12345678900'
type: string
required:
- email_address
- payment_token
- phone_number
- pnr_reference
title: process_dg_payment_request
type: object
passenger_type:
enum:
- adult
- child
- seated_infant
- lap_infant
title: passenger_type
type: string
dg_request_type:
enum:
- post_booking
- reprice
- ancillary
- bundle
- fare
title: dg_request_type
type: string
opera:
properties:
version:
type: string
type:
enum:
- opera
type: string
required:
- type
title: opera
type: object
dg_ancillary:
description: An object detailing the fare used to create a DG offer
example:
passenger_reference: '1'
total_price: '20.55'
covered: true
type: travel_insurance
properties:
total_price:
description: Total price of ancillaries of this type
example: '20.55'
minimum: 0
type: string
passenger_reference:
description: Unique reference of the passenger associated to this ancillary
example: '1'
type: string
type:
$ref: '#/components/schemas/dg_ancillary_type'
covered:
description: Is this ancillary covered by the product. By default true if not specified
type: boolean
required:
- total_price
- type
title: dg_ancillary
type: object
create_dg_contract_exercise_response:
description: An object containing exercise information for a contract
example:
redirection_url: https://hts.hopper.com/
id: 1ec9ef4b-b3bf-64ae-8a3d-6b084d9f6b3c
properties:
id:
description: Unique identifier for a DG exercise
example: 1ec9ef4b-b3bf-64ae-8a3d-6b084d9f6b3c
type: string
redirection_url:
description: URL on which the customer should be redirected to exercise (if applicable)
example: https://hts.hopper.com/
type: string
required:
- id
title: create_dg_contract_exercise_response
type: object
points:
properties:
amount:
description: Amount charged on the form of payment
minimum: 0
type: string
type:
enum:
- points
type: string
required:
- amount
- type
title: points
type: object
dg_passenger_type:
enum:
- adult
- child
- seated_infant
- lap_infant
title: dg_passenger_type
type: string
other_os:
properties:
name:
example: 15.0.2
type: string
version:
type: string
type:
enum:
- other_os
example: i_os
type: string
required:
- name
- type
title: other_os
type: object
operating_system:
discriminator:
mapping:
android: '#/components/schemas/android'
chrome_os: '#/components/schemas/chrome_os'
i_os: '#/components/schemas/i_os'
linux: '#/components/schemas/linux'
mac_os: '#/components/schemas/mac_os'
other_os: '#/components/schemas/other_os'
windows: '#/components/schemas/windows'
propertyName: type
oneOf:
- $ref: '#/components/schemas/android'
- $ref: '#/components/schemas/chrome_os'
- $ref: '#/components/schemas/i_os'
- $ref: '#/components/schemas/linux'
- $ref: '#/components/schemas/mac_os'
- $ref: '#/components/schemas/other_os'
- $ref: '#/components/schemas/windows'
title: operating_system
passenger_count:
example:
count: 3
type: adult
properties:
count:
description: Number of passenger type
example: 3
exclusiveMinimum: true
format: int32
minimum: 0
type: integer
type:
$ref: '#/components/schemas/passenger_type'
required:
- count
- type
title: passenger_count
type: object
create_dg_offer_item_response:
description: A created Dg offer
example:
coverage: '400.00'
taxes_total: '20.00'
faq_url: faq_url
ext_attributes:
key: ext_attributes
premium_per_passenger: '3.34'
request_type: post_booking
coverage_percentage: '80.00'
experiments:
key: experiments
taxes:
- amount: '20.00'
rate: '12.00'
registration_number: 0123456ABCDEF
name: VAT
- amount: '20.00'
rate: '12.00'
registration_number: 0123456ABCDEF
name: VAT
itinerary:
slices:
- fare_brand: flex
segments:
- validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
- validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
passenger_pricing:
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
- fare_brand: flex
segments:
- validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
- validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
passenger_pricing:
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
ancillaries:
- passenger_reference: '1'
total_price: '20.55'
covered: true
type: travel_insurance
- passenger_reference: '1'
total_price: '20.55'
covered: true
type: travel_insurance
passengers:
- passenger_reference: '1'
gender: male
nationality: US
passport_issuance_date: 2018-04-02
passport_expiration_date: 2030-04-02
date_of_birth: 2000-04-02
passport_number: J12393496
last_name: Smith
passport_country_issuance: US
first_name: John
passenger_type: adult
- passenger_reference: '1'
gender: male
nationality: US
passport_issuance_date: 2018-04-02
passport_expiration_date: 2030-04-02
date_of_birth: 2000-04-02
passport_number: J12393496
last_name: Smith
passport_country_issuance: US
first_name: John
passenger_type: adult
total_price: '401.10'
currency: CAD
passenger_pricing:
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
created_date_time: 2020-11-02 18:34:30+00:00
terms_conditions_url: terms_conditions_url
premium: '40.80'
contents:
key:
bullet_points:
- bullet_points
- bullet_points
labels:
key: labels
contract_expiry_date_time: 2020-12-20 12:15:48+00:00
currency: CAD
id: 1ec9eed3-4486-6460-9d6c-2fb8469d35db
service_cap: '1000.00'
max_hours_before_departure: 24
entry_point: entry_point
min_minutes_delay: 1
merchandising_url: merchandising_url
merchandising_url_web_component: merchandising_url_web_component
properties:
id:
description: Unique identifier for an offer
example: 1ec9eed3-4486-6460-9d6c-2fb8469d35db
type: string
premium:
description: Total amount to be paid for DG
example: '40.80'
minimum: 0
type: string
premium_per_passenger:
description: Premium amount per paying passenger
example: '3.34'
minimum: 0
type: string
coverage:
description: Total amount to be refunded upon DG exercise
example: '400.00'
minimum: 0
type: string
coverage_percentage:
description: Percentage of the ticket’s value to be refunded upon DG exercise
example: '80.00'
minimum: 0
type: string
service_cap:
example: '1000.00'
minimum: 0
type: string
currency:
description: Currency of offer
example: CAD
type: string
taxes_total:
description: Total of applicable taxes
example: '20.00'
minimum: 0
type: string
taxes:
description: List of applicable taxes
items:
$ref: '#/components/schemas/dg_tax'
type: array
request_type:
$ref: '#/components/schemas/dg_request_type'
entry_point:
description: Information about product placement on partner's website
type: string
max_hours_before_departure:
description: The number of hours before each flight or slice departure from which a purchased contract would start to cover disruptions
example: 24
exclusiveMinimum: true
format: int32
minimum: 0
type: integer
min_minutes_delay:
description: The minimum flight or slice departure delay in minutes to be covered
example: 1
exclusiveMinimum: true
format: int32
minimum: 0
type: integer
created_date_time:
description: A UTC [RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) datetime; the date and time at which a DG offer was created
example: 2020-11-02 18:34:30+00:00
format: date-time
type: string
contract_expiry_date_time:
description: A UTC [RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) datetime; the date and time at which the DG contract will expire once purchased
example: 2020-12-20 12:15:48+00:00
format: date-time
type: string
itinerary:
$ref: '#/components/schemas/dg_itinerary'
ext_attributes:
additionalProperties:
type: string
title: map_string
type: object
experiments:
additionalProperties:
type: string
title: map_string
type: object
contents:
additionalProperties:
$ref: '#/components/schemas/dg_contents'
title: map_dg_contents
type: object
terms_conditions_url:
description: The terms and conditions for this offer
type: string
faq_url:
description: The faq url for this offer
type: string
merchandising_url:
description: The url for rendering offer merchandising
type: string
merchandising_url_web_component:
description: The url for the web component SDK for rendering offer merchandising
type: string
required:
- contents
- contract_expiry_date_time
- coverage
- coverage_percentage
- created_date_time
- currency
- experiments
- ext_attributes
- id
- itinerary
- max_hours_before_departure
- min_minutes_delay
- premium
- premium_per_passenger
- request_type
- service_cap
- taxes_total
title: create_dg_offer_item_response
type: object
dg_contract:
description: A DG contract
example:
offers:
- coverage: '180.60'
taxes_total: '20.00'
faq_url: faq_url
ext_attributes:
key: ext_attributes
request_type: post_booking
coverage_percentage: '80.00'
experiments:
key: experiments
taxes:
- amount: '20.00'
rate: '12.00'
registration_number: 0123456ABCDEF
name: VAT
- amount: '20.00'
rate: '12.00'
registration_number: 0123456ABCDEF
name: VAT
itinerary:
slices:
- fare_brand: flex
segments:
- validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
- validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
passenger_pricing:
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
- fare_brand: flex
segments:
- validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
- validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
passenger_pricing:
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
ancillaries:
- passenger_reference: '1'
total_price: '20.55'
covered: true
type: travel_insurance
- passenger_reference: '1'
total_price: '20.55'
covered: true
type: travel_insurance
passengers:
- passenger_reference: '1'
gender: male
nationality: US
passport_issuance_date: 2018-04-02
passport_expiration_date: 2030-04-02
date_of_birth: 2000-04-02
passport_number: J12393496
last_name: Smith
passport_country_issuance: US
first_name: John
passenger_type: adult
- passenger_reference: '1'
gender: male
nationality: US
passport_issuance_date: 2018-04-02
passport_expiration_date: 2030-04-02
date_of_birth: 2000-04-02
passport_number: J12393496
last_name: Smith
passport_country_issuance: US
first_name: John
passenger_type: adult
total_price: '401.10'
currency: CAD
passenger_pricing:
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
created_date_time: 2020-11-02 18:34:30+00:00
terms_conditions_url: terms_conditions_url
premium: '20.80'
contents:
key:
bullet_points:
- bullet_points
- bullet_points
labels:
key: labels
contract_expiry_date_time: 2020-12-20 12:15:48+00:00
currency: CAD
id: id
service_cap: '1000.00'
max_hours_before_departure: 24
entry_point: entry_point
min_minutes_delay: 1
merchandising_url: merchandising_url
merchandising_url_web_component: merchandising_url_web_component
- coverage: '180.60'
taxes_total: '20.00'
faq_url: faq_url
ext_attributes:
key: ext_attributes
request_type: post_booking
coverage_percentage: '80.00'
experiments:
key: experiments
taxes:
- amount: '20.00'
rate: '12.00'
registration_number: 0123456ABCDEF
name: VAT
- amount: '20.00'
rate: '12.00'
registration_number: 0123456ABCDEF
name: VAT
itinerary:
slices:
- fare_brand: flex
segments:
- validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
- validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
passenger_pricing:
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
- fare_brand: flex
segments:
- validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
- validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
passenger_pricing:
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
ancillaries:
- passenger_reference: '1'
total_price: '20.55'
covered: true
type: travel_insurance
- passenger_reference: '1'
total_price: '20.55'
covered: true
type: travel_insurance
passengers:
- passenger_reference: '1'
gender: male
nationality: US
passport_issuance_date: 2018-04-02
passport_expiration_date: 2030-04-02
date_of_birth: 2000-04-02
passport_number: J12393496
last_name: Smith
passport_country_issuance: US
first_name: John
passenger_type: adult
- passenger_reference: '1'
gender: male
nationality: US
passport_issuance_date: 2018-04-02
passport_expiration_date: 2030-04-02
date_of_birth: 2000-04-02
passport_number: J12393496
last_name: Smith
passport_country_issuance: US
first_name: John
passenger_type: adult
total_price: '401.10'
currency: CAD
passenger_pricing:
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
created_date_time: 2020-11-02 18:34:30+00:00
terms_conditions_url: terms_conditions_url
premium: '20.80'
contents:
key:
bullet_points:
- bullet_points
- bullet_points
labels:
key: labels
contract_expiry_date_time: 2020-12-20 12:15:48+00:00
currency: CAD
id: id
service_cap: '1000.00'
max_hours_before_departure: 24
entry_point: entry_point
min_minutes_delay: 1
merchandising_url: merchandising_url
merchandising_url_web_component: merchandising_url_web_component
coverage: '400.00'
taxes_total: '3.90'
ext_attributes:
key: ext_attributes
coverage_percentage: '80.00'
taxes:
- amount: '20.00'
rate: '12.00'
registration_number: 0123456ABCDEF
name: VAT
- amount: '20.00'
rate: '12.00'
registration_number: 0123456ABCDEF
name: VAT
itinerary:
slices:
- fare_brand: flex
segments:
- validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
- validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
passenger_pricing:
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
- fare_brand: flex
segments:
- validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
- validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
passenger_pricing:
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
ancillaries:
- passenger_reference: '1'
total_price: '20.55'
covered: true
type: travel_insurance
- passenger_reference: '1'
total_price: '20.55'
covered: true
type: travel_insurance
passengers:
- passenger_reference: '1'
gender: male
nationality: US
passport_issuance_date: 2018-04-02
passport_expiration_date: 2030-04-02
date_of_birth: 2000-04-02
passport_number: J12393496
last_name: Smith
passport_country_issuance: US
first_name: John
passenger_type: adult
- passenger_reference: '1'
gender: male
nationality: US
passport_issuance_date: 2018-04-02
passport_expiration_date: 2030-04-02
date_of_birth: 2000-04-02
passport_number: J12393496
last_name: Smith
passport_country_issuance: US
first_name: John
passenger_type: adult
total_price: '401.10'
currency: CAD
passenger_pricing:
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
language: EN
reference: 1FE5772642C77BAB
created_date_time: 2022-01-08 14:36:56+00:00
premium: '40.00'
currency: CAD
id: 1ec9ef29-be31-6ed3-beec-9f5ae0d164ee
pnr_reference: ABC123
service_cap: '1000.00'
max_hours_before_departure: 24
min_minutes_delay: 1
expiry_date_time: 2022-06-01 15:00:00+00:00
status: created
properties:
id:
description: Unique identifier for a contract
example: 1ec9ef29-be31-6ed3-beec-9f5ae0d164ee
type: string
reference:
description: Unique reference for a contract
example: 1FE5772642C77BAB
type: string
status:
$ref: '#/components/schemas/dg_status'
offers:
description: DG Offer(s) used to create the contract
items:
$ref: '#/components/schemas/dg_offer'
type: array
itinerary:
$ref: '#/components/schemas/dg_itinerary'
coverage_percentage:
description: Percentage of the ticket’s value to be refunded upon DG exercise
example: '80.00'
minimum: 0
type: string
coverage:
description: Total amount to be refunded upon DG exercise
example: '400.00'
minimum: 0
type: string
premium:
description: Total amount to be paid for DG
example: '40.00'
minimum: 0
type: string
service_cap:
description: Allowed amount per passenger to book a new flight in case of disruption
example: '1000.00'
minimum: 0
type: string
currency:
description: Currency of contract
example: CAD
type: string
taxes_total:
description: Part of the premium which are taxes
example: '3.90'
minimum: 0
type: string
taxes:
description: List of applicable taxes
items:
$ref: '#/components/schemas/dg_tax'
type: array
max_hours_before_departure:
description: The number of hours before each flight or slice departure from which a purchased contract would start to cover disruptions
example: 24
exclusiveMinimum: true
format: int32
minimum: 0
type: integer
min_minutes_delay:
description: The minimum flight or slice departure delay in minutes to be covered
example: 1
exclusiveMinimum: true
format: int32
minimum: 0
type: integer
created_date_time:
description: A UTC [RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) datetime; the date and time at which a CFAR contract was created
example: 2022-01-08 14:36:56+00:00
format: date-time
type: string
expiry_date_time:
description: A UTC [RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) A UTC RFC3339 datetime; the date and time at which the CFAR contract will expire once purchased
example: 2022-06-01 15:00:00+00:00
format: date-time
type: string
language:
description: Language of the booking
example: EN
type: string
pnr_reference:
description: Reference of the PNR in the airline system
example: ABC123
type: string
ext_attributes:
additionalProperties:
type: string
title: map_string
type: object
required:
- coverage
- coverage_percentage
- created_date_time
- currency
- expiry_date_time
- ext_attributes
- id
- itinerary
- max_hours_before_departure
- min_minutes_delay
- offers
- premium
- reference
- service_cap
- status
- taxes_total
title: dg_contract
type: object
browser:
discriminator:
mapping:
chrome: '#/components/schemas/chrome'
edge: '#/components/schemas/edge'
firefox: '#/components/schemas/firefox'
internet_explorer: '#/components/schemas/internet_explorer'
opera: '#/components/schemas/opera'
other_browser: '#/components/schemas/other_browser'
safari: '#/components/schemas/safari'
propertyName: type
oneOf:
- $ref: '#/components/schemas/chrome'
- $ref: '#/components/schemas/edge'
- $ref: '#/components/schemas/firefox'
- $ref: '#/components/schemas/internet_explorer'
- $ref: '#/components/schemas/opera'
- $ref: '#/components/schemas/other_browser'
- $ref: '#/components/schemas/safari'
title: browser
other_browser:
properties:
name:
type: string
version:
type: string
type:
enum:
- other_browser
type: string
required:
- name
- type
title: other_browser
type: object
platform:
discriminator:
mapping:
app: '#/components/schemas/app'
web: '#/components/schemas/web'
propertyName: type
oneOf:
- $ref: '#/components/schemas/app'
- $ref: '#/components/schemas/web'
title: platform
desktop:
properties:
id:
description: A unique identifier for the end-user's device, generated by the partner
example: eb2dddb7-dc69-4521-9fbb-762b96eb921f
type: string
platform:
$ref: '#/components/schemas/platform'
ui_theme:
type: string
release_build:
type: string
type:
enum:
- desktop
example: mobile
type: string
required:
- id
- type
title: desktop
type: object
dg_exercise_itinerary_slice:
description: An object containing the list of flight segments for a fare slice
properties:
segments:
description: A list of segments which make up the slice
items:
$ref: '#/components/schemas/dg_exercise_itinerary_slice_segment'
minItems: 1
type: array
irop:
description: 'Is the slice impacted by an unplanned short-term Irregularity. It includes delays and cancellations that occur on the day of departure of the first impacted flight. Also known as: Flight Irregularity, IROP or IREG.'
type: boolean
invol:
description: 'Is the slice resulting from a rebooking following an unplanned short-term Irregularity. It includes delays and cancellations that occur on the day of departure of the first impacted flight. Also known as: Flight Irregularity, IROP or IREG.'
type: boolean
previous_slice:
$ref: '#/components/schemas/dg_exercise_itinerary_slice'
required:
- segments
title: dg_exercise_itinerary_slice
type: object
windows:
properties:
version:
example: 15.0.2
type: string
type:
enum:
- windows
example: i_os
type: string
required:
- type
title: windows
type: object
app:
properties:
operating_system:
$ref: '#/components/schemas/operating_system'
type:
enum:
- app
example: app
type: string
required:
- type
title: app
type: object
create_dg_contract_exercise_request:
description: A create DG contract exercise request
properties:
contract_id:
description: A unique identifier for a DG contract
example: 1ec9ef29-be31-6ed3-beec-9f5ae0d164ee
type: string
itinerary:
$ref: '#/components/schemas/dg_exercise_itinerary'
pnr_reference:
description: 'Reference of the PNR in the airline system. In case of a PNR created subsequently to a split, fill requesting PNR / parent PNR (e.g. DEF456/ABC123) '
example: ABC123
type: string
email_address:
description: Email address of the user
example: john@doe.com
type: string
callback_url:
description: URL on which the customer should be redirected after the exercise (if applicable)
example: https://hts.hopper.com/
type: string
redirectback_url:
description: URL on which the customer should be redirected if the exercise is aborted (if applicable)
example: https://hts.hopper.com/
type: string
session:
$ref: '#/components/schemas/create_airline_dg_session_request'
required:
- contract_id
- itinerary
- pnr_reference
title: create_dg_contract_exercise_request
type: object
dg_itinerary_slice_segment:
description: An object detailing a segment of a fare slice
example:
validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
properties:
segment_id:
description: A unique identifier for the segment
example: 60a128e4-a12d-42bf-b977-b6329392282d
type: string
origin_airport:
description: IATA airport code of origin
example: BOS
pattern: '[A-Z]{3}'
type: string
destination_airport:
description: IATA airport code of destination
example: LGA
pattern: '[A-Z]{3}'
type: string
departure_date_time:
description: The local date and time of departure in ISO Local Date Time format
example: 2022-04-02 18:34:30
type: string
arrival_date_time:
description: The local date and time of arrival in ISO Local Date Time format
example: 2022-04-02 19:12:30
type: string
flight_number:
description: The number of the flight
example: JB776
pattern: ([A-Z][0-9]{2,5}|[0-9]{1,4}|[0-9][A-Z][0-9]{1,4}|[A-Z]{2}[0-9]{1,4})
type: string
validating_carrier_code:
description: The IATA airline code of the validating carrier for this segment
example: B6
pattern: '[A-Z0-9]{2}'
type: string
cabin:
$ref: '#/components/schemas/cabin'
fare_brand:
description: Name of the fare brand applied to the segment (if applicable)
type: string
required:
- arrival_date_time
- cabin
- departure_date_time
- destination_airport
- flight_number
- origin_airport
- validating_carrier_code
title: dg_itinerary_slice_segment
type: object
dg_offer:
description: A Dg offer
example:
coverage: '180.60'
taxes_total: '20.00'
faq_url: faq_url
ext_attributes:
key: ext_attributes
request_type: post_booking
coverage_percentage: '80.00'
experiments:
key: experiments
taxes:
- amount: '20.00'
rate: '12.00'
registration_number: 0123456ABCDEF
name: VAT
- amount: '20.00'
rate: '12.00'
registration_number: 0123456ABCDEF
name: VAT
itinerary:
slices:
- fare_brand: flex
segments:
- validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
- validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
passenger_pricing:
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
- fare_brand: flex
segments:
- validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
- validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
passenger_pricing:
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
ancillaries:
- passenger_reference: '1'
total_price: '20.55'
covered: true
type: travel_insurance
- passenger_reference: '1'
total_price: '20.55'
covered: true
type: travel_insurance
passengers:
- passenger_reference: '1'
gender: male
nationality: US
passport_issuance_date: 2018-04-02
passport_expiration_date: 2030-04-02
date_of_birth: 2000-04-02
passport_number: J12393496
last_name: Smith
passport_country_issuance: US
first_name: John
passenger_type: adult
- passenger_reference: '1'
gender: male
nationality: US
passport_issuance_date: 2018-04-02
passport_expiration_date: 2030-04-02
date_of_birth: 2000-04-02
passport_number: J12393496
last_name: Smith
passport_country_issuance: US
first_name: John
passenger_type: adult
total_price: '401.10'
currency: CAD
passenger_pricing:
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
created_date_time: 2020-11-02 18:34:30+00:00
terms_conditions_url: terms_conditions_url
premium: '20.80'
contents:
key:
bullet_points:
- bullet_points
- bullet_points
labels:
key: labels
contract_expiry_date_time: 2020-12-20 12:15:48+00:00
currency: CAD
id: id
service_cap: '1000.00'
max_hours_before_departure: 24
entry_point: entry_point
min_minutes_delay: 1
merchandising_url: merchandising_url
merchandising_url_web_component: merchandising_url_web_component
properties:
id:
type: string
premium:
description: Total amount to be paid for DG
example: '20.80'
minimum: 0
type: string
coverage:
description: Total amount to be refunded upon DG exercise
example: '180.60'
minimum: 0
type: string
coverage_percentage:
description: Percentage of the amount to be refunded to customer compared to flight tickets price
example: '80.00'
minimum: 0
type: string
service_cap:
description: Allowed amount per passenger to book a new flight in case of disruption
example: '1000.00'
minimum: 0
type: string
currency:
description: Currency of offer
example: CAD
type: string
taxes_total:
description: Total of applicable taxes
example: '20.00'
minimum: 0
type: string
taxes:
description: List of applicable taxes
items:
$ref: '#/components/schemas/dg_tax'
type: array
request_type:
$ref: '#/components/schemas/dg_request_type'
entry_point:
description: Information about product placement on partner's website
type: string
max_hours_before_departure:
description: The number of hours before each flight or slice departure from which a purchased contract would start to cover disruptions
example: 24
exclusiveMinimum: true
format: int32
minimum: 0
type: integer
min_minutes_delay:
description: The minimum flight or slice departure delay in hours to be covered
example: 1
exclusiveMinimum: true
format: int32
minimum: 0
type: integer
contract_expiry_date_time:
description: A UTC [RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) datetime; the date and time at which the DG contract will expire once purchased
example: 2020-12-20 12:15:48+00:00
format: date-time
type: string
created_date_time:
description: A UTC [RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) datetime; the date and time at which a DG offer was created
example: 2020-11-02 18:34:30+00:00
format: date-time
type: string
itinerary:
$ref: '#/components/schemas/dg_itinerary'
ext_attributes:
additionalProperties:
type: string
title: map_string
type: object
experiments:
additionalProperties:
type: string
title: map_string
type: object
contents:
additionalProperties:
$ref: '#/components/schemas/dg_contents'
title: map_dg_contents
type: object
terms_conditions_url:
description: The terms and conditions for this offer
type: string
faq_url:
description: The faq url for this offer
type: string
merchandising_url:
description: The url for rendering offer merchandising
type: string
merchandising_url_web_component:
description: The url for the web component SDK for rendering offer merchandising
type: string
required:
- contents
- contract_expiry_date_time
- coverage
- coverage_percentage
- created_date_time
- currency
- experiments
- ext_attributes
- id
- itinerary
- max_hours_before_departure
- min_minutes_delay
- premium
- request_type
- service_cap
- taxes_total
title: dg_offer
type: object
edge:
properties:
version:
type: string
type:
enum:
- edge
type: string
required:
- type
title: edge
type: object
dg_passenger:
description: An object detailing the Passenger Information
example:
passenger_reference: '1'
gender: male
nationality: US
passport_issuance_date: 2018-04-02
passport_expiration_date: 2030-04-02
date_of_birth: 2000-04-02
passport_number: J12393496
last_name: Smith
passport_country_issuance: US
first_name: John
passenger_type: adult
properties:
passenger_reference:
description: Unique reference of the passenger
example: '1'
type: string
passenger_type:
$ref: '#/components/schemas/dg_passenger_type'
first_name:
description: Ancillaries attached to the itinerary and their prices
example: John
type: string
last_name:
description: Ancillaries attached to the itinerary and their prices
example: Smith
type: string
date_of_birth:
description: The birth date in ISO Local Date format (yyyy-MM-dd). For encrypted partners, this contains the encrypted Base64 string.
example: 2000-04-02
type: string
gender:
$ref: '#/components/schemas/gender'
passport_number:
description: The passport number of the passenger. For encrypted partners, this contains the encrypted Base64 string.
example: J12393496
type: string
passport_country_issuance:
description: The country of issuance of the passenger's passport. Must be a valid ISO 3166-1 alpha-2 country code (2 uppercase letters, e.g., 'US', 'JP', 'TH'). For encrypted partners, this contains the encrypted Base64 string.
example: US
type: string
passport_issuance_date:
description: The date of issuance of the passenger's passport in ISO Local Date format (yyyy-MM-dd). For encrypted partners, this contains the encrypted Base64 string.
example: 2018-04-02
type: string
passport_expiration_date:
description: The passport expiration date of the passenger in ISO Local Date format (yyyy-MM-dd). For encrypted partners, this contains the encrypted Base64 string.
example: 2030-04-02
type: string
nationality:
description: The nationality of the passenger. Must be a valid ISO 3166-1 alpha-2 country code (e.g., 'US', 'JP', 'TH'). For encrypted partners, this contains the encrypted Base64 string.
example: US
type: string
required:
- passenger_reference
- passenger_type
title: dg_passenger
type: object
dg_exercise_itinerary_slice_segment:
description: An object detailing a segment of a fare slice
properties:
origin_airport:
description: IATA airport code of origin
example: BOS
pattern: '[A-Z]{3}'
type: string
destination_airport:
description: IATA airport code of destination
example: LGA
pattern: '[A-Z]{3}'
type: string
departure_date_time:
description: The local date and time of departure in ISO Local Date Time format
example: 2022-04-02 18:34:30
type: string
arrival_date_time:
description: The local date and time of arrival in ISO Local Date Time format
example: 2022-04-02 19:12:30
type: string
estimated_departure_date_time:
description: The local date and time of estimated time of departure in ISO Local Date Time format
example: 2022-04-02 20:34:30
type: string
estimated_arrival_date_time:
description: The local date and time of estimated time of arrival in ISO Local Date Time format
example: 2022-04-02 21:12:30
type: string
flight_number:
description: The number of the flight
example: JB776
pattern: ([A-Z][0-9]{2,5}|[0-9]{1,4}|[0-9][A-Z][0-9]{1,4}|[A-Z]{2}[0-9]{1,4})
type: string
validating_carrier_code:
description: The IATA airline code of the validating carrier for this segment
example: B6
pattern: '[A-Z0-9]{2}'
type: string
cabin:
$ref: '#/components/schemas/cabin'
flight_status:
$ref: '#/components/schemas/flight_status'
checked_in:
description: Is there at least one checked-in passenger on this flight
type: boolean
checked_in_bags:
description: Is there at least one checked-in bag on this flight
type: boolean
checked_bag_allowance:
description: Is there a checked bag allowance on this flight
type: boolean
boarded:
description: Is there at least one passenger boarded on this flight
type: boolean
flown:
description: Is this segment flown already
type: boolean
required:
- arrival_date_time
- cabin
- departure_date_time
- destination_airport
- estimated_arrival_date_time
- estimated_departure_date_time
- flight_number
- flight_status
- origin_airport
- validating_carrier_code
title: dg_exercise_itinerary_slice_segment
type: object
mac_os:
properties:
version:
example: 15.0.2
type: string
type:
enum:
- mac_os
example: i_os
type: string
required:
- type
title: mac_os
type: object
gender:
description: The gender of the passenger
enum:
- male
- female
- undisclosed
- unspecified
title: gender
type: string
update_dg_contract_status_request:
description: A update DG contract status request
properties:
status:
$ref: '#/components/schemas/dg_status'
pnr_reference:
description: Reference of the PNR in the airline system.
Mandatory only if new status is "confirmed"
example: ABC123
type: string
email_address:
description: Email address of the user
example: john@doe.com
type: string
phone_number:
description: Phone number of the customer
example: '12345678900'
type: string
first_name:
description: First name of the cardholder
example: John
type: string
last_name:
description: Last name of the cardholder
example: Smith
type: string
address_line1:
description: Address of the cardholder (first line)
example: 123 12th St
type: string
address_line2:
description: Address of the cardholder (second line)
example: Building B
type: string
city:
description: City of the cardholder
example: Quebec City
type: string
state_or_province:
description: State or province of the cardholder
example: QC
type: string
postal_code:
description: Postal code of the cardholder
example: G1R 4S9
type: string
country:
description: Country of the cardholder
example: CA
type: string
taxes_total:
description: Total of taxes
example: '20.00'
minimum: 0
type: string
taxes:
description: List of taxes that is associated with a contract
items:
$ref: '#/components/schemas/dg_tax'
type: array
forms_of_payment:
description: List of the forms of payment used to purchase the booking
items:
$ref: '#/components/schemas/form_of_payment'
minItems: 1
type: array
total_price:
description: Updated total price of the itinerary in case it can change at payment time
example: '401.10'
minimum: 0
type: string
currency:
description: Currency of the total_price (ISO 4217). Defaults to contract currency if absent.
example: USD
type: string
required:
- status
title: update_dg_contract_status_request
type: object
dg_contents:
example:
bullet_points:
- bullet_points
- bullet_points
labels:
key: labels
properties:
bullet_points:
description: An array containing the bullet points to be displayed
items:
type: string
type: array
labels:
additionalProperties:
type: string
title: map_string
type: object
required:
- bullet_points
- labels
title: dg_contents
type: object
tablet:
properties:
id:
description: A unique identifier for the end-user's device, generated by the partner
example: eb2dddb7-dc69-4521-9fbb-762b96eb921f
type: string
platform:
$ref: '#/components/schemas/platform'
ui_theme:
type: string
release_build:
type: string
type:
enum:
- tablet
example: mobile
type: string
required:
- id
- type
title: tablet
type: object
web:
properties:
operating_system:
$ref: '#/components/schemas/operating_system'
browser:
$ref: '#/components/schemas/browser'
type:
enum:
- web
example: app
type: string
required:
- type
title: web
type: object
device:
description: The end-user's device
discriminator:
mapping:
desktop: '#/components/schemas/desktop'
mobile: '#/components/schemas/mobile'
tablet: '#/components/schemas/tablet'
propertyName: type
oneOf:
- $ref: '#/components/schemas/desktop'
- $ref: '#/components/schemas/mobile'
- $ref: '#/components/schemas/tablet'
title: device
internet_explorer:
properties:
version:
type: string
type:
enum:
- internet_explorer
type: string
required:
- type
title: internet_explorer
type: object
dg_itinerary:
example:
slices:
- fare_brand: flex
segments:
- validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
- validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
passenger_pricing:
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
- fare_brand: flex
segments:
- validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
- validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
passenger_pricing:
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
ancillaries:
- passenger_reference: '1'
total_price: '20.55'
covered: true
type: travel_insurance
- passenger_reference: '1'
total_price: '20.55'
covered: true
type: travel_insurance
passengers:
- passenger_reference: '1'
gender: male
nationality: US
passport_issuance_date: 2018-04-02
passport_expiration_date: 2030-04-02
date_of_birth: 2000-04-02
passport_number: J12393496
last_name: Smith
passport_country_issuance: US
first_name: John
passenger_type: adult
- passenger_reference: '1'
gender: male
nationality: US
passport_issuance_date: 2018-04-02
passport_expiration_date: 2030-04-02
date_of_birth: 2000-04-02
passport_number: J12393496
last_name: Smith
passport_country_issuance: US
first_name: John
passenger_type: adult
total_price: '401.10'
currency: CAD
passenger_pricing:
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
properties:
passenger_pricing:
description: List of passengers type, count and pricing for the itinerary
items:
$ref: '#/components/schemas/dg_passenger_pricing'
minItems: 1
type: array
currency:
description: Currency of pricing fields
example: CAD
type: string
slices:
description: List of slices of the itinerary; 1 (one way), 2 (round trip) or up to 10 (multi-destination) slices are allowed
items:
$ref: '#/components/schemas/dg_itinerary_slice'
minItems: 1
type: array
ancillaries:
description: Ancillaries attached to the itinerary and their prices
items:
$ref: '#/components/schemas/dg_ancillary'
type: array
total_price:
description: Total price of the itinerary
example: '401.10'
minimum: 0
type: string
passengers:
description: Details of the passengers
items:
$ref: '#/components/schemas/dg_passenger'
type: array
required:
- currency
- passenger_pricing
- slices
title: dg_itinerary
type: object
android:
properties:
version:
example: 15.0.2
type: string
type:
enum:
- android
example: i_os
type: string
required:
- type
title: android
type: object
api:
description: API channel — a programmatic integration
properties:
client:
description: The API client identifier
type: string
type:
enum:
- api
type: string
required:
- client
- type
title: api
type: object
dg_passenger_count:
properties:
count:
description: Number of passenger type
example: 3
exclusiveMinimum: true
format: int32
minimum: 0
type: integer
passenger_type:
$ref: '#/components/schemas/dg_passenger_type'
required:
- count
- passenger_type
title: dg_passenger_count
type: object
unprocessable_entity:
example:
errors:
- code: code
messages:
key: messages
message: message
- code: code
messages:
key: messages
message: message
properties:
errors:
items:
$ref: '#/components/schemas/error'
type: array
required:
- errors
title: unprocessable_entity
type: object
flight_status:
description: The current flight status
enum:
- confirmed
- cancelled
title: flight_status
type: string
bad_request:
example:
errors:
- code: code
messages:
key: messages
message: message
- code: code
messages:
key: messages
message: message
properties:
errors:
items:
$ref: '#/components/schemas/error'
type: array
required:
- errors
title: bad_request
type: object
dg_passenger_tax:
example:
amount: '0.20'
code: RC
currency: CAD
properties:
code:
description: Code of the tax
example: RC
type: string
amount:
description: The amount of the tax
example: '0.20'
minimum: 0
type: string
currency:
description: The currency of the tax
example: CAD
type: string
required:
- amount
- code
- currency
title: dg_passenger_tax
type: object
dg_exercise_itinerary:
description: Itinerary of the user when the contract exercise was initiated (only active segments should be provided)
properties:
passenger_count:
description: List of passengers type and count for the itinerary
items:
$ref: '#/components/schemas/dg_passenger_count'
minItems: 1
type: array
slices:
description: List of slices of the itinerary; 1 (one way), 2 (round trip) or up to 10 (multi-destination) slices are allowed
items:
$ref: '#/components/schemas/dg_exercise_itinerary_slice'
minItems: 1
type: array
passengers:
description: Details of the passengers
items:
$ref: '#/components/schemas/dg_passenger'
type: array
required:
- passenger_count
- slices
title: dg_exercise_itinerary
type: object
dg_ancillary_type:
description: The type of ancillary
enum:
- travel_insurance
- bag_insurance
- cabin_bag
- checked_bag
- seat
- lounge
- meal
- fast_track
- pet
- change
- bundle
- payment_fee
- other
title: dg_ancillary_type
type: string
cabin:
description: Service class of the segment
enum:
- economy
- premium_economy
- business
- first
title: cabin
type: string
dg_payment:
example:
succeeded: true
properties:
succeeded:
description: Indicates if the transaction is successful
example: true
type: boolean
required:
- succeeded
title: dg_payment
type: object
dg_itinerary_slice:
description: An object containing the list of flight segments for a fare slice
example:
fare_brand: flex
segments:
- validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
- validating_carrier_code: B6
arrival_date_time: 2022-04-02 19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02 18:34:30
cabin: economy
segment_id: 60a128e4-a12d-42bf-b977-b6329392282d
origin_airport: BOS
destination_airport: LGA
passenger_pricing:
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
- individual_price: '20.55'
passenger_count:
count: 3
type: adult
taxes:
- amount: '0.20'
code: RC
currency: CAD
- amount: '0.20'
code: RC
currency: CAD
properties:
segments:
description: A list of segments which make up the slice
items:
$ref: '#/components/schemas/dg_itinerary_slice_segment'
minItems: 1
type: array
fare_brand:
description: Name of the fare brand on the slice
example: flex
type: string
passenger_pricing:
description: List of passengers type, count and pricing for the current slice
items:
$ref: '#/components/schemas/dg_passenger_pricing'
minItems: 1
type: array
required:
- segments
title: dg_itinerary_slice
type: object
create_dg_offers_request:
description: A create DG offers request
properties:
itinerary:
description: An object detailing the itinerary and fare used to create a DG offer
items:
$ref: '#/components/schemas/dg_itinerary'
type: array
request_type:
$ref: '#/components/schemas/dg_request_type'
booking_date_time:
description: A UTC RFC3339 datetime; the date and time at which the booking was made. To be used only with the request type "post_booking"
example: 2022-01-01 18:30:00+00:00
format: date-time
type: string
session:
$ref: '#/components/schemas/create_airline_dg_session_request'
ext_attributes:
additionalProperties:
type: string
title: map_string
type: object
entry_point:
description: Information about product placement on partner's website
type: string
required:
- ext_attributes
- itinerary
- request_type
title: create_dg_offers_request
type: object
dg_tax:
example:
amount: '20.00'
rate: '12.00'
registration_number: 0123456ABCDEF
name: VAT
properties:
name:
description: Name of the tax
example: VAT
type: string
rate:
description: The rate of the tax
example: '12.00'
minimum: 0
type: string
amount:
description: The amount of the tax
example: '20.00'
minimum: 0
type: string
registration_number:
description: Registration number of the tax if applicable
example: 0123456ABCDEF
type: string
required:
- amount
- name
- rate
title: dg_tax
type: object
linux:
properties:
version:
example: 15.0.2
type: string
type:
enum:
- linux
example: i_os
type: string
required:
- type
title: linux
type: object
mobile:
properties:
id:
description: A unique identifier for the end-user's device, generated by the partner
example: eb2dddb7-dc69-4521-9fbb-762b96eb921f
type: string
platform:
$ref: '#/components/schemas/platform'
ui_theme:
type: string
release_build:
type: string
type:
enum:
- mobile
example: mobile
type: string
required:
- id
- type
title: mobile
type: object
chrome_os:
properties:
version:
example: 15.0.2
type: string
type:
enum:
- chrome_os
example: i_os
type: string
required:
- type
title: chrome_os
type: object
white_label:
description: White-label channel — the partner sells under a different brand
properties:
brand:
description: The brand name under which the product is sold
type: string
type:
enum:
- white_label
type: string
required:
- brand
- type
title: white_label
type: object
error:
example:
code: code
messages:
key: messages
message: message
properties:
message:
type: string
code:
type: string
messages:
additionalProperties:
type: string
title: map_string
type: object
required:
- message
title: error
type: object
create_dg_contract_request:
description: A create DG contract request
properties:
offer_ids:
description: Identifier of the offer(s) for which the contract is created
example: 1ec9eed3-4486-6460-9d6c-2fb8469d35db
items:
type: string
type: array
itinerary:
$ref: '#/components/schemas/dg_itinerary'
ext_attributes:
additionalProperties:
type: string
title: map_string
type: object
pnr_reference:
description: Reference of the PNR in the airline system
example: ABC123
type: string
required:
- ext_attributes
- itinerary
- offer_ids
title: create_dg_contract_request
type: object
online_booking_tool:
description: Online booking tool channel
properties:
travel_management_company:
description: The travel management company name
type: string
business:
description: The business name
type: string
type:
enum:
- online_booking_tool
type: string
required:
- business
- travel_management_company
- type
title: online_booking_tool
type: object
user_info:
description: An object containing information related to the airline's user. Should be included if known, but not if the user is anonymous.
properties:
airline_user_id:
description: The airline's unique identifier for a user; can be an arbitrary string
example: 2bcd6619-ac3e-403b-9982-3e12f2698a53
type: string
created_date_time:
description: A UTC [RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) datetime; the date and time at which a user's account was created
example: 2020-11-02 18:34:30+00:00
format: date-time
type: string
previous_bookings:
description: Number of prior bookings a user has made
example: 3
format: int32
minimum: 0
type: integer
required:
- airline_user_id
title: user_info
type: object
safari:
properties:
version:
type: string
type:
enum:
- safari
type: string
required:
- type
title: safari
type: object
direct:
description: Direct channel — the partner sells directly to the end customer
properties:
type:
enum:
- direct
type: string
required:
- type
title: direct
type: object
channel:
description: The partner's distribution channel
discriminator:
mapping:
agent_reseller: '#/components/schemas/agent_reseller'
api: '#/components/schemas/api'
direct: '#/components/schemas/direct'
online_booking_tool: '#/components/schemas/online_booking_tool'
white_label: '#/components/schemas/white_label'
propertyName: type
oneOf:
- $ref: '#/components/schemas/agent_reseller'
- $ref: '#/components/schemas/api'
- $ref: '#/components/schemas/direct'
- $ref: '#/components/schemas/online_booking_tool'
- $ref: '#/components/schemas/white_label'
title: channel
cash:
properties:
amount:
description: Amount charged on the form of payment
minimum: 0
type: string
currency:
description: Currency of the form of payment
example: CAD
type: string
type:
enum:
- cash
type: string
required:
- amount
- currency
- type
title: cash
type: object
i_os:
properties:
version:
example: 15.0.2
type: string
type:
enum:
- i_os
example: i_os
type: string
required:
- type
title: i_os
type: object
firefox:
properties:
version:
type: string
type:
enum:
- firefox
type: string
required:
- type
title: firefox
type: object
form_of_payment:
discriminator:
mapping:
cash: '#/components/schemas/cash'
non_cash: '#/components/schemas/non_cash'
payment_card: '#/components/schemas/payment_card'
points: '#/components/schemas/points'
propertyName: type
oneOf:
- $ref: '#/components/schemas/cash'
- $ref: '#/components/schemas/non_cash'
- $ref: '#/components/schemas/payment_card'
- $ref: '#/components/schemas/points'
title: form_of_payment
payment_card:
properties:
amount:
description: Amount charged on the form of payment
minimum: 0
type: string
currency:
description: Currency of the form of payment
example: CAD
type: string
token:
description: Token of the payment card generated by HTS Payment Gateway
type: string
last_four_digits:
description: Last four digits of the payment card
type: string
expiration_month:
description: the expiry month of the payment card
example: 09
type: string
expiration_year:
description: the expiry year of the payment card
example: '26'
type: string
type:
enum:
- payment_card
type: string
required:
- amount
- currency
- type
title: payment_card
type: object
get_dg_exercise_session_response:
description: Response containing the session ID for a DG exercise
example:
session_id: af585dfd-dddf-4726-9ef7-f1bb8909a79a
properties:
session_id:
description: The session ID associated with the DG exercise
example: af585dfd-dddf-4726-9ef7-f1bb8909a79a
type: string
required:
- session_id
title: get_dg_exercise_session_response
type: object
agent_reseller:
description: Agent / reseller channel
properties:
agency_id:
description: The agency identifier
type: string
agent_id:
description: The agent identifier
type: string
type:
enum:
- agent_reseller
type: string
required:
- agency_id
- agent_id
- type
title: agent_reseller
type: object
dg_status:
enum:
- created
- confirmed
- charged_back
- voided
- canceled
- queued
- failed
title: dg_status
type: string
chrome:
properties:
version:
type: string
type:
enum:
- chrome
type: string
required:
- type
title: chrome
type: object
non_cash:
properties:
amount:
description: Amount charged on the form of payment
minimum: 0
type: string
currency:
description: Currency of the form of payment
example: CAD
type: string
type:
enum:
- non_cash
type: string
required:
- amount
- currency
- type
title: non_cash
type: object
create_airline_dg_session_request:
description: An object containing information related to the user's session
properties:
user_info:
$ref: '#/components/schemas/user_info'
device:
$ref: '#/components/schemas/device'
session_id:
description: The custom identifier for the customer's session. If omitted, a new session ID will be generated.
example: d93dd7c9-39c0-499d-903b-d837282231c7
type: string
point_of_sale:
description: An ISO 3166-1-alpha-2 country code; the point of sale of the user
example: US
type: string
language:
description: A ISO_639-1 country code; the language associated with the user
example: es
type: string
channel:
$ref: '#/components/schemas/channel'
required:
- language
- point_of_sale
title: create_airline_dg_session_request
type: object
securitySchemes:
PartnerAuth:
description: 'This API is authenticated with OAuth 2, Client Credentials grant.\
Clients should use their `client_id` and `client_secret` to obtain an `access_token`.\
The `access_token` should be included in every request, as a `Bearer` token on an `Authorization` header.\
Note that `access_token`s eventually expire, requiring a new token to be fetched.
see [authentication](#tag/Authentication)'
scheme: bearer
type: http
SessionAuth:
description: '# Header Parameters
| headerName | description |
|-----------------|----------------------------------------------------------------------------------------------------|
| `HC-Session-ID` | string
**Example**: `9fd3f2f9-e5aa-4128-ace9-3c4ee37b685f`
The ID of the current session |
'
in: header
name: HC-Session-ID
type: apiKey