Hopper Cancel For Any Reason (CFAR) API

**What is Cancel For Any Reason?** Cancel For Any Reason (CFAR) enables airlines to offer refundability as an ancillary with HTS powering the dynamic pricing and supporting the refund cost. **** **How it works** There are two distinct flows for CFAR: - The _purchase flow_, enabling customers to purchase the product within the airline’s booking flow. - The _exercise flow_, enabling customers to cancel their booking and get a refund. For each of these flows, the first step is to [Create a Session](#operation/postSessions) Both the purchase and the exercise of CFAR should be tracked by the airline in the airline’s Passenger Name Record (PNR) according to the applicable industry standards. **** **Purchase flow** CFAR follows the industry standard of a two step purchase process. 1. Once the user is landing on the page displaying the CFAR offer, the airline will call the [Create CFAR Offers](#operation/postCfar_offers) endpoint. CFAR Offers can be created at multiple granular levels. The request must include a description of the Itinerary for which the offers are requested. The response will contain - the price for the product (`premium`), - the refundable amount (`coverage`), - the UTC date and time until when the cancellation can be requested (`contract_expiry_date_time`) - and the description of the offer in the available languages (`contents`). 2. If a user is attaching CFAR to his booking, the airline will call the [Create CFAR Contract](#operation/postCfar_contracts) endpoint. The request must include the selected `offer_id`(s) and a description of the Itinerary for which the contract is requested, which must match the one of the Offer(s). At this stage, the CFAR Contract is only _created_. It will be confirmed once the customer has made the payment, which can be done in two ways: 1. If the airline is the Merchant of Records (MoR), it will capture the payment for the total amount of the booking, including the CFAR fee amount. Upon a successful payment, the airline will call the Update CFAR Contract Status endpoint to set the CFAR contract to _confirmed_. The airline will track this purchase in its PNR following the industry standards that apply to ticketing or ticketless carriers. 2. If HTS is the Merchant of Records (MoR), the airline will capture the payment for the amount of the booking excluding the CFAR fee, while HTS will capture the payment for the CFAR fee amount. Upon a successful payment of its portion, the airline will call the Process CFAR Payment endpoint for HTS to capture the payment for the CFAR fee amount. Once successful, the CFAR contract will be set to _confirmed_. The airline will track this purchase in its PNR. The details of a CFAR contract can be retrieved at any time through the Get a CFAR Contract endpoint. **** **Exercise flow** CFAR exercise follows a two step process. 1. The user will request the exercise from the “Manage My Bookings” (MMB) page of the airline, through a dedicated Call to action displayed based on the tracker added to the PNR at the time of booking. Once the user is requesting the exercise, the airline will call the [Create CFAR Exercise](#operation/postCfar_contract_exercises) endpoint to authorize the exercise. The request must include the Contract ID, the Itinerary at the time of the exercise request and some optional information on the refund option that may be offered by the airline. If eligible to the exercise, the response will contain the refundable amounts, both in cash and Future Travel Credit (FTC) if applicable. 2. Once the user has followed the steps of the refund portal and confirmed the cancellation request, HTS will make a call back to the airline to launch the PNR update flow on the airline’s end. The actual PNR update flow depends on each airline’s specifics and is not described here. Upon a successful update of the PNR, the airline will confirm the exercise to HTS by calling the [Complete CFAR Exercise](#operation/putCfar_contract_exercisesIdMark_completed) endpoint.

Operations 11

POST /cfar_offers Create CFAR Offers #
POST /cfar_offers/external Create External CFAR Offer #
POST /cfar_contracts Create a CFAR Contract #
GET /cfar_contracts/{id} Get a CFAR Contract #
PUT /cfar_contracts/{id}/update_status Update CFAR Contract Status #
PUT /cfar_contracts/{id}/forms_of_payment Update forms of payment of a CFAR Contract #
POST /cfar_contracts/{id}/payment Process CFAR Payment #
PUT /cfar_contracts/{id}/itinerary_slices Update CFAR Contract Itinerary Slices #
POST /cfar_contract_exercises Create CFAR Exercise #
PUT /cfar_contract_exercises/{id}/mark_completed Complete CFAR Exercise #
GET /customer/cfar/payout/receipt Get payout receipt PDF #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/hopper-com-cancel-for-any-reason-cfar-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

hopper-com-cancel-for-any-reason-cfar-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Airline Cancel For Any Reason (CFAR) API
  version: v1.1
  description: '**What is Cancel For Any Reason?**


    Cancel For Any Reason (CFAR) enables airlines to offer refundability as an ancillary with HTS powering the dynamic pricing and supporting the refund cost.'
servers:
- url: https://airlines-api.hopper.com/airline/v1.1
tags:


# --- truncated at 32 KB (140 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/hopper-com/refs/heads/main/openapi/hopper-com-cancel-for-any-reason-cfar-api-openapi.yml