Suppliers
This object represents one of your suppliers, it is mainly used for risk analysis and booking components. Suppliers can be created through this API, or imported from your booking system alongside its supplier payment reports.
Supplier Model
Properties
- Name
id- Type
- string
- Description
Unique identifier for the object.
- Name
name- Type
- string
- Description
The name of the supplier.
- Name
source_system- Type
- string
- Description
The booking system the supplier was imported from (e.g.,
DOLPHIN), ornullfor suppliers created through the API or dashboard.
- Name
created_at- Type
- datetime
- Description
The datetime at which the supplier object was created within our systems.
{
"id": "226009ab-ffe9-4c80-922b-982e8e7849f8",
"name": "XXX123789",
"source_system": null,
"created_at": "2022-01-28T10:57:32.456Z"
}
Fetch All
This endpoint retrieves all suppliers. Suppliers are sorted by name.
Parameters
- Name
organisationrequired- Type
- string
- Description
The organisation ID that you want to fetch suppliers for. You can find the organisation that you have access to by using the List all organisations method.
- Name
keyword- Type
- string
- Description
A supplier name that you want to filter by.
- Name
skip- Type
- integer
- Description
See the pagination section for details.
- Name
take- Type
- integer
- Description
Number of records to return. Defaults to 25, maximum 25. See the pagination section for details.
Returns
An array of Supplier Models
Request
import axios from 'axios';
const response = await axios.post(
'https://api.felloh.com/agent/suppliers',
{
organisation: 'X9876',
keyword: 'virgin tours',
skip: 10,
take: 20
},
{
headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer <YOUR TOKEN HERE>` }
}
);
Response
{
"data": [
{
"id": "02c31636-e311-4694-a128-d83abae12e26",
"name": "Virgin Cruises",
"source_system": null,
"created_at": "2022-01-28T10:57:32.456Z"
},
{
"id": "54969d6f-2695-4314-97a1-63e5696b4807",
"name": "Virgin Holidays",
"source_system": "DOLPHIN",
"created_at": "2022-01-28T10:57:32.456Z"
}
],
"errors": [],
"meta": {
"code": 200,
"reason": "OK",
"message": "The request was successful",
"request_id": "cdd40f5c-9d82-44c2-92e3-b5d2cad364f6",
"count": 2
}
}
Due Payments
This endpoint lists the supplier payments your booking system reports as still due for an organisation, soonest due first. Each line is one instalment (deposit or balance) owed to a supplier for a booking element, as imported from the Vendor Payments Due report. It requires the suppliers:manage role.
Amounts are in the minor unit of the organisation's currency (amount, GBX pence). Where the supplier is paid in another currency, supplier_amount carries that figure in the minor unit of supplier_currency.
Parameters
- Name
organisationrequired- Type
- string
- Description
The organisation ID that you want to fetch due supplier payments for.
- Name
due_within- Type
- integer
- Description
Only return lines due on or before today plus this many days.
7means due within the next week;0means due today. Between 0 and 3650.
- Name
overdue- Type
- string
- Description
How lines already past their due date are treated:
include(default),exclude, oronly.
- Name
supplier_id- Type
- string
- Description
Restrict to one supplier.
- Name
keyword- Type
- string
- Description
Matches the booking reference, customer name, supplier name or passenger name. Maximum 100 characters.
- Name
skip- Type
- integer
- Description
See the pagination section for details.
- Name
take- Type
- integer
- Description
Number of records to return. Defaults to 100, maximum 100. See the pagination section for details.
Returns
An array of due payment lines. Each line nests the booking, the supplier and the Booking Component it belongs to, and reports days_until_due (negative when overdue).
meta.summary totals the organisation's due lines regardless of the date filters (the supplier and keyword filters still apply): total, overdue, due_7_days and due_30_days each carry a count and an amount, alongside booking_count, supplier_count, earliest_due_date and reported_at (the print date of the latest report imported).
Request
import axios from 'axios';
const response = await axios.post(
'https://api.felloh.com/agent/supplier-payments/due',
{
organisation: 'X9876',
due_within: 7,
overdue: 'include',
take: 100
},
{
headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer <YOUR TOKEN HERE>` }
}
);
Response
{
"data": [
{
"id": "0d92104e-fb69-45da-9347-17271e73655e",
"status": "DUE",
"payment_type": "Balance",
"due_date": "2026-10-05",
"days_until_due": 5,
"payment_reference": "INV-88213",
"passenger_name": "A Traveller",
"product": "Hotel",
"amount": 32280,
"currency": "GBX",
"supplier_currency": "EUR",
"supplier_amount": 37500,
"sell_amount": 41000,
"snapshot_date": "2026-09-30",
"updated_at": "2026-09-30T05:12:44.000Z",
"booking": {
"id": "1e2a0c8e-4d5e-4d1f-9b7a-2f1f7c1d1a11",
"booking_reference": "9364",
"customer_name": "Lead Passenger",
"departure_date": "2026-11-01",
"return_date": "2026-11-08",
"destination": "Riga"
},
"supplier": {
"id": "54969d6f-2695-4314-97a1-63e5696b4807",
"name": "Hotel Riga"
},
"component": {
"id": "7f3c0b4a-9c1e-4c8e-a4d2-0b1d2c3e4f55",
"type": "Hotel",
"due_amount": 32280,
"paid_amount": 0
}
}
],
"errors": [],
"meta": {
"code": 200,
"reason": "OK",
"message": "The request was successful",
"request_id": "cdd40f5c-9d82-44c2-92e3-b5d2cad364f6",
"count": 1,
"summary": {
"total": { "count": 651, "amount": 38790976 },
"overdue": { "count": 126, "amount": 5796081 },
"due_7_days": { "count": 19, "amount": 912340 },
"due_30_days": { "count": 103, "amount": 6120055 },
"booking_count": 183,
"supplier_count": 144,
"earliest_due_date": "2025-07-27",
"reported_at": "2026-09-30"
}
}
}
Fetch One
One supplier with its figures: booking elements (components: count, booking_count, amount, future_booking_count, future_amount, next_departure_date), the supplier payments imported from the booking system (payments.paid, payments.due with next_due_date, payments.overdue, each with count and amount) and how many bank accounts are on file for paying it (bank_accounts.count). Requires suppliers:manage.
Parameters
- Name
organisationrequired- Type
- string
- Description
The organisation ID the supplier belongs to.
Rename a supplier with POST /agent/suppliers/{id}/update and name.
Response
{
"data": {
"id": "54969d6f-2695-4314-97a1-63e5696b4807",
"name": "Hotel Riga",
"source_system": "DOLPHIN",
"created_at": "2026-09-26T07:04:12.000Z",
"components": { "count": 531, "booking_count": 210, "amount": 18734400, "future_booking_count": 6, "future_amount": 412000, "next_departure_date": "2026-10-04" },
"payments": {
"paid": { "count": 514, "amount": 18102200, "last_paid_at": "2026-09-17" },
"due": { "count": 17, "amount": 632200, "next_due_date": "2026-10-05" },
"overdue": { "count": 2, "amount": 41000 }
},
"bank_accounts": { "count": 1 }
},
"errors": [],
"meta": { "code": 200, "reason": "OK", "message": "The request was successful" }
}
Bank Accounts
The bank accounts an organisation pays a supplier into, used by Outbound Payments. One account per supplier is the default; the first one added becomes it. Requires suppliers:manage.
POST /bank/suppliers/{supplierID}/bank-accountslists them.PUT /bank/suppliers/{supplierID}/bank-accountsadds one.POST /bank/suppliers/{supplierID}/bank-accounts/{id}updates one.POST /bank/suppliers/{supplierID}/bank-accounts/{id}/defaultmakes it the default.POST /bank/suppliers/{supplierID}/bank-accounts/{id}/deleteremoves it (refused while payments to it are queued or in progress).
Fields
- Name
account_holder_namerequired- Type
- string
- Description
Name on the account, as the bank knows it (85 characters).
- Name
countryrequired- Type
- string
- Description
ISO 3166-1 alpha-2 country of the bank.
- Name
currencyrequired- Type
- string
- Description
ISO 4217 currency of the account.
- Name
sort_code / account_number- Type
- string
- Description
Required for
GBaccounts: 6-digit sort code and 8-digit account number.
- Name
iban / swift_bic / bank_code- Type
- string
- Description
Outside
GB: an IBAN (plus BIC where the bank needs it), or a local account number and bank code.
- Name
beneficiary_type- Type
- string
- Description
Organisation(default, withcompany_name) orIndividual(withfirst_nameandlast_name).
- Name
address- Type
- object
- Description
{ street, city, region, postal_code, country }- required by the provider for international payments.
- Name
is_default- Type
- boolean
- Description
Make this the account the supplier is paid into by default.
Request
import axios from 'axios';
const response = await axios.put(
'https://api.felloh.com/bank/suppliers/54969d6f-2695-4314-97a1-63e5696b4807/bank-accounts',
{
organisation: 'X9876',
account_holder_name: 'Hotel Riga Ltd',
beneficiary_type: 'Organisation',
company_name: 'Hotel Riga Ltd',
country: 'GB',
currency: 'GBP',
sort_code: '123456',
account_number: '12345678',
is_default: true
},
{ headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer <YOUR TOKEN HERE>` } }
);
Response
{
"data": {
"id": "b2f4d6e8-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"supplier_id": "54969d6f-2695-4314-97a1-63e5696b4807",
"account_holder_name": "Hotel Riga Ltd",
"beneficiary_type": "Organisation",
"company_name": "Hotel Riga Ltd",
"first_name": null,
"last_name": null,
"country": "GB",
"currency": "GBP",
"sort_code": "123456",
"account_number": "12345678",
"iban": null,
"swift_bic": null,
"bank_code": null,
"address": { "street": null, "city": null, "region": null, "postal_code": null, "country": null },
"is_default": true,
"created_at": "2026-09-30T14:00:00.000Z",
"updated_at": "2026-09-30T14:00:00.000Z"
},
"errors": [],
"meta": { "code": 201, "reason": "OK", "message": "The request was successful" }
}
Create One
This endpoint allows you to create a new supplier.
Parameters
- Name
organisationrequired- Type
- string
- Description
The organisation ID that you want to create the supplier in.
- Name
supplier_namerequired- Type
- string
- Description
The supplier name that you want to create.
Request
import axios from 'axios';
const response = await axios.put(
'https://api.felloh.com/agent/suppliers',
{
organisation: 'X9876',
supplier_name: 'Bicknell Cruises'
},
{
headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer <YOUR TOKEN HERE>` }
}
);
Response
{
"data": {
"id": "02c31636-e311-4694-a128-d83abae12e26"
},
"errors": [],
"meta": {
"code": 200,
"reason": "OK",
"message": "The request was successful",
"request_id": "cdd40f5c-9d82-44c2-92e3-b5d2cad364f6"
}
}
