# Rate Shipment

This operation generates rate Shop for a specified shipment without generating the labels.

Endpoint: POST /api/v2/rates
Version: 1.0.0
Security: bearerAuth

## Query parameters:

  - `isReturn` (boolean)
    Indicates that rates should be calculated for a return shipment. Applies only to USPS, UPS, FedEx, and Purolator carriers.

- **UPS:** When `isReturn` is set to `true`, either the `returnOptions` object must be provided (when using individual service objects) or `serviceId: PRL` must be specified (when using `specialServices`). Otherwise, the request will fail.
- **FedEx and Purolator:** When `isReturn` is set to `true`, the `returnOptions` object is optional.
- **USPS:** When `isReturn` is set to `true`, return-shipment rates are returned. (Billing for USPS Scan-Based Returns occurs only after the return is inducted, and applies at shipment creation, not at rating.)

## Header parameters:

  - `X-PB-LocationId` (string)
    The X-PB-LocationId header identifies the enterprise, developer, or partner location under which a shipment is processed and billed.
If the header is not provided, the system defaults to the enterprise-level location that was created during developer account onboarding. This default location is automatically used for shipment processing and billing. <br/>

**Requirement Rules**

- The `X-PB-LocationId` header is optional when the shipment origin country code matches the enterprise's default address country code.
- The `X-PB-LocationId` header is required when the shipment origin country code differs from the enterprise's default address country code.
- If the header is required but not provided, the API will return a validation error *"invalid origin countryCode"*.

## Request fields (application/json):

  - `fromAddress` (object)
    The complete address of the Sender. Read: [How to create Defaults](/openapi/shipping/defaults/createdefaults).
