Shipping with FedEx and UPS

DEACOM offers companies the option to integrate with FedEx and UPS, using APIs, for the purpose of shipping Sales Orders and printing approved shipping labels containing the appropriate information. The benefit to this integration is the ability to register a single ship event and have DEACOM and the carrier communicate everything necessary. This integration requires a lot of configuration and testing of all features prior to implementation. Be sure to follow all steps listed below and review any important information specified prior to using these APIs to process legitimate shipments. For general information on shipping orders, refer to Shipping Sales Orders.

Notes and Key Considerations

  • Beginning June 5, 2023, UPS will no longer issue API access keys. Existing access keys will continue to work prior to our conversion to the new UPS API's in early 2024.
  • It takes 3 - 5 business days to obtain production credentials from FedEx. Please make sure these credentials are obtained and tested prior to Go-Live!

Configuration

Configuration Notes:

  • When entering addresses on DEACOM records, such as Facilities and Ship-to's, 2-digit state and country codes must be used for both FedEx and UPS to work correctly. For example, Pennsylvania, United States has to be PA, US for both FedEx and UPS to work correctly. This goes for all other countries and states/provinces that will be used. A good resource for country codes is: https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes. Additionally, https://en.wikipedia.org/wiki/ISO_3166-2 can be used to locate a country code and see the appropriate state/province/department codes.
  • Users can set different FedEx/UPS credentials to specific Facilities for Sales Orders by navigating to Sales > Maintenance > Facilities > APIs tab.
  • As of version 17.03, the corresponding FedEx, EasyPost, and UPS fields (FedEx Account, FedEx Password, FedEx Auth Key, FedEx Meter Num, FedEx Ship Acct, UPS Username, Transact In FedEx Test Mode, UPS Password, UPS Access Key, UPS Ship Number, Transact In UPS Test Mode, EasyPost API Key, Use Facility FedEx Credentials, Use Facility UPS Credentials) are removed from Sales > Options and Inventory > Maintenance > Facilities since these fields now reside on the API Profiles form. A dxpop program (update program) is included in the 17.03 update process and will automatically add API Profiles in cases where companies have existing values in these fields.

