Sample code for 30+ languages & platforms
Objective-C

UPS Rate Request

See more UPS Examples

Simple UPS Rate Example

Chilkat Objective-C Downloads

Objective-C
#import <CkoHttp.h>
#import <CkoJsonObject.h>
#import <CkoHttpResponse.h>
#import <CkoStringBuilder.h>
#import <NSString.h>

BOOL success = NO;

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

CkoHttp *http = [[CkoHttp alloc] init];

// Use this online tool to generate code from sample JSON:
// Generate Code to Create JSON

// The following JSON is sent in the request body.

// {
//   "RateRequest": {
//     "Request": {
//       "TransactionReference": {
//         "CustomerContext": "CustomerContext"
//       }
//     },
//     "Shipment": {
//       "Shipper": {
//         "Name": "ShipperName",
//         "ShipperNumber": "ShipperNumber",
//         "Address": {
//           "AddressLine": [
//             "ShipperAddressLine",
//             "ShipperAddressLine",
//             "ShipperAddressLine"
//           ],
//           "City": "TIMONIUM",
//           "StateProvinceCode": "MD",
//           "PostalCode": "21093",
//           "CountryCode": "US"
//         }
//       },
//       "ShipTo": {
//         "Name": "ShipToName",
//         "Address": {
//           "AddressLine": [
//             "ShipToAddressLine",
//             "ShipToAddressLine",
//             "ShipToAddressLine"
//           ],
//           "City": "Alpharetta",
//           "StateProvinceCode": "GA",
//           "PostalCode": "30005",
//           "CountryCode": "US"
//         }
//       },
//       "ShipFrom": {
//         "Name": "ShipFromName",
//         "Address": {
//           "AddressLine": [
//             "ShipFromAddressLine",
//             "ShipFromAddressLine",
//             "ShipFromAddressLine"
//           ],
//           "City": "TIMONIUM",
//           "StateProvinceCode": "MD",
//           "PostalCode": "21093",
//           "CountryCode": "US"
//         }
//       },
//       "PaymentDetails": {
//         "ShipmentCharge": {
//           "Type": "01",
//           "BillShipper": {
//             "AccountNumber": "ShipperNumber"
//           }
//         }
//       },
//       "Service": {
//         "Code": "03",
//         "Description": "Ground"
//       },
//       "NumOfPieces": "1",
//       "Package": {
//         "PackagingType": {
//           "Code": "02",
//           "Description": "Packaging"
//         },
//         "Dimensions": {
//           "UnitOfMeasurement": {
//             "Code": "IN",
//             "Description": "Inches"
//           },
//           "Length": "5",
//           "Width": "5",
//           "Height": "5"
//         },
//         "PackageWeight": {
//           "UnitOfMeasurement": {
//             "Code": "LBS",
//             "Description": "Pounds"
//           },
//           "Weight": "1"
//         }
//       }
//     }
//   }
// }

