Stop Amend
The customers can get Stop Amend callback whenever there is a change or update to a stop such as when the stop is created, updated, or deleted. Stop Amend callbacks aim to notify customers of any changes in the stop level fields.
StopUnlocode field will NOT be populated for Pickup and Delivery stoptypes
Avoid using StopSequence field as an identifier for a stop, as it may change with carrier data updates. Instead, utilize StopType values for more consistent mapping. Refer to Recommended Callback Mapping for Ocean | Stop Addition Logic on Ocean Loads based on Carrier Data for additional context
Stop Created Callback
For Stop Updation/Deletion the ACTION would be updated as either UPDATE or DELETE, rest of the callback structure will remain same.
{
"Action": "CREATE",
"EarliestAppointmentTime": null,
"dataSource": "fourkites-x",
"EarliestWantTime": null,
"EncryptedAccessToken": "VjN8dGVzdC1zaGlwcGVyLWp0LW9uZXw5MzA5YWRkMC0yZGI2LTQ2MTAtOWNkNC01N2JhZTk2MGMyYTB8dGVzdC1zaGlwcGVyLWp0LW9uZQ",
"FourKitesLoadId": 345502061,
"LatestAppointmentTime": null,
"LatestWantTime": null,
"LoadNumber": "PG(11)",
"MessageType": "STOP_AMEND",
"ProNumber": null,
"ReferenceNumbers": [
"1417272227",
"MM-5977-Test-BN",
"MNLC45015900"
],
"Shipper": "test-shipper-jt-one",
"StopName": "INMAA",
"StopPONumbers": [],
"StopReferenceId": "524-CP-1",
"StopReferenceNumbers": [],
"StopSequence": null,
"StopStatus": "not_tracking",
"StopType": "port_of_loading",
"StopUnlocode": "INMAA",
"Timestamp": "2023-08-23T10:01:28+00:00",
"Timezone": null,
"TimezoneOffset": 0,
"TimezoneShortName": "UTC"
}Stop Updated Callback
{
"Action": "UPDATE",
"EarliestAppointmentTime": "2022-10-25T17:25:00.000Z",
"dataSource": "fourkites-x",
"EarliestWantTime": null,
"EncryptedAccessToken": "VjN8b2NlYW5zaGlwcGVyfGRkYzhmZWU5LTdjYzItNGEzNy04NmM2LTQ4YTJmODYxZGUxMnxvY2VhbnNoaXBwZXI",
"FourKitesLoadId": 8233886,
"LatestAppointmentTime": "2022-10-25T17:25:00.000Z",
"LatestWantTime": null,
"LoadNumber": "MM-4713_test1",
"MessageType": "STOP_AMEND",
"ProNumber": null,
"ReferenceNumbers": [],
"Shipper": "oceanshipper",
"StopName": "BEANR",
"StopPONumbers": [],
"StopReferenceId": "",
"StopReferenceNumbers": [],
"StopSequence": 2,
"StopStatus": null,
"StopType": "port_of_loading",
"StopUnlocode": "INMAA",
"TerminalName": "TestTerminal",
"Timestamp": "2022-10-28T15:35:32+00:00",
"Timezone": null,
"TimezoneOffset": 0,
"TimezoneShortName": "UTC",
"UpdatedStopFields": [
"StopCity",
"StopState",
"StopTimeZone"
]
}Stop Deletion Callback
{
"Action": "DELETE",
"EarliestAppointmentTime": null,
"dataSource": "fourkites-x",
"EarliestWantTime": null,
"EncryptedAccessToken": "VjN8b2NlYW5zaGlwcGVyfGMxNzBkMzRhLTdjMTgtNDc3Yi05NmU3LTUwOTFlMGE2MTZjOHxvY2VhbnNoaXBwZXI",
"FourKitesLoadId": 8233886,
"LatestAppointmentTime": null,
"LatestWantTime": null,
"LoadNumber": "MM-4713_test1",
"MessageType": "STOP_AMEND",
"ProNumber": null,
"ReferenceNumbers": [],
"Shipper": "oceanshipper",
"StopName": "SGSIN",
"StopPONumbers": null,
"StopReferenceId": null,
"StopReferenceNumbers": [],
"StopSequence": 3,
"StopStatus": null,
"StopType": "transhipment_port",
"StopUnlocode": "INMAA",
"TerminalName": "TestTerminal2",
"Timestamp": "2022-10-28T15:29:39+00:00",
"Timezone": "Asia/Kuala_Lumpur",
"TimezoneOffset": 28800,
"TimezoneShortName": "+08"
}Stop Amend Callback Parameters Field Description
Callback Name | MessageType | Field Name | Description | Key Always Present? | Conditions for the Key to be present | Data Type | Max Length |
|---|---|---|---|---|---|---|---|
### Stop Created | STOP_AMEND | FourKitesLoadId | Unique load identifier of the load from the FourKites system that the stop belongs to | Yes | N/A | Number | 20 |
Stop Created | STOP_AMEND | LoadNumber | Unique shipment identifier from shipper's system | Yes | N/A | String | 65535 |
Stop Created | STOP_AMEND | ProNumber | Shipment's PRO # | Yes | N/A | Number | 10 |
Stop Created | STOP_AMEND | Shipper | Unique shipper ID from FourKites | Yes | N/A | String | No max, but realistically, not longer than 200 characters |
Stop Created | STOP_AMEND | EarliestAppointmentTime | Earliest Appointment Time of the stop. If not a window, both Earliest and Latest Appointment times will be the same. | Yes | N/A | String | 30 |
Stop Created | STOP_AMEND | LatestAppointmentTime | Latest Appointment Time of the stop. If not a window, both Earliest and Latest Appointment times will be the same. | Yes | N/A | String | 30 |
Stop Created | STOP_AMEND | StopPONumbers | PO Numbers associated with the stop | Yes | N/A | | |
Stop Created | STOP_AMEND | StopReferenceNumbers | List of reference numbers associated with the particular stop | Yes | N/A | Array | no max size |
Stop Created | STOP_AMEND | StopSequence | Sequence number of the particular stop | Yes | N/A | Number | 10 |
Stop Created | STOP_AMEND | StopReferenceId | Reference ID of the stop provided during load creation | Yes | N/A | string | 1024 |
Stop Created | STOP_AMEND | StopName | Name of the stop provided during load creation. | Yes | N/A | String | No max |
Stop Created | STOP_AMEND | StopType | The stop type for which the ETA corresponds | Yes | 1. If the transportation mode is ocean and if the stopType is pickup, it will be mapped as Port of Loading 2. If the stopType is transfer for an Ocean load, it will be mapped as TranshipmentPort. 3. If the load is Air, and if the stopType is pickup then the field will be mapped as as origin airport. 4. If the load is Air, and if the stopType is Delivery then the field will be mapped as destination airport. 5. If the load is Air, and if the stopType is transfer then the field will be mapped as hub airport. 6. If the transportation mode is not ocean and air, it will be mapped directly to the value sent by the customer during load creation. | String | 1024 |
Stop Created | STOP_AMEND | Timestamp | | Yes | N/A | String in DateTime format | |
Stop Created | STOP_AMEND | TimeZone | | Yes | N/A | String | 50 |
Stop Created | STOP_AMEND | TimezoneShortName | | Yes | N/A | String | 5 |
Stop Created | STOP_AMEND | TimezoneOffset | Number of seconds local timezone is ahead of UTC time. Negative for western hemisphere timezones. | Yes | N/A | [+/-]Digits | 10 |
Stop Created | STOP_AMEND | EncryptedAccessToken | The access token that would be used to create an encrypted URL. | Yes | N/A | String | 2048 |
Stop Created | STOP_AMEND | EncryptedUrl | | Only for delivery stop | Only if the delivery stop is created then we will mark the encryptedURL. | String | 1024 |
Stop Created | STOP_AMEND | StopStatus | | No | N/A | | |
Stop Created | STOP_AMEND | EarliestWantTime | | Yes | N/A | String | 30 max |
Stop Created | STOP_AMEND | LatestWantTime | | Yes | N/A | String | 30 |
Stop Created | STOP_AMEND | stopUnlocoded | It indicates the UNLOCODE of the stop | No | If the transportation mode is ocean or the stopType is Port of Loading, then we will create a new field called stopUnlocode. | String | |
Stop Created | STOP_AMEND | ReferenceNumbers | Array of additional reference numbers associated with the load (empty list when no reference numbers are associated with the load) | | N/A | Array | no max |
### Stop Updation | STOP_AMEND | Action | Indicates the action that triggered the callback. Possible values are Create/Update/Delete. | Yes | N/A | String | Max 20 |
Stop Updation | STOP_AMEND | FourKitesLoadId | Unique load identifier of the load from the FourKites system that the stop belongs to | Yes | N/A | Number | 20 |
Stop Updation | STOP_AMEND | LoadNumber | Unique shipment identifier from shipper's system | Yes | N/A | String | 65535 |
Stop Updation | STOP_AMEND | ProNumber | Shipment's PRO # | Yes | N/A | Number | 10 |
Stop Updation | STOP_AMEND | Shipper | Unique shipper ID from FourKites | Yes | N/A | String | No max, but realistically, not longer than 200 characters |
Stop Updation | STOP_AMEND | EarliestAppointmentTime | Earliest Appointment Time of the stop. If not a window, both Earliest and Latest Appointment times will be the same. | Yes | N/A | String | 30 |
Stop Updation | STOP_AMEND | LatestAppointmentTime | Latest Appointment Time of the stop. If not a window, both Earliest and Latest Appointment times will be the same. | Yes | N/A | String | 30 |
Stop Updation | STOP_AMEND | StopPONumbers | PO Numbers associated with the stop | Yes | N/A | | |
Stop Updation | STOP_AMEND | StopReferenceNumbers | List of reference numbers associated with the particular stop | Yes | N/A | Array | no max size |
Stop Updation | STOP_AMEND | StopSequence | Sequence number of the particular stop | Yes | N/A | Number | 10 |
Stop Updation | STOP_AMEND | StopReferenceId | Reference ID of the stop provided during load creation | Yes | N/A | string | 1024 |
Stop Updation | STOP_AMEND | StopName | Name of the stop provided during load creation. | Yes | N/A | String | No max |
Stop Updation | STOP_AMEND | StopType | The stop type for which the ETA corresponds | Yes | 1. If the transportation mode is ocean and if the stopType is pickup, it will be mapped as Port of Loading 2. If the stopType is transfer for an Ocean load, it will be mapped as TranshipmentPort. 3. If the load is Air, and if the stopType is pickup then the field will be mapped as as origin airport. 4. If the load is Air, and if the stopType is Delivery then the field will be mapped as destination airport. 5. If the load is Air, and if the stopType is transfer then the field will be mapped as hub airport. 6. If the transportation mode is not ocean and air, it will be mapped directly to the value sent by the customer during load creation. | String | 1024 |
Stop Updation | STOP_AMEND | Timestamp | | Yes | The UpdatedAt Value will be converted to UTC and will be mapped to TimeStamp | String in DateTime format | |
Stop Updation | STOP_AMEND | TimeZone | | Yes | N/A | String | 50 |
Stop Updation | STOP_AMEND | TimezoneShortName | | Yes | N/A | String | 5 |
Stop Updation | STOP_AMEND | TimezoneOffset | Number of seconds local timezone is ahead of UTC time. Negative for western hemisphere timezones. | Yes | N/A | [+/-]Digits | 10 |
Stop Updation | STOP_AMEND | EncryptedAccessToken | | Yes | N/A | String | 2048 |
Stop Updation | STOP_AMEND | EncryptedUrl | | No | N/A | String | 1024 |
Stop Updation | STOP_AMEND | UpdatedStopFields | | Yes | N/A | | |
Stop Updation | STOP_AMEND | StopAlias | | Yes | N/A | | |
Stop Updation | STOP_AMEND | EarliestWantTime | | Yes | N/A | String | 30 max |
Stop Updation | STOP_AMEND | LatestWantTime | | Yes | N/A | String | 30 |
Stop Updation | STOP_AMEND | TerminalName | | | If it's an ocean load | String | |
Stop Updation | STOP_AMEND | CreatedBy | | | N/A | String | 1024 |
Stop Updation | STOP_AMEND | StopUnlocode | It indicates the UNLOCODE of the stop | | If the transportation mode is ocean or the stopType is Port of Loading, then we will create a new field called stopUnlocode. | String | |
### Stop Deletion | STOP_AMEND | Action | Indicates the action that triggered the callback. Possible values are Create/Update/Delete. | Yes | N/A | String | Max 20 |
Stop Deletion | STOP_AMEND | FourKitesLoadId | Unique load identifier of the load from the FourKites system that the stop belongs to | Yes | N/A | Number | 20 |
Stop Deletion | STOP_AMEND | LoadNumber | Unique shipment identifier from shipper's system | Yes | N/A | String | 65535 |
Stop Deletion | STOP_AMEND | ProNumber | Shipment's PRO # | Yes | N/A | Number | 10 |
Stop Deletion | STOP_AMEND | Shipper | Unique shipper ID from FourKites | Yes | N/A | String | No max, but realistically, not longer than 200 characters |
Stop Deletion | STOP_AMEND | EarliestAppointmentTime | Earliest Appointment Time of the stop. If not a window, both Earliest and Latest Appointment times will be the same. | Yes | N/A | String | 30 |
Stop Deletion | STOP_AMEND | LatestAppointmentTime | Latest Appointment Time of the stop. If not a window, both Earliest and Latest Appointment times will be the same. | Yes | N/A | String | 30 |
Stop Deletion | STOP_AMEND | StopPONumbers | PO Numbers associated with the stop | Yes | N/A | | |
Stop Deletion | STOP_AMEND | StopReferenceNumbers | List of reference numbers associated with the particular stop | Yes | N/A | Array | no max size |
Stop Deletion | STOP_AMEND | StopSequence | Sequence number of the particular stop | Yes | N/A | Number | 10 |
Stop Deletion | STOP_AMEND | StopReferenceId | Reference ID of the stop provided during load creation | Yes | N/A | string | 1024 |
Stop Deletion | STOP_AMEND | StopName | Name of the stop provided during load creation. | Yes | N/A | String | No max |
Stop Deletion | STOP_AMEND | Timestamp | Time when one of the three actions was performed that triggered the callback | Yes | N/A | String in DateTime format | |
Stop Deletion | STOP_AMEND | TimeZone | Local Timezone of the stop in which Timestamp is specified | Yes | N/A | String | 50 |
Stop Deletion | STOP_AMEND | TimezoneShortName | Will be hard coded to "UTC" | Yes | N/A | String | 5 |
Stop Deletion | STOP_AMEND | TimezoneOffset | Number of seconds local timezone is ahead of UTC time. Negative for western hemisphere timezones. | Yes | N/A | [+/-]Digits | 10 |
Stop Deletion | STOP_AMEND | EncryptedAccessToken | The access token that would be used to create an encrypted URL. | Yes | N/A | String | 2048 |
Stop Deletion | STOP_AMEND | EncryptedUrl | Encrypted URL of the stop which is unique and which can be used to access details of the stop | Only for delivery stop | N/A | String | 1024 |
Stop Deletion | STOP_AMEND | StopType | Stop type - pickup, terminal, delivery, portOfLoading, transshipmentPort, portOf Discharge. | Yes | 1. If the transportation mode is ocean and if the stopType is pickup, it will be mapped as Port of Loading 2. If the stopType is transfer for an Ocean load, it will be mapped as TranshipmentPort. 3. If the load is Air, and if the stopType is pickup then the field will be mapped as as origin airport. 4. If the load is Air, and if the stopType is Delivery then the field will be mapped as destination airport. 5. If the load is Air, and if the stopType is transfer then the field will be mapped as hub airport. 6. If the transportation mode is not ocean and air, it will be mapped directly to the value sent by the customer during load creation. | String | 1024 |