The below steps describe how to obtain credentials, configure system options, design the package label that will be used, create Ship Via Methods representing the various service types, and validate address information for shipping. Configuration steps for other information such as Packing Instructions, Dangerous Goods, and flagging Parts as hazardous are included in Process section below. Credentials for FedEx are also provided for the development environment.

  1. Obtain credentials.
    1. Customers will need to contact FedEx and/or UPS to create an account and obtain the necessary credentials. Once the necessary credentials have been obtained they will be sent to the customer contact person. Companies should establish two sets of credentials, one for testing and one for production. Additional information on the testing process is available via the "Testing the integrations" section on this page.
  2. Insert credentials into the Sales Options.
    1. Navigate to Sales > Options > APIs tab. Complete the following fields based on the information supplied by Deacom:
    2. FedEx Account / UPS Username
    3. FedEx Password / UPS Password
    4. FedEx Auth Key / UPS Access Key
    5. FedEx Meter Number / UPS Ship Number
    6. FedEx Ship Account (Note: the value for the FedEx Account and FedEx Ship Account are the same)
    7. FedEx Poll Mins (Note: the DEACOM webserver console or service needs to be running in order to use Poll Mins)
    8. Uncheck the flag for "Transact in FedEx Test Mode" / "Transact in UPS Test Mode".
  3. Set up the Package Expression and Label Generation.
    1. Navigate to Sales > Options > Shipping tab.
    2. In the "Gen Ship Label" field, select when the label should be generated. Labels will be attached to the documents of the Sales Order.
      1. If "Ship Order" is selected, the functionality is the same as always checking the "Generate Shipping Label" flag on the Sales - Ship form, meaning the label will print when "Ship Order" is clicked. Note: Beginning in version 17.00.065, third party billing support is available for UPS only via the "Bill This Account" field on the Edit Shipping Accounts form.
      2. If "Save Package" is selected, the is the same as always checking the "Print Shipping Label" flag on the Scan Parts form, meaning the label will print when "Save Package" is clicked. If the same Package is modified and then "Save Package" is clicked again, a new Label will be generated and the old Label for this Package will be deleted.
    3. In the "Default Shipping Qty" field, set the option to "Zero". This is required to use the FedEx process and the "Scan Parts" button during Sales Order shipment.
    4. In the "Package Expression" field, establish the Package number expression, which will be used to generate new Package numbers. Example: TRANS(to_ordnum,go.Ordmask) + "-" + TRANS(INCREMENT(ALLT(STR(to_ordnum,12,0)),3),"000").
  4. Create a separate FedEx label.
    1. Navigate to Print Outs > Maintenance > Part Forms.
    2. Click "New" to open the Edit Part Form form.
    3. Enter a name, for example "FEDEX_LABEL".
    4. Set the "Print Method" to "Designer".
    5. Click the "Edit Doc" button and on the Report Designer, enter the expression: <<F_DOCPIC("dttord", to_ordnum, packagenumber)>>. This expression must be entered as is. This is the only information the package label must contain. Users may add additional text or pictures to the label, if required.
      1. Please Note: If on version 16.02 or below, the expression "<<F_DOCPIC("dttord", to_ordnum, packagenumber)>>" doesn't work. and users will receive an "Invalid Expression" message if using the expression. In that case, you must create a "Rectangle" object with the following parameters:
        1. Image Table: dttord (Sales order header)
        2. Image Record Expr: to_ordnum
        3. Image Description Expr: packagenumber
    6. Once finished, save the document to return to the Edit Part Form form.
    7. Click the "Save" button to complete the process.
      1. Note: Deacom recommends having only one Package Label in Sales Options.
  5. Insert the Package Label Part Form into System Options.
    1. Navigate to Inventory > Options > Printing tab.
    2. Click "Add" to open the Edit Label form.
    3. Select a "Label Type" of "Package Label".
    4. In the "Part Form" field, select the Part Form that was previously created.
    5. Set the "Label Print Qty" to "By Package".
    6. Click the "Save" and "Exit" buttons on the Edit Label form.
    7. Click the "Save" and "Exit" buttons on the System Options form to complete the process.
  6. Link the Package Form to a Sales Document Group.
    1. Navigate to Print Outs > Maintenance > Document Groups.
    2. If an existing Document Group exists, it can be modified, however customers may wish to set up a Document Group specifically for FedEx use.
    3. Click "New" to open the Edit Document Group form.
    4. Set the "Type" to "Sale".
    5. Click "Add" to open the Edit Sales Document Item form.
    6. In the "Part Form" field, select the Package Label that was previously created.
    7. Click the "Save" and "Exit" buttons on the Edit Sales Document Item form.
    8. Click the "Save" and "Exit" buttons on the Edit Document Group form to complete the process.
  7. Create Ship Via Methods linked to FedEx service types.
    1. Navigate to Purchasing > Maintenance > Ship Via Methods.
    2. Click "New" to display the Edit Ship Via Method form.
    3. Set the "Service Provider" to "FedEx".
    4. In the "Service Type" field, which contains all authorized FedEx shipment methods, select the first FedEx service type that will be used.
    5. Enter a "Name" that represents and essentially mirrors the Service Type that was selected. Example: If a Service Type of "FedEx Ground" is selected, use a name of "FedEx Ground".
    6. Enter any additional information as needed in the Edit Ship Via Method form.
    7. When finished, click the "Save" button.
    8. Repeat the process for all the necessary FedEx Ship Via Methods/Service Types. Note that the Ship Via Method on the Sales - Ship form is the one that will be used by FedEx.
  8. Validate the address information for all applicable Facilities from which goods will be shipped. Note: When customers decide to implement the FedEx process in DEACOM, they will need to ensure all the appropriate Facilities from which goods will be shipped have valid addresses established on the DEACOM records. This includes using 2-digit state and country codes. Example: Pennsylvania, United States has to be PA, US for both FedEx and UPS to work correctly.
    1. Navigate to Inventory > Maintenance > Facilities.
    2. Select a Facility from which goods will be shipped and click "Modify" to display the Edit Facility form.
    3. On the General tab, ensure the correct information is filled in, including Phone Number, Country Code, and Emergency Contact.
    4. When finished, click the "Save" button to commit the changes.
    5. Repeat the process for other Facilities from which material will be shipped via FedEx.
  9. Validate the address information and assign the Document Group for all applicable Ship-to's to whom goods will be shipped. Note: When customers decide to implement the FedEx process in DEACOM, they will need to ensure all the appropriate customers who will receive items have valid addresses established on the DEACOM Ship-to records. This includes using 2-digit state and country codes. Example: Pennsylvania, United States has to be PA, US for both FedEx and UPS to work correctly. Once customers are up and running, they will be able to validate address information, via the "Validate Address" button on the Ship-to record, any time new customers are added.
    1. Navigate to Sales > Customers.
    2. Set the necessary pre-filters to generate a list of the appropriate Ship-to Companies then click "View".
    3. Select a Ship-to from the list and click "Modify Ship-to" to open the Edit Ship-to Company form.
    4. Ensure a valid phone number is entered.
    5. On the General tab, fill in the appropriate address information, including a Country and Country Code, then click "Validate Address". The system will either validate the address and update the fields as necessary or prompt the user that the address is invalid.
    6. On the Order Defaults tab, select the Facility from which good will be shipped and select the Document Group that was previously created. In addition, verify the correct Ship Via Method is selected in the "Ship Via" field. Note that beginning in version 15.05.084, when creating or modifying a Ship-To Company record, the system will automatically perform a validation check with FedEx to ensure the Service Type on the selected Ship Via is valid for the address on the Ship-To Company. If the address is not valid or applicable for the FedEx Service Type, the user will be prompted and unable to save the Ship-To Company.
    7. Back on the General tab, click the "Calculate Zone" button to populate the "Shipping Zone" field. This button requires that a Street and Zipcode have been entered on the customer record first and once it is clicked, the system uses the address and Facility from the Ship-to record to calculate the shipping zone number. These shipping zone numbers can be found at: http://www.fedex.com/ratetools/RateToolsMain.do.
    8. Once the correct address has been validated and all other pertinent information has been entered, click "Save" and "Exit" on the Edit Ship-to Company form.
    9. Repeat the process for other Ship-to records to whom goods will be shipped via FedEx.
  10. Validate the address information for all applicable Contacts to whom goods will be shipped. Note: This is optional and only required if CRM records will be linked to Customers.
    1. Navigate to CRM > CRM Reporting.
    2. Set the necessary pre-filters to generate a list of the appropriate Contacts then click "View".
    3. Select a Contact from the list and click "Modify" to open the Edit Contact form.
    4. On the General tab, ensure the Contact is linked to the correct Ship-to Company.
    5. On the Address tab, ensure the correct information is filled in, including address and phone number.
    6. When finished, click the "Save" and "Exit" buttons to commit the changes and complete the process.
    7. Repeat the process for other Contacts for whom goods will be shipped via FedEx.
  11. If desired, repeat the above steps to set DEACOM up to ship via UPS.
  12. Setup Shipping Accounts as necessary.
    1. Navigate to Sales > Customers.
    2. Select and modify the appropriate Bill-to/Ship-to records and enter values in the "Shipping Accounts" tab.
    3. Once complete, save the changes to the Bill-to/Ship-to records.

