Booking Components

A Booking Component object represents an individual component of a booking, such as a flight or package, and includes details like the supplier, amount, and more.

Components can be created through this API, or imported from your booking system's supplier payment reports. Imported components carry source_system and the supplier payment detail: the cost, sell and commission split, what has been paid to the supplier so far, what is still outstanding and when it is due, and the amount in the supplier's own currency. Those fields are null on components created through the API.


Booking Component Model

Properties

  • Name
    id
    Type
    string
    Description

    Unique identifier for the object.

  • Name
    supplier
    Type
    object
    Description

    The supplier model that the booking component is booked with.

  • Name
    amount
    Type
    integer
    Description

    The cost of the component (what you pay the supplier), in the lowest denomination for the currency (e.g., pence for GBP).

  • Name
    currency
    Type
    string
    Description

    The currency of the component. See the currency documentation.

  • Name
    booking_reference
    Type
    string
    Description

    The supplier booking reference for the component. For imported components this is the reference the most recent supplier payment was made against (PNR, ticket or invoice number).

  • Name
    destination_air
    Type
    string
    Description

    If the component is a flight, this represents the destination airport code.

  • Name
    type
    Type
    string
    Description

    A reference type for the component (e.g., flight, package, transfer). Imported components use Flight, Hotel, Transfer, Rail, Cruise, Tour/Activity, Vehicle Hire, Fee or Other.

  • Name
    source_system
    Type
    string
    Description

    The booking system the component was imported from (e.g., DOLPHIN), or null for components created through the API. Imported components are maintained by the import and cannot be edited through the API.

  • Name
    source_product
    Type
    string
    Description

    The product label as the source system knows it (e.g., Non-BSP Cash Ticket). Imported components only.

  • Name
    sell_amount
    Type
    integer
    Description

    The price the component is sold to the customer for, in the lowest denomination for the currency. Imported components only.

  • Name
    commission_amount
    Type
    integer
    Description

    The commission earned on the component, in the lowest denomination for the currency. Imported components only.

  • Name
    buy_vat_amount
    Type
    integer
    Description

    VAT on the cost, in the lowest denomination for the currency. Imported components only.

  • Name
    commission_vat_amount
    Type
    integer
    Description

    VAT on the commission, in the lowest denomination for the currency. Imported components only.

  • Name
    supplier_currency
    Type
    string
    Description

    The ISO 4217 code of the currency the supplier is paid in (e.g., EUR), when every payment for the component shares one currency. Imported components only.

  • Name
    supplier_amount
    Type
    integer
    Description

    The total paid and due to the supplier in supplier_currency, in hundredths of that currency's unit. Imported components only.

  • Name
    paid_amount
    Type
    integer
    Description

    The amount paid to the supplier so far, in the lowest denomination for the currency. Imported components only.

  • Name
    due_amount
    Type
    integer
    Description

    The amount still owed to the supplier, in the lowest denomination for the currency. Imported components only.

  • Name
    due_date
    Type
    date
    Description

    The earliest date on which an outstanding supplier payment falls due, or null when nothing is outstanding. Imported components only.

  • Name
    first_paid_at
    Type
    date
    Description

    The date of the first payment made to the supplier for the component. Imported components only.

  • Name
    last_paid_at
    Type
    date
    Description

    The date of the most recent payment made to the supplier for the component. Imported components only.

  • Name
    payments_count
    Type
    integer
    Description

    The number of payments made to the supplier for the component. Imported components only.

  • Name
    created_at
    Type
    datetime
    Description

    The datetime at which the object was created within our systems.

  • Name
    updated_at
    Type
    datetime
    Description

    The datetime at which the object was last changed, by the API or by an import.

Created through the API

{
  "id": "8224bb6e-1d70-588b-82b8-226f2d71012e",
  "supplier": {
    "id": "6ab41ce7-36c8-5835-b997-492adb3d66e1",
    "name": "Felloh Travel - Packages",
    "source_system": null,
    "created_at": "2022-06-28T17:27:59.616Z"
  },
  "amount": 56300,
  "currency": "GBX",
  "booking_reference": "X1232JJ",
  "destination_air": "AMS",
  "type": "flight",
  "source_system": null,
  "source_product": null,
  "sell_amount": null,
  "commission_amount": null,
  "buy_vat_amount": null,
  "commission_vat_amount": null,
  "supplier_currency": null,
  "supplier_amount": null,
  "paid_amount": null,
  "due_amount": null,
  "due_date": null,
  "first_paid_at": null,
  "last_paid_at": null,
  "payments_count": null,
  "created_at": "2023-02-15T16:00:18.886Z",
  "updated_at": "2023-02-15T16:00:18.886Z"
}

