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 FormationPlace or Track Order with Formation
Medium325px40pxDefault sizePlace or Track Order with FormationPlace or Track Order with Formation
Small244px30pxSpace-constrained areasPlace or Track Order with FormationPlace 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.).