# Duffel v0.1.0 - Table of Contents

> An Elixir library for the Duffel API

## Pages

- [Duffel](readme.md)
- [Changelog](changelog.md)
- [LICENSE](license.md)

## Modules

- [Duffel.Schema.ItineraryView](Duffel.Schema.ItineraryView.md): An offer request returned in the `itineraries` shape.
- [Duffel.Schema.ItineraryView.Brand](Duffel.Schema.ItineraryView.Brand.md): A fare brand available on an itinerary, and the offers priced under it.
- [Duffel.Schema.ItineraryView.Itinerary](Duffel.Schema.ItineraryView.Itinerary.md): A set of flights shared by every offer beneath it: the same segments, in
the same order, in the same cabins. The fares that can be bought on
those flights are the `brands`.
- [Duffel.Schema.ItineraryView.Slice](Duffel.Schema.ItineraryView.Slice.md): One slice of an offer request in the `itineraries` shape.

- Core
  - [Duffel](Duffel.md): An Elixir client for the [Duffel API](https://duffel.com/docs/api).
  - [Duffel.Client](Duffel.Client.md): HTTP transport for the Duffel API.
  - [Duffel.Error](Duffel.Error.md): The error every Duffel function returns when something goes wrong.
  - [Duffel.Page](Duffel.Page.md): One page of results from a Duffel list endpoint.
  - [Duffel.RateLimit](Duffel.RateLimit.md): What a response said about your remaining request allowance.

- Schemas
  - [Duffel.Schema](Duffel.Schema.md): Opt-in typed views over Duffel API responses.
  - [Duffel.Schema.Offer](Duffel.Schema.Offer.md): A bookable offer returned by a search.
  - [Duffel.Schema.OfferRequest](Duffel.Schema.OfferRequest.md): A search for flights.
  - [Duffel.Schema.Order](Duffel.Schema.Order.md): A booked order.
  - [Duffel.Schema.Passenger](Duffel.Schema.Passenger.md): A passenger on an offer request, offer or order.
  - [Duffel.Schema.Payment](Duffel.Schema.Payment.md): A payment made against an order.

  - [Duffel.Schema.Segment](Duffel.Schema.Segment.md): A single flight (one take-off and landing) within a slice.
  - [Duffel.Schema.Slice](Duffel.Schema.Slice.md): One leg of a journey on an offer or order.

- Schemas — Stays
  - [Duffel.Schema.Stays.Accommodation](Duffel.Schema.Stays.Accommodation.md): A property that can be booked.
  - [Duffel.Schema.Stays.Booking](Duffel.Schema.Stays.Booking.md): A booked stay.
  - [Duffel.Schema.Stays.Quote](Duffel.Schema.Stays.Quote.md): A confirmed price for a rate, ready to book.
  - [Duffel.Schema.Stays.Rate](Duffel.Schema.Stays.Rate.md): A bookable rate for a room.
  - [Duffel.Schema.Stays.Room](Duffel.Schema.Stays.Room.md): A room within an accommodation, with its bookable rates.
  - [Duffel.Schema.Stays.SearchResult](Duffel.Schema.Stays.SearchResult.md): One accommodation returned by a stays search, with its cheapest rate.

- Schemas — Cars
  - [Duffel.Schema.Cars.Booking](Duffel.Schema.Cars.Booking.md): A booked rental car.
  - [Duffel.Schema.Cars.Quote](Duffel.Schema.Cars.Quote.md): A confirmed price for a rate, ready to book.
  - [Duffel.Schema.Cars.Rate](Duffel.Schema.Cars.Rate.md): A bookable rate for a rental car.
  - [Duffel.Schema.Cars.Search](Duffel.Schema.Cars.Search.md): A cars search with the rates it returned.

- Flights
  - [Duffel.AirlineCredits](Duffel.AirlineCredits.md): Manage airline credits issued to customer users, e.g. from cancellations.
  - [Duffel.AirlineInitiatedChanges](Duffel.AirlineInitiatedChanges.md): Handle changes that airlines make to existing orders (e.g. schedule
changes), accepting them or recording the action taken.
  - [Duffel.BatchOfferRequests](Duffel.BatchOfferRequests.md): Batched flight search: create returns immediately with `total_batches`;
poll `get/3` to receive offers batch by batch as airlines respond.
  - [Duffel.OfferRequests](Duffel.OfferRequests.md): Search for flights by creating offer requests.
  - [Duffel.OfferRequests.SearchParams](Duffel.OfferRequests.SearchParams.md): Build the request body for `Duffel.OfferRequests.create/3`.
  - [Duffel.Offers](Duffel.Offers.md): Retrieve the offers returned by an offer request.
  - [Duffel.OrderCancellations](Duffel.OrderCancellations.md): Cancel orders in two steps: create a pending cancellation to see the
refund amount, then confirm it.
  - [Duffel.OrderChangeOffers](Duffel.OrderChangeOffers.md): Retrieve the offers returned by an order change request.
  - [Duffel.OrderChangeRequests](Duffel.OrderChangeRequests.md): Request changes to an existing order's slices.
  - [Duffel.OrderChanges](Duffel.OrderChanges.md): Apply a selected order change offer to an order: create a pending
order change, then confirm it (with payment if `change_total_amount`
is positive).
  - [Duffel.Orders](Duffel.Orders.md): Book flights by creating orders from offers, and manage existing orders.
  - [Duffel.Orders.CreateParams](Duffel.Orders.CreateParams.md): Build the request body for `Duffel.Orders.create/3`.
  - [Duffel.PartialOfferRequests](Duffel.PartialOfferRequests.md): Multi-step flight search: offers are returned per slice independently.
  - [Duffel.Payments](Duffel.Payments.md): Pay for hold orders that were booked without immediate payment.
  - [Duffel.SeatMaps](Duffel.SeatMaps.md): Retrieve seat maps for an offer to build a seat selection UI.

- Flights — Reference data
  - [Duffel.Aircraft](Duffel.Aircraft.md): Look up aircraft reference data.
  - [Duffel.Airlines](Duffel.Airlines.md): Look up airline reference data.
  - [Duffel.Airports](Duffel.Airports.md): Look up airport reference data.
  - [Duffel.Cities](Duffel.Cities.md): Look up city reference data.
  - [Duffel.LoyaltyProgrammes](Duffel.LoyaltyProgrammes.md): Look up airline loyalty programme reference data.
  - [Duffel.Places](Duffel.Places.md): Autocomplete airports and cities by name or location.

- Stays
  - [Duffel.Stays.Accommodation](Duffel.Stays.Accommodation.md): Look up accommodation, suggest accommodation by name or location, and
read guest reviews.
  - [Duffel.Stays.Bookings](Duffel.Stays.Bookings.md): Book accommodation from a quote, then manage and cancel the booking.
  - [Duffel.Stays.Brands](Duffel.Stays.Brands.md): Look up accommodation brand reference data.
  - [Duffel.Stays.Chains](Duffel.Stays.Chains.md): Look up accommodation chain reference data.
  - [Duffel.Stays.LoyaltyProgrammes](Duffel.Stays.LoyaltyProgrammes.md): Look up accommodation loyalty programme reference data.
  - [Duffel.Stays.NegotiatedRates](Duffel.Stays.NegotiatedRates.md): Manage negotiated (private) accommodation rates.
  - [Duffel.Stays.Quotes](Duffel.Stays.Quotes.md): Confirm availability and the final price for a selected rate.
  - [Duffel.Stays.Search](Duffel.Stays.Search.md): Search for accommodation and fetch the rates for a result.
  - [Duffel.Stays.SearchParams](Duffel.Stays.SearchParams.md): Build the request body for `Duffel.Stays.Search.create/3`.

- Cars
  - [Duffel.Cars.Bookings](Duffel.Cars.Bookings.md): Book a rental car from a quote, then retrieve or cancel the booking.
  - [Duffel.Cars.Quotes](Duffel.Cars.Quotes.md): Confirm availability and the final price for a selected car rate.
  - [Duffel.Cars.Search](Duffel.Cars.Search.md): Search for rental cars.
  - [Duffel.Cars.SearchParams](Duffel.Cars.SearchParams.md): Build the request body for `Duffel.Cars.Search.create/3`.

- Payments
  - [Duffel.Cards](Duffel.Cards.md): Tokenise cards for use in payments and 3DS sessions.
  - [Duffel.ThreeDSecureSessions](Duffel.ThreeDSecureSessions.md): Create 3D Secure (3DS) sessions for card payments.

- Identity
  - [Duffel.Identity.ComponentClientKeys](Duffel.Identity.ComponentClientKeys.md): Create short-lived keys for authenticating Duffel UI components in the
browser.
  - [Duffel.Identity.CustomerUserGroups](Duffel.Identity.CustomerUserGroups.md): Group customer users to scope what each of your users can see and manage.
  - [Duffel.Identity.CustomerUsers](Duffel.Identity.CustomerUsers.md): Manage customer users — the travellers and bookers your own users
represent within Duffel.

- Webhooks
  - [Duffel.WebhookDeliveries](Duffel.WebhookDeliveries.md): Inspect delivery attempts for your webhooks.
  - [Duffel.WebhookEvents](Duffel.WebhookEvents.md): Inspect and redeliver events sent to your webhooks.
  - [Duffel.Webhooks](Duffel.Webhooks.md): Manage webhook subscriptions and verify incoming webhook signatures.

