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


Request Document - RateQuote <Create>

Below is a list of the elements and descriptions used to build a <Create> document/object to create a rate quote.

Note: These rates are provided for informational purposes only and are not a binding contract. Actual charges shall be determined by actual shipment characteristics and any Saia rules tariff applicable at time of shipment. Information must be accurate for a correct rate.

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>.
     <BillingTerms> String Yes 10 Billing Terms
Prepaid
Collect
     <AccountNumber> String Yes 7 Saia Account Number
     <Application> String Yes 10 Rate Application
Inbound
Outbound
ThirdParty
Note: This element is used to specify how rates are applied to quote.

Outbound requires destination city, state and zip code.

Inbound requires origin city, state and zip code.

Third Party requires both origin and destination city state and zip codes.
     <OriginCity> String See Note 20 Origin City

Note: Origin City, State, and Zipcode are required for Inbound and ThirdParty requests.
     <OriginState> String   2 Origin State
     <OriginZipcode> String   6 Origin Zipcode
     <DestinationCity> String See Note 20 Destination City

Note: Destination City, State, and Zipcode are required for Outbound and ThirdParty requests.
     <DestinationState> String   2 Destination State
     <DestinationZipcode> String   6 Destination Zipcode
     <CODAmount> Decimal   7, 2 COD Amount
     <Details> Array Yes 1 Collection of Detail Items
          <DetailItem> Array Yes 5 Detail Item describing the specific rate quote weight and class details.

Note: Saia's rate quote system currently only supports 5 detail items max.
               <Weight> Decimal Yes 7, 0 Weight in LBS
               <Class> String Yes 6 NMFC Class Code

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
          </DetailItem> Array Yes 5  
     </Details> Array Yes 1  
     <Accessorials> Array   1 Collection of Accessorial Items
          <AccessorialItem> Array Yes No Limit Accessorial Item describing the specific accessorial to be added to the rate quote.
               <Code> String Yes 50 Accessorial Code

Note: This list does not contain all Saia Standard Charges only the most frequently used. For all charges please refer to the current Saia 170 Rules & Special Charges. Please click the link for each code to view specific accessorial details.
SingleShipment
ArrivalNotice/Appointment
Marking/Tagging
LimitedAccessLocation
LiftgateService
InBond
InsidePickup
InsideDelivery
ExcessiveLength
Hazardous
ResidentialPickup
ResidentialDelivery
Sorting/Segregating
BorderCrossing
          </AccessorialItem> Array Yes No Limit  
     </Accessorials> Array   1  
</Create> Array Yes 1  




Response Document - RateQuote <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 rate quote 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)
     <QuoteNumber> Decimal Yes 7, 0 Rate Quote Number
     <TotalInvoice> Decimal Yes 7, 2 Total Invoice Amount
     <GuaranteeAmount> Decimal   7, 2 Guarantee Amount

Note: This is an additional amount you can optionally add to the Total Invoice amount and have the shipment Guaranteed. Please click here to read more about our Guaranteed Select services and exemptions. If this element returns a 0 (zero) then this shipment cannot be guaranteed.
     <Tariff> String Yes 10 Rating Tariff Name
     <DiscountPercent> Decimal Yes 5, 2 Customer Discount Percentage

Note: This percentage is based on the Account Number and Location information specified.
     <DiscountAmount> Decimal Yes 7, 2 Customer Discount Amount
     <ActualWeight> Decimal Yes 9, 0 Total Actual Weight
     <RatedWeight> Decimal Yes 9, 0 Total Rated Weight

Note: This weight is the Actual Weight plus any additional Deficit Weight.
     <EffectiveDate> String Yes 10 Effective Date

Format: YYYY-MM-DD, Local Date
     <ExpirationDate> String Yes 10 Expiration Date

Format: YYYY-MM-DD, Local Date
     <EstimatedDeliveryDate> String   10 Estimated Delivery Date

Format: YYYY-MM-DD, Local Date

