JDispatch

JDispatch User Documentation

Release Notes

Collection of version changes made to JDispatch

Release Notes

Dashboard V3.6.2 [2022/01/29]

JDispatch Web Dashboard Release Notes for V3.6.2

The following enhancements / bug fixes have been released for JDispatch

Enhancements for all users
Additional enhancements for premium users
Bug Fixes
Release Notes

JDispatch Mobile App V3.3.2 [2021/09/14]

Release notes for the JDispatch Mobile Application released 2021/09/14

This update is currently only available for beta testers. To join the JDispatch beta, please follow the steps to join

Release Notes

Dashboard V3.6.1 [2021/09/14]

JDispatch Web Dashboard Release Notes for V3.6.1, released 2021/09/14

The following enhancements / bug fixes have been released for JDispatch

Enhancements for all users
Additional enhancements for premium users
Bug Fixes
Release Notes

Dashboard V3.6 [2021/07/02]

JDispatch Web Dashboard Release Notes for V3.6, released 2021/07/02

The following enhancements / bug fixes have been released for JDispatch

Enhancements for all users
Additional enhancements for premium users
Bug Fixes
Release Notes

JDispatch Mobile App V3.3 [2021/06/12]

Release notes for the JDispatch Mobile Application released 2019/06/12

Release Notes

Dashboard V3.5 [2020/12/30]

JDispatch Web Dashboard Release Notes for V3.5, released 2020/12/30

The following enhancements / bug fixes have been released for JDispatch

Release Notes

Dashboard V3.4 [2020/04/29]

JDispatch Web Dashboard Release Notes for V3.4, released 2020/04/29

Release Notes

Dashboard V3.3 [2019/12/23]

JDispatch Web Dashboard Release Notes for V3.3, released 2019/12/23

This release of the JDispatch dashboard contains enhanced features for our Premium level users

New Features & Enhancements
Bug Fixes

 

Release Notes

Dashboard V3.2 [2019/06/12]

JDispatch Web Dashboard Release Notes for V3.2, released 2019/06/12

Release Notes

JDispatch Mobile App V3.2.23 [2019/06/12]

Release notes for the JDispatch Mobile Application released 2019/06/12

JDispatch Web Dashboard

How-To Guides for the JDispatch Web Dashboard

JDispatch Web Dashboard

Dashboard

The JDispatch dashboard page provides you with a quick view of some key metrics on your delivery performance. These metrics are live and updated every 10 seconds.

KPI Cards

image-1628548264433.png

Quick-glance KPI cards are shown at the top of the page. The KPIs listed are :

Performance Graphs

Below the KPI cards are some basic performance graphs

image-1628548553573.png

Performance Tables

After the graphs are two tables highlighting delivery volumes by driver and customer

image-1628548672119.png

JDispatch Web Dashboard

Deliveries

Overview

The deliveries tab in JDispatch lists all outstanding deliveries from previous days, as well as any deliveries dispatched or delivered today.

image-1628548836526.png

Features

Invoice PDF

image-1628549038533.png

Clicking on the invoice number will open a .pdf copy of the selected invoice

Change Driver

image-1628549464352.png

Clicking the edit icon next to the driver name for any undelivered transaction will present you with a drop-down to change the driver assigned to the selected invoice.

image-1628549475371.png

Moving a delivery between drivers will add/remove that delivery from the device of the drivers involved and, for premium users, recalculate their routes

Change Delivery Status

image-1628549656163.png

If you have opted in to see all 'In Progress' invoices, and your system is submitting in progress orders via the JDispatch API, you will have the ability to modify the status of a delivery. Clicking on the status button will present you with a listing of possible invoice statuses.

image-1628550069835.png

In Transit and Delivered are not options here as traditional deliveries should be processed via our API. Any dispatch documents posted for a 'in progress' transaction will modify that transaction's status automatically.

Signature Recall

image-1628550639628.png

For any delivered invoice, clicking on the status button will present you with a copy of the signature taken at time of confirmation. It will also display any name that was entered at time of confirmation.

image-1628550720326.png

Delivery Location

This is a premium user feature

Both delivered and in transit transactions may have a small location icon button available. 

image-1628550933916.png

Clicking on the location button will present you with an info window of the driver's current location for any transactions currently in transit, or the location where the invoice was confirmed for any transactions that have been delivered.

image-1628551011449.png

Delivery Run Review

Run review will include markers for both deliveries and pickups on a selected run