Process

Prior to using the FedEx and UPS integrations to generate labels and ship legitimate packages, these functions should be tested to ensure they are functioning as desired. Information for testing the integrations is detailed first, followed by information on creating packages and shipping orders, further followed by general and configuration information for creating Packing Instructions and shipping Dangerous Goods and hazardous materials. As noted previously, DEACOM offers companies the option to integrate with FedEx and/or UPS. Both processes require the same configuration, detailed above, and follow the same process steps.

Testing the integrations

Per the Configuration section above, two sets of credentials for each FedEx and UPS (if using both) should have been obtained, one for testing and one for production. These test credentials are entered in the same fields as the production credentials will be, in Sales > Options > APIs tab. In addition to entering test credentials, the "Transact in FedEx Test Mode" / "Transact in UPS Test Mode" flag(s) should be checked until all testing is complete. Testing the integrations is performed using the same steps as when performing real transactions, therefore all of the steps in the below Process sections may be used for reference.

Note: When testing the UPS address validation feature, users will only be able to validate addresses in New York or California. This is a UPS restriction. If a user attempts to validate an address in any other state, they will receive the following error message: "UPS Error - The state is not supported in the Customer Integration Environment. - 9264030".

Upon conclusion of testing the integrations, the company may contact FedEx and UPS to set up production credentials, if not already obtained, and use credentials these to replace the test credentials previously added to Sales Options. Once it is decided to continue with production transactions, ensure the "Transact in FedEx Test Mode" / "Transact in UPS Test Mode" flag(s) are no longer checked.