CkoJsonObject *json = [[CkoJsonObject alloc] init];
[json UpdateString: @"RateRequest.Request.TransactionReference.CustomerContext" value: @"CustomerContext"];
[json UpdateString: @"RateRequest.Shipment.Shipper.Name" value: @"ShipperName"];
[json UpdateString: @"RateRequest.Shipment.Shipper.ShipperNumber" value: @"ShipperNumber"];
[json UpdateString: @"RateRequest.Shipment.Shipper.Address.AddressLine[0]" value: @"ShipperAddressLine"];
[json UpdateString: @"RateRequest.Shipment.Shipper.Address.AddressLine[1]" value: @"ShipperAddressLine"];
[json UpdateString: @"RateRequest.Shipment.Shipper.Address.AddressLine[2]" value: @"ShipperAddressLine"];
[json UpdateString: @"RateRequest.Shipment.Shipper.Address.City" value: @"TIMONIUM"];
[json UpdateString: @"RateRequest.Shipment.Shipper.Address.StateProvinceCode" value: @"MD"];
[json UpdateString: @"RateRequest.Shipment.Shipper.Address.PostalCode" value: @"21093"];
[json UpdateString: @"RateRequest.Shipment.Shipper.Address.CountryCode" value: @"US"];
[json UpdateString: @"RateRequest.Shipment.ShipTo.Name" value: @"ShipToName"];
[json UpdateString: @"RateRequest.Shipment.ShipTo.Address.AddressLine[0]" value: @"ShipToAddressLine"];
[json UpdateString: @"RateRequest.Shipment.ShipTo.Address.AddressLine[1]" value: @"ShipToAddressLine"];
[json UpdateString: @"RateRequest.Shipment.ShipTo.Address.AddressLine[2]" value: @"ShipToAddressLine"];
[json UpdateString: @"RateRequest.Shipment.ShipTo.Address.City" value: @"Alpharetta"];
[json UpdateString: @"RateRequest.Shipment.ShipTo.Address.StateProvinceCode" value: @"GA"];
[json UpdateString: @"RateRequest.Shipment.ShipTo.Address.PostalCode" value: @"30005"];
[json UpdateString: @"RateRequest.Shipment.ShipTo.Address.CountryCode" value: @"US"];
[json UpdateString: @"RateRequest.Shipment.ShipFrom.Name" value: @"ShipFromName"];
[json UpdateString: @"RateRequest.Shipment.ShipFrom.Address.AddressLine[0]" value: @"ShipFromAddressLine"];
[json UpdateString: @"RateRequest.Shipment.ShipFrom.Address.AddressLine[1]" value: @"ShipFromAddressLine"];
[json UpdateString: @"RateRequest.Shipment.ShipFrom.Address.AddressLine[2]" value: @"ShipFromAddressLine"];
[json UpdateString: @"RateRequest.Shipment.ShipFrom.Address.City" value: @"TIMONIUM"];
[json UpdateString: @"RateRequest.Shipment.ShipFrom.Address.StateProvinceCode" value: @"MD"];
[json UpdateString: @"RateRequest.Shipment.ShipFrom.Address.PostalCode" value: @"21093"];
[json UpdateString: @"RateRequest.Shipment.ShipFrom.Address.CountryCode" value: @"US"];
[json UpdateString: @"RateRequest.Shipment.PaymentDetails.ShipmentCharge.Type" value: @"01"];
[json UpdateString: @"RateRequest.Shipment.PaymentDetails.ShipmentCharge.BillShipper.AccountNumber" value: @"ShipperNumber"];
[json UpdateString: @"RateRequest.Shipment.Service.Code" value: @"03"];
[json UpdateString: @"RateRequest.Shipment.Service.Description" value: @"Ground"];
[json UpdateString: @"RateRequest.Shipment.NumOfPieces" value: @"1"];
[json UpdateString: @"RateRequest.Shipment.Package.PackagingType.Code" value: @"02"];
[json UpdateString: @"RateRequest.Shipment.Package.PackagingType.Description" value: @"Packaging"];
[json UpdateString: @"RateRequest.Shipment.Package.Dimensions.UnitOfMeasurement.Code" value: @"IN"];
[json UpdateString: @"RateRequest.Shipment.Package.Dimensions.UnitOfMeasurement.Description" value: @"Inches"];
[json UpdateString: @"RateRequest.Shipment.Package.Dimensions.Length" value: @"5"];
[json UpdateString: @"RateRequest.Shipment.Package.Dimensions.Width" value: @"5"];
[json UpdateString: @"RateRequest.Shipment.Package.Dimensions.Height" value: @"5"];
[json UpdateString: @"RateRequest.Shipment.Package.PackageWeight.UnitOfMeasurement.Code" value: @"LBS"];
[json UpdateString: @"RateRequest.Shipment.Package.PackageWeight.UnitOfMeasurement.Description" value: @"Pounds"];
[json UpdateString: @"RateRequest.Shipment.Package.PackageWeight.Weight" value: @"1"];

// Load the OAuth2 access token obtained via client credentials as shown 
// in this UPS OAuth2 Client Credentials example.

CkoJsonObject *jsonToken = [[CkoJsonObject alloc] init];
success = [jsonToken LoadFile: @"qa_data/tokens/ups_oauth2_token.json"];
if (success != YES) {
    NSLog(@"%@",@"Failed to load ups_oauth2_token.json");
    return;
}

// The access token JSON looks something like this:

// {
//   "token_type": "Bearer",
//   "issued_at": "1686911985606",
//   "client_id": "2498righ8wr6aihe98rt8rhowirtyw9er6twe80rtywrehrt",
//   "access_token": "eyJraW......R2sbqrY",
//   "expires_in": "14399",
//   "status": "approved"
// }

// Adds the "Authorization: Bearer <YOUR_TOKEN_HERE>" header.
http.AuthToken = [jsonToken StringOf: @"access_token"];
[http SetRequestHeader: @"Content-Type" value: @"application/json"];
[http SetRequestHeader: @"transId" value: @"string"];
[http SetRequestHeader: @"transactionSrc" value: @"testing"];

// The "version" indicates Rate API to display the new release features in Rate API response based on Rate release.
// Supported values: v1, v1601, v1607, v1701, v1707, v2108, v2205.
[http SetUrlVar: @"version" value: @"v1"];

// The "requestoption" has the following valid values:
// Rate = The server rates (The default Request option is Rate if a Request Option is not provided). 
// Shop = The server validates the shipment, and returns rates for all UPS products from the ShipFrom to the ShipTo addresses. 
// Rate is the only valid request option for Ground Freight Pricing requests.
[http SetUrlVar: @"requestoption" value: @"Rate"];

CkoHttpResponse *resp = [[CkoHttpResponse alloc] init];
success = [http HttpJson: @"POST" url: @"https://wwwcie.ups.com/api/rating/{$version}/{$requestoption}?additionalinfo=string" json: json contentType: @"application/json" response: resp];
if (success == NO) {
    NSLog(@"%@",http.LastErrorText);
    return;
}

CkoStringBuilder *sbResponseBody = [[CkoStringBuilder alloc] init];
[resp GetBodySb: sbResponseBody];

CkoJsonObject *jResp = [[CkoJsonObject alloc] init];
[jResp LoadSb: sbResponseBody];
jResp.EmitCompact = NO;

