My discount isn't showing when using UPS Shipping API

When you use the UPS Shipping API, are all shipments being created without the discount that you get when you create orders manually?

Are you struggling to find the property in the API payload that stores discount information?

Then you have come to the right place!

tl;dr: The property you're looking for is NegotiatedRatesIndicator.

The UPS Shipping API is pretty clunky at times and the documentation isn't always good enough to compensate. What they don't tell you is that what most people would call, in plain English, a "discount", UPS calls a "negotiated rate".

If you don't specify in your API payload that your UPS account has a negotiated rate, no discounts will be applied.

The property you're looking for is NegotiatedRatesIndicator (full JSON path: ShipmentRequest.Shipment.ShipmentRatingOptions.NegotiatedRatesIndicator).

The docs don't specify which value to assign. I chose to set it to "Y" and have had no errors.

Note that, if your account doesn't have negotiated rates enabled, you won't see a discount. Get in touch with UPS to rectify this: they're usually generous with this sort of thing.