openapi: 3.0.3
info:
title: Airline API
version: v1.1
servers:
- url: https://airlines-api.hopper.com/airline/v1.1
tags:
- description: |-
**Hopper Technology Solutions (HTS) Ancillaries for Airlines**
HTS (Hopper Technology Solutions) is providing airlines with its ancillary services. Airlines can integrate these ancillaries within their booking flow to offer additional benefits to their customers. Not only do these ancillaries generate sizable incremental revenue to the airlines, but they also delight their customers by offering them more flexibility and peace of mind.
Two services are currently available through the HTS Ancillaries for Airlines API:
- Cancel For Any Reason™ (CFAR), enabling airlines to offer refundability as an ancillary with HTS powering the dynamic pricing and supporting the refund cost.
- Disruption Guarantee™ (DG), offering a premium disruption assistance service to customers in case of flight disruption, including rebooking options on any airline or a refund option.
name: HTS Ancillaries for Airlines
- 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)
name: Authentication
- description: "Hopper uses a unique ID to correlate API calls and events produced\
\ by a user's interaction with an airline application.\nThe duration of the user's\
\ interactions is called a \"session\", and the correlation ID is called a `session_id`.\n\
\nA session begins immediately before the airline’s first API call to Hopper,\
\ and the airline must call the Create a Session endpoint at this time. \nA `session_id`\
\ is returned from this call; it must be included with each subsequent API call\
\ via the `HC-Session-ID` header. \nNo airline action is required to end the session.\n"
name: Sessions
- description: |
**What is Cancel For Any Reason?**
Cancel For Any Reason (CFAR) enables airlines to offer refundability as an ancillary with HTS powering the dynamic pricing and supporting the refund cost.
****
**How it works**
There are two distinct flows for CFAR:
- The _purchase flow_, enabling customers to purchase the product within the airline’s booking flow.
- The _exercise flow_, enabling customers to cancel their booking and get a refund.
For each of these flows, the first step is to [Create a Session](#operation/postSessions)
Both the purchase and the exercise of CFAR should be tracked by the airline in the airline’s Passenger Name Record (PNR) according to the applicable industry standards.
****
**Purchase flow**
CFAR follows the industry standard of a two step purchase process.
1. Once the user is landing on the page displaying the CFAR offer, the airline will call the [Create CFAR Offers](#operation/postCfar_offers) endpoint. CFAR 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
- the price for the product (`premium`),
- the refundable amount (`coverage`),
- the UTC date and time until when the cancellation can be requested (`contract_expiry_date_time`)
- and the description of the offer in the available languages (`contents`).
2. If a user is attaching CFAR to his booking, the airline will call the [Create CFAR Contract](#operation/postCfar_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(s). At this stage, the CFAR Contract is only _created_. It will be confirmed once the customer has made the payment, which can be done in two ways:
1. If the airline is the Merchant of Records (MoR), it will capture the payment for the total amount of the booking, including the CFAR fee amount. Upon a successful payment, the airline will call the Update CFAR Contract Status endpoint to set the CFAR contract to _confirmed_. The airline will track this purchase in its PNR following the industry standards that apply to ticketing or ticketless carriers.
2. If HTS is the Merchant of Records (MoR), the airline will capture the payment for the amount of the booking excluding the CFAR fee, while HTS will capture the payment for the CFAR fee amount. Upon a successful payment of its portion, the airline will call the Process CFAR Payment endpoint for HTS to capture the payment for the CFAR fee amount. Once successful, the CFAR contract will be set to _confirmed_. The airline will track this purchase in its PNR.
The details of a CFAR contract can be retrieved at any time through the Get a CFAR Contract endpoint.
****
**Exercise flow**
CFAR exercise follows a two step process.
1. The user will request the exercise from the “Manage My Bookings” (MMB) page of the airline, through a dedicated Call to action displayed based on the tracker added to the PNR at the time of booking. Once the user is requesting the exercise, the airline will call the [Create CFAR Exercise](#operation/postCfar_contract_exercises) endpoint to authorize the exercise. The request must include the Contract ID, the Itinerary at the time of the exercise request and some optional information on the refund option that may be offered by the airline. If eligible to the exercise, the response will contain the refundable amounts, both in cash and Future Travel Credit (FTC) if applicable.
2. Once the user has followed the steps of the refund portal and confirmed the cancellation request, HTS will make a call back to the airline to launch the PNR update flow on the airline’s end. The actual PNR update flow depends on each airline’s specifics and is not described here. Upon a successful update of the PNR, the airline will confirm the exercise to HTS by calling the [Complete CFAR Exercise](#operation/putCfar_contract_exercisesIdMark_completed) endpoint.
name: Cancel For Any Reason (CFAR)
- 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)
- 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."
name: Analytics
paths:
/events:
post:
description: Events can be send directly from partner backend using the same
authentication as the other endpoints
operationId: postEvents
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: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/event'
required: true
responses:
"204":
description: The event has been successfully created
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: Send a Backend Event
tags:
- Analytics
/sessions:
post:
description: Create a new session for which events will be collected.
operationId: postSessions
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/create_airline_session_request'
required: true
responses:
"201":
content:
application/json:
schema:
$ref: '#/components/schemas/airline_session'
description: The created airline session
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 airline session creation request was 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 Session
tags:
- Sessions
/cfar_offers:
post:
description: Create CFAR offers for a user's trip
operationId: postCfar_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_cfar_offer_request'
required: true
responses:
"201":
content:
application/json:
schema:
items:
$ref: '#/components/schemas/cfar_offer'
type: array
description: The created CFAR 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 CFAR Offers
tags:
- Cancel For Any Reason (CFAR)
/cfar_offers/external:
post:
description: Create a CFAR offer with externally provided pricing and coverage
details (temporal API for data migration)
operationId: postCfar_offersExternal
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_external_cfar_offer_request'
required: true
responses:
"201":
content:
application/json:
schema:
$ref: '#/components/schemas/cfar_offer'
description: The created CFAR offer
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 External CFAR Offer
tags:
- Cancel For Any Reason (CFAR)
/cfar_contracts:
post:
description: Create a CFAR contract from selected CFAR offer(s).
operationId: postCfar_contracts
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/create_cfar_contract_request'
required: true
responses:
"201":
content:
application/json:
schema:
$ref: '#/components/schemas/cfar_contract'
description: The created CFAR 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 CFAR 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 CFAR Contract
tags:
- Cancel For Any Reason (CFAR)
/cfar_contracts/{id}:
get:
description: Get a CFAR contract
operationId: getCfar_contractsId
parameters:
- description: A unique identifier for a contract
explode: false
in: path
name: id
required: true
schema:
type: string
style: simple
- 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
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/cfar_contract'
description: The requested CFAR 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 CFAR Contract
tags:
- Cancel For Any Reason (CFAR)
/cfar_contracts/{id}/update_status:
put:
description: Update the CFAR contract
operationId: putCfar_contractsIdUpdate_status
parameters:
- description: A unique identifier for a contract
explode: false
in: path
name: id
required: true
schema:
type: string
style: simple
- 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/update_cfar_contract_request'
required: true
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/cfar_contract'
description: The updated CFAR 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 CFAR 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 CFAR Contract Status
tags:
- Cancel For Any Reason (CFAR)
/cfar_contracts/{id}/forms_of_payment:
put:
description: Update forms of payment linked with a CFAR contract
operationId: putCfar_contractsIdForms_of_payment
parameters:
- description: A unique identifier for a contract
explode: false
in: path
name: id
required: true
schema:
type: string
style: simple
- 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/update_cfar_form_of_payment_request'
required: true
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/cfar_contract'
description: The updated CFAR 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: Forms of payment 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 forms of payment of a CFAR Contract
tags:
- Cancel For Any Reason (CFAR)
/cfar_contracts/{id}/payment:
post:
description: "When HTS is the Merchant of Record (MoR), the customer's credit\
\ card is charged by HTS for the CFAR 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```\n\
Here the returned payment method token **MxyYEhDK12CUAA18bJDkAq0ab3y** has\
\ to be used in the Process CFAR Payment request below."
operationId: postCfar_contractsIdPayment
parameters:
- description: A unique identifier for a contract
explode: false
in: path
name: id
required: true
schema:
type: string
style: simple
- 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/process_cfar_payment_request'
required: true
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/cfar_payment'
description: The result of the transaction
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 CFAR Payment
tags:
- Cancel For Any Reason (CFAR)
/cfar_contracts/{id}/itinerary_slices:
put:
description: Update itinerary slices of a CFAR contract.
operationId: putCfar_contractsIdItinerary_slices
parameters:
- description: A unique identifier for a contract
explode: false
in: path
name: id
required: true
schema:
type: string
style: simple
- 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/update_cfar_contract_itinerary_slices_request'
required: true
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/cfar_contract'
description: The updated CFAR 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 CFAR 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 CFAR Contract Itinerary Slices
tags:
- Cancel For Any Reason (CFAR)
/cfar_contract_exercises:
post:
description: Record that a request to exercise a CFAR contract has occurred.
operationId: postCfar_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_cfar_contract_exercise_request'
required: true
responses:
"201":
content:
application/json:
schema:
$ref: '#/components/schemas/cfar_contract_exercise'
description: The created CFAR contract exercise
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 CFAR Exercise
tags:
- Cancel For Any Reason (CFAR)
/cfar_contract_exercises/{id}/mark_completed:
put:
description: Record that a request to exercise a CFAR contract has been completed
operationId: putCfar_contract_exercisesIdMark_completed
parameters:
- description: A unique identifier for a exercise
explode: false
in: path
name: id
required: true
schema:
type: string
style: simple
- 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/mark_cfar_contract_exercise_complete_request'
required: true
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/cfar_contract_exercise'
description: The updated CFAR contract exercise
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: Complete CFAR Exercise
tags:
- Cancel For Any Reason (CFAR)
/customer/cfar/payout/receipt:
get:
description: Download payout receipt as PDF
operationId: getCustomerCfarPayoutReceipt
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:
- Cancel For Any Reason (CFAR)
/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```\n\
Here 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)
/auth:
post:
description: Get an authentication token
operationId: postAuth
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/auth_request'
required: true
responses:
"201":
content:
application/json:
schema:
$ref: '#/components/schemas/auth_response'
description: The authentication response
"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
"422":
content:
application/json:
schema:
$ref: '#/components/schemas/unprocessable_entity'
description: Semantic errors were encountered while handling the request
summary: Create an authentication token
tags:
- Authentication
components:
schemas:
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
airline_refund_method:
enum:
- ftc
- cash
title: airline_refund_method
type: string
airline_session:
description: A airline session resource
example:
id: af585dfd-dddf-4726-9ef7-f1bb8909a79a
properties:
id:
description: A unique identifier for a airline session
example: af585dfd-dddf-4726-9ef7-f1bb8909a79a
type: string
required:
- id
title: airline_session
type: object
ancillary:
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/ancillary_type'
covered:
description: Is this ancillary covered by the product. By default true if
not specified
type: boolean
required:
- total_price
- type
title: ancillary
type: object
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
example: travel_insurance
title: ancillary_type
type: string
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
app:
properties:
operating_system:
$ref: '#/components/schemas/operating_system'
type:
enum:
- app
example: app
type: string
required:
- type
title: app
type: object
auth_request:
properties:
client_id:
type: string
client_secret:
type: string
required:
- client_id
- client_secret
title: auth_request
type: object
auth_response:
example:
access_token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImtjN2FjWmV4bHBvZk1QY3V6UF9HTyJ9.eyJpc3MiOiJodHRwczovL2hvcHBlci1hcGkuYXV0aDAuY29tLyIsInN1YiI6IlhVdWpRSlRCODFPdkVTODh1VDlPNHhIUzVNUkpZV2tCQGNsaWVudHMiLCJhdWQiOiJodHRwczovL3N0YWdpbmcuYXBpLmhvcHBlci5jb20iLCJpYXQiOjE2NTI5ODQ2ODEsImV4cCI6MTY1MzA3MTA4MSwiYXpwIjoiWFV1alFKVEI4MU92RVM4OHVUOU80eEhTNU1SSllXa0IiLCJzY29wZSI6ImFsbDpwcmljZWZyZWV6ZSBhbGw6Z2VuZXJhbCBhbGw6Y2ZhciIsImd0eSI6ImNsaWVudC1jcmVkZW50aWFscyJ9.VlKuMHJkGpOA-L9oJn-UBEOD7VdzLXQSn2DiTrlROR521uHupkRnI-_tDjYD-sygmNmI0bIb0UEQ2ETOyalFZICge8-qWpxBccM_rfgPemZ6Rs9fZSY8XjZtaM9sQEJ4OqwXQiIU0tQDVMfegj-4wnKglHAKzJ7X7wb05nSCP_g2cXIXL9mapnLT8vf609CZIz2cRuWvww5E9qlJ6mUQxsYBv9xwJoyF3IK8TCWUFFvu2xSendMltvUlCHJHjWpddFDTdkl1ErHq_ta-3e1n2ZjU1HVVux9dwWoZQDYJFprtDYjPS-jVhEljGMASB74zf_xbcWCwoa_HJlxLlhBhoQ
scope: all:general all:cfar
token_type: Bearer
expires_in: 86400
properties:
access_token:
description: The authentication token
example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImtjN2FjWmV4bHBvZk1QY3V6UF9HTyJ9.eyJpc3MiOiJodHRwczovL2hvcHBlci1hcGkuYXV0aDAuY29tLyIsInN1YiI6IlhVdWpRSlRCODFPdkVTODh1VDlPNHhIUzVNUkpZV2tCQGNsaWVudHMiLCJhdWQiOiJodHRwczovL3N0YWdpbmcuYXBpLmhvcHBlci5jb20iLCJpYXQiOjE2NTI5ODQ2ODEsImV4cCI6MTY1MzA3MTA4MSwiYXpwIjoiWFV1alFKVEI4MU92RVM4OHVUOU80eEhTNU1SSllXa0IiLCJzY29wZSI6ImFsbDpwcmljZWZyZWV6ZSBhbGw6Z2VuZXJhbCBhbGw6Y2ZhciIsImd0eSI6ImNsaWVudC1jcmVkZW50aWFscyJ9.VlKuMHJkGpOA-L9oJn-UBEOD7VdzLXQSn2DiTrlROR521uHupkRnI-_tDjYD-sygmNmI0bIb0UEQ2ETOyalFZICge8-qWpxBccM_rfgPemZ6Rs9fZSY8XjZtaM9sQEJ4OqwXQiIU0tQDVMfegj-4wnKglHAKzJ7X7wb05nSCP_g2cXIXL9mapnLT8vf609CZIz2cRuWvww5E9qlJ6mUQxsYBv9xwJoyF3IK8TCWUFFvu2xSendMltvUlCHJHjWpddFDTdkl1ErHq_ta-3e1n2ZjU1HVVux9dwWoZQDYJFprtDYjPS-jVhEljGMASB74zf_xbcWCwoa_HJlxLlhBhoQ
type: string
scope:
description: Token's scope
example: all:general all:cfar
type: string
expires_in:
description: Token's expiration (in seconds)
example: 86400
format: int32
type: integer
token_type:
$ref: '#/components/schemas/token_type'
required:
- access_token
- expires_in
- scope
- token_type
title: auth_response
type: object
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
booking_confirmed:
properties:
occurred_date_time:
description: |-
A UTC [RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) datetime;
the date and time at which an event occurred on a client device
example: 2022-01-24T15:34:30Z
format: date-time
type: string
cfar_contract_id:
description: "The purchased CFAR contract, if one is present"
type: string
dg_contract_id:
description: "The purchased DG contract, if one is present"
type: string
type:
enum:
- booking_confirmed
type: string
required:
- occurred_date_time
- type
title: booking_confirmed
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
cabin:
description: Service class of the segment
enum:
- economy
- premium_economy
- business
- first
title: cabin
type: string
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
cfar_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: cfar_contents
type: object
cfar_contract:
description: A CFAR contract
example:
offers:
- coverage: "400.00"
taxes_total: "3.90"
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
estimated: false
- amount: "20.00"
rate: "12.00"
registration_number: 0123456ABCDEF
name: VAT
estimated: false
itinerary:
fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
slices:
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
total_price: "401.10"
other_fares:
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
fare_brand: flex
price: "401.10"
fare_basis: YBA123US
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
fare_brand: flex
price: "401.10"
fare_basis: YBA123US
fare_brand: flex
fare_basis: YBA123US
segments:
- validating_carrier_code: B6
arrival_date_time: 2022-04-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18:34:30
fare_class: basic_economy
origin_airport: BOS
destination_airport: LGA
- validating_carrier_code: B6
arrival_date_time: 2022-04-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18:34:30
fare_class: basic_economy
origin_airport: BOS
destination_airport: LGA
passenger_pricing:
- individual_price: "200.55"
passenger_count:
count: 3
type: adult
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
- individual_price: "200.55"
passenger_count:
count: 3
type: adult
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
total_price: "401.10"
other_fares:
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
fare_brand: flex
price: "401.10"
fare_basis: YBA123US
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
fare_brand: flex
price: "401.10"
fare_basis: YBA123US
fare_brand: flex
fare_basis: YBA123US
segments:
- validating_carrier_code: B6
arrival_date_time: 2022-04-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18:34:30
fare_class: basic_economy
origin_airport: BOS
destination_airport: LGA
- validating_carrier_code: B6
arrival_date_time: 2022-04-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18:34:30
fare_class: basic_economy
origin_airport: BOS
destination_airport: LGA
passenger_pricing:
- individual_price: "200.55"
passenger_count:
count: 3
type: adult
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
- individual_price: "200.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"
last_name: Smith
first_name: John
passenger_type: null
- passenger_reference: "1"
last_name: Smith
first_name: John
passenger_type: null
total_price: "401.10"
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
currency: CAD
passenger_pricing:
- individual_price: "200.55"
passenger_count:
count: 3
type: adult
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
- individual_price: "200.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-02T18:34:30Z
coverage_extension: "40.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-20T12:15:48Z
currency: CAD
id: 1ec9eed3-4486-6460-9d6c-2fb8469d35db
entry_point: entry_point
merchandising_url: merchandising_url
merchandising_url_web_component: merchandising_url_web_component
- coverage: "400.00"
taxes_total: "3.90"
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
estimated: false
- amount: "20.00"
rate: "12.00"
registration_number: 0123456ABCDEF
name: VAT
estimated: false
itinerary:
fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
slices:
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
total_price: "401.10"
other_fares:
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
fare_brand: flex
price: "401.10"
fare_basis: YBA123US
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
fare_brand: flex
price: "401.10"
fare_basis: YBA123US
fare_brand: flex
fare_basis: YBA123US
segments:
- validating_carrier_code: B6
arrival_date_time: 2022-04-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18:34:30
fare_class: basic_economy
origin_airport: BOS
destination_airport: LGA
- validating_carrier_code: B6
arrival_date_time: 2022-04-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18:34:30
fare_class: basic_economy
origin_airport: BOS
destination_airport: LGA
passenger_pricing:
- individual_price: "200.55"
passenger_count:
count: 3
type: adult
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
- individual_price: "200.55"
passenger_count:
count: 3
type: adult
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
total_price: "401.10"
other_fares:
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
fare_brand: flex
price: "401.10"
fare_basis: YBA123US
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
fare_brand: flex
price: "401.10"
fare_basis: YBA123US
fare_brand: flex
fare_basis: YBA123US
segments:
- validating_carrier_code: B6
arrival_date_time: 2022-04-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18:34:30
fare_class: basic_economy
origin_airport: BOS
destination_airport: LGA
- validating_carrier_code: B6
arrival_date_time: 2022-04-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18:34:30
fare_class: basic_economy
origin_airport: BOS
destination_airport: LGA
passenger_pricing:
- individual_price: "200.55"
passenger_count:
count: 3
type: adult
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
- individual_price: "200.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"
last_name: Smith
first_name: John
passenger_type: null
- passenger_reference: "1"
last_name: Smith
first_name: John
passenger_type: null
total_price: "401.10"
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
currency: CAD
passenger_pricing:
- individual_price: "200.55"
passenger_count:
count: 3
type: adult
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
- individual_price: "200.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-02T18:34:30Z
coverage_extension: "40.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-20T12:15:48Z
currency: CAD
id: 1ec9eed3-4486-6460-9d6c-2fb8469d35db
entry_point: entry_point
merchandising_url: merchandising_url
merchandising_url_web_component: merchandising_url_web_component
coverage: "98.64"
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
estimated: false
- amount: "20.00"
rate: "12.00"
registration_number: 0123456ABCDEF
name: VAT
estimated: false
itinerary:
fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
slices:
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
total_price: "401.10"
other_fares:
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
fare_brand: flex
price: "401.10"
fare_basis: YBA123US
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
fare_brand: flex
price: "401.10"
fare_basis: YBA123US
fare_brand: flex
fare_basis: YBA123US
segments:
- validating_carrier_code: B6
arrival_date_time: 2022-04-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18:34:30
fare_class: basic_economy
origin_airport: BOS
destination_airport: LGA
- validating_carrier_code: B6
arrival_date_time: 2022-04-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18:34:30
fare_class: basic_economy
origin_airport: BOS
destination_airport: LGA
passenger_pricing:
- individual_price: "200.55"
passenger_count:
count: 3
type: adult
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
- individual_price: "200.55"
passenger_count:
count: 3
type: adult
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
total_price: "401.10"
other_fares:
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
fare_brand: flex
price: "401.10"
fare_basis: YBA123US
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
fare_brand: flex
price: "401.10"
fare_basis: YBA123US
fare_brand: flex
fare_basis: YBA123US
segments:
- validating_carrier_code: B6
arrival_date_time: 2022-04-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18:34:30
fare_class: basic_economy
origin_airport: BOS
destination_airport: LGA
- validating_carrier_code: B6
arrival_date_time: 2022-04-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18:34:30
fare_class: basic_economy
origin_airport: BOS
destination_airport: LGA
passenger_pricing:
- individual_price: "200.55"
passenger_count:
count: 3
type: adult
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
- individual_price: "200.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"
last_name: Smith
first_name: John
passenger_type: null
- passenger_reference: "1"
last_name: Smith
first_name: John
passenger_type: null
total_price: "401.10"
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
currency: CAD
passenger_pricing:
- individual_price: "200.55"
passenger_count:
count: 3
type: adult
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
- individual_price: "200.55"
passenger_count:
count: 3
type: adult
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
reference: 1FE5772642C77BAB
created_date_time: 2022-01-08T14:36:56Z
exercise_url: exercise_url
premium: "80.00"
currency: USD
id: 1ec9ef29-be31-6ed3-beec-9f5ae0d164ee
pnr_reference: ABC123
expiry_date_time: 2022-06-01T15:00:00Z
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
offers:
description: CFAR Offer(s) used to create the contract
items:
$ref: '#/components/schemas/cfar_offer'
type: array
itinerary:
$ref: '#/components/schemas/cfar_itinerary'
coverage_percentage:
description: Percentage of the amount to be refunded to customer compared
to flight tickets price
example: "80.00"
minimum: 0
type: string
coverage:
description: Total amount to be refunded upon CFAR exercise
example: "98.64"
minimum: 0
type: string
premium:
description: Total amount to be paid for CFAR
example: "80.00"
minimum: 0
type: string
currency:
description: Currency of contract
example: USD
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/cfar_tax'
type: array
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-08T14:36:56Z
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-01T15:00:00Z
format: date-time
type: string
status:
$ref: '#/components/schemas/cfar_status'
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
exercise_url:
description: URL to exercise the contract (if applicable)
type: string
required:
- coverage
- coverage_percentage
- created_date_time
- currency
- expiry_date_time
- ext_attributes
- id
- itinerary
- offers
- premium
- reference
- status
- taxes_total
title: cfar_contract
type: object
cfar_contract_exercise:
description: An object containing exercise information for a contract
example:
ext_attributes:
key: ext_attributes
ftc_refund_allowance: "123.20"
contract_id: 1ec9ef29-be31-6ed3-beec-9f5ae0d164ee
cash_refund_allowance: "49.32"
redirection_url: https://hts.hopper.com/
currency: CAD
id: 1ec9ef4b-b3bf-64ae-8a3d-6b084d9f6b3c
exercise_initiated_date_time: 2022-03-08T15:20:30Z
redirection_token: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
properties:
id:
description: Unique identifier for a CFAR exercise
example: 1ec9ef4b-b3bf-64ae-8a3d-6b084d9f6b3c
type: string
contract_id:
description: Unique identifier for a contract
example: 1ec9ef29-be31-6ed3-beec-9f5ae0d164ee
type: string
exercise_initiated_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 contract exercise was initiated"
example: 2022-03-08T15:20:30Z
format: date-time
type: string
cash_refund_allowance:
description: Refundable amount allowed in cash
example: "49.32"
minimum: 0
type: string
ext_attributes:
additionalProperties:
type: string
title: map_string
type: object
ftc_refund_allowance:
description: Refundable amount allowed in future travel credit
example: "123.20"
type: string
currency:
description: The currency of the airline's refund allowance
example: CAD
type: string
redirection_token:
description: Token used to authenticate the redirection after filling refund
information in claims portal
format: uuid
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:
- cash_refund_allowance
- contract_id
- exercise_initiated_date_time
- ext_attributes
- id
- redirection_token
title: cfar_contract_exercise
type: object
cfar_create_exercise_itinerary:
description: Itinerary of the user when the contract exercise was initiated
(only active segments should be provided)
properties:
passenger_pricing:
description: "List of passengers type, count and pricing for the itinerary"
items:
$ref: '#/components/schemas/cfar_create_exercise_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/cfar_create_exercise_itinerary_slice'
minItems: 1
type: array
ancillaries:
description: Ancillaries attached to the itinerary and their prices. Only
ancillaries covered by CFAR must be filled
items:
$ref: '#/components/schemas/ancillary'
type: array
total_price:
description: Total price to be covered by CFAR (including ancillaries if
applicable)
example: "401.10"
minimum: 0
type: string
passengers:
description: Details of the passengers
items:
$ref: '#/components/schemas/cfar_passenger'
type: array
fare_rules:
description: "The fare rules associated to the itinerary. If different fare\
\ rules apply to different slices in the itinerary, indicate the most\
\ restrictive."
items:
$ref: '#/components/schemas/fare_rule'
minItems: 1
type: array
required:
- slices
title: cfar_create_exercise_itinerary
type: object
cfar_create_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/cfar_create_exercise_slice_segment'
minItems: 1
type: array
passenger_pricing:
description: "List of passengers type, count and pricing for the slice"
items:
$ref: '#/components/schemas/passenger_pricing'
minItems: 1
type: array
total_price:
description: The price of the slice for all the passengers
example: "401.10"
minimum: 0
type: string
fare_brand:
description: Name of the fare brand applied to the slice
example: flex
type: string
fare_basis:
description: Code of the fare basis applied to the slice
example: YBA123US
type: string
fare_rules:
description: The fare rules associated to the slice
items:
$ref: '#/components/schemas/fare_rule'
minItems: 1
type: array
other_fares:
description: Other available fares in the same cabin
items:
$ref: '#/components/schemas/fare'
minItems: 1
type: array
required:
- segments
title: cfar_create_exercise_itinerary_slice
type: object
cfar_create_exercise_passenger_pricing:
properties:
passenger_count:
$ref: '#/components/schemas/passenger_count'
individual_price:
description: Price per passenger (excluding ancillaries)
example: "200.55"
minimum: 0
type: string
taxes:
description: Taxes applicable per passenger
items:
$ref: '#/components/schemas/cfar_passenger_tax'
type: array
required:
- passenger_count
title: cfar_create_exercise_passenger_pricing
type: object
cfar_create_exercise_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-02T18:34:30
type: string
arrival_date_time:
description: The local date and time of arrival in ISO Local Date Time format
example: 2022-04-02T19: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
fare_class:
$ref: '#/components/schemas/fare_class'
fare_brand:
description: Name of the fare brand applied to the segment (if applicable)
type: string
required:
- arrival_date_time
- departure_date_time
- destination_airport
- flight_number
- origin_airport
title: cfar_create_exercise_slice_segment
type: object
cfar_itinerary:
example:
fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
slices:
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
total_price: "401.10"
other_fares:
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
fare_brand: flex
price: "401.10"
fare_basis: YBA123US
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
fare_brand: flex
price: "401.10"
fare_basis: YBA123US
fare_brand: flex
fare_basis: YBA123US
segments:
- validating_carrier_code: B6
arrival_date_time: 2022-04-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18:34:30
fare_class: basic_economy
origin_airport: BOS
destination_airport: LGA
- validating_carrier_code: B6
arrival_date_time: 2022-04-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18:34:30
fare_class: basic_economy
origin_airport: BOS
destination_airport: LGA
passenger_pricing:
- individual_price: "200.55"
passenger_count:
count: 3
type: adult
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
- individual_price: "200.55"
passenger_count:
count: 3
type: adult
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
total_price: "401.10"
other_fares:
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
fare_brand: flex
price: "401.10"
fare_basis: YBA123US
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
fare_brand: flex
price: "401.10"
fare_basis: YBA123US
fare_brand: flex
fare_basis: YBA123US
segments:
- validating_carrier_code: B6
arrival_date_time: 2022-04-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18:34:30
fare_class: basic_economy
origin_airport: BOS
destination_airport: LGA
- validating_carrier_code: B6
arrival_date_time: 2022-04-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18:34:30
fare_class: basic_economy
origin_airport: BOS
destination_airport: LGA
passenger_pricing:
- individual_price: "200.55"
passenger_count:
count: 3
type: adult
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
- individual_price: "200.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"
last_name: Smith
first_name: John
passenger_type: null
- passenger_reference: "1"
last_name: Smith
first_name: John
passenger_type: null
total_price: "401.10"
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
currency: CAD
passenger_pricing:
- individual_price: "200.55"
passenger_count:
count: 3
type: adult
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
- individual_price: "200.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/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/cfar_itinerary_slice'
minItems: 1
type: array
ancillaries:
description: Ancillaries attached to the itinerary and their prices. Only
ancillaries covered by CFAR must be filled
items:
$ref: '#/components/schemas/ancillary'
type: array
total_price:
description: Total price to be covered by CFAR (including ancillaries if
applicable)
example: "401.10"
minimum: 0
type: string
passengers:
description: Details of the passengers
items:
$ref: '#/components/schemas/cfar_passenger'
type: array
fare_rules:
description: "The fare rules associated to the itinerary. If different fare\
\ rules apply to different slices in the itinerary, indicate the most\
\ restrictive."
items:
$ref: '#/components/schemas/fare_rule'
minItems: 1
type: array
taxes:
description: Taxes applicable to this itinerary
items:
$ref: '#/components/schemas/cfar_passenger_tax'
type: array
required:
- currency
- passenger_pricing
- slices
title: cfar_itinerary
type: object
cfar_itinerary_slice:
description: An object containing the list of flight segments for a fare slice
example:
fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
total_price: "401.10"
other_fares:
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
fare_brand: flex
price: "401.10"
fare_basis: YBA123US
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
fare_brand: flex
price: "401.10"
fare_basis: YBA123US
fare_brand: flex
fare_basis: YBA123US
segments:
- validating_carrier_code: B6
arrival_date_time: 2022-04-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18:34:30
fare_class: basic_economy
origin_airport: BOS
destination_airport: LGA
- validating_carrier_code: B6
arrival_date_time: 2022-04-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18:34:30
fare_class: basic_economy
origin_airport: BOS
destination_airport: LGA
passenger_pricing:
- individual_price: "200.55"
passenger_count:
count: 3
type: adult
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
- individual_price: "200.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/cfar_itinerary_slice_segment'
minItems: 1
type: array
passenger_pricing:
description: "List of passengers type, count and pricing for the slice"
items:
$ref: '#/components/schemas/passenger_pricing'
minItems: 1
type: array
total_price:
description: The price of the slice for all the passengers
example: "401.10"
minimum: 0
type: string
fare_brand:
description: Name of the fare brand applied to the slice
example: flex
type: string
fare_basis:
description: Code of the fare basis applied to the slice
example: YBA123US
type: string
fare_rules:
description: The fare rules associated to the slice
items:
$ref: '#/components/schemas/fare_rule'
minItems: 1
type: array
other_fares:
description: Other available fares in the same cabin
items:
$ref: '#/components/schemas/fare'
minItems: 1
type: array
required:
- segments
title: cfar_itinerary_slice
type: object
cfar_itinerary_slice_segment:
description: An object detailing a segment of a fare slice
example:
validating_carrier_code: B6
arrival_date_time: 2022-04-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18:34:30
fare_class: basic_economy
origin_airport: BOS
destination_airport: LGA
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-02T18:34:30
type: string
arrival_date_time:
description: The local date and time of arrival in ISO Local Date Time format
example: 2022-04-02T19: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
fare_class:
$ref: '#/components/schemas/fare_class'
fare_brand:
description: Name of the fare brand applied to the segment (if applicable)
type: string
required:
- arrival_date_time
- departure_date_time
- destination_airport
- fare_class
- flight_number
- origin_airport
- validating_carrier_code
title: cfar_itinerary_slice_segment
type: object
cfar_offer:
description: A successful CFAR offer response
example:
coverage: "400.00"
taxes_total: "3.90"
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
estimated: false
- amount: "20.00"
rate: "12.00"
registration_number: 0123456ABCDEF
name: VAT
estimated: false
itinerary:
fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
slices:
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
total_price: "401.10"
other_fares:
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
fare_brand: flex
price: "401.10"
fare_basis: YBA123US
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
fare_brand: flex
price: "401.10"
fare_basis: YBA123US
fare_brand: flex
fare_basis: YBA123US
segments:
- validating_carrier_code: B6
arrival_date_time: 2022-04-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18:34:30
fare_class: basic_economy
origin_airport: BOS
destination_airport: LGA
- validating_carrier_code: B6
arrival_date_time: 2022-04-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18:34:30
fare_class: basic_economy
origin_airport: BOS
destination_airport: LGA
passenger_pricing:
- individual_price: "200.55"
passenger_count:
count: 3
type: adult
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
- individual_price: "200.55"
passenger_count:
count: 3
type: adult
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
total_price: "401.10"
other_fares:
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
fare_brand: flex
price: "401.10"
fare_basis: YBA123US
- fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
fare_brand: flex
price: "401.10"
fare_basis: YBA123US
fare_brand: flex
fare_basis: YBA123US
segments:
- validating_carrier_code: B6
arrival_date_time: 2022-04-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18:34:30
fare_class: basic_economy
origin_airport: BOS
destination_airport: LGA
- validating_carrier_code: B6
arrival_date_time: 2022-04-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18:34:30
fare_class: basic_economy
origin_airport: BOS
destination_airport: LGA
passenger_pricing:
- individual_price: "200.55"
passenger_count:
count: 3
type: adult
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
- individual_price: "200.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"
last_name: Smith
first_name: John
passenger_type: null
- passenger_reference: "1"
last_name: Smith
first_name: John
passenger_type: null
total_price: "401.10"
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
currency: CAD
passenger_pricing:
- individual_price: "200.55"
passenger_count:
count: 3
type: adult
taxes:
- amount: "0.20"
code: RC
currency: CAD
- amount: "0.20"
code: RC
currency: CAD
- individual_price: "200.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-02T18:34:30Z
coverage_extension: "40.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-20T12:15:48Z
currency: CAD
id: 1ec9eed3-4486-6460-9d6c-2fb8469d35db
entry_point: entry_point
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 CFAR
example: "40.80"
minimum: 0
type: string
coverage:
description: Total amount to be refunded upon CFAR exercise
example: "400.00"
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
coverage_extension:
description: Maximum amount added on top of the coverage to cover ancillaries
example: "40.00"
minimum: 0
type: string
currency:
description: Currency of offer
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/cfar_tax'
type: array
request_type:
$ref: '#/components/schemas/request_type'
entry_point:
description: Information about product placement on partner's website
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 CFAR contract will expire once\
\ purchased"
example: 2020-12-20T12:15:48Z
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 CFAR offer was created"
example: 2020-11-02T18:34:30Z
format: date-time
type: string
itinerary:
$ref: '#/components/schemas/cfar_itinerary'
contents:
additionalProperties:
$ref: '#/components/schemas/cfar_contents'
description: One or more contents describing the offer and its conditions
in the available languages
title: map_cfar_contents
type: object
ext_attributes:
additionalProperties:
type: string
title: map_string
type: object
experiments:
additionalProperties:
type: string
title: map_string
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
- premium
- request_type
- taxes_total
title: cfar_offer
type: object
cfar_offer_itinerary:
properties:
passenger_pricing:
description: "List of passengers type, count and pricing for the itinerary"
items:
$ref: '#/components/schemas/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/cfar_itinerary_slice'
minItems: 1
type: array
ancillaries:
description: Ancillaries attached to the itinerary and their prices. Only
ancillaries covered by CFAR must be filled
items:
$ref: '#/components/schemas/ancillary'
type: array
total_price:
description: Total price to be covered by CFAR (including ancillaries if
applicable)
example: "401.10"
minimum: 0
type: string
passengers:
description: Details of the passengers
items:
$ref: '#/components/schemas/cfar_offer_passenger'
type: array
fare_rules:
description: "The fare rules associated to the itinerary. If different fare\
\ rules apply to different slices in the itinerary, indicate the most\
\ restrictive."
items:
$ref: '#/components/schemas/fare_rule'
minItems: 1
type: array
required:
- currency
- passenger_pricing
- slices
title: cfar_offer_itinerary
type: object
cfar_offer_passenger:
description: An object detailing the Passenger Information as part of offers
creation
properties:
passenger_reference:
description: Unique reference of the passenger
example: "1"
type: string
passenger_type:
$ref: '#/components/schemas/passenger_type'
required:
- passenger_reference
- passenger_type
title: cfar_offer_passenger
type: object
cfar_passenger:
description: An object detailing the Passenger Information
example:
passenger_reference: "1"
last_name: Smith
first_name: John
passenger_type: null
properties:
passenger_reference:
description: Unique reference of the passenger
example: "1"
type: string
passenger_type:
$ref: '#/components/schemas/passenger_type'
first_name:
description: First name of the passenger
example: John
type: string
last_name:
description: Lastname of the passenger
example: Smith
type: string
required:
- passenger_reference
- passenger_type
title: cfar_passenger
type: object
cfar_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: cfar_passenger_tax
type: object
cfar_payment:
example:
succeeded: true
properties:
succeeded:
description: Indicates if the transaction is successful
example: true
type: boolean
required:
- succeeded
title: cfar_payment
type: object
cfar_status:
enum:
- created
- confirmed
- charged_back
- voided
- canceled
title: cfar_status
type: string
cfar_tax:
example:
amount: "20.00"
rate: "12.00"
registration_number: 0123456ABCDEF
name: VAT
estimated: false
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
estimated:
description: "True if the tax amount is estimated, the real amount will\
\ be known only at contract confirmation"
example: false
type: boolean
registration_number:
description: Registration number of the tax if applicable
example: 0123456ABCDEF
type: string
required:
- amount
- estimated
- name
- rate
title: cfar_tax
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
chrome:
properties:
version:
type: string
type:
enum:
- chrome
type: string
required:
- type
title: chrome
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
create_airline_cfar_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_cfar_session_request
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
create_airline_session_request:
properties:
flow_type:
$ref: '#/components/schemas/flow_type'
user_info:
$ref: '#/components/schemas/user_info'
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
device:
$ref: '#/components/schemas/device'
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
product:
$ref: '#/components/schemas/product'
required:
- flow_type
- language
- point_of_sale
title: create_airline_session_request
type: object
create_cfar_contract_exercise_request:
description: A create CFAR contract exercise request
properties:
contract_id:
description: A unique identifier for a CFAR contract
example: 1ec9ef29-be31-6ed3-beec-9f5ae0d164ee
type: string
itinerary:
$ref: '#/components/schemas/cfar_create_exercise_itinerary'
email_address:
description: Email address of the user
example: john@doe.com
type: string
pnr_reference:
example: ABC123
type: string
airline_refund_penalty:
description: The penalty fee applied by the airline when issuing a refund
for the booking
example: "99.0"
type: string
airline_refund_method:
$ref: '#/components/schemas/airline_refund_method'
currency:
description: The currency of the airline's refund allowance
example: CAD
type: string
ext_attributes:
additionalProperties:
type: string
title: map_string
type: object
session:
$ref: '#/components/schemas/create_airline_cfar_session_request'
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
first_name:
description: First name of the cardholder
example: John
type: string
last_name:
description: Last name of the cardholder
example: Smith
type: string
required:
- ext_attributes
- itinerary
- pnr_reference
title: create_cfar_contract_exercise_request
type: object
create_cfar_contract_request:
description: Create a CFAR contract from selected CFAR offer(s).
properties:
offer_ids:
description: Identifier of the offer(s) for which the contract is created
example: 1ec9eed3-4486-6460-9d6c-2fb8469d35db
items:
description: Unique identifier for an offer
example: 2e1006b3-aba6-4899-8682-b95bce693c27
type: string
type: array
itinerary:
$ref: '#/components/schemas/cfar_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_cfar_contract_request
type: object
create_cfar_offer_request:
properties:
itinerary:
description: An object detailing the itinerary and fare used to create a
CFAR offer
items:
$ref: '#/components/schemas/cfar_offer_itinerary'
type: array
request_type:
$ref: '#/components/schemas/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-01T18:30:00Z
format: date-time
type: string
ext_attributes:
additionalProperties:
type: string
title: map_string
type: object
session:
$ref: '#/components/schemas/create_airline_cfar_session_request'
entry_point:
description: Information about product placement on partner's website
type: string
required:
- ext_attributes
- itinerary
- request_type
title: create_cfar_offer_request
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
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
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
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-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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-02T18:34:30Z
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-20T12:15:48Z
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-02T18:34:30Z
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-20T12:15:48Z
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
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-01T18:30:00Z
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
create_external_cfar_offer_request:
description: Create a CFAR offer with externally provided pricing and coverage
properties:
external_id:
description: External identifier for this offer
example: external-offer-123
type: string
country_code:
description: Two-character country code in ISO 3166-1 format
example: US
type: string
currency:
description: Currency of the offer
example: USD
type: string
to_usd_exchange_rate:
description: Exchange rate from offer currency to USD
example: "1.0"
exclusiveMinimum: true
minimum: 0
type: string
premium_total_amount:
description: Total premium amount (including taxes)
example: "50.0"
minimum: 0
type: string
premium_percentage:
description: Premium as a percentage of ticket price
example: "0.05"
exclusiveMinimum: true
minimum: 0
type: string
payout_total_amount:
description: Total payout amount upon exercise
example: "800.0"
minimum: 0
type: string
payout_percentage:
description: Payout as a percentage of ticket price
example: "0.8"
minimum: 0
type: string
taxes_total:
description: Total taxes on the premium
example: "5.0"
minimum: 0
type: string
contract_expiry_date_time:
description: A UTC RFC3339 datetime; expiry date and time of the contract
once purchased
example: 2024-12-31T23:59:59Z
format: date-time
type: string
booking_date_time:
description: A UTC RFC3339 datetime; the date and time at which the booking
was made
example: 2024-01-15T10:30:00Z
format: date-time
type: string
itinerary:
$ref: '#/components/schemas/cfar_offer_itinerary'
min_minutes_delay:
description: Minimum delay in minutes required for CFAR exercise eligibility
example: 120
exclusiveMinimum: true
format: int32
minimum: 0
type: integer
session:
$ref: '#/components/schemas/create_airline_cfar_session_request'
required:
- contract_expiry_date_time
- country_code
- currency
- external_id
- itinerary
- min_minutes_delay
- payout_percentage
- payout_total_amount
- premium_percentage
- premium_total_amount
- taxes_total
- to_usd_exchange_rate
title: create_external_cfar_offer_request
type: object
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
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
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
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
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
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-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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-02T18:34:30Z
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-20T12:15:48Z
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-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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-02T18:34:30Z
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-20T12:15:48Z
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-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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-08T14:36:56Z
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-01T15:00:00Z
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-08T14:36:56Z
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-01T15:00:00Z
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
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_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
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-02T18:34:30
type: string
arrival_date_time:
description: The local date and time of arrival in ISO Local Date Time format
example: 2022-04-02T19: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-02T20: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-02T21: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
dg_itinerary:
example:
slices:
- fare_brand: flex
segments:
- validating_carrier_code: B6
arrival_date_time: 2022-04-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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
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-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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
dg_itinerary_slice_segment:
description: An object detailing a segment of a fare slice
example:
validating_carrier_code: B6
arrival_date_time: 2022-04-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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-02T18:34:30
type: string
arrival_date_time:
description: The local date and time of arrival in ISO Local Date Time format
example: 2022-04-02T19: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-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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-02T19:12:30
fare_brand: fare_brand
flight_number: JB776
departure_date_time: 2022-04-02T18: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-02T18:34:30Z
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-20T12:15:48Z
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-20T12:15:48Z
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-02T18:34:30Z
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
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_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
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
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_passenger_type:
enum:
- adult
- child
- seated_infant
- lap_infant
title: dg_passenger_type
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_request_type:
enum:
- post_booking
- reprice
- ancillary
- bundle
- fare
title: dg_request_type
type: string
dg_status:
enum:
- created
- confirmed
- charged_back
- voided
- canceled
- queued
- failed
title: dg_status
type: string
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
direct:
description: Direct channel — the partner sells directly to the end customer
properties:
type:
enum:
- direct
type: string
required:
- type
title: direct
type: object
edge:
properties:
version:
type: string
type:
enum:
- edge
type: string
required:
- type
title: edge
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
event:
discriminator:
mapping:
booking_confirmed: '#/components/schemas/booking_confirmed'
offers_displayed: '#/components/schemas/offers_displayed'
propertyName: type
oneOf:
- $ref: '#/components/schemas/booking_confirmed'
- $ref: '#/components/schemas/offers_displayed'
title: event
fare:
example:
fare_rules:
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
- modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
fare_brand: flex
price: "401.10"
fare_basis: YBA123US
properties:
price:
description: The price of the slice for all the passengers with this fare
example: "401.10"
minimum: 0
type: string
fare_brand:
description: Name of the fare brand of this fare
example: flex
type: string
fare_basis:
description: Code of the fare basis applied to this fare
example: YBA123US
type: string
fare_rules:
description: The fare rules associated to the fare
items:
$ref: '#/components/schemas/fare_rule'
minItems: 1
type: array
title: fare
type: object
fare_class:
description: Fare class of the segment
enum:
- basic_economy
- economy
- premium_economy
- business
- first
title: fare_class
type: string
fare_rule:
example:
modification_type: cancellation
allowed: true
fee: fee
percentage: percentage
refund_method: ftc
currency: CAD
modification_time: after_departure
properties:
modification_type:
$ref: '#/components/schemas/modification_type'
modification_time:
$ref: '#/components/schemas/modification_time'
allowed:
description: Determines if that type of modifications at this time is allowed
type: boolean
fee:
description: Amount to be paid as penalty fee to perform the modification
minimum: 0
type: string
percentage:
description: Percentage of the fare to be paid as penalty to perform the
modification
minimum: 0
type: string
refund_method:
$ref: '#/components/schemas/airline_refund_method'
currency:
description: Currency of fee field. This will default to the contract currency
if not specified.
example: CAD
type: string
required:
- allowed
- modification_time
- modification_type
title: fare_rule
type: object
firefox:
properties:
version:
type: string
type:
enum:
- firefox
type: string
required:
- type
title: firefox
type: object
flight_status:
description: The current flight status
enum:
- confirmed
- cancelled
title: flight_status
type: string
flow_type:
description: The flow type for which the session is opened.
enum:
- purchase
- exercise
title: flow_type
type: string
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
gender:
description: The gender of the passenger
enum:
- male
- female
- undisclosed
- unspecified
title: gender
type: string
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
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
internet_explorer:
properties:
version:
type: string
type:
enum:
- internet_explorer
type: string
required:
- type
title: internet_explorer
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
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
map_cfar_contents:
additionalProperties:
$ref: '#/components/schemas/cfar_contents'
description: One or more contents describing the offer and its conditions in
the available languages
title: map_cfar_contents
type: object
map_dg_contents:
additionalProperties:
$ref: '#/components/schemas/dg_contents'
title: map_dg_contents
type: object
map_string:
additionalProperties:
type: string
title: map_string
type: object
mark_cfar_contract_exercise_complete_request:
description: An update CFAR contract exercise request
properties:
refund_amount:
description: Amount refunded to the customer
example: "424.33"
minimum: 0
type: string
refund_method:
$ref: '#/components/schemas/airline_refund_method'
title: mark_cfar_contract_exercise_complete_request
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
modification_time:
description: The time at which the modification is requested
enum:
- after_departure
- anytime
- before_departure
title: modification_time
type: string
modification_type:
description: The type of modifications in question in this fare rule
enum:
- cancellation
- change
title: modification_type
type: string
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
offers_displayed:
properties:
occurred_date_time:
description: |-
A UTC [RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) datetime;
the date and time at which an event occurred on a client device
example: 2022-01-24T15:34:30Z
format: date-time
type: string
type:
enum:
- offers_displayed
type: string
required:
- occurred_date_time
- type
title: offers_displayed
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
opera:
properties:
version:
type: string
type:
enum:
- opera
type: string
required:
- type
title: opera
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
other_browser:
properties:
name:
type: string
version:
type: string
type:
enum:
- other_browser
type: string
required:
- name
- type
title: other_browser
type: object
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
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
passenger_pricing:
example:
individual_price: "200.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 (excluding ancillaries)
example: "200.55"
minimum: 0
type: string
taxes:
description: Taxes applicable per passenger
items:
$ref: '#/components/schemas/cfar_passenger_tax'
type: array
required:
- individual_price
- passenger_count
title: passenger_pricing
type: object
passenger_type:
enum:
- adult
- child
- seated_infant
- lap_infant
title: passenger_type
type: string
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
platform:
discriminator:
mapping:
app: '#/components/schemas/app'
web: '#/components/schemas/web'
propertyName: type
oneOf:
- $ref: '#/components/schemas/app'
- $ref: '#/components/schemas/web'
title: platform
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
process_cfar_payment_request:
description: A process CFAR payment request
properties:
payment_method_token:
description: 'The Token of the Form of Payment used to pay for the CFAR
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
required:
- email_address
- first_name
- last_name
- payment_method_token
- pnr_reference
title: process_cfar_payment_request
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
product:
description: The product for which the session is opened.
Required for sessions
having flow_type "exercise".
enum:
- cfar
- dg
- all
title: product
type: string
request_type:
enum:
- post_booking
- reprice
- ancillary
- bundle
- fare
title: request_type
type: string
safari:
properties:
version:
type: string
type:
enum:
- safari
type: string
required:
- type
title: safari
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
token_type:
enum:
- Bearer
title: token_type
type: string
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
update_cfar_contract_itinerary_slice_request:
description: An itinerary slice containing only flight segments
properties:
segments:
description: A list of segments which make up the slice
items:
$ref: '#/components/schemas/cfar_itinerary_slice_segment'
minItems: 1
type: array
required:
- segments
title: update_cfar_contract_itinerary_slice_request
type: object
update_cfar_contract_itinerary_slices_request:
description: Request to update CFAR contract itinerary slices
properties:
slices:
description: List of itinerary slices with flight segments
items:
$ref: '#/components/schemas/update_cfar_contract_itinerary_slice_request'
minItems: 1
type: array
passenger_counts:
description: List of passenger types and counts
items:
$ref: '#/components/schemas/passenger_count'
minItems: 1
type: array
pnr_reference:
description: Reference of the PNR in the airline system
example: ABC123
type: string
required:
- slices
title: update_cfar_contract_itinerary_slices_request
type: object
update_cfar_contract_request:
description: Update CFAR contract request
properties:
status:
$ref: '#/components/schemas/cfar_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/cfar_tax'
type: array
currency:
description: Updated currency in case it has changed at payment time
example: USD
type: string
exchange_rate:
description: "Exchange rate applied provided by partner if currency has\
\ changed at payment time, for instance, if a contract is created in EUR\
\ and the customer chose to pay in CAD on the partner's website, the partner\
\ will send us their exchange rate value from EUR to CAD."
example: "0.75"
type: string
total_price:
description: Updated total price to be covered by CFAR in case it can change
at payment time
example: "401.10"
minimum: 0
type: string
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
required:
- status
title: update_cfar_contract_request
type: object
update_cfar_form_of_payment_request:
description: Request object related to the update of forms of payment for CFAR
contract
properties:
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
required:
- forms_of_payment
title: update_cfar_form_of_payment_request
type: object
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
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-02T18:34:30Z
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
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
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
windows:
properties:
version:
example: 15.0.2
type: string
type:
enum:
- windows
example: i_os
type: string
required:
- type
title: windows
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