You can optionally review the original optimized route by pressing theimage-1629411994804.pngicon

image-1629411409789.png

This replaces the content of the delivery / driver location map and replaces it with the optimized route overlaid onto the map. Each stop is numbered based on it's optimized sequence, and the markers will change to green as the deliveries are completed. The blue location pin indicates where the driver currently is.

Delivery ETA

This is a premium user feature

Premium users also have a color-coded ETA badge on all in transit deliveries. If a delivery could not calculate an ETA due to a poorly formed address, a simple 'Unavail' message will show

image-1628551117151.png

The ETA color coding has 4 color schemes:

JDispatch Web Dashboard

Curbside Pickup

This is a premium user feature and requires additional setup prior to going live. If you are interested in utilizing JDispatch curbside pickup, please call us at 1-800-663-1978

Overview

JDispatch curbside pickup allows your customers to notify your dispatch team of their arrival and provides information to your dispatcher through the JDispatch web dashboard to allow them to bring product out to the customer and, optionally, take a signature.

Process For Customers

Wholesale Customers
Retail Customers

 

JDispatch Web Dashboard

Pickups / Returns

Overview

This tab shows a listing of all outstanding pickups and allows you to create pickup requests. Pickups are used only within the jDispatch module at this time, and are a useful way to keep your staff informed of the status of warehouse pickups as well as keep tabs on core & warranty returns from customers.

Creating A Pickup

 

Adding items to a pickup request

Once a pickup is created, you can add additional items to the pickup request via the pickup listing

image-1629480958223.png

Removing items from a pickup request

Once a pickup is created, you can remove items from the pickup via the pickup listing

image-1629481071983.png

Change driver assigned to pickup request

Any pickup requests that have not been completely confirmed can have the assigned driver changed

View Pickups by Part number

You can optionally change the view of pickup requests to view the requests by part number in case you have a part number specific question you need answered.

JDispatch Web Dashboard

Driver Communication

Overview

The his tab shows a small conversation box for each driver that has signed in, or had any deliveries or pickups assigned to them today.

Functions

The driver communication functions are one-way communication only. 

Typing a message in the box labled Type your message here and clicking the Send button will send a message to the driver and notify them much like a text message.

 

JDispatch Web Dashboard

Using The Web Dashboard

Basic Usage Notes

Logging In, Menus and Navigation

Dashboard

Corporate Live Stats

Deliveries

 

 

 

Pickups

Driver Communication

Driver Location

Data Extracts

Delivery History

Register Phones

assigned.

 

 

 

 

 

 

 

Site Settings

 

Dashboard Settings

Mobile App Settings

User Profile

JDispatch Web Dashboard

Admin Function

Overview

The admin section provides a number of functions used in the configuration and setup of the web dashboard

Corporate Live Stats

This page shows key metrics of all branches belonging to the JDispatch Sponsor

Customers / Suppliers

This page allows you to search key metrics specific to certain customers and/or suppliers. You can also add new suppliers here.

Viewing Customer Statistics

image-1633028940923.png

To view a specific customer's info. Begin typing into the Enter Customer/Supplier Name field. Matching customers will display. Cick the desired customer and the cards below will update.

Adding / Changing Suppliers

From the main Customer / Supplier page, click the Create button to create a supplier or Edit button to edit an existing supplier

image-1633029086994.png

In the modal that pops up, enter in the following:

Select Type - Select either Supplier or Customer
Account Number - Enter in a UNIQUE number for this customer and/or supplier you are adding
Name - Enter a name to show in the system
Phone Number - Enter a valid phone number. This can be used within the mobile app to call
Address - Key in a valid address. This will be used to provide route directions and optimization

Register Phones

This tab allows you to register phones and reassign devices. For more info on registering your phone for the first time, please refer to the jDispatch phone setup document.

To reassign a phone when drivers switch phones, simply find the unit number of the phone in question (Once a phone is registered, the unit number will always display in the app when opened). Drag the blue Unit button over to the box next to the drivers name who will have the device. When the green check appears, the device is assigned.

Site Settings

Dashboard Settings

These settings have a direct affect on how the dashboard operates and displays

image-1633029686599.png

Mobile App Settings

image-1633029811174.png

JDispatch Kiosk Settings

These settings are specific to the JDispatch Kiosk. A small, purpose specific, device that can be plugged into a TV or large display to report status of deliveries to warehouse staff

image-1633029927452.png

Driver Warning / Stats

