What is Web Service Call
EFM use SOAP Web Service Calls which is a method of communicating to an application and the data it has available.
Why Use Web Service Calls
The purpose of these Web Services is to allow you to create/modify/review your existing order processing system to extend its functionality to include a despatching component for your orders. It is assumed that the data required for creating a consignment will already exists in some capacity within one of your systems and as a result this data can be formatted for the purpose of transitioning order data into consignment data.
Web Service WSDL
Our Web Service Definition Language(WSDL) provides a complete overview of all calls that can be made through our SOAP Web Service, as well as the requirements of each call.7
http://support-ws.azurewebsites.net/Data/ChainIT/DataService.svc?wsdl
Tip
Use the WSDL and SoapUI to test your own Web Service Calls
- Download & Install SoapUI: https://www.soapui.org/downloads/soapui.html
- Open SoapUI
- Click “SOAP”: Create your own SOAP Web Service Calls From the WSDL provided.
- Enter the WSDL URL above.
*SoapUI Is not required to perform Web Service Calls, however this can aid significantly in interpreting the WSDL and understanding the information requirements of each call.
Web Service Schema
Below is an XSD Schema which will inform you of the requirements of every Call
http://support-ws.azurewebsites.net/Data/ChainIT/DataService.svc?xsd=xsd0
Making a Web Service Call
UAT Endpoint: https://bau-uat-ws.azurewebsites.net/Data/ChainIT/DataService.svc
Production Endpoint: https://enodo-ws.azurewebsites.net/Data/ChainIT/DataService.svc
Headers:
- Key: Content-Type Value: text/xml
- Key: SoapAction Value: <Insert Required SOAPAction from WSDL> (e.g. http://www.opensys.com.au/ChainIT/4.0/ChainITDataServices/IChainITService/Login)
Body:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cha="http://www.opensys.com.au/ChainIT/4.0/ChainITDataServices"> <soapenv:Header/> <soapenv:Body> <!-- Requirements of each soapAction can be found http://support-ws.azurewebsites.net/Data/ChainIT/DataService.svc?xsd=xsd0 --> <!-- Example XSD Schema available for Login <xs:element name="Login"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" name="userName" nillable="true" type="xs:string"/> <xs:element minOccurs="0" name="password" nillable="true" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> Example XSD Schema available for Login --> <!--Below Content Dependent on soapAction Selected --> <cha:Login> <!--Optional:--> <cha:userName>test@oneflo</cha:userName> <!--Optional:--> <cha:password>efm123</cha:password> </cha:Login> </soapenv:Body> </soapenv:Envelope>
Web Service Functions/Calls
Function List
FunctionName |
CancelConsignment |
ConsignmentTrackingSearch |
ConsignmentTrackingSearchByDistributorByAccount |
CreateAccount |
CreateConsolidatedBookings |
FetchAddressByID |
FetchBookingsByAccountAndDate |
FetchConsignmentTracking |
FetchConsignmentTrackingDirectAccess |
FindLocation |
GenerateDailyManifests |
GenerateLabels |
GenerateManifest |
GetChargeQuote |
GetChargeQuote2 |
GetChargeQuote3 |
GetChargeQuote4 |
GetChargeQuote5 |
GetLocationsByPostCode |
GetStandardServices |
Login |
Logout |
ReleaseAllConsignments |
ReleaseSelectConsignments |
ReleaseSingleConsignment |
SaveAddress |
SaveAndBookConsignment |
SaveBookAndManifestConsignment |
SaveConsignment |
SavePickupRequest |
SavepickupRequestFastTest |
ValidateLocation |
Function Explanation
CancelConsignments()
This process has implemented to allow consignments to be cancelled if a consignment has been saved with incorrect data or if the consignment is no longer required. The function requires a valid Session Key and the ConsignmentID of an un-manifested consignment. If the cancellation is successful the function will return a Boolean value.**
CreateConsolidatedBookings()
In some circumstances it may be required to auto book all consignments, particularly for return consignments. This function requires and valid Session Key and a valid DateTime for the pickup date. The function will return a Booking Notification object that will contain a ConfirmationID if successful or ResponseError message if the booking has failed.
FetchAddressByID()
Addresses are stored in the database as records with a unique ID. To increase efficiency the platform is designed to store the AddressID of an address record rather than the entire address data against a consignment record. As a result of this design decision it is a requirement that the address data be retrievable if the AddressID is known. In some scenarios the complete dataset of a consignment record will need to be known or displayed. A consignment record (returned as a consignment object) contains a receiver and sender property, where the value of these properties is an AddressID. By calling this function and passing the AddressID the complete address data becomes available.
FetchBookingsByAccountAndDate()
It may be necessary to view all bookings requested for a specific date. This function takes a Session Key and a DateTime to filter all bookings that match. The function returns Booking Notification objects that includes summary booking details and the ConfirmationID.
GenerateDailyManifests()
This is the function that is used to generate the manifest. The function finds all released consignments applicable to the Session object and flags them for manifesting. The result is that the EDI Manifest Data process occurs and the system generates a printable pdf manifest.
GenerateLabels()
Each consignment record in the database is stored with a Connote value which is the prefix and sequence value prescribed by the carrier applicable to the consignment. The consignment is stored as a record with a unique ConsignmentID. This function is used to request a pdf byte string that represents the deconstructed label(s) for each consignment. The server side function creates the label format based on a prescribed label template. This function requires a Session object to be passed as the first parameter for security purposes. A label can be re-generated at any point in time provided the Session object is valid and the ConsignmentID is associated with the AccountID from the Session Object.
GetChargeQuote()
To retrieve a quote a list of parameters are passed for this function and a ServicePricing object is returned. This function uses the Locality and Postcode of the Sender and the Receiver coupled with a serviceList (returned from the function GetStandardServices) and the specific details such as items, weight and volume. The server side function matches the parameters against the AccountID’s rate card to determine the available services and the calculated cost.
GetStandardServices()
For quoting a consignment where the serviceList is unknown (required for GetChargeQuote function), this function returns a ServiceLookup object. The values returned in this object are the details of any service that has been configured for consigning and is based on the details of the Session object passed as a parameter. In some scenarios the quotation may not be required. This function can be used to populate an input field of available services and the service code selected as input can be passed as the Service property of the Consignment Object.
Login()
A majority of the functions listed in this document require a Session object be passed as the first parameter. This is a security principle that has been maintained across all functions that return customer sensitive data. Once a successful call has been made to the function then the Session object will contain a validated Session Key. This Key remains valid for 24 Hours and the DateTime of validity is stipulated in the Expires property.
Logout()
This functions exists to ensure that the implementation of Web Services can be controlled by the user.
ReleaseAllConsignments()
This function is required to allow for the release of all consignments. This function is a prerequisite task that must be called prior to generating the daily manifest. It takes a Session object, a Boolean value for placing bookings automatically for all consignments and a booelan value for generating the manifest.
SaveAddress()
A property required for creating a Consignment object is the Sender and Receiver AddressID. The platform has been designed in such a way that each address record is given a unique identifier and this identifier is stored against the consignment record. To maximise the efficiency of the platform, when a new consignment is to be created a request can be made to save a new address and if a record exists in the database that matches the unique combination of the address line, state, suburb and postcode then the existing identifier is returned. If there is no match a new record is created with the data parameters and the newly created identifier is returned.
SaveConsignment()
Once a Consignment object has been created containing the required parameters, including a validated SenderID, ReceiverID and ConsignmentItem object, this function can be called. Taking Consignment Object and Session object as input this function will generate a consignment record and the unique ConsignmentID is returned.
ValidateLocation()
A property of the Address object is the LocationID. This LocationID can be found by passing the State, Locality and Postcode of a location. If the combination of these properties exists, the matched LocationID is returned.
Function Definition (Table Format)
CancelConsignment
Element | Type | Optional / Mandatory | Length | Comments |
session | Session | M | Session object created using the Login method or by hard-coding the properties of a session object (See Request an API Key) | |
consignmentID | Long | M | 20 | This is the unique identification number applied to the consignment. Note** This number is different to the Consignment Note sequence. |
Example Body
ConsignmentTrackSearch
Element | Type | Optional / Mandatory | Length | Comments |
ValidSession | Session | M | Session object created using the Login method or by hard-coding the properties of a session object (See Request an API Key) | |
connoteReference | String | M | 20 | Use this string to query for consignments that match based on their references |
consignmentDate | DateTime | M | This value represents the date the consignment was created. |
Example Body
ConsignmentTrackingSearchByDistributorByAccount
Element | Type | Optional / Mandatory | Length | Comments |
ValidSession | Session | M | Session object created using the Login method or by hard-coding the properties of a session object (See Request an API Key) | |
connoteReference | String | M | 20 | Use this string to query for consignments that match based on their references |
consignmentDate | DateTime | M | This value represents the date the consignment was created. | |
distributorId | Int | M | 10 | This value represents your assigned distributor and can be found as a property in your Session object. |
accountId | Int | M | 10 | This value represents your assigned account id and can be found as a property in your Session object. |
Example Body
CreateConsolidatedBooking
Element | Type | Optional / Mandatory | Length | Comments |
ValidSession | Session | M | Session object created using the Login method or by hard-coding the properties of a session object (See Request an API Key) | |
pickupDate | string | M | 10 | Formatted as “YYYY-MM-DD”. |
Example Body
FetchAddressByID
Element | Type | Optional / Mandatory | Length | Comments |
ValidSession | Session | M | Session object created using the Login method or by hard-coding the properties of a session object (See Request an API Key) | |
AddressID | Int | M | 10 | AddressID object is returned object when calling the SaveAddress function |
Example Body
FetchBookingsByAccountAndDate
Element | Type | Optional / Mandatory | Length | Comments |
ValidSession | Session | M | Session object created using the Login method or by hard-coding the properties of a session object (See Request an API Key) | |
pickupDate | string | M | 10 | Formatted as “YYYY-MM-DD”. |
Example Body
FetchConsignmentTracking
Element | Type | Optional / Mandatory | Length | Comments |
ValidSession | Session | M | Session object created using the Login method or by hard-coding the properties of a session object (See Request an API Key) | |
ConsignmentID | Long | M | 20 | This is the unique identification number applied to the consignment. Note** This number is different to the Consignment Note sequence. |
Example Body
FindLocation
Element | Type | Optional / Mandatory | Length | Comments |
ValidSession | Session | M | Session object created using the Login method or by hard-coding the properties of a session object (See Request an API Key) | |
countryCode | String | M | 5 | Use this string to specific the country. E.g “AU” |
searchValue | DateTime | M | 50 | This value will search for suburbs or postcodes that contain the searchValue. |
Example Body
GenerateDailyManifests
Element | Type | Optional / Mandatory | Length | Comments |
ValidSession | Session | M | Session object created using the Login method or by hard-coding the properties of a session object (See Request an API Key) |
Example Body
GenerateLabels
Element | Type | Optional / Mandatory | Length | Comments |
ValidSession | Session | M | Session object created using the Login method or by hard-coding the properties of a session object (See Request an API Key) | |
ConsignmentID | Long | M | 20 | This is the unique identification number applied to the consignment. Note** This number is different to the Consignment Note sequence. |
Example Body
GenerateManifest
Element | Type | Optional / Mandatory | Length | Comments |
ValidSession | Session | M | Session object created using the Login method or by hard-coding the properties of a session object (See Request an API Key) | |
ManifestId | Int | M | 10 | This is the unique identifier for the manifest object create when a single, batch or all consignments were manifested. |
Example Body
GetChargeQuote3
Element | Type | Optional / Mandatory | Length | Comments |
ValidSession | Session | M | Session object created using the Login method or by hard-coding the properties of a session object (See Request an API Key) | |
shipperID | Int | M | 10 | This value represents your assigned account id and can be found as a property in your Session object. |
effectiveDate | String | M | 10 | Formatted as “YYYY-MM-DD”. |
senderLocation | String | M | 10 | Description of the suburb name, should be validated by using FindLocation to ensure correct spelling. |
senderPostcode | String | M | 4 | Postcode matching the senderLocation. Should be validated by using the FindLocation method to ensure validity. |
senderCountryCode | String | M | 5 | CountryCode matching the senderLocation. Should be validated by using the FindLocation method to ensure validity. |
senderIsResidential | Bool | O | 1 | Flags for whether the address is residential. Used to pre-empt residential pick up fees. |
receiverAddress1 | String | O | 30 | |
receiverAddress2 | String | O | 30 | |
receiverLocation | String | M | 10 | Description of the suburb name, should be validated by using FindLocation to ensure correct spelling. |
receiverPstcode | String | M | 4 | Postcode matching the receiverLocation. Should be validated by using the FindLocation method to ensure validity. |
receiverCountryCode | String | M | 5 | CountryCode matching the receiverLocation. Should be validated by using the FindLocation method to ensure validity. |
receiverIsResidential | Bool | O | 1 | Flags for whether the address is residential. Used to pre-empt residential delivery fees. |
Items | Short | M | 5 | Represents the total number of shipping items. |
Weight | Float | M | Sum of shipping items weight in kilograms. | |
Volume | Float | M | Sum of shipping items cubic metres. M3 | |
Time | Float | O | Estimated Travel Time. Recommended not to be used as inaccuracies in time calculation greatly vary quote results. | |
Distance | Float | O | Estimated Distance between sender and receiver locations. Recommended not to be used as inaccuracies in route taken greatly vary quote results. | |
serviceList | String | O | Concatenated string of active services for the current Session. Found by called GetStandardServices function. | |
containsDGs | String | M | Flags whether shipping items contain dangerous goods. Required for compliance and dangerous goods handling fee calculations. |
Example Body
GetChargeQuote5
Element | Type | Optional / Mandatory | Length | Comments |
ValidSession | Session | M | Session object created using the Login method or by hard-coding the properties of a session object (See Request an API Key) | |
shipperID | Int | M | 10 | This value represents your assigned account id and can be found as a property in your Session object. |
effectiveDate | String | M | 10 | Formatted as “YYYY-MM-DD”. |
senderLocation | String | M | 10 | Description of the suburb name, should be validated by using FindLocation to ensure correct spelling. |
senderPostcode | String | M | 4 | Postcode matching the senderLocation. Should be validated by using the FindLocation method to ensure validity. |
senderCountryCode | String | M | 5 | CountryCode matching the senderLocation. Should be validated by using the FindLocation method to ensure validity. |
senderIsResidential | Bool | O | 1 | Flags for whether the address is residential. Used to pre-empt residential pick up fees. |
receiverAddress1 | String | O | 30 | |
receiverAddress2 | String | O | 30 | |
receiverLocation | String | M | 10 | Description of the suburb name, should be validated by using FindLocation to ensure correct spelling. |
receiverPostcode | String | M | 4 | Postcode matching the receiverLocation. Should be validated by using the FindLocation method to ensure validity. |
receiverCountryCode | String | M | 5 | CountryCode matching the receiverLocation. Should be validated by using the FindLocation method to ensure validity. |
receiverIsResidential | Bool | O | 1 | Flags for whether the address is residential. Used to pre-empt residential delivery fees. |
Items | Short | M | 5 | Represents the total number of shipping items. |
Weight | Float | M | Sum of shipping items weight in kilograms. | |
Volume | Float | M | Sum of shipping items cubic metres. M3 | |
Time | Float | O | Estimated Travel Time. Recommended not to be used as inaccuracies in time calculation greatly vary quote results. | |
Distance | Float | O | Estimated Distance between sender and receiver locations. Recommended not to be used as inaccuracies in route taken greatly vary quote results. | |
serviceList | String | O | Concatenated string of active services for the current Session. Found by called GetStandardServices function. | |
userID | Int | M | Current user ID. Can be found from the id property of the Session object. | |
itemsList | ConsignmentItem | M | This is an array of ConsignmentItem objects that are being quoted. Allows for greater clarity of quoting. E.g Shipping Item Dimensions. | |
containsDGs | String | M | Flags whether shipping items contain dangerous goods. Required for compliance and dangerous goods handling fee calculations. |
Example Body
GetLocationsByPostcode
Element | Type | Optional / Mandatory | Length | Comments |
postcode | String | M | 4 | |
countryCode | String | M | 5 | Use this string to specific the country. E.g “AU” |
Example Body
GetStandardServices
Element | Type | Optional / Mandatory | Length | Comments |
ValidSession | Session | M | Session object created using the Login method or by hard-coding the properties of a session object (See Request an API Key) |
Example Body
Login
Element | Type | Optional / Mandatory | Length | Comments |
userName | String | M | 30 | |
password | String | M | 30 |
Example Body
Logout
Element | Type | Optional / Mandatory | Length | Comments |
ValidSession | Session | M | Session object created using the Login method or by hard-coding the properties of a session object (See Request an API Key) |
Example Body
ReleaseAllConsignments
Element | Type | Optional / Mandatory | Length | Comments |
ValidSession | Session | M | Session object created using the Login method or by hard-coding the properties of a session object (See Request an API Key) | |
releaseDate | String | M | Formatted as “YYYY-MM-DD”. | |
generateBookingRequests | Bool | O | Creates a booking for all Consignments. Not recommended for use. | |
generateManifests | Bool | O | Creates ManifestID for all consignments. Not recommended. Use specific Release Consignment functions. |
Example Body
ReleaseSelectConsignments
Element | Type | Optional / Mandatory | Length | Comments |
ValidSession | Session | M | Session object created using the Login method or by hard-coding the properties of a session object (See Request an API Key) | |
consignIDs | Long[] | M | An Array of ConsignmentID’s to be manifested. | |
generateBookingRequests | Bool | O | Creates a booking for all Consignments in the consignID array. Not recommended for use. | |
generateManifests | Bool | O | Creates ManifestID for all consignments in consignID array. |
Example Body
ReleaseSingleConsignment
Element | Type | Optional / Mandatory | Length | Comments |
ValidSession | Session | M | Session object created using the Login method or by hard-coding the properties of a session object (See Request an API Key) | |
consignIDs | Long | M | One ConsignmentID to be manifested. | |
generateBookingRequests | Bool | O | Creates a booking for the consignment in consignID parameter. Not recommended for use. | |
generateManifests | Bool | O | Creates ManifestID for consignment in consignID parameter. |
Example Body
SaveAddress
Element | Type | Optional / Mandatory | Length | Comments |
ValidSession | Session | M | Session object created using the Login method or by hard-coding the properties of a session object (See Request an API Key) | |
address | Address | M | Fully constructed Address object. |
Example Body
SaveAndBookConsignment
Element | Type | Optional / Mandatory | Length | Comments |
ValidSession | Session | M | Session object created using the Login method or by hard-coding the properties of a session object (See Request an API Key) | |
Consignment | Consignment | M | Fully constructed Consignment object. |
Example Body
SaveBookAndManifestConsignment
Element | Type | Optional / Mandatory | Length | Comments |
ValidSession | Session | M | Session object created using the Login method or by hard-coding the properties of a session object (See Request an API Key) | |
Consignment | Consignment | M | Fully constructed Consignment object. |
Example Body
SaveConsignment
Element | Type | Optional / Mandatory | Length | Comments |
ValidSession | Session | M | Session object created using the Login method or by hard-coding the properties of a session object (See Request an API Key) | |
Consignment | Consignment | M | Fully constructed Consignment object. |
Example Body
SavePickupRequest
Element | Type | Optional / Mandatory | Length | Comments |
ValidSession | Session | M | Session object created using the Login method or by hard-coding the properties of a session object (See Request an API Key) | |
pickupRequest | PickUpRequest | M | Fully constructed PickupRequest object. |
Example Body
ValidateLocation
Element | Type | Optional / Mandatory | Length | Comments |
Location | Location | M | Fully constructed Location object. |
Example Body
Object Property Definition (Table Format)
Address
Element | Type | Optional / Mandatory | Length | Comments |
AccountID | Int | M | 10 | This value represents your assigned account id and can be found as a property in your Session object. |
AddressID | Int | M | 10 | |
AddressLocation | Location | M | ||
ContactName | String | O | 25 | |
String | O | 50 | ||
Exception | SaveException | |||
ExtensionData | ExtensionDataObject | |||
Fax | String | O | 20 | |
Line1 | String | M | 30 | |
Line2 | String | O | 30 | |
Line3 | String | O | 30 | |
LocationDetails | Location | M | ||
Int | M | 10 | LocationID found in LocationDetails or AddressLocation property. | |
ModifiedBy | Int | O | 10 | |
Name | String | O | 25 | |
Phone | String | O | 25 | |
State | String | M | 50 | State string found in State property of LocationDetails or AddressLocation property. |
Suburb | Suburb string found in Locality property of LocationDetails or AddressLocation property. |
BookingNotification
Element | Type | Optional / Mandatory | Length | Comments |
Carrier | String | M | 20 | |
CarrierId | Int | M | 10 | DistributorID int found in DistributorID property of ServiceLookup object. Use GetStandardServices function to get ServiceLookup array. |
Confirmation | String | O | Do not populate | |
ExtensionData | ExtensionDatabject | O | Do not populate | |
Id | Int | |||
PickupDate | ||||
ResponseError | ||||
SenderName | ||||
TotalItems | ||||
TotalVolume | ||||
TotalWeight | ||||
TransferMethod | ||||
Transferred | ||||
Transfersettingid |
Carrier
CarrierId
Confirmation
ExtensionData
Id
PickupDate
ResponseError
SenderName
TotalItems
TotalVolume
TotalWeight
TransferMethod
Transferred
Transfersettingid
Consignment
- AccountID
- CloseAt
- ConsignmentDate
- ConsignmentID
- ConsignmentItems
- ConsignmentNote
- ConsignmentType
- ConsignmentSus
- ContainingConsignment
- DeliveryInstructions
- Description
- DistributorID
- DownloadID
- Exception
- Ext
- ExtensionData
- ExtraInfo
- Hours
- ModifiedBy
- NoItems
- OnForwarder
- PickupInstructions
- ReadyAt
- Receiver
- Reference
- References
- Released
- Sender
- Service
- SessionID
- SpecialInstructions
- Volume
- Weight
ConsignmentExt
- ConsignmentID
- CostCentre
- ExtensionData
- ThirdPartyAccount
- UserField1
- UserField2
- UserField3
- UserField4
- UserField5
ConsignmentItem
- Barcode
- ConsignmentID
- ConsignmentProduct
- Description
- ExchangeReturnable
- ExtensionData
- Height
- ItemNo
- ItemType
- Length
- ModifiedBy
- NoItems
- ProductID
- Reference
- Returnable
- Volume
- Weight
- Width
ConsolidatedConsignment
- ExtensionData
- Height
- Items
- ItemType
- Length
- Volume
- Weight
- Width
DangerousGood
- AggrigateQuantity
- ConsignmentID
- DangerousGoodsID
- DgClass
- Exception
- ExtensionData
- Group
- ID
- ItemNo
- LiquidVolume
- LiquidWeight
- Name
- PSN
- Quantity
- Recepticle
- SubRisk
- UnCode
- Units
- Volume
- Weight
Fee
- ExtensionData
- FeeCode
- FeeDescriptions
- FeeID
- FeeMinimum
- FeeName
- FeeRate
- Selected
- TaxCodeID
- TaxRate
- ValueField
Location
- CountryCode
- ExtensionData
- Locality
- LocationID
- Postcode
- State
- SuburbStatePostcode
Product
- AccountID
- Code
- DangerousGoods
- DangerousGoodsID
- Error
- ExtensionData
- Height
- IsActive
- Length
- Name
- ProductID
- Volume
- Weight
- Width
Reference
- ConsignmentReference
- ExtensionData
- RemoveReference
SaveException
- ExtensionData
- Message
- ModuleName
- ProcedureName
ServiceLookup
- BookingCutOffTime
- CanConsignFreight
- CanInsure
- CarrierService
- DisplayMember
- DistributorID
- ExtensionData
- InsuranceFees
- MaxItems
- MaxVolume
- MaxWeight
- UseExternalPriceCalculator
- ValueMember
- WebDescription
ServicePricing
- CarrierID
- CarrierName
- CarrierService
- ETA
- ExtensionData
- FeesCharge
- ID
- NetCharge
- RateID
- ServiceName
- ShipperService
- TaxCharge
- TotalCharge
- WebDescription
- ZoneFrom
- ZoneTo
Session
- AccountID
- DistributorID
- Expires
- ExtensionData
- Key
- UserID
Related articles
Filter by label
There are no items with the selected labels at this time.