Saia Web Services require secure information. You must be registered for Saia Secure and the account must have
a valid Contact Name, Local Phone Number. To register please by click the Login/Register Link on the top right of the Saia Home Page
and complete required information. To update account information please login to SaiaSecure and click the
Update Account Information link on the SaiaSecure home page.
All Request Documents have a required element called <TestMode>. TestMode must be set to Yes, this allows the exchange of generic information
for testing applications without issuing live data. Once testing is complete switch to No to initiate live data.
All Response Documents contain 4 error handling elements <Code>, <Element>, <Fault>,
and <Message>. Verification is required for each response. If the <Code> element contains a value
then an error has occurred. Proceed to other elements for description information about the specific failure.
All Elements are case sensitive to ensure compatibility with existing programming languages. If casing is not
correct the system will assume the element is missing and the action will fail during validation.
Adding the <?xml version="1.0" encoding="utf-8"?> prefix on the first line of the XML document is not mandatory
within our Request Documents, however it is common practice. All Response XML Documents will contain this prefix.
When programming against Saia's XML Documents do not access the elements based on their position
within the document. Access the element by name only. Saia reserves the right to
add new elements into this document at any location based on customer requests and
requirements.
Below is a list of the URL links used to access Saia's Shipment Web Service.
Below is a list of the elements and descriptions used to build a <GetByPONumber> document/object to request Shipment tracing information.
Note: This web service will return the most recent shipment in our system for the specified Purchase Order Number, Origin and Destination Zipcode.
Below is a list of the elements and descriptions used to read a <Response> document/object returned by
our system to verify your request document/object has been processed successfully and retrieve
the shipment tracing information you need.
Element / Parameter
| Type
| Required
| MaxLength
| Description
|
<Response> |
Array |
Yes |
1 |
Document Name |
<Code> |
String |
Yes |
3 |
See the Error Code Documentation at the end of this document |
<Element> |
String |
Yes |
No Limit |
Name of the Element associated with an Error Code when available |
<Fault> |
String |
Yes |
1 |
Fault of the Error Code
S = Server (Web Support must Correct)
C = Client (Customer must Correct)
|
<Message> |
String |
Yes |
No Limit |
Description of the Error Code returned |
<TestMode> |
String |
Yes |
1 |
Testing Flag
Y = Yes (Testing)
N = No (Not Testing)
|
<ProNumber> |
Decimal |
Yes |
11, 0 |
Saia Pro Number |
<CurrentStatus> |
String |
Yes |
40 |
Current Status
P/U manifest
Arrived at origin terminal
Loaded on trailer
Linehaul
Break
Dock manifest
Arrived at destination terminal
Arrived at exchange terminal
Arrived at Breakbulk Terminal
Scheduled for delivery
Tendered to partner
En route via partner
Trailer at customer location
Customer loading trailer
Departed from Terminal
Out for delivery
Delivered
Delivered to partner
Cleared
Rev. only
Void
Delete
|
<BLNumber> |
String |
|
20 |
Customer Bill of Lading Number |
<PONumber> |
String |
|
20 |
Customer Purchase Order Number |
<ShipperNumber> |
String |
|
20 |
Shipper Reference Number |
<ReferenceNumber> |
String |
|
20 |
Customer Reference Number |
<MasterProNumber> |
Decimal |
|
11, 0 |
Master Saia Pro Number
Note: This number is only returned if the Pro Number is attached to another
Master Pro Number.
|
<DriverNumber> |
Decimal |
|
7, 0 |
Driver Number |
<TrailerNumber> |
String |
|
15 |
Trailer Number |
<OnTime> |
String |
Yes |
1 |
On Time Delivery of Shipment
Y = Yes
N = No
Note: This information only applies after a shipment has been delivered. <CurrentStatus>
will contain a value of Delivered.
|
<LatePickup> |
String |
Yes |
1 |
Late Pickup of Shipment
Y = Yes
N = No
|
<Accessorials> |
String |
Yes |
1 |
Accessorials Applied to Shipment
Y = Yes
N = No
|
<Hazardous> |
String |
Yes |
1 |
Hazardous Freight on Shipment
Y = Yes
N = No
|
<Appointment> |
String |
Yes |
1 |
Appointment Set for Shipment
Y = Yes
N = No
|
<DeliveryAppointmentDateTime> |
String |
Yes |
19 |
Delivery Appointment Date & Time
Format: YYYY-MM-DD HH:MM:SS, Local Date & 24-Hour Local Time
|
<DeliveryDateTime> |
String |
Yes |
19 |
Delivery Date & Time
Format: YYYY-MM-DD HH:MM:SS, Local Date & 24-Hour Local Time
|
<DeliveryDateTimeArrive> |
String |
Yes |
19 |
Delivery Date & Time Arrive
Format: YYYY-MM-DD HH:MM:SS, Local Date & 24-Hour Local Time
|
<DeliveryDateTimeDepart> |
String |
Yes |
19 |
Delivery Date & Time Depart
Format: YYYY-MM-DD HH:MM:SS, Local Date & 24-Hour Local Time
|
<ActualDeliveryDays> |
Decimal |
Yes |
3, 0 |
Actual Delivery Days
Note: This information only applies after a shipment has been delivered. <CurrentStatus>
will contain a value of Delivered.
|
<StandardServiceDays> |
Decimal |
Yes |
3, 0 |
Standard Service Days
Note: This information will only be returned if the shipment specified is a Direct Point
within our service coverage area.
|
<ExpectedDeliveryDate> |
String |
Yes |
10 |
ExpectedDeliveryDate
Format: YYYY-MM-DD, Local Date
Note: This information will only be returned if the shipment specified is a Direct Point
within our service coverage area.
|
<Pieces> |
Decimal |
Yes |
5, 0 |
Total Pieces |
<ShippingWeight> |
Decimal |
Yes |
7, 0 |
Total Shipping Weight |
<BillingTerms> |
String |
Yes |
3 |
Billing Terms
COL = Collect
CIA = Cash paid in advance
CP = Collect (forced from prepaid)
DPO = Delivery purposes only
DRC = Driver to collect freight charges
NOC = No charge
PPD = Prepaid
PC = Prepaid (forced from collect)
RC = Collect revenue bill
RP = Prepaid revenue bill
|
<PickupDateTime> |
String |
Yes |
19 |
Pickup Date & Time
Format: YYYY-MM-DD HH:MM:SS, Local Date & 24-Hour Local Time
|
<OriginTerminal> |
String |
Yes |
5 |
Origin Terminal ID
|
<DestinationTerminal> |
String |
Yes |
5 |
Destination Terminal ID
|
<Signature> |
String |
Yes |
30 |
Signature
|
<CargoControlNumber> |
String |
Yes |
20 |
Cargo Control Number
|
<Rates> |
String |
Yes |
1 |
Rates Available
Y = Rates Available
N = Freight Bill has not been Rated
C = Due to confidential agreement, disclosure
of third party information is denied
per customer request
A = Freight Bill does not have your Account
Number, disclosure of third party
information is denied
|
<Tariff> |
String |
Yes |
10 |
Rate Tariff
|
<NetCharges> |
Decimal |
Yes |
7, 2 |
Net Charges
Note: This amount is the total invoice charges for a shipment.
|
<CODAmount> |
Decimal |
|
9, 2 |
COD Amount
|
<DiscountAmount> |
Decimal |
Yes |
7, 2 |
Discount Amount
|
<FreightCharges> |
Decimal |
Yes |
7, 2 |
Freight Charges
Note: This amount is not the total invoice charges for a shipment, instead this
will give you the total freight charges including the fuel surcharge prior to any
accessorials added or discount applied.
|
<WeightedAverageFreightClass> |
Decimal |
Yes |
4, 1 |
Weighted Average Freight Class
|
<Shipper> |
Array |
Yes |
1 |
Shipper information
|
<AccountNumber> |
String |
Yes |
7 |
Account Number
|
<Name> |
String |
Yes |
30 |
Name
|
<Address1> |
String |
Yes |
30 |
Address 1
|
<Address2> |
String |
|
30 |
Address 2
|
<City> |
String |
Yes |
20 |
City
|
<State> |
String |
Yes |
2 |
State
|
<Zipcode> |
String |
Yes |
6 |
Zipcode
|
</Shipper> |
Array |
Yes |
1 |
|
<Consignee> |
Array |
Yes |
1 |
Consignee information
|
<AccountNumber> |
String |
Yes |
7 |
Account Number
|
<Name> |
String |
Yes |
30 |
Name
|
<Address1> |
String |
Yes |
30 |
Address 1
|
<Address2> |
String |
|
30 |
Address 2
|
<City> |
String |
Yes |
20 |
City
|
<State> |
String |
Yes |
2 |
State
|
<Zipcode> |
String |
Yes |
6 |
Zipcode
|
</Consignee> |
Array |
Yes |
1 |
|
<ThirdParty> |
Array |
Yes |
1 |
Third Party / Bill-To information
|
<AccountNumber> |
String |
Yes |
7 |
Account Number
|
<Name> |
String |
Yes |
30 |
Name
|
<Address1> |
String |
Yes |
30 |
Address 1
|
<Address2> |
String |
|
30 |
Address 2
|
<City> |
String |
Yes |
20 |
City
|
<State> |
String |
Yes |
2 |
State
|
<Zipcode> |
String |
Yes |
6 |
Zipcode
|
</ThirdParty> |
Array |
Yes |
1 |
|
<MailTo> |
Array |
Yes |
1 |
Mail To information
Note: The shipment invoice will be mailed to this location.
|
<Name> |
String |
Yes |
30 |
Name
|
<Address1> |
String |
Yes |
30 |
Address 1
|
<Address2> |
String |
|
30 |
Address 2
|
<City> |
String |
Yes |
20 |
City
|
<State> |
String |
Yes |
2 |
State
|
<Zipcode> |
String |
Yes |
6 |
Zipcode
|
</MailTo> |
Array |
Yes |
1 |
|
<FromPartner> |
Array |
Yes |
1 |
From Partner information
|
<SCAC> |
String |
Yes |
6 |
SCAC (Standard Carrier Alpha Code)
|
<Name> |
String |
Yes |
30 |
Name
|
<Number> |
String |
Yes |
15 |
Partner Freight Bill Number
|
<ExchangeTerminal> |
String |
Yes |
5 |
Saia Exchange Terminal
|
</FromPartner> |
Array |
Yes |
1 |
|
<ToPartner> |
Array |
Yes |
1 |
To Partner information
|
<SCAC> |
String |
Yes |
6 |
SCAC (Standard Carrier Alpha Code)
|
<Name> |
String |
Yes |
30 |
Name
|
<Number> |
String |
Yes |
15 |
Partner Freight Bill Number
|
<ExchangeTerminal> |
String |
Yes |
5 |
Saia Exchange Terminal
|
</ToPartner> |
Array |
Yes |
1 |
|
<Details> |
Array |
Yes |
1 |
Collection of Detail Items |
<DetailItem> |
Array |
Yes |
No Limit |
Detail Item describing the specific shipment details.
|
<Pieces> |
Decimal |
Yes |
5, 0 |
Pieces |
<Code> |
String |
|
6 |
Detail Code
This element can contain NMFC Class Codes:
Please contact your Traffic Department concerning NMFC class codes.
50
55
60
65
70
77.5
85
92.5
100
110
125
150
175
200
250
300
400
500
And it can also contain other Saia detail codes describing the data on that line, below are
a few codes that you can use to retrieve additional customer reference numbers:
XBL = Extra Bill of Lading Number
XPO = Extra Purchase Order Number
XSN = Extra Shipper Reference Number
XREF = Extra Reference Number
|
<Hazardous> |
String |
|
1 |
Hazardous
Y = Yes
N = No
|
<Package> |
String |
|
2 |
Package
BD = BUNDLES
BG = BAGS
BK = BUCKETS
BL = BALES
BR = BARRELS
BS = BASKETS
BX = BOXES
CN = CANS
CO = COILS
CR = CRATES
CS = CASES
CT = CARTONS
CY = CYLINDERS
DR = DRUMS
EA = EACH
EN = ENVELOPES
JT = JOINTS
KT = KITS
LS = LOOSE
PC = PIECES
PK = PACKAGES
PL = PAILS
PT = PALLETS
RE = REELS
RL = ROLLS
SK = SKIDS
SP = SPOOLS
SW = SHRINK WRAPPED PALLET
TB = TOTE BINS
TK = TANKS
TU = TUBES
UT = UNITS
|
<Description> |
String |
Yes |
35 |
Description |
<Weight> |
Decimal |
Yes |
6, 0 |
Weight in LBS |
<Rate> |
Decimal |
Yes |
5, 2 |
Rate |
<Amount> |
Decimal |
Yes |
7, 2 |
Amount |
</DetailItem> |
Array |
Yes |
No Limit |
|
</Details> |
Array |
Yes |
1 |
|
<History> |
Array |
Yes |
1 |
Collection of History Items |
<HistoryItem> |
Array |
Yes |
No Limit |
History Item describing the specific shipment history.
|
<ActivityDateTime> |
String |
Yes |
19 |
Activity Date & Time
Format: YYYY-MM-DD HH:MM:SS, Local Date & 24-Hour Local Time
Note: In some cases the Time may not be available, it will be set to 00:00:00.
|
<Activity> |
String |
Yes |
100 |
Activity Description
|
<City> |
String |
Yes |
20 |
Location City of the Activity
|
<State> |
String |
Yes |
2 |
Location State of the Activity
|
</HistoryItem> |
Array |
Yes |
No Limit |
|
</History> |
Array |
Yes |
1 |
|
</Response> |
Array |
Yes |
1 |
|
To add additional internet security use the "HTTPS://" prefix instead of "HTTP://". This will encrypt and
decrypt each request between systems using standard SSL Certificates.
Below are a few samples of programming with a general overview of each interface.
Below is a general overview of Saia Error <Code>'s with descriptions to verify successful completion of requests.
<Code> |
Description |
IXD |
Invalid XML Document
The XML Document received was not formatted properly. The <Message> returned will contain additional information
about the specific issue encountered. Please check that all required elements and casing are formated exactly
as defined in the document specifications above. Also verify that proper start and ending element tags are correct.
|
IMC |
Invalid Method Called
The XML Request Document received contains a root element method name which is not valid. Please verify the
name of the method and proper casing.
|
IED |
Invalid Element Data
The element received contains invalid data. This error is returned when an element is required to contain
a specific set of information. Such as Yes or No, or Prepaid or Collect.
|
IEL |
Invalid Element Data Length
The element received contains data that does not meet the required length specifications.
If an element is
defined as a String with max-length of "10", you cannot exceed 10 characters.
If an element is defined as
a Decimal with a max-length of "4, 2", you cannot exceed 4 total digits with 2 of them being after the decimal point.
If an element is defined as an Array with max-length of "5", you cannot pass more than 5 elements within the array.
|
IEF |
Invalid Element Data Format
The element received contains data that does not meet the required format. For example, all dates are in YYYY-MM-DD
which translates to a 4 digit year, a 2 digit month, and a 2 digit day delimited with "-". All times are in HH:MM:SS format which
translates to a 2 digit hour, a 2 digit minute, and a 2 digit second in 24-hour format delimited with ":".
|
IER |
Invalid Element Data Range
The element received contains data that does not meet the required range. (Range 1 to 10 = 1 lowest and 10 highest)
|
DNF |
Data Not Found
The element received contains data which was not found in our system.
|
MRE |
Missing Required Element
The XML Document received is missing a required element.
|
USE |
Unexpected Server Exception
Saia's system has encountered an unexpected error while processing your request. Web Support has been
notified with the details of this issue and will have it corrected as soon as possible.
|
U01 |
UserID and Password Incorrect
|
U02 |
UserID is Disabled
The specified UserID is currently listed as disabled. For more information please contact [email protected]
|
U03 |
UserID is Currently Being Setup
The specified UserID is currently being setup. This process generally takes up to 2 business days to complete.
|
U04 |
Access Denied for Account Number Specified
The UserID supplied does not have access to the account number specified. Please contact your local Saia Sales Representative
for more information.
|
U05 |
UserID is Missing Information
UserID is missing valid Contact Name, Local Phone Number, or E-mail Address.
To update contact information please login to Saia Secure and click the Update Account Information
displayed at the bottom of all webpages.
|
U06 |
Account Number Specified is Listed as Inactive
The account number specified is currently listed as inactive, please contact your local Saia Sales Representative.
|
U07 |
Account Number Specified Cannot be Used for this Function
Please contact [email protected] for more information.
|
U08 |
Web Service Disabled
Web Service requests have been disabled for the specified UserID. Please contact
[email protected] for more information.
|
Below is a list of external websites which contain more information on creating and consuming Web Services.