NSLog(@"%@",@"Response Body:");
NSLog(@"%@",[jResp Emit]);

// ----------------------------------------------------------------------------------------------------------
// Important: If you get the following error response, read further for the solution..
// 
// {
//   "response": {
//     "errors": [
//       {
//         "code": "250002",
//         "message": "Invalid Authentication Information."
//       }
//     ]
//   }
// }
// 
// It means you didn't add the Rating API permission to your app.
// To add the Rating API, login to your developer account and go to your Apps page at https://developer.ups.com/apps?loc=en_US
// Then edit your app and add the Rating API.
// ----------------------------------------------------------------------------------------------------------

int respStatusCode = [resp.StatusCode intValue];
NSLog(@"%@%d",@"Response Status Code = ",respStatusCode);
if (respStatusCode >= 400) {
    NSLog(@"%@",@"Response Header:");
    NSLog(@"%@",resp.Header);
    NSLog(@"%@",@"Failed.");
    return;
}

// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)

// {
//   "RateResponse": {
//     "Response": {
//       "ResponseStatus": {
//         "Code": "s",
//         "Description": "string"
//       },
//       "Alert": [
//         {
//           "Code": "string",
//           "Description": "string"
//         }
//       ],
//       "AlertDetail": [
//         {
//           "Code": "string",
//           "Description": "string",
//           "ElementLevelInformation": {
//             "Level": "s",
//             "ElementIdentifier": [
//               {
//                 "Code": null,
//                 "Value": null
//               }
//             ]
//           }
//         }
//       ],
//       "TransactionReference": {
//         "CustomerContext": "string"
//       }
//     },
//     "RatedShipment": [
//       {
//         "Disclaimer": [
//           {
//             "Code": "st",
//             "Description": "string"
//           }
//         ],
//         "Service": {
//           "Code": "str",
//           "Description": "string"
//         },
//         "RateChart": "s",
//         "RatedShipmentAlert": [
//           {
//             "Code": "string",
//             "Description": "string"
//           }
//         ],
//         "BillableWeightCalculationMethod": "st",
//         "RatingMethod": "st",
//         "BillingWeight": {
//           "UnitOfMeasurement": {
//             "Code": "str",
//             "Description": "string"
//           },
//           "Weight": "strin"
//         },
//         "TransportationCharges": {
//           "CurrencyCode": "str",
//           "MonetaryValue": "stringstringstri"
//         },
//         "BaseServiceCharge": {
//           "CurrencyCode": "str",
//           "MonetaryValue": "stringstringstri"
//         },
//         "ItemizedCharges": [
//           {
//             "Code": "str",
//             "Description": "string",
//             "CurrencyCode": "str",
//             "MonetaryValue": "string",
//             "SubType": "string"
//           }
//         ],
//         "FRSShipmentData": {
//           "TransportationCharges": {
//             "GrossCharge": {
//               "CurrencyCode": "str",
//               "MonetaryValue": "string"
//             },
//             "DiscountAmount": {
//               "CurrencyCode": "str",
//               "MonetaryValue": "string"
//             },
//             "DiscountPercentage": "st",
//             "NetCharge": {
//               "CurrencyCode": "str",
//               "MonetaryValue": "string"
//             }
//           },
//           "FreightDensityRate": {
//             "Density": "strin",
//             "TotalCubicFeet": "string"
//           },
//           "HandlingUnits": [
//             {
//               "Quantity": "string",
//               "Type": {
//                 "Code": null,
//                 "Description": null
//               },
//               "Dimensions": {
//                 "UnitOfMeasurement": null,
//                 "Length": null,
//                 "Width": null,
//                 "Height": null
//               },
//               "AdjustedHeight": {
//                 "Value": null,
//                 "UnitOfMeasurement": null
//               }
//             }
//           ]
//         },
//         "ServiceOptionsCharges": {
//           "CurrencyCode": "str",
//           "MonetaryValue": "string"
//         },
//         "TaxCharges": [
//           {
//             "Type": "string",
//             "MonetaryValue": "string"
//           }
//         ],
//         "TotalCharges": {
//           "CurrencyCode": "str",
//           "MonetaryValue": "string"
//         },
//         "TotalChargesWithTaxes": {
//           "CurrencyCode": "str",
//           "MonetaryValue": "string"
//         },
//         "NegotiatedRateCharges": {
//           "ItemizedCharges": [
//             {
//               "Code": "str",
//               "Description": "string",
//               "CurrencyCode": "str",
//               "MonetaryValue": "string",
//               "SubType": "string"
//             }
//           ],
//           "TaxCharges": [
//             {
//               "Type": "string",
//               "MonetaryValue": "string"
//             }
//           ],
//           "TotalCharge": {
//             "CurrencyCode": "string",
//             "MonetaryValue": "string"
//           },
//           "TotalChargesWithTaxes": {
//             "CurrencyCode": "string",
//             "MonetaryValue": "string"
//           }
//         },
//         "RatedPackage": [
//           {
//             "BaseServiceCharge": {
//               "CurrencyCode": "str",
//               "MonetaryValue": "string"
//             },
//             "TransportationCharges": {
//               "CurrencyCode": "string",
//               "MonetaryValue": "string"
//             },
//             "ServiceOptionsCharges": {
//               "CurrencyCode": "string",
//               "MonetaryValue": "string"
//             },
//             "TotalCharges": {
//               "CurrencyCode": "string",
//               "MonetaryValue": "string"
//             },
//             "Weight": "string",
//             "BillingWeight": {
//               "UnitOfMeasurement": {
//                 "Code": null,
//                 "Description": null
//               },
//               "Weight": "string"
//             },
//             "Accessorial": [
//               {
//                 "Code": null,
//                 "Description": null
//               }
//             ],
//             "ItemizedCharges": [
//               {
//                 "Code": null,
//                 "Description": null,
//                 "CurrencyCode": null,
//                 "MonetaryValue": null,
//                 "SubType": null
//               }
//             ],
//             "NegotiatedCharges": {
//               "ItemizedCharges": [
//                 null
//               ]
//             },
//             "SimpleRate": {
//               "Code": "st"
//             },
//             "RateModifier": [
//               {
//                 "ModifierType": null,
//                 "ModifierDesc": null,
//                 "Amount": null
//               }
//             ]
//           }
//         ],
//         "TimeInTransit": {
//           "PickupDate": "stringst",
//           "DocumentsOnlyIndicator": "string",
//           "PackageBillType": "st",
//           "ServiceSummary": {
//             "Service": {
//               "Description": "string"
//             },
//             "GuaranteedIndicator": "string",
//             "Disclaimer": "string",
//             "EstimatedArrival": {
//               "Arrival": {
//                 "Date": null,
//                 "Time": null
//               },
//               "BusinessDaysInTransit": "strin",
//               "Pickup": {
//                 "Date": null,
//                 "Time": null
//               },
//               "DayOfWeek": "string",
//               "CustomerCenterCutoff": "string",
//               "DelayCount": "str",
//               "HolidayCount": "st",
//               "RestDays": "st",
//               "TotalTransitDays": "strin"
//             },
//             "SaturdayDelivery": "string",
//             "SaturdayDeliveryDisclaimer": "string",
//             "SundayDelivery": "string",
//             "SundayDeliveryDisclaimer": "string"
//           },
//           "AutoDutyCode": "st",
//           "Disclaimer": "string"
//         },
//         "ScheduledDeliveryDate": "string",
//         "RoarRatedIndicator": "string"
//       }
//     ]
//   }
// }