These settings are used in conjunction with the driver alert reporting.

image-1633030089877.png

Curbside Pickup Settings

These settings are used when activating the curbside pickup feature

image-1633030265963.png

 

User Profile

This panel is more for aesthetics and allows you to change your password.

 

JDispatch Mobile App

JDispatch Mobile App

Using The Mobile App

Basic Usage Notes

Deliveries and Delivery Confirmation

Pickups and Pickup Confirmations

Driver Communication

 

 

 

Additional Notes / Configuration Options

JDispatch Mobile App

Setting Up A Device

Overview

This document outlines the setup of new phones for use with the jDispatch module.

Setting Up Drivers

The first thing that is required is to set up drivers in your integrated ERP. These steps will vary by system, so please confirm with your IT team how to set up drivers for use with JDispatch.

Activiating Your Device

If this is a new android phone, you will also need to complete the initial setup of the phone so that you may download the JDispatch app. These steps may vary, but generally you just need to turn on the phone and follow the initial prompts to set up date, time, language, etc. When you reach the point of entering in an email address, you will need to enter in a valid Gmail email address. If you do not have one, you can set one up at gmail.com. Once it is set up, this email can be used on any number of devices. 

There may be one or two more prompts aftwerwards, but you should end up at the basic android home screen.

Install JDispatch

Sign In To JDispatch Dashboard

https://www.jdispatch.ca/dashboard.php

 

Open JDispatch and Allow Location Permissions

When you first open the app, it should ask a number of questions about permissions. These permissions must be allowed in order for JDispatch to properly report driver and delivery location

If you deny any of these permissions, the driver's location may not be reported to the JDispatch server and the driver location map may not work correctly or at all.

JDispatch requires location services to always be active, so you may receive a number of messages about allowing permissions

Register The Device

Once you have allowed all driver permissions, youshould have a message warning you that the phone is not registered.

Assign a Driver to The Phone

JDispatch Mobile App

Updating Sonim Devices

A number of Sonim XP7700 devices are registered with the JDispatch service. A number of these devices are currently running an older version of Android which will disable push notifications. An additional problem with these devices is that the built in Adnroid OS update no longer works. 

In order to update these devices to a more current version of Android to enable push notifications, you will need to follow these steps:

In order to update, we will need to install an app outside the Play store which is direct from Sonim. 

  1. Download a barcode scanner app. This one is recommended: https://play.google.com/store/apps/details?id=com.google.zxing.client.android&hl=en
    1. From your device's home screen, open the app tray
    2. Open the Play store app

    3. Search for 'Barcode Scanner' and select the app from ZXing Team

    4. Once the app is open, Click Install

  2. Enable unknown sources to install apps. 
    1. From the device's home screen, open your app tray

    2. Open the Settings app

    3. Navigate to Security

    4. Select the Unknown Sources option

    5. You will see a warning message on screen. This is expected, please tap OK.

    6.  Return to the main home screen.
  3. Now, you can install the Sonim updater app.
    1. From your device's home screen, open the app tray
    2. Open the newly installed barcode scanner app

    3. Scan this barcode

    4. Tap the link in the scanner window

    5. Select to open the link with chrome. Select 'Just Once'

    6. Tap the download button

    7. When asked which app to use, select Drive. Select 'Just Once'

    8. Accept the permissions

    9. Once the app is installed, elect to open it
    10. Tap Check Update

    11. a
    12. a
    13. a

 

 

JDispatch Mobile App

Updating The Mobile App

In scenarios where a device is not set to auto-update the JDispatch app, the following steps will need to be followed:

  1. From the device's home screen, list all of your apps:
  2. From the listing of apps, scroll down to the Play Store app.

  3. Within the Play store app, select the menu option in the top left

  4. Select 'My Apps & Games'

  5. All of your apps should now list. Under the 'Updates' heading, you may find JDispatch

  6. Click the 'Update All' button to update all apps, or the 'Update' button next to JDispatch to update just the JDispatch app.

 

 

JDispatch Mobile App

How to Find Your Android Version Number and Security Patch Level

This information is available in Android’s system-wide Settings screen. Whatever version of Android you’re using and whatever customizations your device’s version of Android has, you should be able to get to it in the same way.

Open the “app drawer” — the entire list of apps installed on your phone. It’s almost always a button at the bottom of your home screen, in the center.

Scroll through the list of installed apps and look for an app named “Settings”. Tap the Settings icon to enter Android’s system-wide Settings app.