Note: This date will only be returned if the destination is a Direct Point, which is supplied in the DirectPoint element.
     <StandardServiceDays> Decimal Yes 3, 0 Standard Service Days

Note: If the destination is not a Direct Point, this value will only give Standard Service Days within Saia's direct coverage area. Additional days may be required.
     <DirectPoint> String Yes 1 Direct Point
Y = Yes the Destination is a Direct Point covered by Saia
N = No the Destination is not a Direct Point covered by Saia
     <FuelSurchargePercent> Decimal Yes 5, 2 Fuel Surcharge Percent

Note: Fuel Surcharge is subject to change on a weekly basis.
     <FuelSurchargeAmount> Decimal Yes 7, 2 Fuel Surcharge Amount

Note: Fuel Surcharge is subject to change on a weekly basis.
     <CODFee> Decimal   9, 2 COD Fee

Note: This fee will only be available if you supplied a CODAmount on the request.
     <RateType> String Yes 7 Rate Type
Class   = Standard Class Rates, the Rates and Amounts 
          are located on each RateDetailItem.

Minimum = Minimum Charge, the Minimum Charge is located
          on the 1st DetailItem in the Amount element.
     <DeficitWeight> Decimal   7, 0 Deficit Weight

Deficit information is used allow additional weight to be added to a Rate Quote so that the pricing moves to the next weight break, which will give you a lower rate. For example, if a shipment is 1,900lbs it may be better to add 100lbs to ship at 2,000lbs which has a lower rate. Our system compares the two prices to give you a lower amount.
     <DeficitRate> Decimal   5, 2 Deficit Rate
     <DeficitAmount> Decimal   7, 2 Deficit Amount
     <RateDetails> Array Yes 1 Collection of Rate Detail Items
          <RateDetailItem> Array Yes 5 Rate Detail Item describing the specific rate quote weight, class, rate and amount details.

Note: Saia's rate quote system currently only supports 5 detail items max.
               <Weight> Decimal Yes 7, 0 Weight in LBS
               <Class> String Yes 6 NMFC Class Code

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
               <Rate> Decimal Yes 5, 2 Rate
               <Amount> Decimal Yes 7, 2 Amount
          </RateDetailItem> Array Yes 5  
     </RateDetails> Array Yes 1  
     <RateAccessorials> Array   1 Collection of Rate Accessorial Items
          <RateAccessorialItem> Array Yes No Limit Rate Accessorial Item describing the specific accessorial rates to be added to the rate quote.
               <Code> String Yes 50 Accessorial Code

Note: This list does not contain all Saia Standard Charges only the most frequently used. For all charges please refer to the current Saia 170 Rules & Special Charges. Please click the link for each code to view specific accessorial details.
SingleShipment
ArrivalNotice/Appointment
Marking/Tagging
LimitedAccessLocation
LiftgateService
InBond
InsidePickup
InsideDelivery
ExcessiveLength
Hazardous
ResidentialPickup
ResidentialDelivery
Sorting/Segregating
BorderCrossing
               <Description> String Yes 35 Description
               <Amount> Decimal Yes 7, 2 Amount
          </RateAccessorialItem> Array Yes No Limit  
     </RateAccessorials> Array   1  
     <OriginTerminal> Array Yes 1 Details about the Origin Terminal
          <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
     </OriginTerminal> Array Yes 1
     <DestinationTerminal> Array Yes 1 Details about the Destination Terminal
          <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
     </DestinationTerminal> 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.

B01 COD Amount limit is $15,000.00
B02 Actual Weight exceeds 15,000 lbs and cannot be auto-quoted
B03 Due to confidential agreement, disclosure of third party information is denied per customer request
B04 Rated Weight exceeds 20,000 lbs and cannot be auto-quoted
B05 Unable to auto-generate a quote for the specified Account
S01 Origin City and State not within our direct coverage area
S02 Origin Zipcode not within our direct coverage area
S03 Origin City, State, and Zipcode do not match
S04 Destination City, State, and Zipcode do not match
S05 Mexico shipments cannot be auto-quoted




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.