Creating a package and shipping an order

  1. Select the order to ship.
    1. Navigate to Sales > Ship.
    2. Select the order number and click "Continue" or click "Show Orders", select an order, and click "Continue".
  2. Create the Package.
    1. On the Sales - Ship form, click "Packages" to open the Packages form.
    2. On the Packages form, click "Add" to open the Add Package form.
    3. Enter values as required that describe the Package that will be shipped, including Weight, Unit Type, dimensions, and Dimension Units. Note: Beginning in version 17.00.065, the "Package Type" field can be used to select pre-defined packages and ship vias.
    4. If additional covering will be used over any required packing material (typically required when shipping Dangerous Goods via FedEx), check the "Overpack Used" flag.
    5. Click "Add" to open the Add Package Line form.
    6. Select the Part that will be included in the Package.
    7. Specify and Quantity and Value for the good.
    8. Enter the appropriate weight.
    9. If Packing Instructions are required and/or included, select the appropriate record in the "Packing Instructions" field.
    10. If the material being shipped is a Dangerous Good, select the appropriate record in the "Dangerous Good" field.
    11. If the material is being shipped outside of the United States, enter the appropriate value in the "Harmonized Code" field.
    12. Click "Save" and "Exit" to save the Package line and return to the Add Package form.
    13. Continue to add Package lines as required for the shipment. Once all Package lines have been added, click "Save".
    14. Click "Save" on the Add Package form, which will generate a "Package Name" using the "Package Expression" specified in Sales > Options > Shipping tab.
    15. Save and exit the Add Package and Packages forms to return to the Sales - Ship form.
  3. Print the shipping label. Depending on the "Gen Ship Label" field selection in Sales > Options > Shipping tab, the shipping label may (1) print automatically when the Package is saved, (2) print automatically when the order is shipped, or (3) be printed manually.
    1. If printing automatically when the Package is saved:
      1. Click "Scan Parts".
      2. Scan a label or manually enter the Part Number included in the Package.
      3. Confirm the "Quantity" and "Current Weight" are correct. If incorrect, modify the values.
      4. Ensure the "Print Shipping Label" flag is checked.
      5. Click "New Package" or select an already created package in the "Package" field.
      6. Ensure the appropriate values are entered in the "Print To" and "Printer" fields.
      7. Click "Save Package", which will prompt the system to display the Copies To Print form. The only field that should be changed on this form is the "Print To" value, if necessary.
      8. Click "Print". Once users click the "Print" button, the integration obtains the Label image, processes the Package Label, and prints out the Label.
      9. Continue with shipping the order as normal, detailed in the Shipping Sales Orders page.
    2. If printing automatically when the order is shipped:
      1. Enter the shipping details for the order as normal, detailed in the Shipping Sales Orders page.
      2. Ensure the "Generate Shipping Label" flag is checked.
      3. Click "Ship Order", which will prompt the system to display the Copies To Print form. The only field that should be changed on this form is the "Print To" value, if necessary.
      4. Click "Print". Once users click the "Print" button, the integration obtains the Label image, processes the Package Label, and prints out the Label.
    3. If printing manually during the Sales Order shipping process:
      1. On the Sales - Ship form, click "Generate Shipping Labels", which will prompt the system to display the Copies To Print form. The only field that should be changed on this form is the "Print To" value, if necessary.
      2. Click "Print". Once users click the "Print" button, the integration obtains the Label image, processes the Package Label, and prints out the Label.
      3. To view a label that was previously printed, open the order in view mode through Sales > Order Reporting and it will be available via the "View Docs" button.
    4. If printing manually after the Sales Order has been shipped:
      1. Navigate to Sales > Order Reporting, select the desired Sales Order and click "View" to open the order in view mode.
      2. Click "Packages" to open the Packages form.
      3. Select the desired Package then click "Print" to open the Copies To Print form. The only field that should be changed on this form is the "Print To" value, if necessary.
      4. Click "Print". Once users click the "Print" button, the integration obtains the Label image, processes the Package Label, and prints out the Label.