Scroll down on the Settings screen and look for an “About phone”, “About tablet”, or “System” option. You’ll usually find this at the very bottom of the main Settings screen, under System, but depending on your phone it could be different. If you do find a specific option for System, you can usually find the “About Phone” underneath that.

Couldn’t find it? Depending on your phone, here are some places that you can find the Android version:

On the resulting screen, look for “Android version” to find the version of Android installed on your device, like this:

It just displays the version number, not the code name — for example, it says “Android 6.0” instead of “Android 6.0 Marshmallow”. You’ll have to perform a web search or look up a list of Android codenames if you want to know the code name associated with the version. Here’s a current list:

Other fields here are also relevant. The “Model number” field tells you the name of your device, for example.

JDispatch Mobile App

Confirming App Permissions

These instructions are based on an Android P device. Your device screens may appear slightly different, but the menu options should still be available on your device.

Direct method when app is open

  1. Open up the app on your device. You should have a badge in the top banner of your screen. 
  2. Swipe your screen down from the top to get your notifications and menu. You should see a "JDispatch is running" or "AAG Dispatch is running" message. 

    *** Also confirm that the Location icon is enabled in this screen

  3. Tap the "JDispatch is running" / "AAGDispatch is running" message
  4. You will be presented with the app options
  5. Tap the 'Permissions' option
  6. Ensure that all of the permissions are 'Allowed all the time'

When unavailable from top bar

  1. Go into your device Settings by swiping down from the top of the screen
  2. Go into the Apps section
  3. Find the JDispatch app
  4. Select the Permissions option
  5. Ensure that Location permissions are 'Allowed all the time'
JDispatch Mobile App

Joining JDispatch Beta

JDispatch beta is an early release app. Please be aware that there may be minor bugs or changes that are undocumented. All bugs or problems should be reported to support@amscomp.com

To join the JDispatch beta can be done via the google play app. Simply follow these steps to update your version of JDispatch to the beta test version.

Please note that it can take up to an hour for the beta signup process to be complete. Once you have been added to the beta program, you can update the JDispatch app.

Developer Information

Developer Information

API Documentation V3.0

1      Changelog

 

Version

Date

Author

Update

2.1.1

06/01/2016

Jim Potter

-       API release

3.0.0

12/28/2016

Jim Potter

-       JSON document introduction

-       Method consolidation & deprecation

3.0.1

02/01/2017

Jim Potter

-       Versioning table

-       Correction to jdDriver xml sample

3.0.2

03/02/2017

Jim Potter

-       Updated Customer Field Length

3.0.3

07/11/2017

Jim Potter

-       Added deliveryResponse document to allow for resend of deliveryReceipt in case of error/timeout

 

 

2      General Overview

At its most basic, JDISPATCH allows delivery drivers to collect an electronic copy of a signature on a touch enabled mobile device. Beyond that, it can also track a driver’s location as well as act as a rudimentary messaging app on a data enabled mobile device. This application, however, will run in a ‘batch mode’ for devices without fill-time data capabilities. Allowing even remotely located customers to take advantage of JDISPATCH’s basic functionality.

2.1    Basic JDISPATCH web service functionality

 

A common, integrated, JDISPATCH transaction would have a fairly straight-forward flow. An order is placed on the seller’s system, and the seller’s system processes the order up to the point of being dispatched for delivery. At that point, the seller system generates a dispatch transaction for a driver to send one or more invoices to the JDISPATCH API. Once JDISPATCH receives notice of the delivery, it will notify the driver of a pending delivery and push the order detail to their device. From there, the driver would deliver the product and take a signature of the party receiving the product. That signature is then passed back to the JDISPATCH server where it is saved off and available for future use. Once the signature is saved on the JDISPATCH server, it can optionally be passed back to the sellers system via the API if they wish to merge it on to an electronic copy of the invoice the customer received. After a delivery is made, the confirmation signature is instantly available within the JDISPATCH dashboard for any proof-of-delivery queries that may come in.

 

In addition, the seller has access to a number of tools to help them analyze their delivery performance. From within the JDISPATCH dashboard, a user sees real-time statistics of average processing and delivery time by driver and customer as well as driver efficiency. Beyond the real time statistics and graphs, the JDISPATCH user has the ability to extract detailed delivery information for analysis after the fact.

 