The `fromAddress` is selected using the following order of precedence:
**Request Body → Default ID → Location ID**
- `fromAddress` provided in the request payload is used if available.
- If not available in request payload, The Default ID (`fromAddress` defined in Default API) is used.
- If provided neither in the request nor in the default, the `fromAddress` associated with the resolved location is used.
- If `fromAddress` cannot be resolved from any source, the request fails with a validation error.
**Note**: `fromAddress` is required.

  - `fromAddress.name` (string, required)
    The name of the Sender to which this address points.
    Example: Sender Name

  - `fromAddress.addressLine1` (string, required)
    The addressLine1 contains the Flat number, Building or Apartment Name/number (if any) or company name (if not residential) of the Sender.  `Max length = 35`.
    Example: 1600 Amphitheatre Parkway

  - `fromAddress.addressLine2` (string)
    The addressLine2 contains Street address or Landmark (if any).
    Example: near abc street

  - `fromAddress.addressLine3` (string)
    The addressLine3 contains P.O. Box (if any) near the address.
    Example: near xyz street

  - `fromAddress.company` (string)
    The name of the company, in case if the senders address is not residential.
    Example: PB

  - `fromAddress.email` (string)
    This must be senders's valid email. Email is required if the customer is using GoFor Carrier. Sender email is required for RMG b2b shipment.  `Max length = 50`
    Example: testuser@gmail.com

  - `fromAddress.phone` (string, required)
    This is sender's phone number. Enter the digits with or without spaces or hyphens. The maximum limit of characters for Phone number are 10 digits.
    Example: 6502530000

  - `fromAddress.cityTown` (string, required)
    The name of the city or town the Sender's address belongs to.  `Max length = 30`.
    Example: Mountain View

  - `fromAddress.stateProvince` (string, required)
    "The name of the State or Province the Sender belongs to. It is the `2-letter` State or Province Code for US or Canadian address(es).
 Below is the hyperlink for CA country that will navigate to its Province/State Codes page. Similarly, respective country users can check for their country- State/Province codes.
 Please switch to the `Search` tab, select `Country codes` radio button, enter the required country name or country code, and then click `SEARCH` button.  `Max length = 2`"
    Example: CA

  - `fromAddress.postalCode` (string, required)
    The Postal Code or ZIP Code of the address.  For CA addresses, use a `six-character` alphanumeric string Postal Code in this format: 'A1A 1A1'.  While for US addresses, use either the `5-digit` or `9-digit` ZIP Code in one of the following formats: '12345' or '12345-6789'.  `Max length = 10`
    Example: 94043

  - `fromAddress.inductionPostalCode` (string)
    The postal code where the shipment is tendered to the carrier. If an induction postal code is specified in the "fromAddress", it will be used for rate calculations and determining manifest eligibility instead of the standard postal code. If not specified, the postal code from the "fromAddress" will be used.
    Example: 06905

  - `fromAddress.countryCode` (string, required)
    "The country in which the sender's address is located. The value will be the two-character ISO Code of the country from the ISO country list.  Use ISO 3166-1 Alpha-2 standard values. For best results this should be included, especially if the country name does not appear in any of the unparsedAddressLines.
 Below is the hyperlink, please select `Country codes` and then click `SEARCH` button.  `Max length = 2`"
    Example: US

  - `fromAddress.residential` (boolean)
    The specified address can be Residential or Official. In case if the address is Residential, the boolean value will be 'true', else it will take 'false'.
    Example: true

  - `toAddress` (object, required)
    The complete address of the Recipient or Department (in case if the address is not pointed to any individual recipient).

  - `toAddress.name` (string, required)
    The name of the Recipient.
    Example: Recipient Name

  - `toAddress.addressLine1` (string, required)
    The addressLine1 contains the Flat number, Building or Apartment Name/number (if any) or company name (if not residential) of the Recipient.  `Max length = 35`.
    Example: 350 Fifth Avenue

  - `toAddress.addressLine2` (string)
    The addressLine2 contains Street address or Landmark (if any).
    Example: near abc street

  - `toAddress.addressLine3` (string)
    The addressLine3 contains P.O. Box (if any) near the address.
    Example: near xyz street

  - `toAddress.cityTown` (string, required)
    The name of the city or town the Recipient belongs to.  `Max length = 30`.
    Example: New York

  - `toAddress.stateProvince` (string, required)
    "The name of the State or Province the Sender belongs to. It is the `2-letter` State or Province Code for US or Canadian address(es).
 Below is the hyperlink for CA country that will navigate to its Province/State Codes page. Similarly, respective country users can check for their country- State/Province codes.
 Please switch to the `Search` tab, select `Country codes` radio button, enter the required country name or country code, and then click `SEARCH` button .  `Max length = 2`"
    Example: NY

  - `toAddress.postalCode` (string, required)
    "The Postal Code or ZIP Code of the address. For CA addresses, use a `six-character` alphanumeric string Postal Code in this format: 'A1A 1A1'. While for US addresses, use either the `5-digit` or `9-digit` ZIP Code in one of the following formats: '12345' or '12345-6789'. `Max length = 30`"
    Example: 10118

  - `toAddress.countryCode` (string, required)
    "The country in which the recipient's address is located. The value will be the two-character ISO Code of the country from the ISO country list.  Use ISO 3166-1 Alpha-2 standard values. For best results this should be included, especially if the country name does not appear in any of the unparsedAddressLines.
 Below is the hyperlink, please select `Country codes` and then click `SEARCH` button.  `Max length = 10`"
    Example: US

  - `toAddress.company` (string)
    The name of the company, in case if the recipient address is not residential. Recipient company is required for RMG b2b shipment.
    Example: PB

  - `toAddress.phone` (string, required)
    This is Recipient's phone number. Enter the digits with or without spaces or hyphens.  `Max length = 15`.
    Example: 2127363100

  - `toAddress.email` (string)
    This must be recipient's valid email. Email is required if the customer is using GoFor Carrier.  `Max length = 50`
    Example: recipient@gmail.com

  - `toAddress.residential` (boolean)
    The specified address can be Residential or Official. In case if the address is Residential, the boolean value will be 'true', else it will take 'false'.
    Example: true

  - `toAddress.isPOBox` (boolean)
    Checks if the specified address has the PO Box. In case if Yes, the boolean value will be 'true', else it will take 'false'.
    Example: true

  - `parcel` (object, required)
    The details of the Parcel.

  - `parcel.length` (number)
    Length is always the greatest of the three dimensions. The other two dimensions are used in the calculation of the girth.
    Example: 2

  - `parcel.width` (number)
    There is no strict rule as to which element is the width or the height, but the width is the second greatest dimension of a parcel by convention.
    Example: 1

  - `parcel.height` (number)
    By convention, the height is the smallest dimension of the parcel.
    Example: 1

  - `parcel.dimUnit` (string)
    DimUnit is a standard for measuring the physical quantities of specified dimension parameters. The valid values are: Inch and Centimeter.
    Enum: "IN", "CM"

  - `parcel.weightUnit` (string, required)
    WeightUnit is a standard for measuring the physical quantities of specified weight. The valid values are: Ounces and Grams. For USPS shipments, set this to OZ.
    Enum: "OZ", "GM"

  - `parcel.weight` (number)
    Weight measures the heaviness of an object (how heavy an object is) .
    Example: 2

  - `parcel.packageValue` (number)
    Indicates value of the package.
    Example: 2

  - `specialServices` (object)

  - `specialServices.inputParameters` (array)
    > - The parameters to set for the special service, such as an insurance value or a receipt-number format. This is required if the special service requires input parameters. If a special service does not require input parameters, you can either leave out the array or pass an empty array.

  - `specialServices.inputParameters.name` (string, required)
    The name of the parameter i.e. key.
    Example: INPUT_VALUE

  - `specialServices.inputParameters.value` (string, required)
    > - Parameter value is as per the carrier specifications. It provides blank value, when presence of parameter is sufficient, and no value is associated.
    Example: 100

  - `specialServices.specialserviceId` (string, required)
    A unique identifier associate to the special service, which is to be applied.
    Example: Ins

  - `parcelType` (string, required)
    Parcel type for a single-parcel request.
    Example: PKG

  - `rateShopBy` (string, required)
    RateShop, which is attached to an Enterprise or Location, is done through four approaches: by Carrier, by RateGroup, by RuleSet and by ShipViaCode.    Through Carrier, customers can choose the carriers as per requirement, based on which services, parcel types, and special services can be selected, and RateShop is done.  Through RateGroup, customers can select the RateGroup, which has been divided into two categories: Cheapest (w.r.t. price) and Fastest (w.r.t. delivery hours).   Through RuleSet, customers can define the Condition/rule for selecting carriers and their services, so they do not need to worry for Rate Shopping every time they create Shipment. For example, For a particular location, they can set one definite carrier, or apply RateGroup - Cheapest/Fastest.   Similarly, for a particular amount like below $1000 Dollars, they can select a definite carrier service, based on RateGroup.
    Enum: "carrier", "rateGroup", "ruleSet"

  - `byCarrier` (object)
    Specifies the carrier and service configuration used for rate retrieval in Rate Shipment V2