Notes:

  • Multiple items may be added to the same package without unique Packing Instructions for each item.
  • DEACOM will check the to_user1 field and use that as the 'Attn To' on the FedEx Label. If it is empty, DEACOM will use the "best" contact for the shipping label, which is either the "Contact Person" on the Sales Order Misc 1 tab, if that contact has a name and phone number, or the Ship-to's "Contact", if that contact has a name and phone number. If neither of these two pieces of information are filled out, the label will use the Bill-To contact name.
  • The system checks to ensure that, if using packages and the package quantity is greater than what is trying to be shipped, the user is prompted and the Sales Order cannot be shipped. The "System Lot" field will check the total quantity in all packages for the order of the entered lot number, and if populated will not allow the user to save the package line if it exceeds the quantity of that system lot reserve.
  • New fields have been added to the "Edit Ship Via" form to allow the user to specify if the Ship Via's address and contact information should be used over the Ship-To's.

Including Packing Instructions

FedEx Ground does not require Packing Instructions; these are only required for air travel. As a result, the Ship Via Methods form contains a flag, "Packing Instructions Required", which allows customers to control which Ship Via Methods will require Packing Instructions. When shipping hazardous materials, Packing Instructions are only required if this flag is checked for the Ship Via Method AND hazardous materials are in the shipment, indicated by the "Hazardous" flag on the Part's Item Master Properties tab.

To add a new set of Packing Instructions:

  1. Navigate to Sales > Maintenance > Packing Instructions.
  2. Click "New" to open the Add Packing Instructions form.
  3. Enter a name to describe how the instructions will be used.
  4. Specify a Container Type and Packing Detail, if necessary.
  5. If Packages containing these instructions will contain dry ice, check the "Packed With Dry Ice" flag and specify the "Dry Ice Quantity" that will be used.
  6. Click the "Save" and "Exit" buttons to commit the changes and close the form.

To configure the Ship Via Method to require Packing Instructions:

  1. Navigate to Purchasing > Maintenance > Ship Via Methods.
  2. Select the desired record and click "Modify" to open the Edit Ship Via Method form.
  3. Check the "Packing Instructions Required" flag.
  4. Click the "Save" and "Exit" buttons to commit the changes and close the form.

To flag a Part as hazardous:

  1. Navigate to Inventory > Item Master.
  2. Select the desired Part and click "Modify" to open the Edit Item Master form.
  3. On the Properties tab, check the "Hazardous" flag.
  4. On the General 1 tab, enter information pertaining to the hazard in the "Hazard Info" field, which is used to store HMIS Hazard information to include on SDS and other forms.
  5. Click the "Save" and "Exit" buttons to commit the changes and close the form.

Shipping Dangerous Goods

The Dangerous Goods Maintenance table is used to support the DEACOM FedEx integration and the ability to ship Dangerous Goods. Once the Dangerous Goods have been identified and added to this table, the appropriate Part's record needs to have the Dangerous Good associated with it indicated on the Item Master General 1 tab. In addition, the Facilities from which Dangerous Goods will be shipped need to contain an "Emergency Contact" and "Phone Number", which should have been verified in the Configuration section above.

In situations where companies will add an additional covering over the required packing material when shipping Dangerous Goods via FedEx, the "Overpack Used" flag on the General tab of the Add Package form may be checked to have this information printed on any documents where Packing Instructions are used.

Companies should reference the US Department of Transportation's "Guide for Preparing Shipping Papers" prior to performing dangerous goods shipments with FedEx or UPS.