Communication between the driver’s mobile device and the JDISPATCH server does not have to be on-going. If the mobile device notices a loss of connectivity, it will operate in a ‘batch mode’ until connectivity is restored, at which point it will send through any deliveries that were processed during the loss of connectivity. Subsequently, any ‘batch’ transactions will be pushed back to the seller system at the time they are confirmed on the JDISPATCH server.

 

 

 

 

2.2    JDISPATCH Features

 

jDispatch Mobile Application

Connected

Batch Mode

Signature capture

Yes

Yes

Part delivery confirmation

Yes

Yes

Background location services

Yes

 

System to driver communication

Yes

 

Part pickup confirmation

Yes

Yes

‘One Off’ invoice scan and confirm

Yes

 

Push notifications

Yes

 

Driving directions

Yes

 

Route Optimization

Yes

 

jDispatch Dashboard

Connected

Batch Mode

Real-time delivery analysis

Yes

 

Real-time corporate delivery metrics

Yes

 

Signature recall

Yes

Yes

Delivery analysis extracts

Yes

Yes

Pickup dispatch

Yes

Yes

Driver communication

Yes

 

Driver 'on map' location tracking

Yes

 

Dashboard configuration

Yes

Yes

Quick phone registration

Yes

Yes

 

 

2.3    JDISPATCH Flow Diagram - Integrated

 

 

2.4    JDISPATCH Flow Diagram – Non-Integrated

 

3      Transaction API

3.1    Overview

In order for third-party systems to utilize the integrated features of JDISPATCH, they must utilize the JDISPATCH Transaction API, which allows third-party systems to create dispatch requests, and accept back subsequent delivery confirmations and signatures. The two transaction types utilized are a dispatch transaction and a delivery transaction

 

3.2    Basic JDISPATCH order transaction architecture

 

Overall, the JDISPATCH document stack can be broken down in to 2 main segments, delivery dispatch and delivery receipt. These two transactions would be the only required integration points for any third party system, as all other functionality of the product can be handled by the JDISPATCH web and mobile applications

 

  1. Delivery Dispatch: This is the point where a delivery is dispatched from the third-party system
  2. Delivery Receipt: This is a transaction that is passed back to a pre-configured URL utilized by the third-party system to take back delivery confirmations once they are processed by the JDISPATCH web application.

 

3.3    Document Structure

The information passed within a JDISPATCH API document can be sent via XML or JSON. All necessary information within a JDISPATCH API document is contained within an element tag. This is recognized by both a root <jDispatchElement> tag, and an ending </jDispatchElement> tag. Empty elements are allowed within a JDISPATCH API document and will be ignored upon document validation on the JDISPATCH server.

 

AMS has done their best to select semantic element names to avoid confusion when translating documents. Also, all tag names use Camel Case, indicating that the first letter of each word will be capitalized, and all subsequent letters are lower case. The first letter of the <jDispatchElement> elements will, however, be lower case.

3.4    XML Schema

Each of the JDISPATCH document layouts are described in an XML schema document, or, template. If you are unfamiliar with a schema document, the W3C site provides more information on this topic here: http://www.w3.org/standards/xml/schema. Detailed schemas are listed in Appendix B.

3.5    Document Sections

Each document contains 3 basic elements, a root <jDispatchElement> element, which will be named by the transaction type, either a <jDispatchRequest> or a <jDispatchResponse> <DocHeader> element and a <DocContent> element.

           

3.6    DocHeader

The header of each document contains identifying information that validates the request and the user sending the request. The required information will not change, regardless of the document type being used. The following attributes must exist on each incoming request’s header element

 

Attribute

Required

Description           

DocID

Required

A GUID to make each document uniquely identifiable

DocType

Required

Defining the document type that is being sent

Sender

Required

A unique identifier assigned to the sender.

Date

Required

Time stamp of the document, to the millisecond per the  ISO 8601 standard. YYYY-MM-DDThh:mm:ss

 

apikey

Required

API Key provided to you from AMS

env

Required

“TEST” or “PROD”

 

3.7    DocType Types

Document

Description           

deliveryDispatch

Document to create a delivery

deliveryReceipt

Document sent on delivery confirmation

deliveryResponse

Document sent to confirm deliverReceipt

jdCustomer

Document to add a customer to the web

jdDriver

Document To add a driver to the web.

deliveryDispatchResponse

Response from deliveryDispatch document

jdCustomerResponse

Response from jdCustomer document

jdDriverResponse

Response from jdDriver document

3.8    DocContent

