Top 5 Issues Question about UPS APIs
- Seeing negotiated rates or seeing incorrect rates
First, be sure to check the API response and see if it includes the negotiated rate container. If you see this, the negotiated rate is being returned. This can happen for a few reasons: if your contract is less than one week old, if your shipping volume has recently changed, or if there’s an issue on how your negotiated rates contract was set up.
Let us help – login to UPS.com and check the rate using Calculate Time and Cost. If you see the same rate in CTC as in the API, your rates are being returned correctly. Please contact your sales resource to validate your contract setup if needed.
If your account is not authorized to display your negotiated rate, login to UPS.com using the password and user ID that is being used for the request. Check payment methods and be sure that the account has been successfully authenticated. - Accessories: Origin and Destination
If you’re receiving an error message that your accessory is not valid between the origin and destination, we can help. To confirm that the selected package service options are valid, try recreating the shipment.
Additionally, you can remove or modify each of the accessory options, one-by-one to identify which accessory is not valid in this case. The API Announcements page is also a good place to check for any changes that may have been made to available accessory options. - Submission Failures during Transactions
If you receive an error message, always check the API response to determine its type. Some common errors include:- Hard Errors: these indicate an issue with the formatting of the API request or invalid values within the request. This error will tell you exactly where the error is coming from.
- Handshake Errors: this error type indicates an unsupported cipher being used. It may also appear alongside a ISP or firewall configuration issue.
- System Unavailable: For this type of error, confirm that you are posting to the correct URL and be sure to check the API status page. It could be intermittent so retry the request.
- Invalid Ship To Postal Code
Be sure to include the city within address information in the shipping or rating request if a postal code is valid across multiple cities. - Making Pickup Requests
Pickup requests are only available through the UPS Pick Up API.
What types of APIs does UPS support?
UPS supports RESTful APIs. REST is an acronym for Representational State Transfer and an architectural style for distributed hypermedia systems. A RESTful API is an architectural style for an application program interface (API) that uses HTTP requests to access and use data. That data can be used to GET, PUT, POST and DELETE data types, which refers to the reading, updating, creating and deleting of operations concerning resources.
How do I see the current status of the APIs?
UPS provides the health status of some of our featured APIs on our API Monitoring Dashboard. More APIs will be integrated into the dashboard in the future. You can view details to see a log of any incidents that have occurred in the past 24 hours.
How do I obtain API credentials?
To get your client ID and secret for API access, you will need a UPS.com login and UPS shipper account. After you are logged in, create an application, subscribe to API products and obtain your client ID and secret to transact with the APIs. For step-by-step instructions refer to the Build page.
Can I share my client ID and secret?
No, you should not, sharing credentials is not secure. Any entity asking you to share your credentials should be using an Auth-Code grant type instead.
I have an existing API integration with UPS using an access key, why should I switch to client ID and secret using OAuth?
There are several key benefits to switching which include improved security for your applications and customers with OAuth 2.0, modern RESTful API products, a robust testing environment and continued support from UPS.
Can I still get an access key?
Access keys will continue to function, but will be sunset in the near future. UPS will notify all integrators in advance to allow enough time to migrate their integrations.
Where can I find additional help and support?
Please see below to contact the Help Desk.
What is OAuth 2.0?
OAuth 2.0, which stands for “Open Authorization”, is a standard designed to allow a website or application to access resources hosted by other web apps on behalf of a user. It provides consented access and restricts actions of what the client app can perform on resources on behalf of the user, without ever sharing the user's credentials.
For authentication, should I use client credential or Auth-Code flow?
To represent a single entity in the transaction, use the simple client credential flow. In client credential flow, only UPS accounts that are linked to the client ID and secret during the app creation process can be represented. To enable others to represent themselves through your application, use the Auth-Code flow.
Can I use an existing XML or Web Service payload with OAuth 2.0?
No, you must use the RESTful version of our APIs.
Where can I access Open API spec docs for each API?
Open API spec documents are available on the API documentation pages.
Can I use localhost as my callback URL for testing?
No, localhost is not supported.
Is there a limit to the number of API calls I can request at one time?
Yes. UPS limits the number of requests to the API per second per user. Rate limits in the test environment are lower than production. Users that are throttled will receive error code “10429 - Too Many Requests” in the response.
Where can I find sample code and use-case examples?
Sample code and use-case examples can be found in the API catalog documentation pages.
Where can I find additional help and support?
Please see below to contact the Help Desk.
Need Tech Support?
You can expect a response within four hours during business hours
(Monday-Friday, 8 a.m. to 8 p.m. ET).
General Questions
Call toll free at 800-247-9035
Representatives Available
Monday-Friday: 7:30 a.m. - 9 p.m. ET
Saturday-Sunday: 9 a.m. - 6 p.m. ET