Getting Started
Partners API
How to become a partner and use the Formation Catering API.
More information can be found in the Partners API documentation.
Formation Widget
How to integrate the Formation Catering widget with your website.
Integration Instructions
The Formation Widget can be integrated via URL parameters. The base URL structure is:
https://staging-galley.formationcatering.com/client
?token={token}
&client={client}
&email={email}
&phone={phone}
&airport={airport}
&location={location}
&tailNumber={tailNumber}
&tripNumbers={tripNumbers}
&deliveryDate={deliveryDate}
&wheelsUpDate={wheelsUpDate}
&externalOrderId={externalOrderId}
&externalClientId={externalClientId}
Replace the base URL with the appropriate environment URL for your use case.
Parameters Reference
Parameter | Required | Format | Length | Description |
---|---|---|---|---|
token | Yes | string | - | Widget integration token provided by Formation |
client | No | string | 1-255 chars | Client's full name |
email | No | string | Valid email | Client's email address |
phone | No | string | See below | Client's phone number |
airport | No | string | See below | Airport code(s) in ICAO/IATA/FAA format |
location | No | string | 1-255 chars | Delivery location or FBO name |
tailNumber | No | string | Valid tail number | Aircraft tail number (e.g., N123AB) |
tripNumbers | No | string | See below | Comma-separated trip numbers (max 3) |
deliveryDate | No | ISO 8601 | - | Delivery date-time (must be future date) |
wheelsUpDate | No | ISO 8601 | - | Departure date-time (must be after delivery) |
externalOrderId | No | string | max 64 chars | Partner's order identifier |
externalClientId | No | string | max 64 chars | Partner's client identifier |
Airport Codes Format
The airport
parameter accepts any combination of airport codes separated by forward slashes (/
):
Code Type | Format | Example |
---|---|---|
ICAO | 4 characters | KJFK |
IATA | 3 characters | JFK |
FAA | 3-5 chars | JFK |
Valid examples:
- Single code:
KJFK
orJFK
. - Combined codes:
KJFK/JFK
orKJFK/JFK/JFK
.
Trip Numbers Format
- Comma-separated values (e.g.,
ABC,DEF,GHI
). - Maximum 3 trip numbers (additional values will be ignored).
- Each trip number must be 1-30 characters long.
Date-Time Format
Both deliveryDate
and wheelsUpDate
must be in ISO 8601 format with or without timezone:
YYYY-MM-DDThh:mm:ssZ
YYYY-MM-DDThh:mm:ss±hh:mm
YYYY-MM-DDThh:mm:ss
milliseconds are optional and be ignored.
Example: 2025-03-25T23:00:00Z
, 2025-03-25T23:00:00-07:00
, 2025-03-25T23:00:00
Phone Number Format
The phone
parameter must be a valid phone number in E.164 format.
Phone number validation is performed using the libphonenumber-js library, which is a simpler and smaller rewrite of Google libphonenumber library.
The library validates phone numbers according to international standards and ensures:
- Correct country code format
- Valid number length for each country
- Proper formatting according to E.164 standard (e.g., +14155552671)
The externalOrderId
parameter allows partners to link orders between systems:
- It's used to associate a partner's order with the Formation Catering order
- When an order is placed, this ID is stored in the Formation system
- The same ID can be used to look up orders when following integration links
Environments
✈️ Experiment risk-free in our staging environment.
- 🚀 Production
- 🧪 Sandbox
Base URL: https://galley.formationcatering.com/client
Base URL: https://staging-galley.formationcatering.com/client
Button Variants
The widget can be integrated using two main button types:
1. Track Order Button
This button opens the Track Order page and requires only the token parameter:
<a
href="https://staging-galley.formationcatering.com/client?token={token}"
target="_blank"
style="width:325px;height:40px;overflow:hidden;display:inline-flex"
>
<img height="40" alt="Track Order with Formation" src="https://media.formationcatering.com/widget/button-rounded.svg" />
</a>
2. Place Order Button
This button opens the Place Order page with pre-filled information:
<a
href="https://staging-galley.formationcatering.com/client?token={token}&client={client}&email={email}&airport={airport}&tailNumber={tailNumber}&tripNumbers={tripNumbers}"
target="_blank"
style="width:325px;height:40px;overflow:hidden;display:inline-flex"
>
<img height="40" alt="Place Order with Formation" src="https://media.formationcatering.com/widget/button-rounded.svg" />
</a>
Button Sizes
The widget button is available several sizes to fit different layouts:
Size | Width | Height | Usage | Example |
---|---|---|---|---|
Large | 406px | 50px | Primary CTAs | |
Medium | 325px | 40px | Default size | |
Small | 244px | 30px | Space-constrained areas |
To implement a specific size, adjust both the container width and image height:
<!-- Large button -->
<a style="width:406px;height:50px;...">
<img height="50" ... />
</a>
<!-- Medium button -->
<a style="width:325px;height:40px;...">
<img height="40" ... />
</a>
<!-- Small button -->
<a style="width:244px;height:30px;...">
<img height="30" ... />
</a>
You can create custom sizes by adjusting the container width and image height, but maintain the aspect ratio to prevent distortion.
Implementation Examples
Always include a valid token in the URL.
Basic Example
Button with essential parameters:
<a
href="https://staging-galley.formationcatering.com/client?token={token}&airport=JFK&client=John%20Doe"
target="_blank"
style="width:325px;height:40px;overflow:hidden;display:inline-flex"
>
<img height="40" alt="Place Order with Formation" src="https://media.formationcatering.com/widget/button-rounded.svg" />
</a>
Full Example
Button with all recommended parameters:
<a
href="https://staging-galley.formationcatering.com/client?token={token}&airport=JFK&client=John%20Doe&email=john.doe@example.com&tripNumbers=TRIP1,TRIP2&tailNumber=N123JK&deliveryDate=2025-03-25T23:00:00Z"
target="_blank"
style="width:325px;height:40px;overflow:hidden;display:inline-flex"
>
<img height="40" alt="Place Order with Formation" src="https://media.formationcatering.com/widget/button-rounded.svg" />
</a>
Remember to URL-encode parameter values that contain special characters (spaces, @, etc.).