The DocContent is much different than the DocHeader element in that the DocContent element will contain all of the information unique to the requested transaction type. A DocContent element may contain many elements of the same type, sending many invoices in one deliveryDispatch document. For example, this allows many invoices to be dispatched at a single time.

 

XML document examples can be found in Appendix A, and JSON examples can be found in Appendix B, defining element types and requirements.

 

 

4      Transaction Overviews

This section will give a general outline of each of the unique transaction types. For detailed XML examples, please refer to Appendix A, and for JSON examples, please refer to Appendix B.

4.1    jDispatchRequest DocType Overviews

 

deliveryDispatch: The deliveryDispatch transaction is the initial dispatch of a delivery to the JDISPATCH web application, and subsequently through to the defined mobile application running on a smart device. Additionally, any cancellations, manual receipts and deletions will be processed via this transaction.

The decision of what type of transaction is being passed is determined by the resquest document’s <Status> tag.

A – Add a delivery in to the jDispatch system. Drivers are notified of new deliveries added to their device via a push notification

R – Mark a delivery as Received, this is usually in the case of a delivery being as being picked up or received by the host system

D – Delete a delivery from the jDispatch system. This is usually a scenario where an invoice was inadvertently dispatched, and needs to be ‘pulled back’ to the host system for dispatch at a later time.

C – Cancel a delivery. This will mark a delivery as cancelled within the jDispatch system. Drivers are notified of cancelled deliveries, and confirmations are done against cancelled deliveries, putting them into a ‘Retired’ state when confirmed.           

Deliveries are sent to the jDispatch system, one delivery batch per driver, and the response of the delivery will be within the <Status> tag of the response, with a response based on the response status table found in Appendix C, with the detail of any failures being reported in the response’s <Message> tag. A successful load of all deliveries will result in a SUCCESS <Status>, with the <Message> tag returning the unique run ID assigned to the delivery batch.

  

jdCustomer: Any maintenance to customer information (Add/Change/Delete) in the JDISPATCH web application needs to be done via the jdCustomer function & transaction. Only basic information is passed for the purpose of enabling the functionality of the JDISPATCH web & mobile applications. This transaction can have multiple customers passed, so bulk actions are possible. The possible statuses for this document are:

A – Add a new customer. Records passed with this status are assumed to be new customers, and the data is added to the system. If, for some reason, the customerID that is passed is already in the system, that customerID will be updated with the detailed information found in the document

D – Delete a customer. The customerID associated with this status will be deleted from the jDispatch system

C – Change a customer. The customer record associated with the customerID passed in this document will have its information updated based on the detail passed within the document.

jdDriver: Any maintenance to driver information (Add/Change/Delete) in the JDISPATCH web application needs to be done via the jdDriver function & transaction. Only basic information is passed for the purpose of enabling the functionality of the JDISPATCH web & mobile applications. This transaction can have multiple drivers passed, so bulk actions are possible. The possible statuses for this document are:

A – Add a new driver. Records passed with this status are assumed to be new drivers, and the data is added to the system. If, for some reason, the driverID that is passed is already in the system, that driverID will be updated with the detailed information found in the document

D – Delete a driver. The driverID associated with this status will be deleted from the jDispatch system

C – Change a driver. The driver record associated with the driverID passed in this document will have its information updated based on the detail passed within the document.

 

4.2    jDispatchResponse DocType Overviews

 

deliveryReceipt: The deliveryReceipt transaction is a transaction sent from the JDISPATCH web application to a pre-configured URL defined by the third-party system (if required). This document passes back the delivery time, signature and recipient for use within the third-party system. The signature image is a JPEG image, encoded with base64 encoding, passed through as an ASCII string and to be decompressed and converted to an image by the host system.

 

deliveryResponse: The deliveryResponse transaction is a transaction sent from the third-party system back to the JDISPATCH api server. This document will pass a status message indicating whether the deliveryReceipt document was accepted and properly processed, and whether to try re-sending. In the case of a failure and re-send request, the JDISPATCH api server will begin attempting to re-send the document. Upon 5 failures, the admin email on the sponsor’s account will be notified of the error.

 

deliveryDispatchResponse: This document will be in the format of the general jDispatchResponse. The basic SUCCESS or FAIL status will be reported by the <Status> tag, a <Code> tag will report a more detailed status with a response based on the response status table found in Appendix C for a deliveryDispatch document. Any detailed failure information is contained in the <Message> tag.

 