// Sample code for parsing the JSON response...
// Use the following online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON

NSString *Level = 0;
int j;
int count_j;
NSString *Value = 0;
NSString *ServiceCode = 0;
NSString *ServiceDescription = 0;
NSString *RateChart = 0;
NSString *BillableWeightCalculationMethod = 0;
NSString *RatingMethod = 0;
NSString *UnitOfMeasurementCode = 0;
NSString *UnitOfMeasurementDescription = 0;
NSString *Weight = 0;
NSString *CurrencyCode = 0;
NSString *MonetaryValue = 0;
NSString *BaseServiceChargeCurrencyCode = 0;
NSString *BaseServiceChargeMonetaryValue = 0;
NSString *GrossChargeCurrencyCode = 0;
NSString *GrossChargeMonetaryValue = 0;
NSString *DiscountAmountCurrencyCode = 0;
NSString *DiscountAmountMonetaryValue = 0;
NSString *DiscountPercentage = 0;
NSString *NetChargeCurrencyCode = 0;
NSString *NetChargeMonetaryValue = 0;
NSString *Density = 0;
NSString *TotalCubicFeet = 0;
NSString *ServiceOptionsChargesCurrencyCode = 0;
NSString *ServiceOptionsChargesMonetaryValue = 0;
NSString *TotalChargesCurrencyCode = 0;
NSString *TotalChargesMonetaryValue = 0;
NSString *TotalChargesWithTaxesCurrencyCode = 0;
NSString *TotalChargesWithTaxesMonetaryValue = 0;
NSString *TotalChargeCurrencyCode = 0;
NSString *TotalChargeMonetaryValue = 0;
NSString *PickupDate = 0;
NSString *DocumentsOnlyIndicator = 0;
NSString *PackageBillType = 0;
NSString *GuaranteedIndicator = 0;
NSString *Disclaimer = 0;
NSString *Date = 0;
NSString *Time = 0;
NSString *BusinessDaysInTransit = 0;
NSString *PickupTime = 0;
NSString *DayOfWeek = 0;
NSString *CustomerCenterCutoff = 0;
NSString *DelayCount = 0;
NSString *HolidayCount = 0;
NSString *RestDays = 0;
NSString *TotalTransitDays = 0;
NSString *SaturdayDelivery = 0;
NSString *SaturdayDeliveryDisclaimer = 0;
NSString *SundayDelivery = 0;
NSString *SundayDeliveryDisclaimer = 0;
NSString *AutoDutyCode = 0;
NSString *TimeInTransitDisclaimer = 0;
NSString *ScheduledDeliveryDate = 0;
NSString *RoarRatedIndicator = 0;
NSString *SubType = 0;
NSString *Quantity = 0;
NSString *TypeCode = 0;
NSString *TypeDescription = 0;
NSString *UnitOfMeasurement = 0;
NSString *Length = 0;
NSString *Width = 0;
NSString *Height = 0;
NSString *AdjustedHeightValue = 0;
NSString *AdjustedHeightUnitOfMeasurement = 0;
NSString *v_Type = 0;
NSString *TransportationChargesCurrencyCode = 0;
NSString *TransportationChargesMonetaryValue = 0;
NSString *BillingWeightWeight = 0;
NSString *SimpleRateCode = 0;
int k;
int count_k;
BOOL nullVal;
NSString *ModifierType = 0;
NSString *ModifierDesc = 0;
NSString *Amount = 0;

