---
title: "Duffel Flights API Integration Guide"
description: "Implement Duffel Flights API around Offer Requests, Offers, Orders, baggage/ancillaries, payment and airline source-of-truth."
slug: "duffel-flights"
translationKey: "integration-duffel-flights"
locale: "en"
type: "guide"
category: "flight"
tags: ["duffel","flight-api","offer","order","ancillary"]
publishedAt: "2026-09-26"
updatedAt: "2026-09-26"
reviewedAt: "2026-09-26"
technicalVerifiedAt: "2026-09-26"
sourceVersion: "Duffel Flights API v2 public docs reviewed 2026-09-26"
testedAgainst: "Official public documentation; not a live Duffel production account"
codeExampleStatus: "illustrative"
sources:
  - title: "Duffel Offer Requests"
    url: "https://duffel.com/docs/api/offer-requests"
  - title: "Duffel Offers"
    url: "https://duffel.com/docs/api/offers"
  - title: "Duffel Orders"
    url: "https://duffel.com/docs/api/orders"
---
Duffel Flights API is a useful modern reference for an explicit Offer/Order flight-supply model.

## Lifecycle

```text
Offer Request
 -> Offers
 -> selected Offer
 -> optional price/services
 -> Order
 -> payment / hold
 -> change/cancel/service
```

Offers are ephemeral and expose `expires_at`. Do not attempt to book expired offers.

## Order

An Order represents a view of the airline booking. Duffel documents the airline as source of truth and exposes `synced_at` for the last airline synchronization time.

## Ancillaries

Available services can include extras such as checked bags. Preserve selected service identity through booking.

## Hold vs instant

Orders can use instant payment or hold-and-pay-later when the selected offer allows it.

## Idempotency

An Order-create timeout creates UNKNOWN state. Avoid blind duplicate creation and reconcile first.

## Observability

Track offer-request latency, offer expiry, order success/unknown rate, synced_at age, airline-initiated changes and service-booking errors.