jdCustomerResponse: This document will be in the format of the general jDispatchResponse. The basic SUCCESS or FAIL status will be reported by the <Status> tag, a <Code> tag will report a more detailed status with a response based on the response status table found in Appendix C for a jdCustomer document. Any detailed failure information is contained in the <Message> tag.

jdDriverResponse: This document will be in the format of the general jDispatchResponse. The basic SUCCESS or FAIL status will be reported by the <Status> tag, a <Code> tag will report a more detailed status with a response based on the response status table found in Appendix C for a jdDriver document. Any detailed failure information is contained in the <Message> tag.

 

4.3    Notable Field Limits

CustomerID – Alpha/Numeric, Limit 15 characters.

DriverID – Alpha/Numeric, Limit 6 Characters.

BranchID = Numeric, Limit 4 digits.

 

 

5      Appendix A

5.1    XML Request Transaction Examples

deliveryDispatch

 

<jDispatchRequest>

      <DocHeader>

            <DocID></DocID>

            <DocType>deliveryDispatch</DocType>

            <SenderID></SenderID>

            <apiKey></apiKey>

            <env></env>

            <Date></Date>

      </DocHeader>

      <DocContent>

            <DeliveryCount></DeliveryCount>

            <Delivery>

<BranchID></BranchID>

                  <Status></Status>

                  <OrderDate></OrderDate>

                  <CustomerID></CustomerID >

                  <DriverID></DriverID>

                  <Invoice></Invoice>

                  <SubTotal></SubTotal>

                  <Taxes></Taxes>

                  <Freight></Freight>

                  <OtherChg></OtherChg>

                  <DeliveryType></DeliveryType>

                  <Total></Total>

                  <Items>

                        <LineCode></LineCode>

                        <PartNumber></PartNumber>

                        <Qty></Qty>

                        <Price></Price>

                        <Discount></Discount>

                        <Extend></Extend>

                  </Items>

                  <OverrideAddress>

            <Address></Address>

            <City></City >

            <Province></Province>

            <PostalCode></PostalCode>

</OverrideAddress>

                  <SignatureRequired></SignatureRequired>

            </Delivery>

      </DocContent>

</jDispatchRequest>

jdCustomer

<jDispatchRequest>

<DocHeader>

            <DocID></DocID>

            <DocType>jdCustomer</DocType>

            <SenderID></SenderID>

            <apiKey></apiKey>

            <env></env>

            <Date></Date>

      </DocHeader>

      <DocContent>

<BranchID></BranchID>

            <Customer>

                  <Status></Status>

                  <CustomerID></CustomerID>

                  <CustomerName></CustomerName>

                  <Address></Address>

                  <City></City>

                  <Province></Province>

                  <Country></Country>

<PhoneNumber></PhoneNumber>

            </Customer>

      </DocContent>

</jDispatchRequest>

 

 

 

 

 

 

jdDriver

 

<jDispatchRequest>

      <DocHeader>

            <DocID></DocID>

            <DocType>jdDriver</DocType>

            <SenderID></SenderID>

            <apiKey></apiKey>

            <env></env>

            <Date></Date>

      </DocHeader>

      <DocContent>

            <Drivers>

                  <Status></Status>

<BranchID></BranchID>

                  <DriverID></DriverID>

                  <DriverName></DriverName>

            </Drivers>

      </DocContent>

</jDispatchRequest>

 

 

5.2    XML Response Transaction Examples

 

deliveryReceipt

 

<jDispatchResponse>

      <DocHeader>

            <DocID></DocID>

            <DocType>deliveryReceipt</DocType>

            <SenderID></SenderID>

            <apiKey></apiKey>

            <env></env>

            <Date></Date>

      </DocHeader>

      <DocContent>

            <CustomerID></CustomerID>

            <DriverID></DriverID>

            <DeliveryDate></DeliveryDate>

            <DeliveryTime></DeliveryTime>

            <Recipient></Recipient>

            <SignatureCode></SignatureCode>

            <Delivery>

                  <Invoice></Invoice>

            </Delivery>

      </DocContent>

</jDispatchResponse>

 

 

 

jdispatchResponse

 

<jDispatchResponse>

     <DocHeader>

           <DocID></DocID>

           <DocType></DocType>

           <SenderID></SenderID>

           <apiKey></apiKey>

           <env></env>

           <Date></Date>

     </DocHeader>

     <DocContent>

<Status></Status>