This object enables the following use cases:
1. **Rate Shop for a Single Carrier**: Provide either `carrier` or `carrierAccountId` to retrieve all available rates from the specified carrier.
2. **Single Rate Retrieval by Service ID**: Provide both `carrier` (or `carrierAccountId`) and `service` to retrieve a single rate corresponding to the specified service.
3. **Rate Shop Across Carriers**: Omit this object to retrieve rates from all carriers available under the current subscription.

  - `byCarrier.carrierAccountId` (string)
    This is a unique identifier associated with the specific sub-carrier account, which must be valid. This is used in the shipment creation (if this value is defined, Carrier properties will be skipped).
    Example: JjjbmYyAz9B3

  - `byCarrier.carrier` (string)
    A unique identifier associated with the specific carrier, i.e. CarrierID, which must be valid.
    Example: Fedex

  - `byCarrier.service` (string)
    Indicates a unique identifier associated with the carrier specific service, which is ServiceID, which must be valid. Required only when requesting a specific service rate from the given carrier.
    Example: 3DA

  - `deliveryOption` (object)
    There are two options of delivery: deliverBy and useBestNextDate, where customer can schedule the delivery date in deliverBy.  In case if the customer's scheduled `deliverBy` date falls under Holiday, then `useBestNextDate` will be used by our system. Then, we will mark the second option and deliver the same.

  - `deliveryOption.deliverBy` (string)
    Delivery date is the target delivery date for the shipment. When specified, the API returns only those rate quotes that can commit to delivering the shipment on or before this date. The value must be in the YYYY-MM-DD format.
    Example: 2024-03-20

  - `deliveryOption.useBestNextDate` (boolean)
    When set to true, if the specified Deliver By date falls on a holiday, the API will return rate quotes based on the next available business day delivery commitment.
    Example: false

  - `parcel` (object, required)
    Parcel details, including dimensions and weight.

  - `parcel.length` (number)
    Length of the parcel. ength is always the greatest of the three dimensions. The other two dimensions are used in the calculation of the girth.
    Example: 2

  - `parcel.width` (number)
    Width of the parcel. There is no strict rule as to which element is the width or the height, but the width is the second greatest dimension of a parcel by convention.
    Example: 1

  - `parcel.height` (number)
    Height of the parcel. By convention, the height is the smallest dimension of the parcel.
    Example: 1

  - `parcel.dimUnit` (string)
    Unit for dimensions.
    Enum: "IN", "CM"

  - `parcel.weightUnit` (string)
    Unit for weight.
    Enum: "OZ", "GM"

  - `parcel.weight` (number)
    Weight of the parcel.
    Example: 2

  - `parcel.packageValue` (number)
    Declared value of the parcel.
    Example: 2

  - `parcelType` (string, required)
    Parcel Type is required for creating a shipment while rating a parcel, which varies as per Carrier selection. ParcelType can have categories like Package, Envelopes, Paks, Boxes, Tube, etc.  `Max length = 30` "
    Example: PKG

  - `byRateGroup` (object, required)
    Indicates the category to select how cheap the carrier service is, or which carrier has fastest service.  It displays the list of those services.

  - `byRateGroup.ruleType` (string, required)
    The Rule Type is a condition applied to RateGroup by Product side as per the customer requirement, which can have following options: Cheapest, Fastest, and deliverBy. If ruleType is deliverBy, then deliverBy date under deliveryOption will be mandatory to provide.
    Enum: "Cheapest", "Fastest", "ALL", "DeliverBy"

  - `byRateGroup.rateGroupId` (string, required)
    This is a unique identifier assigned to the created RateGroup, which is used in the shipment creation.
    Example: 9bzUUq2w70h7

  - `byRuleSet` (object, required)
    User can create the Shipment using Rule Set. By Rule Set means a rule that is defined as one or more conditions resulting in an action (or more than one action).  The conditions and actions can vary widely.

  - `byRuleSet.ruleType` (string)
    The Rule Type is a condition applied to RateGroup by Product side, which can be applicable for a client or set of client users.
    Enum: "Cheapest", "Fastest"

  - `byRuleSet.shipOption` (string)
    A user-defined label to categorize shipments based on delivery priority, speed, or service level.This field is  used to define internal shipping strategies such as:
- STANDARD,
- EXPRESS,
- SAMEDAY,
- TWODAY,
- OVERNIGHT, etc.
    Example: STANDARD

  - `parcelType` (string)
    Parcel Type is required for creating a shipment while rating a parcel, which varies as per Carrier selection. ParcelType can have categories like Package, Envelopes, Paks, Boxes, Tube, etc.  `Max length = 30`
- For Rate Shop by Custom Carrier Code, the parcelType field in the request payload is optional:
- If the parcel type is defined in the Custom Carrier Code metadata, it does not need to be provided in the request payload.
- If the parcel type is not defined in the Custom Carrier Code, it must be provided in the request payload.
- If parcel type is provided in both the request payload and Custom Carrier Code, then  request payload value will be overridden by the values defined in the Custom Carrier Code.
    Example: PKG

  - `byShipViaCode` (object)
    The rates are fetched by using a predefined custom Carrier Code.

  - `byShipViaCode.code` (string, required)
    Pre-generated code (Custom Carrier Code) that bundles carrier, carrier account, parcel type, service, and special services. When provided, it overrides the corresponding fields in the request payload, eliminating the need to pass them individually.

  - `rateShopBy` (string, required)
    Specifies that shipment creation uses a predefined configuration from an external system. When externalSystemCode is selected, the system retrieves carrier, account, service, and parcel details based on the external system codes provided in the request.
    Enum: "carrier", "rateGroup", "ruleSet", "shipViaCode", "externalSystemCode"

  - `byExternalSystemCode` (object)
    Defines shipment creation parameters based on an external system reference.
