This page provides details, examples and object definition for the FlyWINDOW callback
Introduction
The FlyWINDOW callback is a feature of the FlyWINDOW that can provide you all the details about a recent booking creation.
In the callback you will find the flight information and associated rate, shipment details, as well as user information. In other words, you will have all the information needed to recreate the booking and link it to the corresponding user even if your user didn't create the shipment in your TMS first. This feature will enhance productivity and reduce human error as you will remove manual input for booking creation.
To be able to receive the FlyWINDOW callback you need to contact us to set a URL allowing http POST requests.
FlyWINDOW Callback Object Definition
Name | Type | Description |
---|---|---|
awb | string | Search Id for getting missing results |
flightUUID | string | Unique flight id used for booking |
rateID | string | FlyWINDOW link |
bookingStatus | string | Status of the booking after creation |
bookingCreatedDate | string | booking creation date |
flight | Flight | Flight associated to booking |
searchRequest | SearchRequest | Shipment details used for booking |
user | User | User that performed the booking |
Flight Object
Name | Type | Description |
---|---|---|
flightUUID | string | Unique flight id for booking |
flightUID | string | Unique flight id for booking (DEPRECATED) |
airlineCode | string | Flight airline code |
flightNumber | string | Flight number (with airline code). In case of connected flights flight numbers of every leg, e.g. "00768-00687" |
arrivalTime | string | Flight arrival time and date in the format YYYY-MM-DDTHH:MM:SS±HH:MM |
arrivalAirport | string | Flight arrival airport code |
departureTime | string | Flight departure time and date in the format YYYY-MM-DDTHH:MM:SS±HH:MM |
departureAirport | string | Flight departure airport code |
latestAcceptanceTime | string | Latest acceptance time at the first origin warehouse |
timeOfAvailability | string | The earliest time the shipment will be at the final destination |
stops | int | Number of stops |
legs | []Leg | Legs of the flight |
features | FlightFeatures | Features available for the flight |
rates | []Rate | Rates available for the flight |
available | bool | Indicates whether flight is eligible for booking ("bookable" in FlightFeatures has to be true as well) |
availableReason | string | Reasons for not available booking |
awbPrefixes | []string | AWB prefixes that can be used with the airline |
airlineConditions | string | Conditions imposed by airline |
salesConditions | string | Conditions related to the sale of the rate imposed by airline (can be related to product, market, etc.) |
contacts | []string | Email addresses for questions regarding booking to GHA or airline |
handlingInfoLink | string | Link to Terms and Conditions |
ghaName | string | Ground Handling Agent name |
hle | string | "Heure Limite d'Enregistrement" refer to latestAcceptanceTime |
ghaAddress | string | Ground Handling Agent address |
Leg Object
Name | Type | Description |
---|---|---|
flightNumber | string | Leg flight number (with airline code) |
arrivalTime | string | Leg arrival time and date in the format YYYY-MM-DDTHH:MM:SS±HH:MM |
arrivalAirport | string | Leg arrival airport code |
departureTime | string | Leg departure time and date in the format YYYY-MM-DDTHH:MM:SS±HH:MM |
departureAirport | string | Leg departure airport code |
bodyType | string | Leg aircraft body type (Narrowbody, Widebody, Surface, Freighter or Unknown) |
aircraftCode | string | Leg aircraft code (ex: B72) |
co2 | CO2Calculation | Leg CO2 emissions calculation |
detailedFlightNumber | FlightNumber | Leg flight number as carrier code and number separately |
CO2Calculation Object
Name | Type | Description |
---|---|---|
value | float64 | CO2 emissions in kg |
estimation | bool | Indicates whether the value is an estimation or a calculated exact number |
FlightNumber Object
Name | Type | Description |
---|---|---|
carrier | string | Carrier code part of a flight number |
number | string | Numbers part of a flight number |
FlightFeatures Object
Name | Type | Description |
---|---|---|
bookable | bool | Indicates whether flight is eligible for booking ("available" in the Flight has to be true as well) |
awbOptional | bool | Indicates whether booking will require an AWB number or not |
allotment | bool | Indicates whether flight booking is eligible to be placed under allotment |
Rate Object
Name | Type | Description |
---|---|---|
id | string | Rate id for booking |
name | string | Rate name provided by airline |
type | string | Rate type (live, express, Market, Contract, Promo or Express*) |
currency | string | Rate currency |
netRate | float64 | Net rate: applied to a shipment without the charges calculation (rate/kg) |
allInRate | float64 | All in rate: applied to a shipment with the charges calculation (rate/kg) |
total | float64 | Total price applied to a shipment |
minimumRate | bool | Indicates whether the rate to apply is the lowest price the carrier will charge for this shipment |
lastUpdatedDate | string | Rate last updated date |
charges | []Charge | Rate charges |
ocdc | []Charge | Rate OCDC charges |
isManualRate | bool | Indicates whether the rate has been manually uploaded into cargoAi system (not bookable with API) |
isSpotQuoteRate | bool | Indicates whether the rate is a spot rate |
latestAcceptanceTime | string | Latest acceptance time at the first origin warehouse (rate specific) |
timeOfAvailability | string | The earliest time the shipment will be at the final destination (rate specific) |
handlingCodes | []string | Handling codes for which rate is applicable |
allotmentCode | string | Allotment code |
*Dynamic rates are all in lower case whereas static rates are starting with a capital letter. express is dynamic; Express is static.
**In airfreight, OCDC (Other Charge Due Carrier) refers to additional fees or surcharges that the carrier imposes on the shipment. These charges are collected to cover costs not included in the base airfreight rate, which could arise from handling, security, fuel, or special services required for the cargo. Most of the time they are collected apart and are part of the all-in rate calculation, because they are just here as information and depends of the shipments.
Charge Object
Name | Type | Description |
---|---|---|
label | string | Charge label |
rate | float64 | Charge rate |
type | string | Charge type (SHIPMENT, GROSS_WEIGHT or CHARGEABLE_WEIGHT)* |
code | string | Charge code |
minAmount | float64 | Refers to the minimum charge a carrier will apply to a shipment** |
maxAmount | float64 | Refers to a cap or maximum charge a carrier will apply to a shipment** |
*Please, see details about charge types here
**after calculation of the charge rate times the type (Shipment or Gross weight or Chargeable weight) and if the total is lower/higher than the amount displayed
SearchRequest Object
Name | Type | Description |
---|---|---|
destinationCriteria | string | shipment final destination |
originCriteria | string | shipment first origin |
requestDate | string | shipment's search requested departure date |
offset | int | shipment's search offset |
product | string | shipment's product code |
weight | float64 | shipment's total weight |
pieces | int | shipment's total pieces |
chargeableWeight | float64 | shipment's total chargeable weight* |
dimensions | []Dimension | shipment's piece group dimensions |
specialHandlingCodes | []string | shipment's handling codes |
dangerousGoods | []string | shipment's dangerous goods (if any) |
scrs | []string | shipment's scrs code (Specific Commodity Rate code) |
globalHS | []string | shipment's global HS codes (Harmonized System code) |
europeanHS | []string | shipment's European HS codes (Harmonized System code) |
volume | float64 | shipment's total volume |
airline | string | airline code (if filtered during user's search) |
isScreened | boolean | flag to inform if booking is screened (secured) |
measurementUnit | string | shipment's measurement unit (METRIC, IMPERIAL) (unit of the shipments will depend on the value of measurement unit: - Metric: Kg, cm, cbm - Imperial: Kg, in, cbf |
filters | Filters | shipment's search filters to refine API results |
*Please, see details about chargeable weight here
Dimension Object
Name | Type | Description |
---|---|---|
pieces | int | number of piece of the piece group |
length | float64 | indicates length of piece group |
width | float64 | indicates width of piece group |
height | float64 | indicates height of piece group |
weight | float64 | indicates piece group weight (per piece or total, based on weightType field value) |
loadType | string | enum["DIMENSIONS", "TOTAL", "BUP"] |
weightType | string | indicates if piece group weight is total or per piece enum["PER_ITEM", "TOTAL"] |
stackable | boolean | indicates if shipment can be stack during loading in aircraft |
tiltable | boolean | indicates if shipment is turnable during loading in aircraft |
toploadable | boolean | indicates if shipment can be loaded on top during loading in aircraft |
uldType | boolean | indicates piece group uld type (if loadType = BUP) |
volume | float64 | volume of the piece group |
Filters Object
Name | Type | Description |
---|---|---|
airlineCode | string | filters results to a specific airline - accepts only IATA 2 letter code |
withRateOnly | boolean | filters results to return only flights with a rate |
liveRequests | boolean | filters results to return only Airlines' APIs results |
isOriginByCity | boolean | indicates if the origin of your search is a city code or an airport code (only true if isDestinationByCity is false) |
isDestinationByCity | boolean | indicates if the destination of your search is a city code or an airport code (only true if isOriginByCity is false) |
User Object
Name | Type | Description |
---|---|---|
airport | string | user's office airport code (or closest airport) |
country | string | user's country code |
iata | string | user's IATA code |
cass | string | user's Cass code |
userName | string | username of the user |
firstName | string | first name of the user |
lastName | string | last name of the user |
string | user's email address |
FlyWINDOW Callback example
{
"awb": "000-00092142",
"flightUUID": "d88ea3cc-864e-11ef-9f4f-465af58dc8d0",
"rateID": "d88ea3ab-864e-11ef-9f4f-465af58dc8d0",
"bookingStatus": "PENDING_DELIVERY",
"bookingCreatedDate": "2024-10-09T14:58:34+00:00",
"flight": {
"flightUUID": "d88ea3cc-864e-11ef-9f4f-465af58dc8d0",
"flightUID": "d88ea3cc-864e-11ef-9f4f-465af58dc8d0",
"airlineCode": "00",
"flightNumber": "00768",
"arrivalTime": "2024-10-14T04:00:01+08:00",
"arrivalAirport": "SIN",
"departureTime": "2024-10-13T16:00:01+02:00",
"departureAirport": "CDG",
"latestAcceptanceTime": "2024-10-13T11:00:01+02:00",
"timeOfAvailability": "2024-10-14T09:00:01+08:00",
"legs": [
{
"flightNumber": "00768",
"arrivalTime": "2024-10-14T04:00:01+08:00",
"arrivalAirport": "SIN",
"departureTime": "2024-10-13T16:00:01+02:00",
"departureAirport": "CDG",
"bodyType": "Widebody",
"aircraftCode": "777",
"parentFlightUID": "d88ea3cc-864e-11ef-9f4f-465af58dc8d0",
"parentFlightUUID": "d88ea3cc-864e-11ef-9f4f-465af58dc8d0",
"co2": {
"value": 537.4540892175812,
"estimation": false
}
}
],
"sortingFlightKey": "00007682024-10-13",
"features": {
"bookable": true,
"awbOptional": true
},
"rates": [
{
"id": "d88ea3ab-864e-11ef-9f4f-465af58dc8d0",
"name": "Spot",
"type": "live",
"currency": "EUR",
"netRate": 6.08,
"allInRate": 6.23,
"total": 1246,
"minimumRate": false,
"lastUpdatedDate": "",
"charges": [
{
"label": "Fuel surcharge",
"rate": 0.07,
"type": "CHARGEABLE_WEIGHT",
"code": "fsc",
"minAmount": 0,
"maxAmount": 0
},
{
"label": "Security surcharge",
"rate": 0.08,
"type": "GROSS_WEIGHT",
"code": "ssc",
"minAmount": 0,
"maxAmount": 0
}
],
"ocdc": null,
"isSpotQuoteRate": true,
"handlingCodes": [
"GCR"
],
"coloaderOfficeId": 0
}
],
"available": true,
"source": "AI-MOCK",
"awbPrefixes": [
"000"
],
"airlineConditions": "\n\t<b>1- Offer subject to capacity when booking.</b>\n\t2- Quotation reference to be imperatively mentioned when booking.\n\t3- This quotation is valid for the packaging indicated only, in the event of modification, please make a new request to the sales department.\n\t4- Taxes (IRC – MYC – etc…) subject to change without notice.\n\t5- In the event of cancellation or no show, we reserve the right to pass on all or part of the costs\n\t- Cancellation 72 hours before the departure of the truck and/or the flight (working hours): invoicing 50% of the amount of the freight\n\t- Cancellation 48 hours before the departure of the truck and/or the flight (working hours): invoicing of 75% of the amount of the freight\n\t- Cancellation 24 hours before the departure of the truck and/or the flight (working hours): invoicing of 100% of the amount of the freight\n\t- In the case of a no show (no presentation of the freight): invoicing of 100% of the amount of the freight\n\t- In the case of a low show (discount less than 50% of the reserved taxable weight): invoicing of 75% of the reserved taxable weight\n",
"contacts": [
"tests@cargoai.co"
],
"handlingInfoLink": "https://www.cargoai.co/terms",
"ghaName": "Mocked GHA",
"hle": "19:00",
"ghaAddress": "Airport road, Cargo Terminal, Mocked Cargo building"
},
"searchRequest": {
"clientEnv": "",
"clientID": "damien+tests_fw_cgogate@cargoaitest.co",
"destinationCriteria": "SIN",
"originCriteria": "CDG",
"requestDate": "2024-10-10",
"offset": 5,
"product": "GCR",
"weight": 200,
"pieces": 50,
"chargeableWeight": 200,
"dimensions": [
{
"length": 100,
"width": 100,
"height": 100,
"pieces": 50,
"weight": 200,
"volume": 1,
"stackable": true,
"tiltable": false,
"toploadable": false,
"weightType": "TOTAL",
"loadType": "TOTAL"
}
],
"specialHandlingCodes": [
"GCR"
],
"dangerousGoods": null,
"scrs": null,
"globalHS": null,
"europeanHS": null,
"volume": 1,
"forwarder": 0,
"providers": null,
"airline": "00",
"isScreened": false,
"officeId": "",
"measurementUnit": "METRIC",
"commodities": null,
"filters": {
"airlineCode": "00",
"withRateOnly": false,
"liveRequests": true,
"scheduleOnly": null
},
"isAllotment": false,
"isAdvancedBooking": false,
"isMultiCallBlocked": false,
"isInterlineEnabled": false
},
"user": {
"airport": "CDG",
"country": "FR",
"iata": "0000000",
"cass": "0000",
"userName": "Test FW CgoGate",
"firstName": "Test FW",
"lastName": "CgoGate",
"email": "email@tests.co",
"isColoader": false,
}
}