Skip to main content

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}
important

Replace the base URL with the appropriate environment URL for your use case.

Parameters Reference

ParameterRequiredFormatLengthDescription
tokenYesstring-Widget integration token provided by Formation
clientNostring1-255 charsClient's full name
emailNostringValid emailClient's email address
phoneNostringSee belowClient's phone number
airportNostringSee belowAirport code(s) in ICAO/IATA/FAA format
locationNostring1-255 charsDelivery location or FBO name
tailNumberNostringValid tail numberAircraft tail number (e.g., N123AB)
tripNumbersNostringSee belowComma-separated trip numbers (max 3)
deliveryDateNoISO 8601-Delivery date-time (must be future date)
wheelsUpDateNoISO 8601-Departure date-time (must be after delivery)
externalOrderIdNostringmax 64 charsPartner's order identifier
externalClientIdNostringmax 64 charsPartner's client identifier

Airport Codes Format

The airport parameter accepts any combination of airport codes separated by forward slashes (/):

Code TypeFormatExample
ICAO4 charactersKJFK
IATA3 charactersJFK
FAA3-5 charsJFK

Valid examples:

  • Single code: KJFK or JFK.
  • Combined codes: KJFK/JFK or KJFK/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)
Order Association

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.

Base URL: https://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:

SizeWidthHeightUsageExample
Large406px50pxPrimary CTAsPlace or Track Order with Formation
Medium325px40pxDefault sizePlace or Track Order with Formation
Small244px30pxSpace-constrained areasPlace or Track Order with Formation

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>
Custom Sizing

You can create custom sizes by adjusting the container width and image height, but maintain the aspect ratio to prevent distortion.

Implementation Examples

Important

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>
URL Encoding

Remember to URL-encode parameter values that contain special characters (spaces, @, etc.).