When provided, the system automatically retrieves and applies carrier,
service, and parcel details mapped to the specified external system code. 
For now, External System Codes supported only for carriers UPS, USPS and FedEx.

  - `byExternalSystemCode.externalSystemCode` (string)
    Unique identifier or code defined in an external system used to retrieve shipment configuration. For now, Only SendPro Enterprise (SPE) is supported as an external system.
    Example: SPE

  - `byExternalSystemCode.carrierCode` (string)
    Carrier code associated with the external system configuration.


---

| Carrier | ID |
|  --- | --- |
| FedEx Web Services | 49 |
| USPS | 13 |
| UPS Consolidated | 87 |
    Example: 87

  - `byExternalSystemCode.serviceCode` (string)
    Service code mapped under the specified external system.


---

**FedExServiceCode**
| Carrier Service | ID |
|  --- | --- |
| FedEx Priority Overnight® | 371 |
| FedEx Standard Overnight® | 372 |
| FedEx First Overnight® | 373 |
| FedEx 2Day® | 374 |
| FedEx Express Saver® | 375 |
| FedEx Ground® | 383 |



---

**USPSServiceCode**
| Carrier Service | ID |
|  --- | --- |
| Express Mail International | 92 |
| First-Class Mail® | 85 |
| First-Class Mail International | 289 |
| Library Mail (Basic) | 299 |
| Media Mail (Basic) | 297 |
| Priority Mail | 86 |
| Priority Mail Cubic | 413 |
| Priority Mail International | 94 |



---

**UPSServiceCode**
| Carrier Service | ID |
|  --- | --- |
| UPS Next Day Air® Early A.M.® | 742 |
| UPS Next Day Air® | 743 |
| UPS Next Day Air Saver® | 744 |
| UPS 2nd Day Air A.M.® | 745 |
| UPS 2nd Day Air® | 746 |
| UPS 3 Day Select® | 747 |
| UPS® Ground | 748 |
| UPS Express Early | 750 |
| UPS Express® | 753 |
| UPS Express Saver® | 754 |
| UPS Expedited® | 755 |
| UPS Standard® | 756 |
| UPS Worldwide Express Freight® | 757 |
| UPS SurePost® Bound Printed Matter | 759 |
| UPS SurePost® Media | 760 |
| UPS SurePost® 1 lb or Greater | 761 |
| UPS SurePost® Less than 1 lb | 762 |
    Example: 746

  - `byExternalSystemCode.parcelTypeCode` (string)
    Parcel type code mapped under the specified external system.


---

**FedExPackageType**
| Package Type | ID |
|  --- | --- |
| Customer Package | 390 |



---