To add a new Dangerous Good record:

  1. Navigate to Inventory > Maintenance > Dangerous Goods.
  2. Click "New" to open the Edit Dangerous Good form.
  3. Enter a Name that describes the good that will be shipped.
  4. If the good requires Packing Instructions to be included in the Package, select the appropriate record in the "Packing Instructions" field.
  5. Specify the necessary details for the good, referring to the FedEx site's Shipping Hazardous Materials page if necessary. Example: Name: (User defined) Regulatory ID: 1814 Proper Shipping Name: POTASSIUM HYDROXIDE, SOLUTION Technical Name: POTASSIUM HYDROXIDE, SOLUTION Hazard Class: 8 Packing Group: III Packing Instructions: (Selected if required)
  6. Fill in any other fields as required.
  7. Click the "Save" and "Exit" buttons to commit the changes and close the form.

To link a Dangerous Good to a Part:

  1. Navigate to Inventory > Item Master.
  2. Select the desired Part and click "Modify" to open the Edit Item Master form.
  3. On the General 1 tab, select the appropriate record in the "Dangerous Good" field.
  4. Click the "Save" and "Exit" buttons to commit the changes and close the form.

Viewing confirmation numbers and FedEx label images

Users have the option to view Confirmation Numbers and FedEx Label images after a Sales Order has been shipped. This information is stored in the "Confirmation" field on the Sales Order Shipping tab, accessible through Sales > Order Reporting. The Ship Via method is also available on this tab. The Delivery Date of the displayed Tracking Number will be obtained from FedEx once the package is delivered. To calculate the Delivery Date when in between the "FedEx Poll Mins" specified in System Options, use the "Calc Deliv Date" button available on the Sales Order.

Viewing actual FedEx shipping charges

The actual FedEx shipping charges for orders can be viewed by configuring the appropriate User Calculations for Sales Orders, such as using the pa_totalcharge, pa_charge, and pa_weight fields from the dtpackage table. The system will save the Net Total FedEx Charge to the package header field "pa_totalcharge" and Base Charge to the package header field "pa_charge". The sum of these values plus the sum of the package weights are available to see through User Calculations. Process information on using this feature is covered in the Configuring User Fields and User Calculations page.

Shipping international

The "LTL Freight Shipment" button on the Sales - Ship form stands for Less-Than-Truckload Freight Shipment and allows users to specify package dimensions, such as length, width and height, for international shipments. Using the Add Freight Shipment form, users may also select the Freight Class and Packaging Type information. If a user exits the Sales - Ship form without shipping the order, any LTL lines will be automatically deleted from the order. LTL lines may be added back when the shipping process is re-initiated.

FAQ & Diagnostic Tips

When using the Scan Parts option to save a FedEx package, I receive the following message: "Requested Shipment Shipper Contact - Phone Number is Required"

This is due to the fact that a phone number is not specified for the Facility on the Sales Order. To resolve the issue, navigate to Inventory > Maintenance > Facilities and ensure a phone number is populated on the General 1 tab of the appropriate Facility.

Can shipping labels for UPS packages that contain dangerous goods be generated?

No. Currently, UPS Packages that contain dangerous goods will no longer generate shipping labels when they are requested by the system. If a user attempts to generate the label, the system will present a prompt and the label will not be printed or added to the documents to be printed when printing a Document Group in DEACOM.

Tip: The Dangerous Goods and Packing Instruction fields of the product that is being shipped are available to the Bill of Lading and Job Label. The fields are dn_name, dn_regnum, dn_shipname, dn_techname, dn_hazard, dn_packgroup, dn_notes, and pi_name.

Tip: When sending the weight of the package line to FedEx for international air shipments, the system will convert the weight from the package line Unit of Measure to the IATA Unit of Measure. The IATA unit is specified on the Calcs tab of the item master record.

Tip: For FedEx integrations, when a sales order or master order is created or modified, the system will check to make sure the FedEx Service Type on the Ship Via(s) specified on the Sales Order or Master Order are valid for the Ship-To address or addresses specified on the order. If the address is not valid or applicable for the FedEx Service Type, the user will be promoted and unable to save the order.