Need Support? phone 1300 803 873 or email [email protected]

Integration Of Facility Gate With Inbound Bookings

This support post explains how to integrate your internal system with the electronic document management function within Inbound Connect

There are many situations where your internal operational systems (gate control system, front automated kiosks), want to verify with Inbound Connect whether a booking has been made for the truck/driver that has just arrived at your site.

 This feature allows you to query the currently active bookings by a particular field value (typically vehicle registration number or driver details) to determine if there are active bookings for that arrival and whether those bookings are on time, early, late and able to be processed.
 
The integration flow is as follows:
  1. Generate an API key for a user (or create a generic integration user first) within your facility account.
  2. Query the API endpoint passing in the field name and value you are looking for.
  3. The system will return any active bookings for those details and provide you details of if they are early/late/on time and but how much.

Endpoint

The get available bookings API URL will be provided by your Inbound Connect account or support team member.  Please contact them to get the URL.

 

Security

To authenticate to the Inbound Connect API, you first need to generate an API token for a user with permissions to edit bookings.  You can either create a generic user with just this permission, or use an existing user.  

  1. Once logged in as the user in question.
  2. Go to the My Settings menu in the top right of the screen.
  3. Select the API Keys tab and click New API Key.
  4. Copy down the API key as once the window is closed you won’t be able to retrieve it again and you will be required to generate a new key.
  5. To all HTTP requests to the Inbound Connect endpoint ensure you have the following HTTP Header added.
    1. Inbound-API-Key: <emailaddress>:<apikey>
    2. Where email address is the email address of the user within your facility account
    3. And apikey is the value copied from step 4 above.
This particular Inbound Connect endpoint requires a HTTP GET request and accepts two query string parameters to the API endpoint.

Note all query string parameters should be URL encoded (especially when there are spaces in the field name or value parameters).

 
 

Query String Parameters

FieldDescriptionComments
fieldThe name of the field you wish to query against.  Ask Inbound Support or your Inbound Connect contact person for the correct field value you should be using for your particular use case.Provided by Inbound
valueThe value against which you wish to queryValue entered into your kiosk system or provided by your gate automation solution (ANPR, OCR etc)

Example

GET https://url.provided.by.inbound/apiendpoint?field=Vehicle%20Rego&value=ABC123
This particular Inbound Connect endpoint responds with a JSON response.
 
 

Field Descriptions

FieldDescriptionFormat/Comments
errorThe error object.  Will have details if success = FalseObject
error.codeError code for this particular error messageNumber
error.detailsMost often null but may have additional details to your particular messageString
error.messageThe error message describing what is wrong with your requestString
successIndicates whether the call to the API was successful or not.Boolean: True/False
resultArray of objects representing the response to your successful API callJSON array
result.bookingNumberThe booking numberString
result.facilityName of the facilityString
result.serviceName of the serviceString
result.bookingDateDate for the bookingString (yyyy-mm-dd)
result.startTimeWindowStart time of the bookingString (hh:mm)
result.endTimeWindowEnd time of the bookingString (hh:mm)
result.secondaryCapacityFieldNameName of the secondary capacity fieldString (optional)
result.secondaryCapacityQuantityQuantity of the secondary capacityNumber (optional)
result.transporterName of the transport companyString
result.guestNameIf this booking is a guest/one-off booking the name of the guest personString
result.guestEmailIf this booking is a guest/one-off booking the email of the guest personString
result.preProcessedIndicator as to whether this booking is pre-processed already or notBoolean: True/False
result.statusStatus of the booking (OnTime, Early, Late)String
result.statusMinutesIf not on time the number of minutes that the arrival is early or late (based on the time of query)Number
result.earlyThresholdMinFor this particular service what is the number of minutes before the start time window that is considered earlyNumber
result.lateThresholdMinIf not on time the number of minutes that the arrival is early or late (based on the time of query)Number
result.fieldsAn array of field values for each of the fields on this bookingJSON Array
result.fields.fieldName of the fieldString
result.fields.valueValue for that particular field on this bookingString
result.attachmentsAn array of attachments for this bookingJSON Array
result.attachments.fileNameFilename of the attachmentString
result.attachments.attachmentTypeThe type of attachmentString
result.attachments.urlA time limited secure URL allowing you to download this file if requiredString

Example Success

{
	"result": [
		{
			"bookingNumber": "INBFAC2404191",
			"facility": "Inbound Facility",
			"service": "FAK Import Pickup",
			"bookingDate": "2024-04-19",
			"startTimeWindow": "23:00",
			"endTimeWindow": "23:59",
"secondaryCapacityFieldName": "Pallets",
"secondaryCapacityQuantity": 5, "transporter": "Inbound Transporter", "guestName": null, "guestEmail": null, "preProcessed": false, "status": "Early", "statusMinutes": 918, "earlyThresholdMin": 57, "lateThresholdMin": 30, "fields": [ { "field": "Vehicle Rego", "value": "ABC123" }, { "field": "Container No.", "value": "CONT123" }, { "field": "Container Size", "value": "" }, { "field": "House BL", "value": "HBL123" }, { "field": "Special Instructions", "value": "" } ], "attachments": [ { "fileName": "attachmentname.pdf", "attachmentType": "Delivery order", "url": "https://timelimited.url.to.file" } ] } ], "targetUrl": null, "success": true, "error": null, "unAuthorizedRequest": false, "__abp": true }

Example Error

{
	"result": null,
	"targetUrl": null,
	"success": false,
	"error": {
		"code": 0,
		"message": "Unable to validate API Key Headers",
		"details": null,
		"validationErrors": null
	},
	"unAuthorizedRequest": false,
	"__abp": true
}
We have a Problem with JSON here:
Either we got no JSON from the API. Or the basenode-parameter is not ok.
Switch on the Debugmode of the Plugin!
Share the Post:

Ready to take your logsitics business to the next level?

Reach out and request a demo today.