UPS Integration
Jason, Ray, Anyone,
I've looked for a thread but can't find what I need. Trying to integrate UPS which should pull the client account prices for shipping live from UPS but it's not working. I've installed the access key and user details according to what's come from UPS. I've emailed them and this is the reply:
I have taken the liberty of having UPS send you your user ID profile information. Please note that the user ID created on 07/11/2013 was the user ID profile used to request the Access Key and should be receiving the negotiated rates. The user ID used within the request file when requesting Negotiated rates is case sensitive.
Negotiated Rates are only returned for qualified Shipper Account Numbers and eligibility is determined using the combination of User ID and the Shipper's Shipper Account Number in the XML request. If the User ID is qualified, both Published Rates and Negotiated Rates are returned. If the User ID or Shipper Account Number is not qualified for Negotiated Rates, only Published Rates are returned in the response.
The approved shipper number needs to be associated with the User ID used in the XML by adding it the Account Summary under Manage MyUPS at UPS.com.
To receive Negotiated Rates some XML additions are required that are slightly different from a basic request.
1. The approved User ID associated with the Negotiated Rates must be used in the AccessRequest container along with the Access Key and Password.
2. The approved shipper number must be included in the RatingServiceSelectionRequest/Shipment/Shipper/ShipperNumber container.
3. The empty node <NegotiatedRatesIndicator/> must be included in the RatingServiceSelectionRequest/Shipment/RateInformation container. The RateInformation container may need to be added as well.
4. The <StateProvinceCode> node is required in the RatingServiceSelectionRequest/Shipment/Shipper/Address container or RatingServiceSelectionRequest/Shipment/ShipFrom/Address container depending on the absence or presence of the ShipFrom container. If the <ShipFrom> container is present, the <StateProvinceCode> node is required there. In the absence of a <ShipFrom> container the <StateProvinceCode> node is required in the <Shipper> container. It is also required in the RatingServiceSelectionRequest/Shipment/ShipTo/Address container.
Please see the XML snippet below for examples of element placement. Note these are in addition to the already required tags for all Rates Tool requests:
<?xml version="1.0" encoding="UTF-8"?>
<AccessRequest>
<AccessLicenseNumber>XXXXXXXXXXXXXXXX</AccessLicenseNumber>
<UserId>XXX..XXX</UserId>
<Password>XXXX..XXXX</Password>
</AccessRequest>
<?xml version="1.0" encoding="UTF-8"?>
<RatingServiceSelectionRequest>
<Shipment>
<Shipper>
<ShipperNumber>XXXXXX</ShipperNumber>
<Address>
<StateProvinceCode>XX</StateProvinceCode> <!-- Required here if ShipFrom is not present -->
</Address>
</Shipper>
<ShipFrom>
<Address>
<StateProvinceCode>XX</StateProvinceCode> <!-- Required here if ShipFrom is present -->
</Address>
</ShipFrom>
<ShipTo>
<Address>
<StateProvinceCode>XX</StateProvinceCode> <!-- Required -->
</ShipTo>
<RateInformation>
<NegotiatedRatesIndicator/>
</RateInformation>
</Shipment>
</RatingServiceSelectionRequest>
5. Negotiated rates are returned in the NegotiatedRates node of the XML response and only at the shipment level. Published rates are still returned in the normal locations.
<NegotiatedRates>
<NetSummaryCharges>
<GrandTotal>
<MonetaryValue>16.08</MonetaryValue>
</GrandTotal>
</NetSummaryCharges>
</NegotiatedRates>
</RatedShipment>
6. Lastly, please note that the Customer Integration Environment (CIE) only returns a 1% discount regardless of your actual negotiated rates. You will need to move to production to see your actual rates.
Please contact us if you need any additional assistance.
Does anyone know what they are talking about? This is so far above my head I'm getting dizzy. All the details look right I can't see the problem!
Thanks.