Imported from a booking system

{
  "id": "d1f0a4c2-5b3e-4c0a-9f6e-2a7b8c9d0e1f",
  "supplier": {
    "id": "3c9e2f70-1a4b-4d5e-8f60-7b8c9d0e1f2a",
    "name": "Hotel Arctic",
    "source_system": "DOLPHIN",
    "created_at": "2026-09-26T07:12:41.102Z"
  },
  "amount": 153390,
  "currency": "GBX",
  "booking_reference": "/IN/002/ZTU034",
  "destination_air": null,
  "type": "Hotel",
  "source_system": "DOLPHIN",
  "source_product": "Hotel",
  "sell_amount": 189900,
  "commission_amount": 0,
  "buy_vat_amount": 0,
  "commission_vat_amount": 0,
  "supplier_currency": "EUR",
  "supplier_amount": 166000,
  "paid_amount": 56208,
  "due_amount": 84470,
  "due_date": "2026-11-03",
  "first_paid_at": "2026-08-14",
  "last_paid_at": "2026-08-14",
  "payments_count": 1,
  "created_at": "2026-09-26T07:12:44.310Z",
  "updated_at": "2026-09-26T07:12:44.310Z"
}

PUT/agent/booking/:booking_id/component

Create One

This endpoint allows you to create a new booking component. Components imported from a booking system are created and kept up to date by the import; the supplier payment fields cannot be set through this endpoint.

Path Parameters

  • Name
    booking_id
    Type
    UUID
    Description

    The booking ID to which you wish to add a component.

Parameters

  • Name
    supplierrequired
    Type
    uuid
    Description

    The supplier object that the booking component is booked with.

  • Name
    amountrequired
    Type
    integer
    Description

    The amount that the component is for, in the lowest denomination for the currency.

  • Name
    currency
    Type
    string
    Description

    The currency of the component. Defaults to GBX.

  • Name
    booking_referencerequired
    Type
    string
    Description

    The supplier booking reference for the component.

  • Name
    destination_air
    Type
    string
    Description

    The destination airport code if the component is a flight.

  • Name
    type
    Type
    string
    Description

    A reference type for the component (e.g., flight, package, transfer).

Returns

  • Name
    id
    Type
    string
    Description

    Unique identifier for the object.

Request

PUT
/agent/booking/:booking_id/component
import axios from 'axios';

const response = await axios.put(
  `https://api.felloh.com/agent/booking/8224bb6e-1d70-588b-82b8-226f2d71012e/component`,
  {
    supplier: "ab6f8eb9-1c07-4ca4-888b-ae1a11b4463c",
    amount: 56300,
    currency: "GBX",
    booking_reference: "X1232JJ",
    destination_air: "AMS",
    type: "flight"
  },
  {
    headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer <YOUR TOKEN HERE>` }
  }
);

Response

{
  "data": {
    "id": "226009ab-ffe9-4c80-922b-982e8e7849f8"
  },
  "errors": [],
  "meta": {
    "code": 200,
    "reason": "OK",
    "message": "The request was successful",
    "request_id": "cdd40f5c-9d82-44c2-92e3-b5d2cad364f6"
  }
}

DELETE/agent/bookings/:booking_id/component/:component_id

Delete One

This endpoint allows you to delete a booking component.

Path Parameters

  • Name
    booking_id
    Type
    UUID
    Description

    The booking ID from which you wish to delete a component.

  • Name
    component_id
    Type
    UUID
    Description

    The component ID that you wish to delete.

Request

DELETE
/agent/bookings/:booking_id/component/:component_id
import axios from 'axios';

const bookingID = '226009ab-ffe9-4c80-922b-982e8e7849f8';
const componentID = '226009ab-ffe9-4c80-922b-982e8e7849f8';

const response = await axios.delete(
  `https://api.felloh.com/agent/bookings/${bookingID}/component/${componentID}`,
  {
    headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer <YOUR TOKEN HERE>` }
  }
);

Response

{
  "data": {},
  "errors": [],
  "meta": {
    "code": 200,
    "reason": "OK",
    "message": "The request was successful",
    "request_id": "cdd40f5c-9d82-44c2-92e3-b5d2cad364f6"
  }
}