Web Services




Setup Requirements

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.



General Programming Overview

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.



Web Service URL (Uniform Resource Locator)

Below is a list of the URL links used to access Saia's Shipment Web Service.




Request Document - Shipment <GetByPartnerNumber>

Below is a list of the elements and descriptions used to build a <GetByPartnerNumber> document/object to request Shipment tracing information.

Element / Parameter Type Required MaxLength Description
<GetByPartnerNumber> Array Yes 1 Document Name
     <UserID> String Yes 20 Saia Secure User ID
     <Password> String Yes 14 Saia Secure Password
     <TestMode> String Yes 1 Testing Flag
Y = Yes (Testing)

N = No (Not Testing)

Note: This element is used to verify your request document is formatted correctly and contains valid data, once testing is complete switch to <TestMode>N</TestMode>.

     <PartnerSCAC> String Yes 6 Partner SCAC (Standard Carrier Alpha Code)
     <PartnerNumber> String Yes 15 Partner Freight Bill Number
</GetByPartnerNumber> Array Yes 1  




Response Document - Shipment <Response>

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  




Secure Sockets Layer (HTTPS/SSL) optional

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.



Sample Application Code

Below are a few samples of programming with a general overview of each interface.



Visual Basic (ASP.NET) XML/HTTP/POST SOAP XML/SOAP
C# (ASP.NET)
XML/HTTP/POST SOAP XML/SOAP
Active Server Pages (ASP & VBScript)
XML/HTTP/POST   XML/SOAP



Error Code Documentation

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.




Additional Web Service Documentation Resources

Below is a list of external websites which contain more information on creating and consuming Web Services.




Disclaimer:

Saia Inc. authorizes the use of these Web Services solely to facilitate the exchange of information between Saia and the customer. Unauthorized use of Saia, Inc. Web Services and information is strictly prohibited. All services may be used for lawful purposes only. No warranty, express or implied, is given relating to the accuracy of content and Saia, Inc. does not accept any liability for error or omission.

Saia Inc. reserves the right to refuse or cancel these services at it’s sole discretion. If any terms or conditions are failed to be followed, results constitute grounds for immediate account deactivation.