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.



NEW - Our new versioned URL endpoint now require a Header property to designate the version to run.
  • Property Name: Api-Version
  • Value: (Version Abbreviation)
  • Example: Api-Verion = V1


  • 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.