<Code></Code>

<Message></Message>

     </DocContent>

</jDispatchResponse>

 

 

deliveryResponse

 

<jDispatchResponse>

      <DocHeader>

            <DocID></DocID>

            <DocType>deliveryResponse</DocType>

            <SenderID></SenderID>

            <apiKey></apiKey>

            <env></env>

            <Date></Date>

      </DocHeader>

      <DocContent>

<Status></Status>

<Code></Code>

<Message></Message>

      </DocContent>

</jDispatchResponse>

 

 

 

6      Appendix B

6.1    JSON Request Examples

deliveryDispatch

 

{

   "jDispatchRequest": {

      "DocHeader": {

         "DocID": "",

         "DocType": "deliveryDispatch",

         "SenderID": "",

         "apiKey": "",

         "env": "",

         "Date": ""

      },

      "DocContent": {

         "DeliveryCount": "",

         "Delivery": {

            "BranchID": "",

            "Status": "",

            "OrderDate": "",

            "CustomerID": "",

            "DriverID": "",

            "Invoice": "",

            "SubTotal": "",

            "Taxes": "",

            "Freight": "",

            "OtherChg": "",

            "DeliveryType": "",

            "Total": "",

            "Items": {

               "LineCode": "",

               "PartNumber": "",

               "Qty": "",

               "Price": "",

               "Discount": "",

               "Extend": ""

            },

            "OverrideAddress": {

               "Address": "",

               "City": "",

               "Province": "",

               "PostalCode": ""

            },

            "SignatureRequired": ""

         }

      }

   }

}

 

 

 

jdCustomer

{

   "jDispatchRequest": {

      "DocHeader": {

         "DocID": "",

         "DocType": "jdCustomer",

         "SenderID": "",

         "apiKey": "",

         "env": "",

         "Date": ""

      },

      "DocContent": {

         "BranchID": "",

         "Customer": {

            "Status": "",

            "CustomerID": "",

            "CustomerName": "",

            "Address": "",

            "City": "",

            "Province": "",

            "Country": "",

            "PhoneNumber": ""

         }

      }

   }

}

 

 

 

 

 

jdDriver

{

   "jDispatchRequest": {

      "DocHeader": {

         "DocID": "",

         "DocType": "jdDriver",

         "SenderID": "",

         "apiKey": "",

         "env": "",

         "Date": ""

      },

      "DocContent": {

         "Driver": {

            "Status": "",

            "BranchID": "",

            "DriverID": "",

            "DriverName": ""

         }

      }

   }

}

6.2    XML Response Transaction Examples

 

deliveryReceipt

 

{

   "jDispatchResponse": {

      "DocHeader": {

         "DocID": "",

         "DocType": "deliveryReceipt",

         "SenderID": "",

         "apiKey": "",

         "env": "",

         "Date": ""

      },

      "DocContent": {

         "CustomerID": "",

         "DriverID": "",

         "DeliveryDate": "",

         "DeliveryTime": "",

         "Recipient": "",

         "SignatureCode": "",

         "Delivery": {

            "Invoice": ""

         }

      }

   }

}

 

 

jdispatchResponse

 

{

   "jDispatchResponse": {

      "DocHeader": {

         "DocID": "",

         "DocType": "",

         "SenderID": "",

         "apiKey": "",

         "env": "",

         "Date": ""

      },

      "DocContent": {

         "Status": "",

         "Code": "",

         "Message": ""

      }

   }

}

 

 

deliveryReceipt

 

{

   "jDispatchResponse": {

      "DocHeader": {

         "DocID": "",

         "DocType": "deliveryResponse",

         "SenderID": "",

         "apiKey": "",

         "env": "",

         "Date": ""

      },

      "DocContent": {

      "DocContent": {

         "Status": "",

         "Code": "",

         "Message": ""

      }

   }

}

 

 

7      Appendix C

7.1    Status Codes

The status codes below are used to report the status of requests sent to this API.

 

2XX - Success of some kind

4XX - Error occurred in client’s part

5XX - Error occurred in server’s part

 

Status Code

Description

200

OK

400

Bad request

401

Authentication failure

403

Improper Data Format

404

Invalid Document Type Passed

405

Invalid Document Structure

412

Condition Failed

413

Request Entity Too Large

460

dispatchReceipt failed – Resend requested

465

dispatchReceipt failed – Resend not required

500

Internal Server Error

501

Not Implemented

503

Service Unavailable