UPS Toolkit for i Changelog

The current version of UPS Toolkit for i is 2.10.0, and was released May 13th, 2024.

Starting June 3, 2024, UPS will no longer allow the authentication mechanism used by UPSTI versions prior to 2.10.0 to connect to the UPS APIs. If you fail to upgrade UPSTI to 2.10.0, your existing version of UPSTI will stop working on June 3, 2024.

Additionally, UPS has been working to roll out an entirely new API to replace the API that UPSTI has relied on. UPS previously intended for their new API to be the only supported API starting June 3, 2024. However, due to integration issues experienced by customers, UPS has decided to delay enforcing the usage of their new API for an undetermined period of time.

UPSTI 3.0.0 will utilize the new UPS APIs, and release later in 2024. The new UPS APIs are significantly different, and as a result upgrading to UPSTI 3.0.0 will require code changes for most customers. When available, UPSTI 3.0.0 will be a required upgrade for all UPSTI customers.


Upgrading to this release will require recompilation for any programs that utilize the UPSSCRQ database file.


  • This release implements the new OAuth authentication mechanism required by UPS starting June 3, 2024. To accomodate this new authentication mechanism, the existing UPSUSER database file has been deprecated, and a new file UPSCFGAUTH has been added.
  • UPS requires you to register an application with UPS to receive new credentials for use with UPSTI. See Register an Application with UPS for a guide on how to do this.
  • The WRKUPSAUTH Command has been added to allow for authentication configuration and management.
  • The primary database file used for the request for each API includes a field named USERID which previously needed to be populated with the username used to sign into the UPS website. This field now needs to be populated with an application name configured via the newly provided WRKUPSAUTH command. The field USERID is not otherwise different.


  • In preparation for UPSTI 3.0.0 being made available later this year, the UPSCFG, UPSACCT, and UPSURL configuration database files have been deprecated.
  • The UPSCFG database file has been replaced by the newly added UPSCFGOPT database file. Configuration values stored in UPSCFG must be migrated (where applicable) to the new UPSCFGOPT database file.
  • The UPSACCT database file has been replaced by the newly added UPSCFGACCT database file. Configuration values stored in UPSACCT must be migrated (where applicable) to the new UPSCFGACCT database file.
  • The UPSURL database file has been replaced by the newly added UPSCFGURL database file. Customers do not need to migrate values from UPSURL to UPSCFGURL unless otherwise instructed by our support team.
  • Configuration of default code values (previously configured in the UPSUSER database file) is now done in the UPSCFGOPT database file, and apply to all users. Default values may be specified for currency codes, weight codes, and dimension codes. These default values will be used whenever a corresponding field is left empty for a request. It is no longer possible to set a default value for a UPS service code or packaging type code.


  • Added new field LBLSIZE to database file UPSSCRQ to allow for configurable label size when calling UPS_shipConfirm(). Valid values for the LBLSIZE field include the newly added constants UPS_LABEL_SIZE_4X6 and UPS_LABEL_SIZE_4X8. If left empty, UPS_shipConfirm() will default to the previous behavior to request 4x6 labels. If you do not need to request 4x8 labels, you do not need to make code changes, but you still need to recompile any programs using UPSSCRQ.


  • UPSTI no longer requires SSL certificates be installed to call UPS APIs.


Upgrading to this release may require code changes and recompilation of some or all programs that use UPSTI subprocedures.


  • Added signature image and POD letter handling to UPS_tracking()
  • Added new example program: T_TK_SIG - signature image and POD letter retrieval


Programs that call this API will need to be recompiled when upgrading to this release.
  • Resolved issue with UPS_shipConfirm() not correctly loading form record for Invoice requests
  • Enhanced UPS_shipConfirm() for additional international Invoice handling
  • Added constants to UPS copybook for international invoice form types - UPS_INTL_INVOICE_FULL and UPS_INTL_INVOICE_PARTIAL
  • Corrected length for VALUE in UPSSCRQPD from 12P 6 to 19P 6. This will require recompilation for any programs using UPS_shipConfirm().
  • Added new example program: T_SC_INTL - international invoice creation (must also call T_SA to generate the full invoice PDF)


  • Updated all example programs to use ACTGRP(*NEW) instead of ACTGRP(*CALLER)


  • Enhanced performance for internal licensing code



  • Corrected issue which caused some child table records to be generated with incorrect unique IDs. Child records should now have PID values that match the unique IDs of the parent record in all circumstances



  • Added fields to UPSSCRQ to support UPS SurePost®:
    • USPSENDRS - USPS Endorsement
    • USPSSUBCLS - USPS Sub Class


  • Added fields to UPSSARSPK to support UPS SurePost®:
    • NMACURCD - Non-Machineable Charges Currency Code
    • NMAVAL - Non-Machineable Charges Monetary Value
    • SPDASCURCD - SurePost® DAS Charges Currency Code
    • SPDASVAL - SurePost® DAS Charges Monetary Value

Example Programs

  • Added T_SUREPOST to demonstrate calling UPS_shipConfirm() and UPS_shipAccept() to create a UPS SurePost® shipment



  • Corrected issue which caused UPSXVRS to be populated incorrectly in some scenarios


Upgrading to this release may require code changes and recompilation of some or all programs that use UPSTI subprocedures.


Programs that call this API will need to be recompiled when upgrading to this release.
  • Enhanced API to allow TrackingOption to be specified in UPSTKRQ to support Mail Innovations tracking. As part of this enhancement, the package and tracking number fields in the UPSTKRQ and UPSTKRSPK were expanded to support the longer Mail Innovations tracking numbers
  • Corrected issues preventing activity address lines from being properly populated in some circumstances


  • Enhanced printer output to support longer ZPL lines


  • Enhanced API with new indicator fields for address validity and ambiguity
  • Modified behavior of indicator fields in UPSXVRS so that the false condition is populated if an indicator is not present


  • Corrected issue preventing proper retrieval and decoding of SED forms in some cases
  • Resolved intermittent decimal data areas when using certain international forms
  • Corrected issue preventing PartiesToTransaction field being sent as part of the request
  • Enhanced API to allow shipper address data to be specified in UPSSCRQ, which will override the address data specified in UPSACCT for that request
  • Improved error handling to better capture error data returned by UPS