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 Pickup Web Service.


Request Document - Pickup <Create>

Below is a list of the elements and descriptions used to build a <Create> document/object to schedule a pickup request.

NOTE: Group all shipments together and only submit 1 pickup request per day for each pickup location.

Element / Parameter Type Required MaxLength Description
<Create> 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>.

     <AccountNumber> String Yes 7 Saia Account Number
     <CompanyName> String   30 Pickup Location Company Name

Note: If the location for the Pickup is the same as the location information on the Account Number specified you can leave Company Name, Street, Box, City, State, and Zipcode empty. They will auto-fill from the Account Number.
     <Street> String   30 Pickup Location Street Address 1
     <Box> String   30 Pickup Location Street Address 2 or PO Box
     <City> String   20 Pickup Location City
     <State> String   2 Pickup Location State
     <Zipcode> String   6 Pickup Location Zipcode
     <ContactName> String Yes 30 Pickup Location Contact Name
     <ContactPhone> Decimal Yes 10, 0 Pickup Location Contact Phone
     <PickupDate> String Yes 10 Schedule Date for Pickup

Format: YYYY-MM-DD, Local Date
     <ReadyTime> String Yes 8 Time the shipment(s) will be Ready for Pickup

Format: HH:MM:SS, 24-Hour Local Time
     <CloseTime> String Yes 8 Time the Pickup Location will be Closed

Format: HH:MM:SS, 24-Hour Local Time
     <SpecialInstructions> String   120 Supply any Special Pickup Instructions for the Driver regarding your Pickup
     <Details> Array Yes 1 Collection of Detail Items
          <DetailItem> Array Yes No Limit Detail Item describing each shipment. Place each destination in a separate Detail Item
               <DestinationZipcode> String Yes 6 Destination Zipcode
               <DestinationCountry> String 2 Destination Country

US = United States (Default)
CN = Canada
MX = Mexico
               <Pieces> Decimal Yes 5, 0 Pieces
               <Package> String Yes 2 Package Type

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
               <Weight> Decimal Yes 7, 0 Weight in LBS
               <Freezable> String 1 Freezable Commodity
Y = Yes
N = No
Please click here to review freezable information. If this element is not specified then the default answer is No.
               <SaiaGuaranteed> String 2 Saia Guaranteed
12 = Guaranteed Delivery by Noon
5  = Guaranteed Delivery by 5 PM
          </DetailItem> Array Yes No Limit  
     </Details> Array Yes 1  
</Create> Array Yes 1  




Response Document - Pickup <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 a pickup request confirmation number.

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)
     <PickupNumber> Decimal Yes 7, 0 Pickup Confirmation Number
     <TotalPieces> Decimal Yes 7, 0 Total Pieces
     <TotalWeight> Decimal Yes 9, 0 Total Weight
     <NextBusinessDate> String   10 Next Business Date

This element is only populated when a <Code>S04</Code> is returned. For this issue you will need to re-submit your request with the <PickupDate> set to the <NextBusinessDate> in order for the Pickup to complete processing, as Saia will be unable to make the original Pickup Date, Ready Time, and Close Time requested.
     <PickupTerminal> Array Yes 1 Details about the Terminal which will Pickup your shipment(s)
          <ID> String Yes 5 Saia Terminal ID
          <Name> String Yes 30 Terminal Name
          <Manager> String Yes 30 Terminal Manager
          <Address1> String Yes 30 Terminal Address 1
          <Address2> String Yes 30 Terminal Address 2
          <City> String Yes 20 Terminal City
          <State> String Yes 2 Terminal State
          <Zipcode> String Yes 6 Terminal Zipcode
          <CityDispatchPhone> Decimal Yes 10, 0 City Dispatch Phone Number
          <CustomerServicePhone> Decimal Yes 10, 0 Customer Service Phone Number
          <TollFreePhone> Decimal Yes 10, 0 Terminal Toll Free Phone Number
          <Fax> Decimal Yes 10, 0 Terminal Fax Number
     </PickupTerminal> 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 websupport@saia.com
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 websupport@saia.com for more information.
U08 Web Service Disabled

Web Service requests have been disabled for the specified UserID. Please contact websupport@saia.com for more information.

The following codes are application specific, descriptions will be different for each application.

D01 Due to forecast weather conditions, only the origin terminal can process a pick-up request for the specified freezable shipment.

Note: To continue and create a pickup request with the remaining shipments please resubmit the pick-up without including the freezable shipment listed in the <Element> tag. Please contact the origin terminal for more information about shipping freezable commodities.
S01 Pickup City and State not within our direct coverage area
S02 Pickup Zipcode not within our direct coverage area
S03 Pickup City, State, and Zipcode do not match
S04 Due to time constraints with your submit and close time this pick-up must be scheduled for the following Business Day

Note1: In order for your pickup to complete successfully you must re-submit your request using the date stored in <NextBusinessDate>.
S05 Pickup Date cannot be a past date

The date or time specified has already passed, you must specify a future date and time.
S06 Close Time cannot be earlier than Ready Time

Note: Readytime must be greater than 90 minutes before closing time.
S07 Pickup Date cannot extend more than 30 days in the future.




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 its sole discretion. If any terms or conditions are failed to be followed, results constitute grounds for immediate account deactivation.