**USPSPackageType**
| Package Type | ID |
|  --- | --- |
| Customer Package | 33 |
| Letter | 55 |
| Priority Mail Flat Rate Box (12" x 3.5" x 14") | 57 |
| Priority Mail Flat Rate Box (11" x 8.5" x 5.5") | 58 |
| Priority Mail Small Flat Rate Box (6" x 9" x 2") | 444 |
| Priority Mail Large Flat-Rate Box (12"x12"x5.5") | 484 |
| Priority Mail Large Flat-Rate Box (24"x12"x3") | 485 |
| Priority Mail Flat Rate Padded Envelope | 486 |
| Priority Mail Legal Flat Rate Envelope | 490 |
| Priority Mail Regional Rate Box A | 491 |
| Priority Mail Regional Rate Box B | 492 |
| Express Mail Legal Flat Rate Envelope | 494 |
| Express Mail Padded Flat Rate Envelope | 495 |
| Flat Rate Envelope | 0 |



---

**UPSPackageType**
| Package Type | ID |
|  --- | --- |
| Custom | 570 |
| Pak | 572 |
| Box | 573 |
| Tube | 574 |
| Letter | 575 |
| UPS US Express Box Small | 579 |
| UPS US Express Box Medium | 580 |
| UPS US Express Box Large | 581 |



---
    Example: 570

## Response 200 fields (application/json):

  - `parcel` (object)
    Details of the parcel being rated.

  - `parcel.length` (number)
    Example: 2

  - `parcel.height` (number)
    Example: 1

  - `parcel.width` (number)
    Example: 1

  - `parcel.dimUnit` (string)
    Example: IN

  - `parcel.weightUnit` (string)
    Example: OZ

  - `parcel.weight` (number)
    Example: 2

  - `parcel.packageValue` (number)
    Example: 2

  - `rate` (array)
    Example: [{"baseCharge":41.65,"carrier":"usps","carrierAccount":"vpjoz235J1Wp","deliveryCommitment":{"additionalDetails":"Tue, Aug 19 by 6:00 PM","estimatedDeliveryDateTime":"2025-08-19 18:00:00.000","guarante…

  - `rate.baseCharge` (number)
    The base service charge payable to the carrier, excluding special service charges.
    Example: 8.55

  - `rate.baseChargeTaxes` (array)
    List of taxes applied to the base charge. Returned in case of Canada carriers, such as: purolator, Canpar and Fedex.

  - `rate.baseChargeTaxes.displayName` (string)
    Name of the tax applied.
    Example: Canada goods and services

  - `rate.baseChargeTaxes.name` (string)
    Short code or identifier of the tax.
    Example: GST

  - `rate.baseChargeTaxes.taxAmount` (number)
    Amount charged for this tax.
    Example: 2.69

  - `rate.carrier` (string)
    Carrier responsible for transporting the shipment.
    Example: usps

  - `rate.parcelType` (string)
    Parcel Type is required for creating a shipment while rating a parcel, which varies as per Carrier selection. ParcelType have categories like Package, Envelopes, Paks, Boxes, Tube, etc.
    Example: PKG

  - `rate.rateTypeId` (string)
    Type of rate associated with the quote, such as CONTRACT_RATES or RETAIL_RATES.
    Example: CONTRACT_RATES

  - `rate.serviceId` (string)
    The unique identifier given to the carrier specific service.
    Example: PM

  - `rate.surcharges` (array)
    Additional fees or surcharges applied to the shipment. Each object in the array represents a specific surcharge and its associated fee.
The `name` field must be one of the supported surcharge types from the respective carrier.
**Supported Surcharge Names by Carrier:**
| Carrier | Surcharge Names |
|  --- | --- |
| DHL Express | FUEL, GO_GREEN_BASIC, OVERSIZE, PREMIUM, RURAL, TOLL |
| FedEx | ANCILLARY_FEE, CANADIAN_DESTINATION, DELIVERY_AREA, DELIVERY_CONFIRMATION, FUEL, NON_MACHINABLE, OTHER, OUT_OF_DELIVERY_AREA, OUT_OF_PICKUP_AREA, OVERSIZE, RESIDENTIAL_DELIVERY, RESIDENTIAL_PICKUP |
| UPS | DELIVERY_AREA, EXTENDED_AREA, FUEL, LARGE_PACKAGE, RESIDENTIAL, SHIPPER_PAYS_DUTY_TAX |
| USPS | nonmachinable, oversize |
    Example: [{"fee":5.85,"name":"RESIDENTIAL"},{"fee":4.66,"name":"FUEL"}]

  - `rate.surcharges.fee` (number)
    The amount of the surcharge.
    Example: 5.85

  - `rate.surcharges.name` (string)
    The type of surcharge.
    Example: RESIDENTIAL

  - `rate.totalCarrierCharge` (number)
    Total amount payable to the carrier, including base and special service fees.
    Example: 12.7

  - `rate.deliveryCommitment` (object)
    Estimated delivery details, including any guarantee or commitment.

  - `rate.deliveryCommitment.additionalDetails` (string)
    Additional information about the delivery timing.
    Example: Thu, Nov 14 by 6:00 PM

  - `rate.deliveryCommitment.estimatedDeliveryDateTime` (string)
    Date and time of the estimated delivery.
    Example: 2024-11-14 18:00:00.000

  - `rate.deliveryCommitment.guarantee` (string)
    Type of delivery guarantee provided by the carrier.
    Example: FULL

  - `rate.deliveryCommitment.maxEstimatedNumberOfDays` (string)
    Maximum number of days estimated for delivery.
    Example: 2

  - `rate.deliveryCommitment.minEstimatedNumberOfDays` (string)
    Minimum number of days estimated for delivery.
    Example: 2

  - `rate.totalTaxAmount` (number)
    Total tax amount applied to the shipment. Returned in case of canada carriers.
    Example: 2.69

  - `rate.destinationZone` (string)
    This is the postal or delivery zone assigned to the shipment's destination by the carrier. This field is returned for USPS as of now.
    Example: 8

  - `rate.publishedTotalCarrierCharge` (number)
    The total amount based on the carrier's standard (published) rates, including base charges, surcharges, special services, discounts, and applicable taxes. This value reflects the amount the carrier would charge without any negotiated discounts or platform-specific rate adjustments.
- Returned only when supported by the carrier (e.g., FedEx, UPS, DHL, USPS)."
    Example: 73.12

  - `fromAddress` (object)
    The complete address of the Sender.

  - `fromAddress.name` (string)
    The name of the Sender to which this address points.
    Example: Sender Name

  - `fromAddress.addressLine1` (string)
    The addressLine1 contains the Flat number, Building or Apartment Name/number (if any) or company name (if not residential) of the Sender.  `Max length = 35`.
    Example: 1600 Amphitheatre Parkway

  - `fromAddress.addressLine2` (string)
    The addressLine2 contains Street address or Landmark (if any).
    Example: near abc street

  - `fromAddress.addressLine3` (string)
    The addressLine3 contains P.O. Box (if any) near the address.
    Example: near xyz street

  - `fromAddress.company` (string)
    The name of the company, in case if the senders address is not residential.
    Example: PB

  - `fromAddress.email` (string)
    This must be senders's valid email. Email is required if the customer is using GoFor Carrier.  `Max length = 30`
    Example: testuser@gmail.com

  - `fromAddress.phone` (string)
    This is sender's phone number. Enter the digits with or without spaces or hyphens. The maximum limit of characters for Phone number are 10 digits.
    Example: 6502530000

  - `fromAddress.cityTown` (string)
    The name of the city or town the Sender's address belongs to.  `Max length = 30`.
    Example: Mountain View

  - `fromAddress.stateProvince` (string)
    "The name of the State or Province the Sender belongs to. It is the `2-letter` State or Province Code for US or Canadian address(es).
 Below is the hyperlink for CA country that will navigate to its Province/State Codes page. Similarly, respective country users can check for their country- State/Province codes.
 Please switch to the `Search` tab, select `Country codes` radio button, enter the required country name or country code, and then click `SEARCH` button.  `Max length = 2`"
    Example: CA

  - `fromAddress.postalCode` (string)
    The Postal Code or ZIP Code of the address.  For CA addresses, use a `six-character` alphanumeric string Postal Code in this format: 'A1A 1A1'.  While for US addresses, use either the `5-digit` or `9-digit` ZIP Code in one of the following formats: '12345' or '12345-6789'.  `Max length = 10`
    Example: 94043

  - `fromAddress.inductionPostalCode` (string)
    The postal code where the shipment is tendered to the carrier. If an induction postal code is specified in the "fromAddress", it will be used for rate calculations and determining manifest eligibility instead of the standard postal code. If not specified, the postal code from the "fromAddress" will be used.
    Example: 06905

  - `fromAddress.countryCode` (string)
    "The country in which the sender's address is located. The value will be the two-character ISO Code of the country from the ISO country list.  Use ISO 3166-1 Alpha-2 standard values. For best results this should be included, especially if the country name does not appear in any of the unparsedAddressLines.
 Below is the hyperlink, please select `Country codes` and then click `SEARCH` button.  `Max length = 2`"
    Example: US

  - `fromAddress.residential` (boolean)
    The specified address can be Residential or Official. In case if the address is Residential, the boolean value will be 'true', else it will take 'false'.
    Example: true

  - `toAddress` (object)
    The complete address of the Reciepient.

  - `toAddress.name` (string)
    The name of the Recipient.
    Example: Recipient Name

  - `toAddress.addressLine1` (string)
    The addressLine1 contains the Flat number, Building or Apartment Name/number (if any) or company name (if not residential) of the Recipient.  `Max length = 35`.
    Example: 350 Fifth Avenue

  - `toAddress.addressLine2` (string)
    The addressLine2 contains Street address or Landmark (if any).
    Example: near abc street

  - `toAddress.addressLine3` (string)
    The addressLine3 contains P.O. Box (if any) near the address.
    Example: near xyz street

  - `toAddress.cityTown` (string)
    The name of the city or town the Recipient belongs to.  `Max length = 30`.
    Example: New York

  - `toAddress.stateProvince` (string)
    "The name of the State or Province the Sender belongs to. It is the `2-letter` State or Province Code for US or Canadian address(es).
 Below is the hyperlink for CA country that will navigate to its Province/State Codes page. Similarly, respective country users can check for their country- State/Province codes.
 Please switch to the `Search` tab, select `Country codes` radio button, enter the required country name or country code, and then click `SEARCH` button .  `Max length = 2`"
    Example: NY

  - `toAddress.postalCode` (string)
    "The Postal Code or ZIP Code of the address. For CA addresses, use a `six-character` alphanumeric string Postal Code in this format: 'A1A 1A1'. While for US addresses, use either the `5-digit` or `9-digit` ZIP Code in one of the following formats: '12345' or '12345-6789'. `Max length = 30`"
    Example: 10118

  - `toAddress.countryCode` (string)
    "The country in which the recipient's address is located. The value will be the two-character ISO Code of the country from the ISO country list.  Use ISO 3166-1 Alpha-2 standard values. For best results this should be included, especially if the country name does not appear in any of the unparsedAddressLines.
 Below is the hyperlink, please select `Country codes` and then click `SEARCH` button.  `Max length = 10`"
    Example: US

  - `toAddress.company` (string)
    The name of the company, in case if the recipient address is not residential.
    Example: PB

  - `toAddress.phone` (string)
    This is Recipient's phone number. Enter the digits with or without spaces or hyphens.  `Max length = 15`.
    Example: 332 555-1212

  - `toAddress.email` (string)
    This must be recipient's valid email. Email is required if the customer is using GoFor Carrier.  `Max length = 30`
    Example: recipient@gmail.com

  - `toAddress.residential` (boolean)
    The specified address can be Residential or Official. In case if the address is Residential, the boolean value will be 'true', else it will take 'false'.
    Example: true

  - `toAddress.isPOBox` (boolean)
    Checks if the specified address has the PO Box. In case if Yes, the boolean value will be 'true', else it will take 'false'.
    Example: true

  - `shipmentOptions` (object)
    Optional shipment preferences.
    Example: {}

  - `references` (object)
    Any additional references related to the rate shop request.
    Example: {}

## Response 400 fields (application/json):

  - `errorCode` (string)
    Error code(s) that appear due to HTTP  400- Invalid or Bad Request, e.g., validation-error.
    Example: validation_error

  - `errorDescription` (string)
    The HTTP 400 Bad Request response status code indicates that the server cannot process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
    Example: string

  - `additionalCode` (string)
    A unique identifier for the error, for example 1101055, 0100008, or 1021126.

  - `additionalInfo` (string)
    This is an additional information about the error. This error 'Invalid Request' might appear due to invalid dimension, weight, or serviceID, or if the information is missing.

  - `additionalParameters` (array)

## Response 401 fields (application/json):

  - `message` (string, required)
    This is HTTP 401 Unauthorized response status code, which indicates that the client request has not been completed because it lacks valid authentication credentials for the requested resource.

## Response 500 fields (application/json):

  - `message` (string, required)
    This is HTTP 500 Internal Server Error response status code, which indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

