Identifier of the crew member to assign.
FL3XX API (2.4.0)
Airports
Access comprehensive airport information.
Business Value
- Filter airports by various criteria, including ICAO, IATA, FAA codes, and local identifiers
- Support high‑performance applications with optimized data retrieval
Use Cases
- Filter airports by specific codes for targeted data retrieval
- Integrate airport data into flight‑planning and scheduling systems
- Build airport‑selection interfaces with efficient pagination
Airport Fuel Prices
Manage and optimize airport‑fuel pricing data for your organization. These endpoints enable operators to efficiently update, remove, and bulk‑manage fuel prices, supporting streamlined fuel‑order workflows and provider management.
Business Value
- Ensure accurate, up‑to‑date fuel pricing for all airport operations.
- Reduce manual effort and errors by enabling bulk updates and deletions.
- Support cost control and negotiation with providers through transparent pricing data.
- Enhance operational planning and financial forecasting with reliable fuel‑cost data.
Use Cases
Update fuel prices for a specific airport to reflect new agreements or market changes.
Remove outdated or incorrect fuel prices for compliance and data integrity.
Perform bulk deletions to quickly adapt to network‑wide pricing changes.
Integrate with internal systems to automate fuel‑price management and reporting.
Note:
Data managed by the Airport Fuel Prices endpoints is strictly bound to the operator associated with the authentication token. All operations — creating, updating, or deleting airport fuel prices — apply only to the operator for which the provided token is valid.
Webhooks
Manage webhook subscriptions for near‑real‑time event notifications. These endpoints enable partners to create, manage, and monitor webhook subscriptions for receiving flight‑related events and updates.
Business Value
- Receive near‑real‑time notifications for flight events and updates.
- Automate integration workflows with external systems.
- Monitor flight operations and passenger changes in near‑real‑time.
- Reduce polling overhead by using event-driven architecture.
Use Cases
- Subscribe to flight updates to sync data with external booking systems.
- Monitor passenger‑count changes for catering and ground‑service coordination.
- Track aircraft changes for maintenance and operational planning.
- Receive notifications for flight cancellations and time updates.
Group Event Types (not subscribable; appear in webhook deliveries when multiple events occur in a short period):
FLIGHT_UPDATE: Group event that combines multiple flight update events when they occur in a short period of time. Includes:FLIGHT_CREATE,FLIGHT_CANCEL,FLIGHT_TIME_UPDATE,FLIGHT_AIRCRAFT_UPDATE,FLIGHT_AIRPORT_UPDATE,FLIGHT_POST_FLIGHT_STATUS,FLIGHT_MOVEMENT_UPDATE,FLIGHT_PERMIT_UPDATE.FLIGHT_PASSENGER_UPDATE: Group event that combines passenger-related events when they occur in a short period of time. Includes:FLIGHT_PAX_COUNT_UPDATE,FLIGHT_PAX_LIST_UPDATE.FLIGHT_PERMIT_UPDATE: Group event that combines permit-related events when they occur in a short period of time. Includes:FLIGHT_PERMIT_ASSIGNMENT,FLIGHT_PERMIT_UNASSIGNMENT.FLIGHT_SLOT_PPR_UPDATE: Group event that combines permit-related events when they occur in a short period of time. Includes:FLIGHT_SLOT_PPR_ASSIGNMENT,FLIGHT_SLOT_PPR_UNASSIGNMENT.
For more information on setting up and managing webhooks, see the Event Notifications (Webhook) Guide.
Important:
Webhook endpoints must respond within 1 second with a
200status code. To avoid timeouts, we strongly recommend handling webhook processing on a different task/thread and immediately returning the response to FL3XX.
Crew Qualifications
Manage crew qualifications and certifications. These endpoints enable partners to assign, update, and manage crew‑member qualifications, including licenses, certifications, and associated documents.
Business Value
- Maintain accurate crew qualification records for compliance and safety.
- Streamline qualification assignment and management processes.
- Support document management for qualification certificates and licenses.
- Ensure crew members meet operational requirements and regulations.
Use Cases
- Assign new qualifications to crew members with license details and expiration dates.
- Update existing qualification information, including license numbers and issuing authorities.
- Upload and manage qualification documents, such as certificates and licenses.
- Retrieve qualification information for crew members and compliance reporting.
- Delete obsolete qualifications and associated documents.
For more information on managing crew qualifications, see the Crew Qualification Management Guide.
Note:
All crew‑qualification operations are bound to the operator context associated with the authentication token. Partners can manage qualifications only for crew members within their own organization.
Roster Types
Retrieve roster (duty) types that define which fields and behaviors are available when creating or updating a roster assignment. These endpoints provide access to the operator's roster configuration, enabling dynamic UI and validation.
Business Value
- Ensure accurate roster data by identifying relevant fields for each duty type.
- Align integration behavior with the operator’s specific roster configuration.
- Support dynamic roster interfaces that only display fields enabled for the selected type.
- Streamline the roster management process by reducing validation errors.
Use Cases
- Retrieve the full list of available roster types and their hierarchical structure.
- Inspect a specific roster type to determine which features (e.g., aircraft, airports, FTL) are enabled.
- Build dynamic forms that adapt based on the chosen roster duty type.
Roster Assignment
Manage crew roster assignments, including creating, retrieving, updating, and deleting duties. These endpoints enable partners to synchronize crew schedules and manage operational duties with the same semantics as the FL3XX web interface.
Business Value
- Automate crew schedule management and updates in real‑time.
- Keep crew schedules perfectly synchronized with external systems.
- Support crew self‑service and scheduler workflows via API.
- Reduce manual data entry and errors in crew roster management.
Use Cases
- Create a new roster assignment (e.g., Off, Flight, Standby) for a crew member.
- Retrieve detailed information about a specific roster duty, including associated aircraft and airports.
- Update existing roster assignments to reflect changes in schedules or duty types.
- Search and filter roster assignments by crew member, type, or date range.
Request
Creates a new roster assignment for a crew member. This is equivalent to adding a duty or day in the FL3XX roster interface.
Features:
- Create various duty types (e.g., Off, Flight, Standby, Training)
- Supports detailed duty information including aircraft, airports, and notes
- Dynamic validation based on the selected roster type
Example Use Case: An automated scheduling system creates a "Standby" duty for a crew member, providing the start and end times, and ensuring all required references are correctly resolved.
Important: The fields required for a successful creation depend on the selected roster type. You should first check the roster type's configuration using the Roster Types endpoints to determine which features (e.g., aircraft, airports, FTL) are enabled.
Aircraft assignment for create/update. Only send when roster type has isAircraftEnabled. Same as response but without read-only aircraftVariant.
Logbook/AFT data. Only send when roster type enables logbook (e.g. isLandingsVisible, isOperationalConditionVisible, isApproachesVisible, isPilotFlightTypeVisible). For SIM duties, isFullMotionSimulator is used.
FTL duty period flags and manual times. Only send when roster type has isDutyTimeVisible. Split-duty and period start/end flags only apply when isCountedAsDutyTime is true.
- Test Serverhttps://test.fl3xx.com/api/v2/rosters
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://test.fl3xx.com/api/v2/rosters \
-H 'Content-Type: application/json' \
-H 'X-Api-Client-Id: YOUR_API_KEY_HERE' \
-H 'X-Auth-Token: YOUR_API_KEY_HERE' \
-d '{
"crewId": "crew-12345",
"rosterTypeId": "112233",
"startDateTime": "2025-03-01T09:00:00+01:00",
"endDateTime": "2025-03-01T17:00:00+01:00",
"dutySubtype": "ALL_DAY",
"notes": "Day off as requested"
}'Successfully created roster assignment
Time-of-day subdivision; only when type has isSubtypeVisible.
Actual duty start when different from scheduled; only when type has isActualTimeVisible.
Actual duty end when different from scheduled; only when type has isActualTimeVisible.
Aircraft assignment (response). Only present when roster type has isAircraftEnabled.
Logbook/AFT data. Only send when roster type enables logbook (e.g. isLandingsVisible, isOperationalConditionVisible, isApproachesVisible, isPilotFlightTypeVisible). For SIM duties, isFullMotionSimulator is used.
FTL duty period flags and manual times. Only send when roster type has isDutyTimeVisible. Split-duty and period start/end flags only apply when isCountedAsDutyTime is true.
Crew self-service request state for a roster assignment.
{ "id": "string", "crewId": "string", "rosterTypeId": "string", "dutySubtype": "EARLY", "crewRole": "string", "startDateTime": "2019-08-24T14:15:22Z", "endDateTime": "2019-08-24T14:15:22Z", "actualStartDateTime": "2019-08-24T14:15:22Z", "actualEndDateTime": "2019-08-24T14:15:22Z", "locationAirportId": "string", "departureAirportId": "string", "arrivalAirportId": "string", "serviceAirportId": "string", "flightNumber": "string", "flightId": "string", "quoteId": "string", "takeoffDateTime": "2019-08-24T14:15:22Z", "landingDateTime": "2019-08-24T14:15:22Z", "aircraft": { "aircraftId": "string", "crewPositionId": "string", "aircraftTypeId": "string", "typeRating": "string", "aircraftVariant": "string", "externalAircraftRegistration": "string", "engineConfiguration": "SINGLE_ENGINE" }, "logbook": { "logbookFlightType": "SINGLE_PILOT", "operationalCondition": "IFR", "operationType": "COMMERCIAL", "aocId": "string", "dayTakeoffs": 0, "nightTakeoffs": 0, "dayLandings": 0, "nightLandings": 0, "precisionApproaches": 0, "approachCategory": "string", "nonPrecisionApproaches": 0, "isVisualApproach": true, "isInstrumentHold": true, "isFullMotionSimulator": true }, "ftl": { "isCountedAsDutyTime": true, "isDutyPeriodStart": true, "isDutyPeriodEnd": true, "isSplitDutyBreakStart": true, "isSplitDutyBreakEnd": true, "dutyTimeMinutes": 0, "fdpTimeMinutes": 0, "blockTimeMinutes": 0 }, "notes": "string", "travelDocumentIds": [ "string" ], "bookingPairing": "string", "poNumber": "string", "poCreatedAt": "2019-08-24T14:15:22Z", "requestStatus": "PENDING", "requestedAt": "2019-08-24T14:15:22Z", "approvedAt": "2019-08-24T14:15:22Z", "approvedByUserId": "string" }
Request
Retrieves the full details of a specific roster assignment.
Features:
- Returns complete assignment data including aircraft, airports, and logbook details
- Provides timing and status information
- Dynamic response structure based on the assignment's roster type
Example Use Case: A crew member's mobile app retrieves the full details of a "Flight" duty to display the assigned aircraft and the departure/arrival airports to the user.
Note: Sections such as aircraft, logbook, and ftl will be populated only if they are enabled for that specific duty type; otherwise, they will be null.
- Test Serverhttps://test.fl3xx.com/api/v2/rosters/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
https://test.fl3xx.com/api/v2/rosters/98765 \
-H 'X-Api-Client-Id: YOUR_API_KEY_HERE' \
-H 'X-Auth-Token: YOUR_API_KEY_HERE'Successfully retrieved roster assignment
Time-of-day subdivision; only when type has isSubtypeVisible.
Actual duty start when different from scheduled; only when type has isActualTimeVisible.
Actual duty end when different from scheduled; only when type has isActualTimeVisible.
Aircraft assignment (response). Only present when roster type has isAircraftEnabled.
Logbook/AFT data. Only send when roster type enables logbook (e.g. isLandingsVisible, isOperationalConditionVisible, isApproachesVisible, isPilotFlightTypeVisible). For SIM duties, isFullMotionSimulator is used.
FTL duty period flags and manual times. Only send when roster type has isDutyTimeVisible. Split-duty and period start/end flags only apply when isCountedAsDutyTime is true.
Crew self-service request state for a roster assignment.
{ "id": "string", "crewId": "string", "rosterTypeId": "string", "dutySubtype": "EARLY", "crewRole": "string", "startDateTime": "2019-08-24T14:15:22Z", "endDateTime": "2019-08-24T14:15:22Z", "actualStartDateTime": "2019-08-24T14:15:22Z", "actualEndDateTime": "2019-08-24T14:15:22Z", "locationAirportId": "string", "departureAirportId": "string", "arrivalAirportId": "string", "serviceAirportId": "string", "flightNumber": "string", "flightId": "string", "quoteId": "string", "takeoffDateTime": "2019-08-24T14:15:22Z", "landingDateTime": "2019-08-24T14:15:22Z", "aircraft": { "aircraftId": "string", "crewPositionId": "string", "aircraftTypeId": "string", "typeRating": "string", "aircraftVariant": "string", "externalAircraftRegistration": "string", "engineConfiguration": "SINGLE_ENGINE" }, "logbook": { "logbookFlightType": "SINGLE_PILOT", "operationalCondition": "IFR", "operationType": "COMMERCIAL", "aocId": "string", "dayTakeoffs": 0, "nightTakeoffs": 0, "dayLandings": 0, "nightLandings": 0, "precisionApproaches": 0, "approachCategory": "string", "nonPrecisionApproaches": 0, "isVisualApproach": true, "isInstrumentHold": true, "isFullMotionSimulator": true }, "ftl": { "isCountedAsDutyTime": true, "isDutyPeriodStart": true, "isDutyPeriodEnd": true, "isSplitDutyBreakStart": true, "isSplitDutyBreakEnd": true, "dutyTimeMinutes": 0, "fdpTimeMinutes": 0, "blockTimeMinutes": 0 }, "notes": "string", "travelDocumentIds": [ "string" ], "bookingPairing": "string", "poNumber": "string", "poCreatedAt": "2019-08-24T14:15:22Z", "requestStatus": "PENDING", "requestedAt": "2019-08-24T14:15:22Z", "approvedAt": "2019-08-24T14:15:22Z", "approvedByUserId": "string" }
Request
Updates an existing roster assignment. All fields in the request body are optional; only the provided fields will be modified.
Features:
- Update timing, status, and associated data for a roster duty
- Support for changing the roster type of an existing assignment
- Partial updates allow for efficient synchronization of roster data
Example Use Case: A scheduler updates the end time of an existing duty or changes the assigned aircraft after an operational adjustment.
Note: As with the create operation, the relevance of fields depends on the roster type of the assignment. If you change the rosterTypeId, ensure that any other updated fields are supported by the new type.
Aircraft assignment for create/update. Only send when roster type has isAircraftEnabled. Same as response but without read-only aircraftVariant.
Logbook/AFT data. Only send when roster type enables logbook (e.g. isLandingsVisible, isOperationalConditionVisible, isApproachesVisible, isPilotFlightTypeVisible). For SIM duties, isFullMotionSimulator is used.
FTL duty period flags and manual times. Only send when roster type has isDutyTimeVisible. Split-duty and period start/end flags only apply when isCountedAsDutyTime is true.
Ids of travel documents to attach (existing binary references).
- Test Serverhttps://test.fl3xx.com/api/v2/rosters/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PUT \
https://test.fl3xx.com/api/v2/rosters/98765 \
-H 'Content-Type: application/json' \
-H 'X-Api-Client-Id: YOUR_API_KEY_HERE' \
-H 'X-Auth-Token: YOUR_API_KEY_HERE' \
-d '{
"dutySubtype": "EARLY",
"crewRole": "string",
"startDateTime": "2019-08-24T14:15:22Z",
"endDateTime": "2019-08-24T14:15:22Z",
"actualStartDateTime": "2019-08-24T14:15:22Z",
"actualEndDateTime": "2019-08-24T14:15:22Z",
"locationAirportId": "string",
"departureAirportId": "string",
"arrivalAirportId": "string",
"serviceAirportId": "string",
"flightNumber": "string",
"flightId": "string",
"quoteId": "string",
"takeoffDateTime": "2019-08-24T14:15:22Z",
"landingDateTime": "2019-08-24T14:15:22Z",
"aircraft": {
"aircraftId": "string",
"crewPositionId": "string",
"aircraftTypeId": "string",
"typeRating": "string",
"externalAircraftRegistration": "string",
"engineConfiguration": "SINGLE_ENGINE"
},
"logbook": {
"logbookFlightType": "SINGLE_PILOT",
"operationalCondition": "IFR",
"operationType": "COMMERCIAL",
"aocId": "string",
"dayTakeoffs": 0,
"nightTakeoffs": 0,
"dayLandings": 0,
"nightLandings": 0,
"precisionApproaches": 0,
"approachCategory": "string",
"nonPrecisionApproaches": 0,
"isVisualApproach": true,
"isInstrumentHold": true,
"isFullMotionSimulator": true
},
"ftl": {
"isCountedAsDutyTime": true,
"isDutyPeriodStart": true,
"isDutyPeriodEnd": true,
"isSplitDutyBreakStart": true,
"isSplitDutyBreakEnd": true,
"dutyTimeMinutes": 0,
"fdpTimeMinutes": 0,
"blockTimeMinutes": 0
},
"notes": "string",
"travelDocumentIds": [
0
],
"bookingPairing": "string"
}'Successfully updated roster assignment
Time-of-day subdivision; only when type has isSubtypeVisible.
Actual duty start when different from scheduled; only when type has isActualTimeVisible.
Actual duty end when different from scheduled; only when type has isActualTimeVisible.
Aircraft assignment (response). Only present when roster type has isAircraftEnabled.
Logbook/AFT data. Only send when roster type enables logbook (e.g. isLandingsVisible, isOperationalConditionVisible, isApproachesVisible, isPilotFlightTypeVisible). For SIM duties, isFullMotionSimulator is used.
FTL duty period flags and manual times. Only send when roster type has isDutyTimeVisible. Split-duty and period start/end flags only apply when isCountedAsDutyTime is true.
Crew self-service request state for a roster assignment.
{ "id": "string", "crewId": "string", "rosterTypeId": "string", "dutySubtype": "EARLY", "crewRole": "string", "startDateTime": "2019-08-24T14:15:22Z", "endDateTime": "2019-08-24T14:15:22Z", "actualStartDateTime": "2019-08-24T14:15:22Z", "actualEndDateTime": "2019-08-24T14:15:22Z", "locationAirportId": "string", "departureAirportId": "string", "arrivalAirportId": "string", "serviceAirportId": "string", "flightNumber": "string", "flightId": "string", "quoteId": "string", "takeoffDateTime": "2019-08-24T14:15:22Z", "landingDateTime": "2019-08-24T14:15:22Z", "aircraft": { "aircraftId": "string", "crewPositionId": "string", "aircraftTypeId": "string", "typeRating": "string", "aircraftVariant": "string", "externalAircraftRegistration": "string", "engineConfiguration": "SINGLE_ENGINE" }, "logbook": { "logbookFlightType": "SINGLE_PILOT", "operationalCondition": "IFR", "operationType": "COMMERCIAL", "aocId": "string", "dayTakeoffs": 0, "nightTakeoffs": 0, "dayLandings": 0, "nightLandings": 0, "precisionApproaches": 0, "approachCategory": "string", "nonPrecisionApproaches": 0, "isVisualApproach": true, "isInstrumentHold": true, "isFullMotionSimulator": true }, "ftl": { "isCountedAsDutyTime": true, "isDutyPeriodStart": true, "isDutyPeriodEnd": true, "isSplitDutyBreakStart": true, "isSplitDutyBreakEnd": true, "dutyTimeMinutes": 0, "fdpTimeMinutes": 0, "blockTimeMinutes": 0 }, "notes": "string", "travelDocumentIds": [ "string" ], "bookingPairing": "string", "poNumber": "string", "poCreatedAt": "2019-08-24T14:15:22Z", "requestStatus": "PENDING", "requestedAt": "2019-08-24T14:15:22Z", "approvedAt": "2019-08-24T14:15:22Z", "approvedByUserId": "string" }
Flights
Access comprehensive flight information and data. These endpoints enable partners to retrieve flight details with advanced filtering and pagination.
Business Value
- Retrieve flight data with flexible date‑range filtering.
- Support high‑performance applications with optimized data retrieval and pagination.
- Access essential flight information, including schedules, aircraft assignments, and passenger counts.
Use Cases
- Retrieve flights within a specific date range for operational planning.
- Integrate flight data into external systems for scheduling and logistics.
- Monitor flight schedules and aircraft assignments in near‑real‑time.
- Build flight‑tracking and reporting dashboards with paginated results.
Aircraft
Access comprehensive aircraft and fleet information. These endpoints enable partners to retrieve aircraft data, including status, specifications, and operational details.
Business Value
- Retrieve complete fleet information, including active and inactive aircraft.
- Support fleet management and operational planning with detailed aircraft data.
- Access aircraft specifications, including capacity, category, and home‑base information.
Use Cases
- Retrieve fleet data for operational planning and scheduling.
- Integrate aircraft information into external systems for maintenance and logistics.
- Monitor aircraft status and availability across the fleet.
- Build fleet‑management dashboards with paginated results.
Flight Permits
Retrieve flight permit information for takeoff, landing, and overflight permissions. These endpoints enable operators to access flight permit data within the context of the operator data.
Business Value
- Retrieve accurate flight permit records for compliance and regulatory requirements.
- Access permit information for operational planning and verification.
- Monitor permit statuses and details for flights.
Use Cases
- Retrieve permit information for flights to verify compliance status.
- Review permit details including status, dates, and associated documents.
- Access permit information for operational planning and audits.
Flight Slots & PPRs
Retrieve flight slot and PPR (Prior Permission Required) information. These endpoints enable operators to access flight slot and PPR data within the context of the operator data.
Business Value
- Retrieve accurate flight slot and PPR records for compliance and operational requirements.
- Access slot and PPR information for operational planning and verification.
- Monitor slot and PPR statuses and details for flights.
Use Cases
- Retrieve slot and PPR information for flights to verify compliance status.
- Review slot and PPR details including status, approval dates, and associated documents.
- Access slot and PPR information for operational planning and audits.
Flight Permits (Provider)
Manage flight permits for takeoff, landing, and overflight permissions. These endpoints enable Trip Support Providers to create, update, retrieve, and delete flight permits, as well as manage associated documents.
Business Value
- Maintain accurate flight permit records for compliance and regulatory requirements.
- Streamline permit management processes with automated workflows.
- Support document management for permit certificates and approvals.
- Ensure flights have the necessary permissions before operations.
Use Cases
- Create new flight permits for upcoming flights with permit details and expiration dates.
- Update existing permit information, including permit numbers, status, and dates.
- Retrieve permit information for flights to verify compliance status.
- Upload and manage permit documents, such as certificates and approvals.
- Delete obsolete permits that are no longer valid or relevant.
Note:
All flight‑permit operations are bound to the operator context associated with the authentication token. Trip Support Providers can manage permits only for flights within their own organization.
Flight Slots & PPRs (Provider)
Manage flight slots and PPRs (Prior Permission Required). These endpoints enable Trip Support Providers to update, retrieve, and manage flight slots and PPRs, as well as manage associated documents.
Business Value
- Maintain accurate flight slot and PPR records for compliance and operational requirements.
- Streamline slot and PPR management processes with automated workflows.
- Support document management for slot and PPR certificates and approvals.
- Ensure flights have the necessary slots and PPRs before operations.
Use Cases
- Update existing slot and PPR information, including permit numbers, status, and approval dates.
- Retrieve slot and PPR information for flights to verify compliance status.
- Upload and manage slot and PPR documents, such as certificates and approvals.
- Delete obsolete slot and PPR documents that are no longer valid or relevant.
Note:
All flight slot and PPR operations are bound to the operator context associated with the authentication token. Trip Support Providers can manage slots and PPRs only for flights within their own organization.
FBO (Provider)
Manage FBO (Fixed Base Operator) services. These endpoints enable Trip Support Providers to update and retrieve FBO service entries, as well as manage associated documents.
Note:
FBO services are read-only for properties - only status and remarks can be updated. Creation and deletion are not allowed.
Transport (Provider)
Manage transport services. These endpoints enable Trip Support Providers to create, update, retrieve, and delete transport service entries, as well as manage associated documents.
Note:
Transport services can be created if the partner is assigned to the flight. Deletion is only allowed if the transport service was created by the partner.
Hotel (Provider)
Manage hotel services. These endpoints enable Trip Support Providers to create, update, retrieve, and delete hotel service entries, as well as manage associated documents.
Note:
Hotel services can be created if the partner is assigned to the flight. Deletion is only allowed if the hotel service was created by the partner.
Catering (Provider)
Manage catering services. These endpoints enable Trip Support Providers to create, update, retrieve, and delete catering service entries, as well as manage associated documents.
Note:
Catering services can be created if the partner is assigned to the flight. Deletion is only allowed if the catering service was created by the partner.