openapi: 3.0.3 info: title: Airline Analytics Cancel For Any Reason (CFAR) API version: v1.1 description: In order to measure and continuously improve HTS Ancillaries performance, specific events occurring during a customer session can be sent by the partner airlines using some dedicated endpoints. servers: - url: https://airlines-api.hopper.com/airline/v1.1 tags: - description: "**What is Cancel For Any Reason?**\n\nCancel For Any Reason (CFAR) enables airlines to offer refundability as an ancillary with HTS powering the dynamic pricing and supporting the refund cost.\n\n****\n\n**How it works**\n\nThere are two distinct flows for CFAR:\n\n- The _purchase flow_, enabling customers to purchase the product within the airline’s booking flow.\n- The _exercise flow_, enabling customers to cancel their booking and get a refund.\n\nFor each of these flows, the first step is to [Create a Session](#operation/postSessions)\n\nBoth 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.\n\n****\n\n**Purchase flow**\n\nCFAR follows the industry standard of a two step purchase process.\n\n1. 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\n\n - the price for the product (`premium`),\n - the refundable amount (`coverage`),\n - the UTC date and time until when the cancellation can be requested (`contract_expiry_date_time`)\n - and the description of the offer in the available languages (`contents`).\n\n2. 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:\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 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.\n 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.\n\nThe details of a CFAR contract can be retrieved at any time through the Get a CFAR Contract endpoint.\n\n****\n\n**Exercise flow**\n\nCFAR exercise follows a two step process.\n\n1. 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.\n2. 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.\n" name: Cancel For Any Reason (CFAR) paths: /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```\nHere 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) components: schemas: 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 passenger_type: enum: - adult - child - seated_infant - lap_infant title: passenger_type type: string 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 opera: properties: version: type: string type: enum: - opera type: string required: - type title: opera 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 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 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 other_browser: properties: name: type: string version: type: string type: enum: - other_browser type: string required: - name - type title: other_browser 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 request_type: enum: - post_booking - reprice - ancillary - bundle - fare title: request_type type: string internet_explorer: properties: version: type: string type: enum: - internet_explorer type: string required: - type title: internet_explorer 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 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 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 modification_type: description: The type of modifications in question in this fare rule enum: - cancellation - change title: modification_type type: string 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 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-01 18:30:00+00:00 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 cfar_status: enum: - created - confirmed - charged_back - voided - canceled title: cfar_status type: string safari: properties: version: type: string type: enum: - safari type: string required: - type title: safari 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 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-02 19:12:30 fare_brand: fare_brand flight_number: JB776 departure_date_time: 2022-04-02 18:34:30 fare_class: basic_economy origin_airport: BOS destination_airport: LGA - validating_carrier_code: B6 arrival_date_time: 2022-04-02 19:12:30 fare_brand: fare_brand flight_number: JB776 departure_date_time: 2022-04-02 18:34:30 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 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 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 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 cfar_itinerary_slice_segment: description: An object detailing a segment of a fare slice example: validating_carrier_code: B6 arrival_date_time: 2022-04-02 19:12:30 fare_brand: fare_brand flight_number: JB776 departure_date_time: 2022-04-02 18:34:30 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-02 18:34:30 type: string arrival_date_time: description: The local date and time of arrival in ISO Local Date Time format example: 2022-04-02 19:12:30 type: string flight_number: description: The number of the flight example: JB776 pattern: ([A-Z][0-9]{2,5}|[0-9]{1,4}|[0-9][A-Z][0-9]{1,4}|[A-Z]{2}[0-9]{1,4}) type: string validating_carrier_code: description: The IATA airline code of the validating carrier for this segment example: B6 pattern: '[A-Z0-9]{2}' type: string 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 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_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 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 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 platform: discriminator: mapping: app: '#/components/schemas/app' web: '#/components/schemas/web' propertyName: type oneOf: - $ref: '#/components/schemas/app' - $ref: '#/components/schemas/web' title: platform 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-02 19:12:30 fare_brand: fare_brand flight_number: JB776 departure_date_time: 2022-04-02 18:34:30 fare_class: basic_economy origin_airport: BOS destination_airport: LGA - validating_carrier_code: B6 arrival_date_time: 2022-04-02 19:12:30 fare_brand: fare_brand flight_number: JB776 departure_date_time: 2022-04-02 18:34:30 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-02 19:12:30 fare_brand: fare_brand flight_number: JB776 departure_date_time: 2022-04-02 18:34:30 fare_class: basic_economy origin_airport: BOS destination_airport: LGA - validating_carrier_code: B6 arrival_date_time: 2022-04-02 19:12:30 fare_brand: fare_brand flight_number: JB776 departure_date_time: 2022-04-02 18:34:30 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-02 18:34:30+00:00 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-20 12:15:48+00:00 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-20 12:15:48+00:00 format: date-time type: string created_date_time: description: A UTC [RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) datetime; the date and time at which a CFAR offer was created example: 2020-11-02 18:34:30+00:00 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 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 modification_time: description: The time at which the modification is requested enum: - after_departure - anytime - before_departure title: modification_time 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 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-02 19:12:30 fare_brand: fare_brand flight_number: JB776 departure_date_time: 2022-04-02 18:34:30 fare_class: basic_economy origin_airport: BOS destination_airport: LGA - validating_carrier_code: B6 arrival_date_time: 2022-04-02 19:12:30 fare_brand: fare_brand flight_number: JB776 departure_date_time: 2022-04-02 18:34:30 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-02 19:12:30 fare_brand: fare_brand flight_number: JB776 departure_date_time: 2022-04-02 18:34:30 fare_class: basic_economy origin_airport: BOS destination_airport: LGA - validating_carrier_code: B6 arrival_date_time: 2022-04-02 19:12:30 fare_brand: fare_brand flight_number: JB776 departure_date_time: 2022-04-02 18:34:30 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-02 18:34:30+00:00 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-20 12:15:48+00:00 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-02 19:12:30 fare_brand: fare_brand flight_number: JB776 departure_date_time: 2022-04-02 18:34:30 fare_class: basic_economy origin_airport: BOS destination_airport: LGA - validating_carrier_code: B6 arrival_date_time: 2022-04-02 19:12:30 fare_brand: fare_brand flight_number: JB776 departure_date_time: 2022-04-02 18:34:30 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-02 19:12:30 fare_brand: fare_brand flight_number: JB776 departure_date_time: 2022-04-02 18:34:30 fare_class: basic_economy origin_airport: BOS destination_airport: LGA - validating_carrier_code: B6 arrival_date_time: 2022-04-02 19:12:30 fare_brand: fare_brand flight_number: JB776 departure_date_time: 2022-04-02 18:34:30 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-02 18:34:30+00:00 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-20 12:15:48+00:00 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-02 19:12:30 fare_brand: fare_brand flight_number: JB776 departure_date_time: 2022-04-02 18:34:30 fare_class: basic_economy origin_airport: BOS destination_airport: LGA - validating_carrier_code: B6 arrival_date_time: 2022-04-02 19:12:30 fare_brand: fare_brand flight_number: JB776 departure_date_time: 2022-04-02 18:34:30 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-02 19:12:30 fare_brand: fare_brand flight_number: JB776 departure_date_time: 2022-04-02 18:34:30 fare_class: basic_economy origin_airport: BOS destination_airport: LGA - validating_carrier_code: B6 arrival_date_time: 2022-04-02 19:12:30 fare_brand: fare_brand flight_number: JB776 departure_date_time: 2022-04-02 18:34:30 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-08 14:36:56+00:00 exercise_url: exercise_url premium: '80.00' currency: USD id: 1ec9ef29-be31-6ed3-beec-9f5ae0d164ee pnr_reference: ABC123 expiry_date_time: 2022-06-01 15:00:00+00:00 status: created properties: id: description: Unique identifier for a contract example: 1ec9ef29-be31-6ed3-beec-9f5ae0d164ee type: string reference: description: Unique reference for a contract example: 1FE5772642C77BAB type: string 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-08 14:36:56+00:00 format: date-time type: string expiry_date_time: description: A UTC [RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) A UTC RFC3339 datetime; the date and time at which the CFAR contract will expire once purchased example: 2022-06-01 15:00:00+00:00 format: date-time type: string 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 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 linux: properties: version: example: 15.0.2 type: string type: enum: - linux example: i_os type: string required: - type title: linux 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 user_info: description: An object containing information related to the airline's user. Should be included if known, but not if the user is anonymous. properties: airline_user_id: description: The airline's unique identifier for a user; can be an arbitrary string example: 2bcd6619-ac3e-403b-9982-3e12f2698a53 type: string created_date_time: description: A UTC [RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) datetime; the date and time at which a user's account was created example: 2020-11-02 18:34:30+00:00 format: date-time type: string previous_bookings: description: Number of prior bookings a user has made example: 3 format: int32 minimum: 0 type: integer required: - airline_user_id title: user_info type: object 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 direct: description: Direct channel — the partner sells directly to the end customer properties: type: enum: - direct type: string required: - type title: direct type: object channel: description: The partner's distribution channel discriminator: mapping: agent_reseller: '#/components/schemas/agent_reseller' api: '#/components/schemas/api' direct: '#/components/schemas/direct' online_booking_tool: '#/components/schemas/online_booking_tool' white_label: '#/components/schemas/white_label' propertyName: type oneOf: - $ref: '#/components/schemas/agent_reseller' - $ref: '#/components/schemas/api' - $ref: '#/components/schemas/direct' - $ref: '#/components/schemas/online_booking_tool' - $ref: '#/components/schemas/white_label' title: channel firefox: properties: version: type: string type: enum: - firefox type: string required: - type title: firefox type: object chrome: properties: version: type: string type: enum: - chrome type: string required: - type title: chrome 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 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 operating_system: discriminator: mapping: android: '#/components/schemas/android' chrome_os: '#/components/schemas/chrome_os' i_os: '#/components/schemas/i_os' linux: '#/components/schemas/linux' mac_os: '#/components/schemas/mac_os' other_os: '#/components/schemas/other_os' windows: '#/components/schemas/windows' propertyName: type oneOf: - $ref: '#/components/schemas/android' - $ref: '#/components/schemas/chrome_os' - $ref: '#/components/schemas/i_os' - $ref: '#/components/schemas/linux' - $ref: '#/components/schemas/mac_os' - $ref: '#/components/schemas/other_os' - $ref: '#/components/schemas/windows' title: operating_system passenger_count: example: count: 3 type: adult properties: count: description: Number of passenger type example: 3 exclusiveMinimum: true format: int32 minimum: 0 type: integer type: $ref: '#/components/schemas/passenger_type' required: - count - type title: passenger_count type: object 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 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 windows: properties: version: example: 15.0.2 type: string type: enum: - windows example: i_os type: string required: - type title: windows type: object app: properties: operating_system: $ref: '#/components/schemas/operating_system' type: enum: - app example: app type: string required: - type title: app type: object edge: properties: version: type: string type: enum: - edge type: string required: - type title: edge 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 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 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 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 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 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 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 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 airline_refund_method: enum: - ftc - cash title: airline_refund_method type: string 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-02 18:34:30 type: string arrival_date_time: description: The local date and time of arrival in ISO Local Date Time format example: 2022-04-02 19:12:30 type: string flight_number: description: The number of the flight example: JB776 pattern: ([A-Z][0-9]{2,5}|[0-9]{1,4}|[0-9][A-Z][0-9]{1,4}|[A-Z]{2}[0-9]{1,4}) type: string validating_carrier_code: description: The IATA airline code of the validating carrier for this segment example: B6 pattern: '[A-Z0-9]{2}' type: string 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 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 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 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 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-08 15:20:30+00:00 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-08 15:20:30+00:00 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 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-31 23:59:59+00:00 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-15 10:30:00+00:00 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 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 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-02 19:12:30 fare_brand: fare_brand flight_number: JB776 departure_date_time: 2022-04-02 18:34:30 fare_class: basic_economy origin_airport: BOS destination_airport: LGA - validating_carrier_code: B6 arrival_date_time: 2022-04-02 19:12:30 fare_brand: fare_brand flight_number: JB776 departure_date_time: 2022-04-02 18:34:30 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-02 19:12:30 fare_brand: fare_brand flight_number: JB776 departure_date_time: 2022-04-02 18:34:30 fare_class: basic_economy origin_airport: BOS destination_airport: LGA - validating_carrier_code: B6 arrival_date_time: 2022-04-02 19:12:30 fare_brand: fare_brand flight_number: JB776 departure_date_time: 2022-04-02 18:34:30 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 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_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 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 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 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 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 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