Receive Booking Requests by Webhook
You can integrate with project44 to receive bookings/tenders directly into your system by registering a webhook with project44. A webhook is an endpoint hosted by you that you have registered to receive booking requests. When you have a webhook configured, booking requests will be sent (pushed) to your hosted endpoint via an HTTP request. To receive booking requests through your webhook,
- Map your endpoint to the project44 booking request payload
- Set up your webhook
- Start responding to booking requests
Map Your Endpoint to the project44 Booking Request Payload
Below is the payload project44 will push to your endpoint. Map your system to the following payload:
{ "shipmentId": "string", "attributes": [ { "name": "string", "values": [ "string" ] } ], "capacityProviderIdentifier": { "type": "string", "value": "string" }, "carrierContacts": [ { "companyName": "string", "givenName": "string", "familyName": "string", "phoneNumber": "string", "mobilePhoneNumber": "string", "email": "user@example.com" } ], "totalRate": { "currency": "USD", "amount": 0 }, "rateIdentifiers": [ { "source": "SYSTEM", "type": "SPOT_QUOTE", "value": "string" } ], "expirationDateTime": "2019-08-24T14:15:22", "routeSegmentIds": [ "497f6eca-6276-4993-bfeb-53cbbbba6f08" ], "notes": "string", "shipmentDetails": [ { "pickupStopId": "eff50f2a-8964-41f9-b45d-0a4f6f94e159", "deliveryStopId": "2ca57692-0523-4424-a638-167e5e26f7d3", "handlingUnits": { "details": [ { "monetaryValue": { "currency": "USD", "amount": 0 }, "quantity": 0, "handlingUnitType": "BAG", "stackable": false, "dimensions": { "length": 0, "width": 0, "height": 0, "unit": "FT" }, "weight": { "value": 0, "unit": "LB" } } ] }, "items": [ { "description": "string", "identifiers": [ { "type": "CONTAINER_NUMBER", "value": "string" } ], "unitQuantity": 0, "unitType": "BAG" } ], "description": "string", "identifiers": [ { "type": "AIR_WAYBILL", "value": "string" } ], "accessorials": [ { "code": "REFRIGERATED", "details": { "min": 0, "max": 0, "unit": "CELSIUS" } } ], "loadId": "9fa4c9ea-0db7-4bb2-8f50-086d18a90403" } ], "apiConfiguration": { "bookingWebhookName": "string" }, "shipperContactInfo": { "companyName": "string", "givenName": "string", "familyName": "string", "phoneNumber": "string", "mobilePhoneNumber": "string", "email": "user@example.com" }, "shippingDetails": { "loadPreference": "FULL", "trailerType": "FLATBED", "trailerLength": { "value": 0, "unit": "FT" }, "trailerVolume": { "value": 0, "unit": "CUBIC_FT" }, "flatbedType": "CONESTOGA", "accessorials": [ { "code": "REFRIGERATED", "details": { "min": 0, "max": 0, "unit": "CELSIUS" } } ] }, "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "status": "PROCESSING", "shipmentIdentifiers": [ { "type": "string", "value": "string" } ], "routeSegments": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "fromStop": { "id": "eff50f2a-8964-41f9-b45d-0a4f6f94e159", "type": "PICKUP", "arrivalDate": "2019-08-24", "arrivalAppointmentWindow": { "startTime": "14:15:22", "endTime": "14:15:22" }, "contacts": [ { "companyName": "string", "givenName": "string", "familyName": "string", "phoneNumber": "string", "mobilePhoneNumber": "string", "email": "user@example.com" } ], "accessorials": [ { "code": "REFRIGERATED", "details": { "min": 0, "max": 0, "unit": "CELSIUS" } } ], "location": { "id": "eff50f2a-8964-41f9-b45d-0a4f6f94e159", "name": "string", "identifiers": [ { "type": "AIRPORT_IATA", "value": "string" } ], "address": { "addressLines": [ "string" ], "postalCode": "string", "city": "string", "state": "string", "country": "US" }, "geoCoordinates": { "latitude": -90, "longitude": -180 } } }, "toStop": { "id": "2ca57692-0523-4424-a638-167e5e26f7d3", "type": "DELIVERY", "arrivalDate": "2019-08-24", "arrivalAppointmentWindow": { "startTime": "14:15:22", "endTime": "14:15:22" }, "contacts": [ { "companyName": "string", "givenName": "string", "familyName": "string", "phoneNumber": "string", "mobilePhoneNumber": "string", "email": "user@example.com" } ], "accessorials": [ { "code": "REFRIGERATED", "details": { "min": 0, "max": 0, "unit": "CELSIUS" } } ], "location": { "id": "2ca57692-0523-4424-a638-167e5e26f7d3", "name": "string", "identifiers": [ { "type": "AIRPORT_IATA", "value": "string" } ], "address": { "addressLines": [ "string" ], "postalCode": "string", "city": "string", "state": "string", "country": "US" }, "geoCoordinates": { "latitude": 90, "longitude": 180 } } } } ], "rejectionReason": "COST_NOT_AGREED", "carrierResponseMethod": "EMAIL", "automatedFailureReason": "ERROR_CREDENTIALS", "bookingSourceMethod": "API", "carrierRejectionNotes": "string", "transportationMode": "TRUCKLOAD", "masterShipmentId": "2e04ec4a-749a-4ef4-a452-b7dc8cca16aa", "carrierProvidedIdentifiers": [ { "type": "string", "value": "string" } ] }
Set Up Your Webhook
This is a one-time activity to set up a webhook. Once a webhook is created, please contact your project44 Technical Contact to complete the Webhook set-up process.
Workflow
- Prepare a
PUT
request to /api/v4/webhooks.
{ "authParams": {}, "authType": "API_KEY", "authenticationMethods": [ { "parameters": {}, "type": "API_KEY" } ], "configName": "string", "id": 0, "method": "GET", "methodParams": {}, "payloadFormat": "JSON", "url": "string", "version": 0 }
- Send the request.
Fields and Objects
Element | Description | Type | Notes |
---|---|---|---|
authenticationMethods.parameters | The webhook authentication method parameters. | object | The fields of the parameters object vary for each authentication method. See the API Reference Documentation for this endpoint for more information. |
authenticationMethods.type | The webhook authentication method type. | string | Valid values are BASIC , API_KEY , and OAUTH2 . |
configName | The unique name used to identify the push configuration. | string | |
method | The HTTP method associated with the webhook endpoint. | string | Default is POST . Valid values are GET , HEAD , POST , PUT , PATCH , DELETE , OPTIONS , and TRACE . |
methodParams | A map of the optional method parameters. | object | |
payloadFormat | The format of the payload to send to the webhook. | string | The only valid value is JSON . |
url | The URL of the webhook endpoint. | string | |
version | The optional version of the push configuration. | integer <int64> |
Expected System Response
You have successfully submitted the request when you receive a 200 OK
response with the following response schema:
{ "authParams": {}, "authType": "API_KEY", "authenticationMethods": [ { "parameters": {}, "type": "API_KEY" } ], "configName": "string", "id": 0, "method": "GET", "methodParams": {}, "payloadFormat": "JSON", "url": "string", "version": 0 }
Respond to a Booking Request
Respond to a booking request using project44's endpoint. Follow the steps here.