NSString *Code = [jResp StringOf: @"RateResponse.Response.ResponseStatus.Code"];
NSString *Description = [jResp StringOf: @"RateResponse.Response.ResponseStatus.Description"];
NSString *CustomerContext = [jResp StringOf: @"RateResponse.Response.TransactionReference.CustomerContext"];
int i = 0;
int count_i = [[jResp SizeOfArray: @"RateResponse.Response.Alert"] intValue];
while (i < count_i) {
    jResp.I = [NSNumber numberWithInt: i];
    Code = [jResp StringOf: @"RateResponse.Response.Alert[i].Code"];
    Description = [jResp StringOf: @"RateResponse.Response.Alert[i].Description"];
    i = i + 1;
}

i = 0;
count_i = [[jResp SizeOfArray: @"RateResponse.Response.AlertDetail"] intValue];
while (i < count_i) {
    jResp.I = [NSNumber numberWithInt: i];
    Code = [jResp StringOf: @"RateResponse.Response.AlertDetail[i].Code"];
    Description = [jResp StringOf: @"RateResponse.Response.AlertDetail[i].Description"];
    Level = [jResp StringOf: @"RateResponse.Response.AlertDetail[i].ElementLevelInformation.Level"];
    j = 0;
    count_j = [[jResp SizeOfArray: @"RateResponse.Response.AlertDetail[i].ElementLevelInformation.ElementIdentifier"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        Code = [jResp StringOf: @"RateResponse.Response.AlertDetail[i].ElementLevelInformation.ElementIdentifier[j].Code"];
        Value = [jResp StringOf: @"RateResponse.Response.AlertDetail[i].ElementLevelInformation.ElementIdentifier[j].Value"];
        j = j + 1;
    }

    i = i + 1;
}

i = 0;
count_i = [[jResp SizeOfArray: @"RateResponse.RatedShipment"] intValue];
while (i < count_i) {
    jResp.I = [NSNumber numberWithInt: i];
    ServiceCode = [jResp StringOf: @"RateResponse.RatedShipment[i].Service.Code"];
    ServiceDescription = [jResp StringOf: @"RateResponse.RatedShipment[i].Service.Description"];
    RateChart = [jResp StringOf: @"RateResponse.RatedShipment[i].RateChart"];
    BillableWeightCalculationMethod = [jResp StringOf: @"RateResponse.RatedShipment[i].BillableWeightCalculationMethod"];
    RatingMethod = [jResp StringOf: @"RateResponse.RatedShipment[i].RatingMethod"];
    UnitOfMeasurementCode = [jResp StringOf: @"RateResponse.RatedShipment[i].BillingWeight.UnitOfMeasurement.Code"];
    UnitOfMeasurementDescription = [jResp StringOf: @"RateResponse.RatedShipment[i].BillingWeight.UnitOfMeasurement.Description"];
    Weight = [jResp StringOf: @"RateResponse.RatedShipment[i].BillingWeight.Weight"];
    CurrencyCode = [jResp StringOf: @"RateResponse.RatedShipment[i].TransportationCharges.CurrencyCode"];
    MonetaryValue = [jResp StringOf: @"RateResponse.RatedShipment[i].TransportationCharges.MonetaryValue"];
    BaseServiceChargeCurrencyCode = [jResp StringOf: @"RateResponse.RatedShipment[i].BaseServiceCharge.CurrencyCode"];
    BaseServiceChargeMonetaryValue = [jResp StringOf: @"RateResponse.RatedShipment[i].BaseServiceCharge.MonetaryValue"];
    GrossChargeCurrencyCode = [jResp StringOf: @"RateResponse.RatedShipment[i].FRSShipmentData.TransportationCharges.GrossCharge.CurrencyCode"];
    GrossChargeMonetaryValue = [jResp StringOf: @"RateResponse.RatedShipment[i].FRSShipmentData.TransportationCharges.GrossCharge.MonetaryValue"];
    DiscountAmountCurrencyCode = [jResp StringOf: @"RateResponse.RatedShipment[i].FRSShipmentData.TransportationCharges.DiscountAmount.CurrencyCode"];
    DiscountAmountMonetaryValue = [jResp StringOf: @"RateResponse.RatedShipment[i].FRSShipmentData.TransportationCharges.DiscountAmount.MonetaryValue"];
    DiscountPercentage = [jResp StringOf: @"RateResponse.RatedShipment[i].FRSShipmentData.TransportationCharges.DiscountPercentage"];
    NetChargeCurrencyCode = [jResp StringOf: @"RateResponse.RatedShipment[i].FRSShipmentData.TransportationCharges.NetCharge.CurrencyCode"];
    NetChargeMonetaryValue = [jResp StringOf: @"RateResponse.RatedShipment[i].FRSShipmentData.TransportationCharges.NetCharge.MonetaryValue"];
    Density = [jResp StringOf: @"RateResponse.RatedShipment[i].FRSShipmentData.FreightDensityRate.Density"];
    TotalCubicFeet = [jResp StringOf: @"RateResponse.RatedShipment[i].FRSShipmentData.FreightDensityRate.TotalCubicFeet"];
    ServiceOptionsChargesCurrencyCode = [jResp StringOf: @"RateResponse.RatedShipment[i].ServiceOptionsCharges.CurrencyCode"];
    ServiceOptionsChargesMonetaryValue = [jResp StringOf: @"RateResponse.RatedShipment[i].ServiceOptionsCharges.MonetaryValue"];
    TotalChargesCurrencyCode = [jResp StringOf: @"RateResponse.RatedShipment[i].TotalCharges.CurrencyCode"];
    TotalChargesMonetaryValue = [jResp StringOf: @"RateResponse.RatedShipment[i].TotalCharges.MonetaryValue"];
    TotalChargesWithTaxesCurrencyCode = [jResp StringOf: @"RateResponse.RatedShipment[i].TotalChargesWithTaxes.CurrencyCode"];
    TotalChargesWithTaxesMonetaryValue = [jResp StringOf: @"RateResponse.RatedShipment[i].TotalChargesWithTaxes.MonetaryValue"];
    TotalChargeCurrencyCode = [jResp StringOf: @"RateResponse.RatedShipment[i].NegotiatedRateCharges.TotalCharge.CurrencyCode"];
    TotalChargeMonetaryValue = [jResp StringOf: @"RateResponse.RatedShipment[i].NegotiatedRateCharges.TotalCharge.MonetaryValue"];
    TotalChargesWithTaxesCurrencyCode = [jResp StringOf: @"RateResponse.RatedShipment[i].NegotiatedRateCharges.TotalChargesWithTaxes.CurrencyCode"];
    TotalChargesWithTaxesMonetaryValue = [jResp StringOf: @"RateResponse.RatedShipment[i].NegotiatedRateCharges.TotalChargesWithTaxes.MonetaryValue"];
    PickupDate = [jResp StringOf: @"RateResponse.RatedShipment[i].TimeInTransit.PickupDate"];
    DocumentsOnlyIndicator = [jResp StringOf: @"RateResponse.RatedShipment[i].TimeInTransit.DocumentsOnlyIndicator"];
    PackageBillType = [jResp StringOf: @"RateResponse.RatedShipment[i].TimeInTransit.PackageBillType"];
    ServiceDescription = [jResp StringOf: @"RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.Service.Description"];
    GuaranteedIndicator = [jResp StringOf: @"RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.GuaranteedIndicator"];
    Disclaimer = [jResp StringOf: @"RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.Disclaimer"];
    Date = [jResp StringOf: @"RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.EstimatedArrival.Arrival.Date"];
    Time = [jResp StringOf: @"RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.EstimatedArrival.Arrival.Time"];
    BusinessDaysInTransit = [jResp StringOf: @"RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.EstimatedArrival.BusinessDaysInTransit"];
    PickupDate = [jResp StringOf: @"RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.EstimatedArrival.Pickup.Date"];
    PickupTime = [jResp StringOf: @"RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.EstimatedArrival.Pickup.Time"];
    DayOfWeek = [jResp StringOf: @"RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.EstimatedArrival.DayOfWeek"];
    CustomerCenterCutoff = [jResp StringOf: @"RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.EstimatedArrival.CustomerCenterCutoff"];
    DelayCount = [jResp StringOf: @"RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.EstimatedArrival.DelayCount"];
    HolidayCount = [jResp StringOf: @"RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.EstimatedArrival.HolidayCount"];
    RestDays = [jResp StringOf: @"RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.EstimatedArrival.RestDays"];
    TotalTransitDays = [jResp StringOf: @"RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.EstimatedArrival.TotalTransitDays"];
    SaturdayDelivery = [jResp StringOf: @"RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.SaturdayDelivery"];
    SaturdayDeliveryDisclaimer = [jResp StringOf: @"RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.SaturdayDeliveryDisclaimer"];
    SundayDelivery = [jResp StringOf: @"RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.SundayDelivery"];
    SundayDeliveryDisclaimer = [jResp StringOf: @"RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.SundayDeliveryDisclaimer"];
    AutoDutyCode = [jResp StringOf: @"RateResponse.RatedShipment[i].TimeInTransit.AutoDutyCode"];
    TimeInTransitDisclaimer = [jResp StringOf: @"RateResponse.RatedShipment[i].TimeInTransit.Disclaimer"];
    ScheduledDeliveryDate = [jResp StringOf: @"RateResponse.RatedShipment[i].ScheduledDeliveryDate"];
    RoarRatedIndicator = [jResp StringOf: @"RateResponse.RatedShipment[i].RoarRatedIndicator"];
    j = 0;
    count_j = [[jResp SizeOfArray: @"RateResponse.RatedShipment[i].Disclaimer"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        Code = [jResp StringOf: @"RateResponse.RatedShipment[i].Disclaimer[j].Code"];
        Description = [jResp StringOf: @"RateResponse.RatedShipment[i].Disclaimer[j].Description"];
        j = j + 1;
    }

    j = 0;
    count_j = [[jResp SizeOfArray: @"RateResponse.RatedShipment[i].RatedShipmentAlert"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        Code = [jResp StringOf: @"RateResponse.RatedShipment[i].RatedShipmentAlert[j].Code"];
        Description = [jResp StringOf: @"RateResponse.RatedShipment[i].RatedShipmentAlert[j].Description"];
        j = j + 1;
    }

    j = 0;
    count_j = [[jResp SizeOfArray: @"RateResponse.RatedShipment[i].ItemizedCharges"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        Code = [jResp StringOf: @"RateResponse.RatedShipment[i].ItemizedCharges[j].Code"];
        Description = [jResp StringOf: @"RateResponse.RatedShipment[i].ItemizedCharges[j].Description"];
        CurrencyCode = [jResp StringOf: @"RateResponse.RatedShipment[i].ItemizedCharges[j].CurrencyCode"];
        MonetaryValue = [jResp StringOf: @"RateResponse.RatedShipment[i].ItemizedCharges[j].MonetaryValue"];
        SubType = [jResp StringOf: @"RateResponse.RatedShipment[i].ItemizedCharges[j].SubType"];
        j = j + 1;
    }

    j = 0;
    count_j = [[jResp SizeOfArray: @"RateResponse.RatedShipment[i].FRSShipmentData.HandlingUnits"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        Quantity = [jResp StringOf: @"RateResponse.RatedShipment[i].FRSShipmentData.HandlingUnits[j].Quantity"];
        TypeCode = [jResp StringOf: @"RateResponse.RatedShipment[i].FRSShipmentData.HandlingUnits[j].Type.Code"];
        TypeDescription = [jResp StringOf: @"RateResponse.RatedShipment[i].FRSShipmentData.HandlingUnits[j].Type.Description"];
        UnitOfMeasurement = [jResp StringOf: @"RateResponse.RatedShipment[i].FRSShipmentData.HandlingUnits[j].Dimensions.UnitOfMeasurement"];
        Length = [jResp StringOf: @"RateResponse.RatedShipment[i].FRSShipmentData.HandlingUnits[j].Dimensions.Length"];
        Width = [jResp StringOf: @"RateResponse.RatedShipment[i].FRSShipmentData.HandlingUnits[j].Dimensions.Width"];
        Height = [jResp StringOf: @"RateResponse.RatedShipment[i].FRSShipmentData.HandlingUnits[j].Dimensions.Height"];
        AdjustedHeightValue = [jResp StringOf: @"RateResponse.RatedShipment[i].FRSShipmentData.HandlingUnits[j].AdjustedHeight.Value"];
        AdjustedHeightUnitOfMeasurement = [jResp StringOf: @"RateResponse.RatedShipment[i].FRSShipmentData.HandlingUnits[j].AdjustedHeight.UnitOfMeasurement"];
        j = j + 1;
    }

    j = 0;
    count_j = [[jResp SizeOfArray: @"RateResponse.RatedShipment[i].TaxCharges"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        v_Type = [jResp StringOf: @"RateResponse.RatedShipment[i].TaxCharges[j].Type"];
        MonetaryValue = [jResp StringOf: @"RateResponse.RatedShipment[i].TaxCharges[j].MonetaryValue"];
        j = j + 1;
    }

    j = 0;
    count_j = [[jResp SizeOfArray: @"RateResponse.RatedShipment[i].NegotiatedRateCharges.ItemizedCharges"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        Code = [jResp StringOf: @"RateResponse.RatedShipment[i].NegotiatedRateCharges.ItemizedCharges[j].Code"];
        Description = [jResp StringOf: @"RateResponse.RatedShipment[i].NegotiatedRateCharges.ItemizedCharges[j].Description"];
        CurrencyCode = [jResp StringOf: @"RateResponse.RatedShipment[i].NegotiatedRateCharges.ItemizedCharges[j].CurrencyCode"];
        MonetaryValue = [jResp StringOf: @"RateResponse.RatedShipment[i].NegotiatedRateCharges.ItemizedCharges[j].MonetaryValue"];
        SubType = [jResp StringOf: @"RateResponse.RatedShipment[i].NegotiatedRateCharges.ItemizedCharges[j].SubType"];
        j = j + 1;
    }

    j = 0;
    count_j = [[jResp SizeOfArray: @"RateResponse.RatedShipment[i].NegotiatedRateCharges.TaxCharges"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        v_Type = [jResp StringOf: @"RateResponse.RatedShipment[i].NegotiatedRateCharges.TaxCharges[j].Type"];
        MonetaryValue = [jResp StringOf: @"RateResponse.RatedShipment[i].NegotiatedRateCharges.TaxCharges[j].MonetaryValue"];
        j = j + 1;
    }

    j = 0;
    count_j = [[jResp SizeOfArray: @"RateResponse.RatedShipment[i].RatedPackage"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        BaseServiceChargeCurrencyCode = [jResp StringOf: @"RateResponse.RatedShipment[i].RatedPackage[j].BaseServiceCharge.CurrencyCode"];
        BaseServiceChargeMonetaryValue = [jResp StringOf: @"RateResponse.RatedShipment[i].RatedPackage[j].BaseServiceCharge.MonetaryValue"];
        TransportationChargesCurrencyCode = [jResp StringOf: @"RateResponse.RatedShipment[i].RatedPackage[j].TransportationCharges.CurrencyCode"];
        TransportationChargesMonetaryValue = [jResp StringOf: @"RateResponse.RatedShipment[i].RatedPackage[j].TransportationCharges.MonetaryValue"];
        ServiceOptionsChargesCurrencyCode = [jResp StringOf: @"RateResponse.RatedShipment[i].RatedPackage[j].ServiceOptionsCharges.CurrencyCode"];
        ServiceOptionsChargesMonetaryValue = [jResp StringOf: @"RateResponse.RatedShipment[i].RatedPackage[j].ServiceOptionsCharges.MonetaryValue"];
        TotalChargesCurrencyCode = [jResp StringOf: @"RateResponse.RatedShipment[i].RatedPackage[j].TotalCharges.CurrencyCode"];
        TotalChargesMonetaryValue = [jResp StringOf: @"RateResponse.RatedShipment[i].RatedPackage[j].TotalCharges.MonetaryValue"];
        Weight = [jResp StringOf: @"RateResponse.RatedShipment[i].RatedPackage[j].Weight"];
        UnitOfMeasurementCode = [jResp StringOf: @"RateResponse.RatedShipment[i].RatedPackage[j].BillingWeight.UnitOfMeasurement.Code"];
        UnitOfMeasurementDescription = [jResp StringOf: @"RateResponse.RatedShipment[i].RatedPackage[j].BillingWeight.UnitOfMeasurement.Description"];
        BillingWeightWeight = [jResp StringOf: @"RateResponse.RatedShipment[i].RatedPackage[j].BillingWeight.Weight"];
        SimpleRateCode = [jResp StringOf: @"RateResponse.RatedShipment[i].RatedPackage[j].SimpleRate.Code"];
        k = 0;
        count_k = [[jResp SizeOfArray: @"RateResponse.RatedShipment[i].RatedPackage[j].Accessorial"] intValue];
        while (k < count_k) {
            jResp.K = [NSNumber numberWithInt: k];
            Code = [jResp StringOf: @"RateResponse.RatedShipment[i].RatedPackage[j].Accessorial[k].Code"];
            Description = [jResp StringOf: @"RateResponse.RatedShipment[i].RatedPackage[j].Accessorial[k].Description"];
            k = k + 1;
        }

        k = 0;
        count_k = [[jResp SizeOfArray: @"RateResponse.RatedShipment[i].RatedPackage[j].ItemizedCharges"] intValue];
        while (k < count_k) {
            jResp.K = [NSNumber numberWithInt: k];
            Code = [jResp StringOf: @"RateResponse.RatedShipment[i].RatedPackage[j].ItemizedCharges[k].Code"];
            Description = [jResp StringOf: @"RateResponse.RatedShipment[i].RatedPackage[j].ItemizedCharges[k].Description"];
            CurrencyCode = [jResp StringOf: @"RateResponse.RatedShipment[i].RatedPackage[j].ItemizedCharges[k].CurrencyCode"];
            MonetaryValue = [jResp StringOf: @"RateResponse.RatedShipment[i].RatedPackage[j].ItemizedCharges[k].MonetaryValue"];
            SubType = [jResp StringOf: @"RateResponse.RatedShipment[i].RatedPackage[j].ItemizedCharges[k].SubType"];
            k = k + 1;
        }

        k = 0;
        count_k = [[jResp SizeOfArray: @"RateResponse.RatedShipment[i].RatedPackage[j].NegotiatedCharges.ItemizedCharges"] intValue];
        while (k < count_k) {
            jResp.K = [NSNumber numberWithInt: k];
            nullVal = [jResp IsNullOf: @"RateResponse.RatedShipment[i].RatedPackage[j].NegotiatedCharges.ItemizedCharges[k]"];
            k = k + 1;
        }

        k = 0;
        count_k = [[jResp SizeOfArray: @"RateResponse.RatedShipment[i].RatedPackage[j].RateModifier"] intValue];
        while (k < count_k) {
            jResp.K = [NSNumber numberWithInt: k];
            ModifierType = [jResp StringOf: @"RateResponse.RatedShipment[i].RatedPackage[j].RateModifier[k].ModifierType"];
            ModifierDesc = [jResp StringOf: @"RateResponse.RatedShipment[i].RatedPackage[j].RateModifier[k].ModifierDesc"];
            Amount = [jResp StringOf: @"RateResponse.RatedShipment[i].RatedPackage[j].RateModifier[k].Amount"];
            k = k + 1;
        }

        j = j + 1;
    }

    i = i + 1;
}