# Create Shipment

> Note: This Request sample includes the full set of supported fields across all carriers. However, not all fields are applicable to every carrier. When making API calls from the doc portal, ensure you include only the parameters supported by the specific carrier you are integrating with. If unsupported fields are included, the request may fail. 
To simplify integration and avoid errors, refer to the Postman Collection. 
To explore which label types, label formats, label sizes, parcel types, services, and special services are supported by each carrier, see the Carrier Catalog. Detailed field descriptions are also provided below.

The Create Shipment API is used to create shipments and generate shipment labels. A shipment refers to the process of packing and transporting an item from a source location to a destination location using a carrier service. The API supports both domestic and international shipments.

Domestic Shipments 

  - Both the toAddress and fromAddress addresses must be within the same country.
  - Requires carrier services and associated special services.

International Shipments
  - The toAddress must be in a different country than the fromAddress.
  - Requires international carrier services, special services, and customs information.

The V2 Create Shipment API compares shipping rates, services, and options across multiple carriers. It selects the best shipping solution based on criteria such as cost, delivery speed, or other business rules. This automates decision-making and eliminates the need for manual analysis of carrier data. It supports following RateShop types: 

1. By Carrier:

  - Manually specify the carrier and service for shipment creation.
  - Provides more customization than V1 Create Shipment.

2. By RuleSet

  - Automatically select the best carrier and service based on predefined rules (e.g., cheapest, fastest). For example: 
  - Shipments weighing up to 3kg use a "Standard" service type with carrier A.
  - Shipments exceeding 3kg use an "Over-weight" service type with carrier B.
  - Rules are fully client-defined, allowing for dynamic decision-making based on shipment parameters like weight, dimensions, and destination.

3. By RateGroup

  - Use predefined rate groups to select a carrier and service dynamically.For example:
  - Clients can choose between the fastest delivery or the cheapest service rate among a predefined group of carriers.
  - The system automatically determines and selects the best carrier and service, without the need for manual comparisons.

4. By ShipViaCode

  - Instead of passing multiple fields (carrier, carrier account, parcel type, service, and special services) every time in your request payload, you can:

    - Generate a Ship Via Code once, with all those values defined.

    - Use that single code in your create shipment requests.

    - The carrier, account, service, parcel type, and special service values from that code will then automatically apply.

  - If parcel type, service, or special services are also passed in the request payload, they will be overridden by the values defined in the Custom Carrier Code.

5. By byExternalSystemCode

  - This enables shipment creation using an external System Code (For SPE users).

  - When an ExternalSystemCode is passed in the request, the system retrieves all shipment configuration details (carrier, account, parcel type, service, and special services) linked to that code in the legacy system.

  
Notes

  - The rateShopBy field determines the variant to use (carrier, ruleSet, or rateGroup).
  - Ensure that variant-specific fields are correctly populated:
    - byCarrier: carrierAccountId, carrier, and service
    - byRuleSet: ruleType and shipOption. The value of shipOption is Ship Via Code. Ship Via Code is configured as part of the automation rule.
    - byRateGroup: ruleType and rateGroupId
    - byShipViaCode: code 
    - byExternalSystemCode: externalSystemCode, carrierCode, serviceCode and parcelTypeCode

  - Define special services in one of two ways - by using a specialServiceId or by specifying  special service objects such as deliveryConfirmation, handling, insurance, or returnOptions. These two cannot be used together in the same request.

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

## Header parameters:

  - `X-PB-Developer-Partner-Id` (string)
    The Developer Partner ID is assigned by PB to uniquely identify a Developer's strategic business partners. If the developer is the sole business partner, this field isn't required.

  - `X-PB-LocationId` (string)
    The X-PB-LocationId header identifies the enterprise, division, or partner location under which a shipment is processed and billed.
If this header is not provided, the system automatically uses the enterprise-level location that was created during developer account onboarding. This default location is then used for shipment processing, carrier selection, and billing.

Location Scope

- Carrier accounts and services available in a request must belong to the specified location or the default enterprise location.
- Attempting to use carriers or services that are not configured for the resolved location will result in a validation error.

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 returns a validation error indicating that the location must be specified for the given shipment origin.

  - `X-PB-TransactionId` (string)
    A unique Transaction ID provided by the partner, which is used to enable debugging and linking between the client's transaction and the system.

  - `X-PB-Default-ID` (string)
    A unique identifier assigned to the Default while its creation using CreateDefaults API.

## Query parameters:

  - `isReturn` (boolean)
    Applies only to USPS, UPS, FedEx, Purolator, and CPC carriers.

- For UPS: If isReturn is set, either the returnOptions object must be provided (when using individual service objects) or serviceId: PRL must be specified (when using specialService). Otherwise, the request will fail.
- For FedEx, Purolator, and CPC: If isReturn is set to true, the returnOptions object is optional.
- For USPS: For USPS returns, the account is not charged when the return label is created. Charges for the return shipment are applied only after the Scan-Based Return is inducted.

  - `includeDeliveryCommitment` (string)
    When set to true (default), the response includes delivery commitment information. Set to false to exclude delivery commitment details from the response.

## Request fields (application/json):

  - `body` (By Carrier (object) or By RateGroup (object) or By RuleSet (object) or By ShipCode (object) or By ExternalCode (object) or International Shipment (object) or Military Mail Shipment (object), required) — one of:
    - By Carrier:
      - `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
      - `soldToAddress` (object)
        Billing address of the buyer responsible for the shipment payment. It can be domestic or international address. 
- If the importer is the same as the final recipient, the toAddress and soldToAddress must match.
- If the importer is different from the final recipient, enter the importer address in the soldToAddress and enter the final recipient's address in the toAddress.
      - `soldToAddress.addressLine1` (string)
        Primary street address of the billing entity.
        Example: "1600 Amphitheatre Parkway"
      - `soldToAddress.addressLine2` (string)
        Additional address information such as apartment, suite, or unit number.
        Example: "Suite 101"
      - `soldToAddress.addressLine3` (string)
        Optional extra address details.
        Example: "Near central market"
      - `soldToAddress.company` (string)
        The name of the company associated with the SoldTo address.
        Example: "ABC Company"
      - `soldToAddress.name` (string)
        The contact person's full name for the billing entity.
        Example: "John Doe"
      - `soldToAddress.phone` (string)
        Phone number of the SoldTo entity.
        Example: "650-253-0000"
      - `soldToAddress.email` (string)
        Email address of the SoldTo entity.
        Example: "billing@abccompany.com"
      - `soldToAddress.residential` (boolean)
        Indicates whether the SoldTo address is a residential location (true/false).
      - `soldToAddress.cityTown` (string)
        City or town of the billing address.
        Example: "Mountain View"
      - `soldToAddress.stateProvince` (string)
        State or province of the billing address.
        Example: "CA"
      - `soldToAddress.postalCode` (string)
        Postal or ZIP code of the billing address.
        Example: "94043"
      - `soldToAddress.countryCode` (string)
        Two-letter country code of the billing address (ISO 3166-1 alpha-2).
        Example: "US"
      - `soldToAddress.taxId` (string)
        The Tax Identification Number (TIN). TIN Number is supported for FedEx as of now. Max character length = 18. 
- EIN, VAT, GST, and IOSS are mapped to BUSINESS_NATIONAL.
- EORI is mapped to BUSINESS_UNION.
- RFC with a length of 12 characters is mapped to BUSINESS_NATIONAL.
- RFC with a length of 13 characters is mapped to PERSONAL_NATIONAL.
      - `soldToAddress.taxIdType` (string)
        Specifies the type of tax identification being provided.
        Enum: "EIN", "GST", "VAT", "IOSS", "RFC", "EORI"
      - `additionalAddresses` (array)
        A list of additional addresses associated with the shipment. 
- Each object includes an address and its designated type, such as BROKER or other parties involved in customs or shipping processes. 
- Additional address could be domestic or International both.
      - `additionalAddresses.address` (object)
        The additional address details.
      - `additionalAddresses.address.residential` (boolean)
        If the address is residential.
      - `additionalAddresses.address.phone` (string)
        Contact phone number for the address.
        Example: "732-443-1007"
      - `additionalAddresses.address.countryCode` (string)
        The ISO 2-letter country code.
        Example: "US"
      - `additionalAddresses.address.company` (string)
        The name of the company associated with the address.
        Example: "ABC Company"
      - `additionalAddresses.address.postalCode` (string)
        ZIP or postal code.
        Example: "08810-1411"
      - `additionalAddresses.address.cityTown` (string)
        Name of the city or town.
        Example: "DAYTON"
      - `additionalAddresses.address.name` (string)
        Name of the contact person.
        Example: "Warehouse Manager"
      - `additionalAddresses.address.stateProvince` (string)
        State or province code.
        Example: "NJ"
      - `additionalAddresses.address.addressLine1` (string)
        Primary street address line.
        Example: "2270 US HIGHWAY 130"
      - `additionalAddresses.addressType` (string)
        Type of the additional address (e.g., BROKER). This is required if passing additionalAddresses. Note: The addressType SHIPPER is returned only in USPS responses.
        Enum: "HOLD", "BROKER", "THIRD_PARTY", "PICKUP", "EXPORTER", "ALT_DELIVERY", "SHIPPER"
      - `altReturnAddress` (object)
        This is an optional field. if a package shipped from Location_A to Location_B needs to return to Location_C. The alternate address will be printed on the label. Use this object to specify a return address different from the fromAddress. Supported by FedEx, UPS, and Purolator.
The altReturnAddress is selected using the following order of precedence:
Request Body → Location ID

- The altReturnAddress provided in the request payload is used if available.
- If not provided in the request, the altReturnAddress associated with the resolved location is used.
- If altReturnAddress is not available from any source, it is treated as optional and is not included in the request. In this case, package will be returened to the Shipper address.
Note: altReturnAddress is not supported in Default ID.
      - `altReturnAddress.addressLine1` (string)
        The first line of the alternate return address, such as a street address or PO Box.
        Example: "500 Terry Francois Blvd"
      - `altReturnAddress.addressLine2` (string)
        The addressLine2 contains Street address or Landmark (if any).
        Example: "near abc street"
      - `altReturnAddress.addressLine3` (string)
        The addressLine3 contains P.O. Box (if any) near the address.
        Example: "near xyz street"
      - `altReturnAddress.company` (string)
        The name of the company for the alternate return address, in case if the recipient's address is not residential.  Max length = 30.
        Example: "PB"
      - `altReturnAddress.email` (string)
        The email address of the recipient. It can be person's email address or company email address (for non-residential).
        Example: "user@email.com"
      - `altReturnAddress.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
      - `altReturnAddress.cityTown` (string)
        The city or town for the alternate return address.
        Example: "San Francisco"
      - `altReturnAddress.countryCode` (string)
        The two-letter ISO country code for the alternate return address.
        Example: "US"
      - `altReturnAddress.name` (string)
        The name of the recipient or organization for the alternate return address.
        Example: "User Name"
      - `altReturnAddress.phone` (string)
        The phone number associated with the alternate return address.
        Example: "415-555-7890"
      - `altReturnAddress.postalCode` (string)
        The postal or ZIP code for the alternate return address.
        Example: "94158"
      - `altReturnAddress.stateProvince` (string)
        The 2-letter state or province code for the alternate return address.
        Example: "CA"
      - `parcel` (object)
        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
      - `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"
      - `rateTypeId` (string)
        Type of rate requested like COMMERCIAL, ONE_RATE, RETAIL,
      - `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.  Through shipViaCode, customers can create a shipment using a single code (Custom Carrier Code) that represents a specific combination of carrier, carrier account, parcel type, service, and special services.
        Enum: "carrier", "rateGroup", "ruleSet", "shipViaCode"
      - `byCarrier` (object)
        Groups a shipment by carrier and service to determine rating, label generation, and routing behavior.
Validation Rules
- One of the following fields must be provided in the byCarrier object:
    - carrierAccountId
    - carrier
- If both fields are provided, carrierAccountId takes precedence and any carrier-level properties are ignored.
- If neither field is provided, the request fails validation.
- - When carrierAccountId is provided, it must be associated with the resolved location (the provided X-PB-LocationId, or the enterprise default location if location is omitted). Otherwise, the request fails.
- When carrierAccountId is provided, it must be associated with the resolved location (the provided X-PB-LocationId, or the enterprise default location if location is omitted). Otherwise, the request fails.

Location and Carrier Resolution

Carrier accounts used for shipment processing are resolved based on the location identified by the X-PB-LocationId request header. If the header is not provided, the enterprise default location created during developer onboarding is used.

| X-PB-LocationId | Location Used | Carriers Configured at Location/Division/Enterprise | Carrier Accounts | Behavior |
|-----------------|--------------|----------------------------------|------------------|----------|
| Provided | Provided Location ID | One carrier | One account | The available account is selected and the shipment is created. |
| Provided | Provided Location ID | One carrier | Multiple accounts | The oldest onboarded account is selected and the shipment is created. |
| Provided | Provided Location ID | Multiple carriers | Any | Request fails validation. carrierAccountId or carrier must be specified. |
| Provided | Provided Location ID | One carrier at each level | Multiple accounts | The oldest onboarded account across all levels is selected, and the shipment is created. |
| Not Provided | Enterprise Default Location | One carrier | One account | The available account is selected and the shipment is created. |
| Not Provided | Enterprise Default Location | One carrier | Multiple accounts | The oldest onboarded account is selected and the shipment is created. |
| Not Provided | Enterprise Default Location | Multiple carriers | Any | Request fails validation. carrierAccountId or carrier must be specified. |
| Not Provided | Enterprise Default Location  | One carrier at each level | Multiple accounts | The oldest onboarded account across all levels is selected, and the shipment is created. |
      - `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: "zmOKKBAn0X1"
      - `byCarrier.carrier` (string)
        A unique identifier associated with the specific carrier, i.e. CarrierID, which must be valid.
        Example: "FedEx"
      - `byCarrier.service` (string, required)
        Indicates a unique identifier associated with the carrier specific service, which is ServiceID, which must be valid.
        Example: "NDA"
      - `shipmentOptions` (object)
        Shipment Options have an added feature that is Manifest. With Manifest, the Mail Center agent can print the Manifest (End of day records of all created shipment) of selected carrier.
        Example: {"addToManifest":true,"shipperID":"1234567890"}
      - `shipmentOptions.addToManifest` (boolean)
        This option asks if the shipment is to be added for Manifest, so that the shipment will reflect in the Manifest Form while compilation. Supported for CPC and USPS carriers.  The value can be 'true' or 'false'.
        Example: true
      - `shipmentOptions.minimalAddressValidation` (boolean)
        Allows performing minimal address validation during shipment creation. the addressLine1 field is not validated if set to true.
Minimal address validation is supported only for these APIs:
  - Create Shipment
  - Create Bulk Shipments
  - Create Multipiece Shipment
        Enum: true, false
      - `shipmentOptions.bookingConfirmationNumber` (string)
        This field specifies the booking confirmation number for Freight International services.
        Example: "1085test"
      - `shipmentOptions.b2b` (boolean)
        Required only for RMG carrier. Must be set to true to indicate a business-to-business (B2B) shipment.
        Example: true
      - `shipmentOptions.senderEORI` (string)
        Sender's Economic Operators Registration and Identification number. EORI is a unique identification number used for customs clearance in the European Union. This Number can be 14 characters long in Alphanumeric format. Required for RMG B2B shipments.
        Example: "GB123456789101"
      - `shipmentOptions.recipientEORI` (string)
        Recipient's EORI number. ORI is a unique identification number used for customs clearance in the European Union. This Number can be 14 characters long in Alphanumeric format. Required for RMG B2B shipments.
        Example: "GB123456789102"
      - `shipmentOptions.senderUKIMSNumber` (string)
        UKIMS (UK Internal Market Scheme) is an authorization that allows businesses to move goods between Great Britain (GB) and Northern Ireland (NI) without paying EU (European) duty. UKIMS Number can be 32 characters long in Alphanumeric format. Required if the package value value is over £135.
        Example: "GBUKIM12345678910100000000000000"
      - `shipmentOptions.exportLicenceRequired` (boolean)
        Specifies whether the shipment includes goods that require an official export license.
- applies to both RMG B2B and B2C shipments
- Required as part of customs compliance under the Windsor Agreement
        Example: true
      - `shipmentOptions.declarationId` (string)
        Required for CPC shipments originating in Canada and destined for the US when X_ACCESS_KEY was not provided during CPC carrier onboarding; if X_ACCESS_KEY is configured, omit this field. Each declarationId is unique to a single shipment.
        Example: "USA1006189"
      - `shipmentOptions.shipperID` (string)
        The unique identifier of the known shipper associated with this shipment.
        Example: "1234567890"
      - `carrierPayments` (array) — one of:
        Defines how carrier charges are billed to a third party. Use this field to specify 
account and charge type details for transportation and/or duties and taxes. This 
field is optional and currently supported for FedEx, UPS, DHL Express and Purolator.

- If no party (who will pay for TRANSPORTATION_CHARGES or duties and taxes) is explicitly specified during shipment creation, the charges will automatically default to the sender (shipper). To direct charges to a different party, the appropriate bill-to details must be provided in the request.
        - FedEx Carrier Payment:
          - `accountNumber` (string)
            The FedEx account number of the party to be billed.
            Example: "602684342"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Billing party for the shipment charges.
            Enum: "BILL_RECEIVER", "BILL_SENDER", "BILL_THIRD_PARTY", "BILL_RECEIVER_CONTRACT"
          - `typeOfCharge` (string)
            The type of charge billed to the specified party. Possible values:
- TRANSPORTATION_CHARGES: Transportation-related charges only. When billing transportation charges to the sender (BILL_SENDER), the accountNumber must match the account used to initiate the shipment.
- DUTIES_AND_TAXES: Duties and taxes only
- ALL_CHARGES: All Shipment Charges (Transportatio and Duties and Taxes)Required when using BILL_RECEIVER_CONTRACT (FedEx COLLECT); includes all charges
            Enum: "TRANSPORTATION_CHARGES", "DUTIES_AND_TAXES", "ALL_CHARGES"
        - UPS Carrier Payment:
          - `accountNumber` (string)
            The UPS account number of the party to be billed.
            Example: "1Z999AA10123456784"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Party to be billed.
            Enum: "BILL_RECEIVER", "BILL_SENDER", "BILL_THIRD_PARTY"
          - `typeOfCharge` (string)
            The type of charge billed to the specified party. UPS requires split charges. ALL_CHARGES is not supported.
            Enum: "TRANSPORTATION_CHARGES", "DUTIES_AND_TAXES"
        - DHL Express Carrier Payment:
          - `accountNumber` (string)
            The DHL Express account number of the party to be billed.
            Example: "DHL123456"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Billing party for DHL Express. Account number is required for all scenarios.
            Enum: same as `party` in "FedEx Carrier Payment" (4 values)
          - `typeOfCharge` (string)
            The type of charge billed to the specified party.
            Enum: same as `typeOfCharge` in "FedEx Carrier Payment" (3 values)
        - Purolator Carrier Payment:
          - `accountNumber` (string)
            The DHL Express account number of the party to be billed.
            Example: "DHL123456"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Billing party for DHL Express. Account number is required for all scenarios.
            Enum: same as `party` in "FedEx Carrier Payment" (4 values)
          - `typeOfCharge` (string)
            The type of charge billed to the specified party.
            Enum: same as `typeOfCharge` in "FedEx Carrier Payment" (3 values)
      - `docTab` (object)
        This option is used to provide additional information into the label's additional space. It is supported only for doc size 4x6_75.
        Example: {"templateName":"1","toAddressName":{"displayName":"CUS","value":"","row":1,"column":1},"parcelTrackingNumber":{"displayName":"TRK","value":"","row":2,"column":1},"carrier":{"displayName":"CAR","value":"","row":3,"column":1},"serviceId":{"displayName":"SER","value":"","row":1,"column":2},"dateOfShipment":{"displayName":"DATE","value":"","row":2,"column":2},"pieceNumber":{"displayName":"PKG#","value":"","row":3,"column":2},"packageTotalCarrierCharge":{"displayName":"PCHG","value":"","row":3,"column":3},"totalCarrierCharge":{"displayName":"TCHG","value":"","row":2,"column":3},"packageWeight":{"displayName":"PWGT","value":"","row":1,"column":3},"totalWeight":{"displayName":"TWGT","value":"","row":1,"column":4},"customField1":{"displayName":"INV","value":"010610000388302031320259999950","row":2,"column":4}}
      - `docTab.templateName` (string)
        This is an optional field and will be used when the client has multiple doctab options.
        Example: "1"
      - `docTab.toAddressName` (object)
      - `docTab.toAddressName.displayName` (string)
        This is a mandatory field. It will be displayed on the label
        Example: "TO"
      - `docTab.toAddressName.value` (string)
        If the field is part of a request or response, the value will be picked up from there. In the case of custom fields, the user-provided value will be printed.
        Example: "Test1"
      - `docTab.toAddressName.row` (integer)
        Row Position of the Item. The min value is 1.
        Example: 1
      - `docTab.toAddressName.column` (integer)
        Column Position of the Item. The min value is 1.
        Example: 1
      - `docTab.parcelTrackingNumber` (object)
      - `docTab.carrier` (object)
      - `docTab.serviceId` (object)
      - `docTab.dateOfShipment` (object)
      - `docTab.pieceNumber` (object)
      - `docTab.packageTotalCarrierCharge` (object)
      - `docTab.totalCarrierCharge` (object)
      - `docTab.packageWeight` (object)
      - `docTab.totalWeight` (object)
      - `docTab.customField1` (object)
      - `docTab.customField2` (object)
      - `docTab.customField3` (object)
      - `docTab.customField4` (object)
      - `specialServices` (array)
        It provides a carrier based special or extra service, which also varies as per selected service and parcel type. User can override this value by defining it at shipment level.

> Provide either the specialserviceId or the specialservice objects such as deliveryConfirmation, handling, insurance and returnOptions, but not both.
        Example: [{"inputParameters":[{"name":"INPUT_VALUE","value":"100"}],"specialserviceId":"Ins"}]
      - `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"
      - `deliveryConfirmation` (object)
        Indicates the supporting special service or document as an evidence of shipment delivery.

> Provide either the specialserviceId or the specialservice objects such as deliveryConfirmation, handling, insurance and returnOptions, but not both.

For the delivery confirmation, user can select any of the following special services, but they may vary as per the carrier selection. 
  - Signature Required/ Indirect Signature Required : SIGNATURE
  - Delivery confirmation: DELIVERY_CONFIRMATION
  - Proof of age required (18 years) Adult Signature Required: ADULT_SIGNATURE
  - Proof of age required (19 years): ADULT_SIGNATURE_19
  - No Signature Required: NO_SIGNATURE
  - Direct Signature Required: DIRECT_SIGNATURE
  - Chain of Signature: CHAIN_OF_SIGNATURE 
  
  Carrier specific options:
  - UPS supports SIGNATURE and ADULT_SIGNATURE. 
  - FedEx supports SIGNATURE, ADULT_SIGNATURE, NO_SIGNATURE, and DIRECT_SIGNATURE.
  - Purolator supports ADULT_SIGNATURE, NO_SIGNATURE, and CHAIN_OF_SIGNATURE.
  - GoFor supports SIGNATURE.
  - CPC supports SIGNATURE, DELIVERY_CONFIRMATION, ADULT_SIGNATURE, ADULT_SIGNATURE_19, and NO_SIGNATURE.
      - `deliveryConfirmation.type` (string)
        The delivery confirmation Type.
        Enum: "NO_SIGNATURE", "SIGNATURE", "ADULT_SIGNATURE", "ADULT_SIGNATURE_19", "DIRECT_SIGNATURE", "DELIVERY_CONFIRMATION", "CHAIN_OF_SIGNATURE"
      - `handling` (object)
        Few shipments need a special handling, and the reason can be fragile items or highly secured shipments. There might be other case scenarios. In a simple term, this field defines shipment handling, which provides users a capability to select handling options.

> Provide either the specialserviceId or the specialservice objects such as deliveryConfirmation, handling, insurance and returnOptions, but not both.

User can select any of the following handling options (special services), but they may vary as per the carrier selection.
  - Hold For Pickup: HOLD_FOR_PICKUP
  - Saturday Delivery: SATURDAY_DELIVERY
  - UPS Premium Care: PREMIUM_CARE
  - Direct Delivery Only: DIRECT_DELIVERY_ONLY
  - Additional Handling: ADDITIONAL_HANDLING 
  
  Carrier specific options:
  - UPS supports all handling options mentioned above. 
  - FedEx supports HOLD_FOR_PICKUP, SATURDAY_DELIVERY, and ADDITIONAL_HANDLING.
  - Purolator supports HOLD_FOR_PICKUP, SATURDAY_DELIVERY, and ADDITIONAL_HANDLING.
      - `handling.type` (string)
        The special handling type.
        Enum: "HOLD_FOR_PICKUP", "SATURDAY_DELIVERY", "PREMIUM_CARE", "DIRECT_DELIVERY_ONLY", "ADDITIONAL_HANDLING"
      - `insurance` (object)
        Indicates the insurance coverage, which is selected by users while create shipment - rate shopping. User can select below-mentioned special service for insurance: 
  - Declared Value Surcharge: INSURANCE
  
  Carrier specific options:
  - UPS, FedEx, Purolator, and CPC support special service INSURANCE. 

> Provide either the specialserviceId or the specialservice objects such as deliveryConfirmation, handling, insurance and returnOptions, but not both.
      - `insurance.type` (string)
        The insurance type.
        Enum: "INSURANCE"
      - `insurance.amount` (number)
        The insurance amount in the currency specified for the shipment.
        Example: 200
      - `references` (object)
        References are tags or information that is printed on Shipping Label based on the customer's requirement.  Reference Fields can have values/indication like department name, invoice no., package description, purchase order no., carrier note, cost account no., transportation no., or PO no., print custom message etc. Each of the reference field can have only one indication/value.
      - `references.reference1` (string)
        Reference 1 can have one of the above-indicated values/information, which is printed on Label. For FedEx, it is a Reference number in the invoice. For USPS, it is a print custom message that will be printed vertically at the top of the label.  Max length = 30.
        Example: "custome message"
      - `references.reference2` (string)
        Reference 2 can have other details as indicated in the example values above. This is also printed on Label. For FedEx, this is the department. For USPS, it is a print custom message that will be printed horizontally at the bottom of the label.  Max length = 30.
        Example: "SendTech"
      - `references.reference3` (string)
        Reference 3 can have the information which were not fulfilled in Ref1 and Ref2. For FedEx, this is the invoice number.  Max length = 30.
        Example: "98437"
      - `references.reference4` (string)
        Reference 4 can have more information which were not provided in Ref1, Ref2, or Ref3. For FedEx, this is the PO number.  Max length = 30.
        Example: "Overnight Shipping"
      - `references.poNumber` (string)
        The Purchase Order Number. For FedEx, the PO number is passed in the reference4 field.  Max length = 30.
        Example: "R2W 2H2"
      - `references.department` (string)
        The department of the Recipient.For FedEx, the Department is passed in reference2 field.  Max length = 30.
        Example: "Name department"
      - `references.additionalReference1` (string)
        Additional Reference is hardly used, but sender can mention anything as per requirement, just for Recipient's information.  Max length = 30.
        Example: "612987641"
      - `references.additionalReference2` (string)
        Any tags or information that to be shown to Recipient, can be mentioned by Sender, which is not indicated on AdditionalReference1 field, e.g., PO No, Order No. etc. Max length = 30.
        Example: "989"
      - `references.shippingNotes` (string)
        Shipping notes are the instructions or messages that the sender wants to communicate to the carrier or the recipient regarding the handling, delivery, or any special requirements for the shipment. These notes can include specific delivery instructions, handling precautions, or any other relevant information that can assist in ensuring the safe and accurate delivery of the package.  Max length = 30.
        Example: "Handle with care."
      - `references.ShipperReference` (string)
        Shipper Reference is a unique identifier or code assigned by the shipper to a specific shipment or package.  Max length = 30.
        Example: "REF123456789"
      - `references.transportationReference` (string)
        Transportation Reference is a unique identifier or code used to track and manage the transportation of a shipment or package throughout the shipping process.  Max length = 30.
        Example: "TRANSREF987654321"
      - `metadata` (array)
        Additional metadata that needs to be stored for this shipment can be added here. Supported values are [Cost Account Name, Cost Account Id, Cost Account Code](/openapi/costaccount/cost-account-management/addcostaccount), [Account Code](/openapi/billingcodes/account-code/createaccountcode) and [Company Code](/openapi/billingcodes/company-code/createcompanycode).If Cost Account metadata is provided, all three Cost Account fields are required.
        Example: [{"name":"costAccountName","value":"costAccountName"},{"name":"costAccountId","value":"costAccountId"},{"name":"costAccountCode","value":"Code"},{"name":"accountCode","value":"code"},{"name":"companyCode","value":"code"}]
      - `metadata.name` (string)
        Name of the Cost Account which are linked to Shipment.
        Example: "costAccountName"
      - `metadata.value` (string)
        Indicates the value for the CostAccount.
        Example: "cost1"
      - `labelSize` (string, required)
        Defines the label size of the Shipment, that is, the Shipping Label is available in different Doc Size.  Max length = 10
        Enum: "DOC_8X11", "DOC_4X8", "DOC_4X6"
      - `labelType` (string, required)
        Defines the type of the Shipment. QR_CODE supported for carrier USPS only as of now.  Max length = 14
        Enum: "SHIPPING_LABEL", "QR_CODE"
      - `labelFormat` (string, required)
        "Defines the file/format in which the label is printed. For ZPL2, DOC_4X6 will be supported, while for PDF, both the sizes are supported. QR_CODE can be generated only in GIF format. Max length = 14"
        Enum: "PDF", "ZPL2", "PNG", "GIF"
      - `contentType` (string)
        Specifies how the label content is encoded. URL is supported for PDF and GIF.  BASE64 is supported for ZPL2, PNG, and GIF.
        Enum: "URL", "BASE64"
      - `printerAliasName` (string)
        Refers to a printer connected (directly or via network) to a computer. Max length = 60
        Example: "test"
      - `dateOfShipment` (string)
        The date when shipment is created/shipped. The format of the Date is YYYY-MM-DD.
        Example: "2025-10-28"
      - `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.
        Example: {"deliverBy":"2025-10-30","useBestNextDate":false}
      - `deliveryOption.deliverBy` (string)
        Delivery date is the data when shipment is to be delivered, which is scheduled by sender. The format of the Date is YYYY-MM-DD.  This field will be mandatory to provide, if the customer chooses ruleType is deliverBy.
        Example: "2025-10-30"
      - `deliveryOption.useBestNextDate` (boolean)
        When this is set to true, if the scheduled delivery date falls on a Holiday, then the next business day will be considered to deliver the shipment.
      - `returnOptions` (object)
        This object defines return shipment options. It should be passed when requesting return labels. Supported only for carriers UPS and FedEx as of now. For UPS, this object is required.  For FedEx, this object is optional.  Note: The returnOptions object must be sent with the isReturn query parameter.

> Provide either the specialserviceId or the specialservice objects such as deliveryConfirmation, handling, insurance and returnOptions, but not both.
      - `returnOptions.type` (string, required)
        Specifies the return type. This is the value of special service code for the carrier-supported return service.
        Example: "RETURN_BY_PRL"
      - `returnOptions.inputParameters` (array, required)
        List of input parameters required for return processing.
      - `returnOptions.inputParameters.name` (string)
        The name of the parameter.
        Example: "RMA_NUMBER"
      - `returnOptions.inputParameters.value` (string)
        The corresponding value for the parameter.
        Example: "123"
      - `customs` (object)
        Customs information required for international shipments and optional for domestic shipments.
- Required only for RMG carrier in domestic shipment requests.
- Must include customsItems and customsInfo objects.
      - `customs.customsInfo` (object, required)
        This is additional customs information required along with item details.
      - `customs.customsInfo.reasonForExport` (string, required)
        Reason for exporting the items.
        Enum: "GIFT", "COMMERCIAL_SAMPLE", "MERCHANDISE", "DOCUMENTS", "RETURNED_GOODS", "OTHER"
      - `customs.customsInfo.comments` (string)
        Free-form comments regarding the exported shipment.
        Example: "Test comment"
      - `customs.customsInfo.invoiceNumber` (string)
        The commercial invoice number assigned by the exporter.
        Example: "001189223"
      - `customs.customsInfo.importerCustomsReference` (string)
        A reference number used by the importer, such as a VAT number, PO number, or insured number.
        Example: "987654"
      - `customs.customsInfo.sdrValue` (number)
        When an international parcel is insured, the insured value must be expressed in Special Drawing Rights values.
        Example: 23.32
      - `customs.customsInfo.EELPFC` (string)
        A number provided by the Automated Export System (AES).  Required if the item is more than $2,500 USD, per Schedule B export codes.  Required if EELPFC  is AES ITN.
- AES ITN is a unique transaction number generated by the Automated Export System (AES) when export data is filed for international shipments from the U.S.
- The ITN format is AES XYYYYMMDDNNNNNN, where X indicates the type, YYYYMMDD is the filing date, and NNNNNN is a 6-digit number. Example: AES X20250327123456
- If the ITN is not available, an exemption format may be used: AESDOWN [Filer ID] [mm/dd/yyyy]. Example: AESDOWN 12345678912 03/27/2025
        Example: "NOEEI 30.2D2"
      - `customs.customsInfo.currencyCode` (string, required)
        The currency used for declared value. Use three uppercase letters, per ISO 4217.
        Example: "USD"
      - `customs.customsInfo.fromCustomsReference` (string)
        Free-form reference information provided by the requestor of the shipment. Depending on the carrier this information may or may not be rendered on the customs documents.
        Example: "EFEFE4554545"
      - `customs.customsInfo.licenseNumber` (string)
        The export license number associated with the commodity.
        Example: "456ABC123"
      - `customs.customsInfo.certificateNumber` (string)
        The certificate number associated with the commodity.
        Example: "987"
      - `customs.customsInfo.customsDeclaredValue` (number, required)
        Item value in mentioned currencyCode.
        Example: 6000
      - `customs.customsInfo.termsOfSale` (string)
        Defines the delivery and payment terms between the shipper and recipient. Currenty supported by carriers - UPS, FedEx and DHL. - Common values include:
  - CIP: Carriage and Insurance Paid to
  - CPT: Carriage Paid To
  - DAP: Delivered at Place
  - DAT: Delivered at Terminal
  - DDP: Delivered Duty Paid
  - EXW: Ex Works
  - FCA: Free Carrier
        Enum: "CIP", "CPT", "DAP", "DAT", "DDP", "EXW", "FCA"
      - `customs.customsItems` (array, required)
        - Items included in the customs declaration.
> Note: Either use customsProductId or item properties individually.
      - `customs.customsItems.customsProductId` (string)
        Use this identifier to prefill customs item fields (HS tariff code, origin country, unit price, weight, quantity). Generate custom product identifier using [Add Customs Product API](/openapi/customproduct/customs-product/addcustomsproduct). 
> Note: When creating a single shipment, either provide customsProductId or individual values of an item within the item object.
      - `customs.customsItems.description` (string)
        A detailed description of the commodity, up to 255 characters. The description will appear on the customs form. If the shipment has multiple types of items, create a separate customsItems object for each. Each description will appear on the form.
        Example: "Books"
      - `customs.customsItems.itemId` (string)
        Unique identifier for the commodity.
        Example: "item1"
      - `customs.customsItems.orderNumber` (string)
        The unique identifier for the order.
        Example: "ORD1"
      - `customs.customsItems.quantity` (number)
        Enter the total number of items of this type of commodity.
        Example: 1
      - `customs.customsItems.unitPrice` (number)
        The price of one item of this type of commodity.
        Example: 3000
      - `customs.customsItems.weightUnit` (string)
        The unit of measurement. This field is required by the unitWeight object.
        Example: "OZ"
      - `customs.customsItems.weight` (number)
        Weight of the item.
        Example: 0.1
      - `customs.customsItems.hSTariffCode` (string)
        The destination country's tariff-classification number (HS code) for the commodity. Most countries use the six-digit Harmonized System (HS) as the basis for their tariff classifications and then add digits for more detail. The maximum length for an HS code is 14 characters. The HS code will appear on the customs form. If the shipment has multiple types of items, create a separate customsItems object for each. HS Code is required for RMG b2b shipment.
        Example: "AST559"
      - `customs.customsItems.originCountryCode` (string)
        The two-character ISO country code of the shipment's origin country. Use ISO 3166-1 Alpha-2 standard values.
        Example: "US"
      - `customs.customsDocuments` (array)
        Use this field to attach Electronic Trade Documents (ETDs) to your DHL international shipment. 
Each item should represent a document uploaded previously using the [Upload ETD API](/openapi/shipping/electronic-trade-document/uploadetd).
- For DHL, if you pass this field, ensure the selected service type is PAPERLESS.
- The s3FileId value must be taken from the [Upload ETD API response](/openapi/shipping/electronic-trade-document/uploadetd).
> Electronic trade document must upload before shipment label creation.
      - `customs.customsDocuments.fileName` (string, required)
        The name of the uploaded trade document file.
        Example: "invoice.pdf"
      - `customs.customsDocuments.s3FileId` (string, required)
        The relative file path where the document is stored in the S3 bucket.
        Example: "uploads/shipping/intl_docs/sa58a03/0oa2bxnhu03i48mh50h8/NJ3ww7gv73kwDJK/DRNgGjEraOvV8ZB_invoice.pdf"
      - `customs.customsDocuments.documentType` (string, required)
        Type of the uploaded document. This value is referenced when generating customs declarations.
Must match the type used during document upload.
        Enum: "INVOICE", "COMMERCIAL_INVOICE", "PROFORMA_INVOICE", "CERTIFICATE_OF_ORIGIN", "NAFTA_CERTIFICATE_OF_ORIGIN", "CUSTOMS_DECLARATION_FORM", "AIR_WAYBILL_AND_WAYBILL"
    - By RateGroup:
      - `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
      - `soldToAddress` (object)
        Billing address of the buyer responsible for the shipment payment. It can be domestic or international address. 
- If the importer is the same as the final recipient, the toAddress and soldToAddress must match.
- If the importer is different from the final recipient, enter the importer address in the soldToAddress and enter the final recipient's address in the toAddress.
      - `soldToAddress.addressLine1` (string)
        Primary street address of the billing entity.
        Example: "1600 Amphitheatre Parkway"
      - `soldToAddress.addressLine2` (string)
        Additional address information such as apartment, suite, or unit number.
        Example: "Suite 101"
      - `soldToAddress.addressLine3` (string)
        Optional extra address details.
        Example: "Near central market"
      - `soldToAddress.company` (string)
        The name of the company associated with the SoldTo address.
        Example: "ABC Company"
      - `soldToAddress.name` (string)
        The contact person's full name for the billing entity.
        Example: "John Doe"
      - `soldToAddress.phone` (string)
        Phone number of the SoldTo entity.
        Example: "650-253-0000"
      - `soldToAddress.email` (string)
        Email address of the SoldTo entity.
        Example: "billing@abccompany.com"
      - `soldToAddress.residential` (boolean)
        Indicates whether the SoldTo address is a residential location (true/false).
      - `soldToAddress.cityTown` (string)
        City or town of the billing address.
        Example: "Mountain View"
      - `soldToAddress.stateProvince` (string)
        State or province of the billing address.
        Example: "CA"
      - `soldToAddress.postalCode` (string)
        Postal or ZIP code of the billing address.
        Example: "94043"
      - `soldToAddress.countryCode` (string)
        Two-letter country code of the billing address (ISO 3166-1 alpha-2).
        Example: "US"
      - `soldToAddress.taxId` (string)
        The Tax Identification Number (TIN). TIN Number is supported for FedEx as of now. Max character length = 18. 
- EIN, VAT, GST, and IOSS are mapped to BUSINESS_NATIONAL.
- EORI is mapped to BUSINESS_UNION.
- RFC with a length of 12 characters is mapped to BUSINESS_NATIONAL.
- RFC with a length of 13 characters is mapped to PERSONAL_NATIONAL.
      - `soldToAddress.taxIdType` (string)
        Specifies the type of tax identification being provided.
        Enum: same as `soldToAddress.taxIdType` in "By Carrier" (6 values)
      - `additionalAddresses` (array)
        A list of additional addresses associated with the shipment. 
- Each object includes an address and its designated type, such as BROKER or other parties involved in customs or shipping processes. 
- Additional address could be domestic or International both.
      - `additionalAddresses.address` (object)
        The additional address details.
      - `additionalAddresses.address.residential` (boolean)
        If the address is residential.
      - `additionalAddresses.address.phone` (string)
        Contact phone number for the address.
        Example: "732-443-1007"
      - `additionalAddresses.address.countryCode` (string)
        The ISO 2-letter country code.
        Example: "US"
      - `additionalAddresses.address.company` (string)
        The name of the company associated with the address.
        Example: "ABC Company"
      - `additionalAddresses.address.postalCode` (string)
        ZIP or postal code.
        Example: "08810-1411"
      - `additionalAddresses.address.cityTown` (string)
        Name of the city or town.
        Example: "DAYTON"
      - `additionalAddresses.address.name` (string)
        Name of the contact person.
        Example: "Warehouse Manager"
      - `additionalAddresses.address.stateProvince` (string)
        State or province code.
        Example: "NJ"
      - `additionalAddresses.address.addressLine1` (string)
        Primary street address line.
        Example: "2270 US HIGHWAY 130"
      - `additionalAddresses.addressType` (string)
        Type of the additional address (e.g., BROKER). This is required if passing additionalAddresses. Note: The addressType SHIPPER is returned only in USPS responses.
        Enum: same as `additionalAddresses.addressType` in "By Carrier" (7 values)
      - `altReturnAddress` (object)
        This is an optional field. if a package shipped from Location_A to Location_B needs to return to Location_C. The alternate address will be printed on the label. Use this object to specify a return address different from the fromAddress. Supported by FedEx, UPS, and Purolator.
        Example: {"name":"User Name","addressLine1":"1600 Amphitheatre Parkway","addressLine2":"near abc street","addressLine3":"near xyz street","company":"PB","email":"testuser@gmail.com","phone":"6502530000","cityTown":"Mountain View","stateProvince":"CA","postalCode":"94043","inductionPostalCode":"06905","countryCode":"US","residential":true}
      - `altReturnAddress.addressLine1` (string)
        The first line of the alternate return address, such as a street address or PO Box.
        Example: "1600 Amphitheatre Parkway"
      - `altReturnAddress.addressLine2` (string)
        The addressLine2 contains Street address or Landmark (if any).
        Example: "near abc street"
      - `altReturnAddress.addressLine3` (string)
        The addressLine3 contains P.O. Box (if any) near the address.
        Example: "near xyz street"
      - `altReturnAddress.company` (string)
        The name of the company for the alternate return address, in case if the recipient's address is not residential.  Max length = 30.
        Example: "PB"
      - `altReturnAddress.email` (string)
        The email address of the recipient. It can be person's email address or company email address (for non-residential).
        Example: "testuser@gmail.com"
      - `altReturnAddress.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
      - `altReturnAddress.cityTown` (string)
        The city or town for the alternate return address.
        Example: "Mountain View"
      - `altReturnAddress.countryCode` (string)
        The two-letter ISO country code for the alternate return address.
        Example: "US"
      - `altReturnAddress.name` (string)
        The name of the recipient or organization for the alternate return address.
        Example: "User Name"
      - `altReturnAddress.phone` (string)
        The phone number associated with the alternate return address.
        Example: "6502530000"
      - `altReturnAddress.postalCode` (string)
        The postal or ZIP code for the alternate return address.
        Example: "94043"
      - `altReturnAddress.stateProvince` (string)
        The 2-letter state or province code for the alternate return address.
        Example: "CA"
      - `parcel` (object)
        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: same as `parcel.dimUnit` in "By Carrier" (2 values)
      - `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: same as `parcel.weightUnit` in "By Carrier" (2 values)
      - `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
      - `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"
      - `rateShopBy` (string)
        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.  Through ShipViaCode, customers can create a shipment using a single code (Custom Carrier Code) that represents a specific combination of carrier, carrier account, parcel type, service, and special services.
        Enum: same as `rateShopBy` in "By Carrier" (4 values)
      - `byRateGroup` (object)
        Indicates the category to select how cheap the carrier service is, or which carrier has fastest service.  It displays the list of those services.
        Example: {"ruleType":"Cheapest","rateGroupId":"5GW1NZ9Q7Av5n6B"}
      - `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", "DeliverBy"
      - `byRateGroup.rateGroupId` (string, required)
        This is a unique identifier assigned to the created RateGroup, which is used in the shipment creation.
        Example: "5GW1NZ9Q7Av5n6B"
      - `shipmentOptions` (object)
        Shipment Options have an option of Manifest. With Manifest, the Mail Center agent can print the Manifest (End of day records of all created shipment) of selected carrier.
        Example: {"minimalAddressValidation":true,"bypassAddressValidation":"toAddress","bookingConfirmationNumber":"XXXX56789812"}
      - `shipmentOptions.addToManifest` (boolean)
        This option asks if the shipment is to be added for Manifest, so that the shipment will reflect in the Manifest Form while compilation. Supported for CPC and USPS carriers.  The value can be 'true' or 'false'.
        Example: true
      - `shipmentOptions.minimalAddressValidation` (boolean)
        Allows performing minimal address validation during shipment creation. the addressLine1 field is not validated if set to true.
Minimal address validation is supported only for these APIs:
  - Create Shipment
  - Create Bulk Shipments
  - Create Multipiece Shipment
        Enum: same as `shipmentOptions.minimalAddressValidation` in "By Carrier" (2 values)
      - `shipmentOptions.bookingConfirmationNumber` (string)
        This is an advanced booking number required for FedEx Express Freight shipments. It must be obtained through the appropriate channel in the shipment's origin country. Without a valid booking confirmation number, pickup and space allocation for the shipment are not guaranteed. The booking number must be between 5 and 12 digits.
        Example: "XXXX56789812"
      - `shipmentOptions.shipperID` (string)
        The unique identifier of the known shipper associated with this shipment.
        Example: "1234567890"
      - `carrierPayments` (array) — one of:
        Defines how carrier charges are billed to a third party. Use this field to specify 
account and charge type details for transportation and/or duties and taxes. This 
field is optional and currently supported for FedEx, UPS, DHL Express and Purolator.

- If no party (who will pay for TRANSPORTATION_CHARGES or duties and taxes) is explicitly specified during shipment creation, the charges will automatically default to the sender (shipper). To direct charges to a different party, the appropriate bill-to details must be provided in the request.
        - FedEx Carrier Payment:
          - `accountNumber` (string)
            The FedEx account number of the party to be billed.
            Example: "602684342"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Billing party for the shipment charges.
            Enum: same as `party` in "FedEx Carrier Payment" (4 values)
          - `typeOfCharge` (string)
            The type of charge billed to the specified party. Possible values:
- TRANSPORTATION_CHARGES: Transportation-related charges only. When billing transportation charges to the sender (BILL_SENDER), the accountNumber must match the account used to initiate the shipment.
- DUTIES_AND_TAXES: Duties and taxes only
- ALL_CHARGES: All Shipment Charges (Transportatio and Duties and Taxes)Required when using BILL_RECEIVER_CONTRACT (FedEx COLLECT); includes all charges
            Enum: same as `typeOfCharge` in "FedEx Carrier Payment" (3 values)
        - UPS Carrier Payment:
          - `accountNumber` (string)
            The UPS account number of the party to be billed.
            Example: "1Z999AA10123456784"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Party to be billed.
            Enum: same as `party` in "UPS Carrier Payment" (3 values)
          - `typeOfCharge` (string)
            The type of charge billed to the specified party. UPS requires split charges. ALL_CHARGES is not supported.
            Enum: same as `typeOfCharge` in "UPS Carrier Payment" (2 values)
        - DHL Express Carrier Payment:
          - `accountNumber` (string)
            The DHL Express account number of the party to be billed.
            Example: "DHL123456"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Billing party for DHL Express. Account number is required for all scenarios.
            Enum: same as `party` in "FedEx Carrier Payment" (4 values)
          - `typeOfCharge` (string)
            The type of charge billed to the specified party.
            Enum: same as `typeOfCharge` in "FedEx Carrier Payment" (3 values)
        - Purolator Carrier Payment:
          - `accountNumber` (string)
            The DHL Express account number of the party to be billed.
            Example: "DHL123456"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Billing party for DHL Express. Account number is required for all scenarios.
            Enum: same as `party` in "FedEx Carrier Payment" (4 values)
          - `typeOfCharge` (string)
            The type of charge billed to the specified party.
            Enum: same as `typeOfCharge` in "FedEx Carrier Payment" (3 values)
      - `docTab` (object)
        This option is used to provide additional information into the label's additional space. It is supported only for doc size 4x6_75.
        Example: {"templateName":"1","toAddressName":{"displayName":"TO","value":"Test1","row":1,"column":1},"parcelTrackingNumber":{"displayName":"TO","value":"Test1","row":1,"column":1},"carrier":{"displayName":"TO","value":"Test1","row":1,"column":1},"serviceId":{"displayName":"TO","value":"Test1","row":1,"column":1},"dateOfShipment":{"displayName":"TO","value":"Test1","row":1,"column":1},"pieceNumber":{"displayName":"TO","value":"Test1","row":1,"column":1},"packageTotalCarrierCharge":{"displayName":"TO","value":"Test1","row":1,"column":1},"totalCarrierCharge":{"displayName":"TO","value":"Test1","row":1,"column":1},"packageWeight":{"displayName":"TO","value":"Test1","row":1,"column":1},"totalWeight":{"displayName":"TO","value":"Test1","row":1,"column":1},"customField1":{"displayName":"TO","value":"Test1","row":1,"column":1},"customField2":{"displayName":"TO","value":"Test1","row":1,"column":1},"customField3":{"displayName":"TO","value":"Test1","row":1,"column":1},"customField4":{"displayName":"TO","value":"Test1","row":1,"column":1}}
      - `docTab.templateName` (string)
        This is an optional field and will be used when the client has multiple doctab options.
        Example: "1"
      - `docTab.toAddressName` (object)
      - `docTab.toAddressName.displayName` (string)
        This is a mandatory field. It will be displayed on the label
        Example: "TO"
      - `docTab.toAddressName.value` (string)
        If the field is part of a request or response, the value will be picked up from there. In the case of custom fields, the user-provided value will be printed.
        Example: "Test1"
      - `docTab.toAddressName.row` (integer)
        Row Position of the Item. The min value is 1.
        Example: 1
      - `docTab.toAddressName.column` (integer)
        Column Position of the Item. The min value is 1.
        Example: 1
      - `docTab.parcelTrackingNumber` (object)
      - `docTab.carrier` (object)
      - `docTab.serviceId` (object)
      - `docTab.dateOfShipment` (object)
      - `docTab.pieceNumber` (object)
      - `docTab.packageTotalCarrierCharge` (object)
      - `docTab.totalCarrierCharge` (object)
      - `docTab.packageWeight` (object)
      - `docTab.totalWeight` (object)
      - `docTab.customField1` (object)
      - `docTab.customField2` (object)
      - `docTab.customField3` (object)
      - `docTab.customField4` (object)
      - `deliveryConfirmation` (object)
        Indicates the supporting special service or document as an evidence of shipment delivery. 
For the delivery confirmation, user can select any of the following special services, but they may vary as per the carrier selection. 
  - Signature Required/ Indirect Signature Required : SIGNATURE
  - Delivery confirmation: DELIVERY_CONFIRMATION
  - Proof of age required (18 years) Adult Signature Required: ADULT_SIGNATURE
  - Proof of age required (19 years): ADULT_SIGNATURE_19
  - No Signature Required: NO_SIGNATURE
  - Direct Signature Required: DIRECT_SIGNATURE
  - Chain of Signature: CHAIN_OF_SIGNATURE 
  
  Carrier specific options:
  - UPS supports SIGNATURE and ADULT_SIGNATURE. 
  - FedEx supports SIGNATURE, ADULT_SIGNATURE, NO_SIGNATURE, and DIRECT_SIGNATURE.
  - Purolator supports ADULT_SIGNATURE, NO_SIGNATURE, and CHAIN_OF_SIGNATURE.
  - GoFor supports SIGNATURE.
  - CPC supports SIGNATURE, DELIVERY_CONFIRMATION, ADULT_SIGNATURE, ADULT_SIGNATURE_19, and NO_SIGNATURE.
        Example: {"type":"ADULT_SIGNATURE","value":"amit"}
      - `deliveryConfirmation.type` (string)
        The delivery confirmation Type.
        Enum: same as `deliveryConfirmation.type` in "By Carrier" (7 values)
      - `handling` (object)
        Few shipments need a special handling, and the reason can be fragile items or highly secured shipments. There might be other case scenarios. In a simple term, this field defines shipment handling, which provides users a capability to select handling options. 
User can select any of the following handling options (special services), but they may vary as per the carrier selection.
  - Hold For Pickup: HOLD_FOR_PICKUP
  - Saturday Delivery: SATURDAY_DELIVERY
  - UPS Premium Care: PREMIUM_CARE
  - Direct Delivery Only: DIRECT_DELIVERY_ONLY
  - Additional Handling: ADDITIONAL_HANDLING 
  
  Carrier specific options:
  - UPS supports all handling options mentioned above. 
  - FedEx supports HOLD_FOR_PICKUP, SATURDAY_DELIVERY, and ADDITIONAL_HANDLING.
  - Purolator supports HOLD_FOR_PICKUP, SATURDAY_DELIVERY, and ADDITIONAL_HANDLING.
        Example: {"type":"ADDITIONAL_HANDLING","value":"HOLD"}
      - `handling.type` (string)
        The special handling type.
        Enum: same as `handling.type` in "By Carrier" (5 values)
      - `insurance` (object)
        Indicates the insurance coverage, which is selected by users while create shipment - rate shopping. User can select below-mentioned special service for insurance: 
  - Declared Value Surcharge: INSURANCE
  
  Carrier specific options:
  - UPS, FedEx, Purolator, and CPC support special service INSURANCE.
        Example: {"type":"INSURANCE","amount":200}
      - `insurance.type` (string)
        The insurance type.
        Enum: same as `insurance.type` in "By Carrier" (1 values)
      - `insurance.amount` (number)
        The insurance amount in the currency specified for the shipment.
        Example: 200
      - `references` (object)
        References are tags or information that is printed on Shipping Label based on the customer's requirement.  Reference Fields can have values/indication like department name, invoice no., package description, purchase order no., carrier note, cost account no., transportation no., or PO no., print custom message etc. Each of the reference field can have only one indication/value.
      - `references.reference1` (string)
        Reference 1 can have one of the above-indicated values/information, which is printed on Label. For FedEx, it is a Reference number in the invoice. For USPS, it is a print custom message that will be printed vertically at the top of the label.  Max length = 30.
        Example: "custome message"
      - `references.reference2` (string)
        Reference 2 can have other details as indicated in the example values above. This is also printed on Label. For FedEx, this is the department. For USPS, it is a print custom message that will be printed horizontally at the bottom of the label.  Max length = 30.
        Example: "SendTech"
      - `references.reference3` (string)
        Reference 3 can have the information which were not fulfilled in Ref1 and Ref2. For FedEx, this is the invoice number.  Max length = 30.
        Example: "98437"
      - `references.reference4` (string)
        Reference 4 can have more information which were not provided in Ref1, Ref2, or Ref3. For FedEx, this is the PO number.  Max length = 30.
        Example: "Overnight Shipping"
      - `references.poNumber` (string)
        The Purchase Order Number. For FedEx, the PO number is passed in the reference4 field.  Max length = 30.
        Example: "R2W 2H2"
      - `references.department` (string)
        The department of the Recipient.For FedEx, the Department is passed in reference2 field.  Max length = 30.
        Example: "Name department"
      - `references.additionalReference1` (string)
        Additional Reference is hardly used, but sender can mention anything as per requirement, just for Recipient's information.  Max length = 30.
        Example: "612987641"
      - `references.additionalReference2` (string)
        Any tags or information that to be shown to Recipient, can be mentioned by Sender, which is not indicated on AdditionalReference1 field, e.g., PO No, Order No. etc. Max length = 30.
        Example: "989"
      - `references.shippingNotes` (string)
        Shipping notes are the instructions or messages that the sender wants to communicate to the carrier or the recipient regarding the handling, delivery, or any special requirements for the shipment. These notes can include specific delivery instructions, handling precautions, or any other relevant information that can assist in ensuring the safe and accurate delivery of the package.  Max length = 30.
        Example: "Handle with care."
      - `references.ShipperReference` (string)
        Shipper Reference is a unique identifier or code assigned by the shipper to a specific shipment or package.  Max length = 30.
        Example: "REF123456789"
      - `references.transportationReference` (string)
        Transportation Reference is a unique identifier or code used to track and manage the transportation of a shipment or package throughout the shipping process.  Max length = 30.
        Example: "TRANSREF987654321"
      - `metadata` (array)
        Additional metadata that needs to be stored for this shipment can be added here. Supported values are [Cost Account Name, Cost Account Id, Cost Account Code](/openapi/costaccount/cost-account-management/addcostaccount), [Account Code](/openapi/billingcodes/account-code/createaccountcode) and [Company Code](/openapi/billingcodes/company-code/createcompanycode).If Cost Account metadata is provided, all three Cost Account fields are required.
        Example: [{"name":"costAccountName","value":"costAccountName"},{"name":"costAccountId","value":"costAccountId"},{"name":"costAccountCode","value":"Code"},{"name":"accountCode","value":"code"},{"name":"companyCode","value":"code"}]
      - `metadata.name` (string)
        Name of the Cost Account which are linked to Shipment.
        Example: "costAccountName"
      - `metadata.value` (string)
        Indicates the value for the CostAccount.
        Example: "cost1"
      - `labelSize` (string, required)
        Defines the label size of the Shipment, that is, the Shipping Label is available in different Doc Size.  Max length = 10
        Enum: same as `labelSize` in "By Carrier" (3 values)
      - `labelType` (string, required)
        Defines the type of the Shipment. QR_CODE supported for carrier USPS only as of now.  Max length = 14
        Enum: same as `labelType` in "By Carrier" (2 values)
      - `labelFormat` (string, required)
        "Defines the file/format in which the label is printed. QR_CODE can be generated only in GIF format. Max length = 14"
        Enum: same as `labelFormat` in "By Carrier" (4 values)
      - `contentType` (string)
        Specifies how the label content is encoded. URL is supported for PDF and GIF.  BASE64 is supported for ZPL2, PNG, and GIF.
        Enum: same as `contentType` in "By Carrier" (2 values)
      - `printerAliasName` (string)
        Refers to a printer connected (directly or via network) to a computer. Max length = 60
        Example: "test"
      - `dateOfShipment` (string)
        The date when shipment is created/shipped. The format of the Date is YYYY-MM-DD.
        Example: "{{todayDate}}"
      - `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.
        Example: {"deliverBy":"{{tomorrowDate}}","useBestNextDate":false}
      - `deliveryOption.deliverBy` (string)
        Delivery date is the data when shipment is to be delivered, which is scheduled by sender. The format of the Date is YYYY-MM-DD. This field will be mandatory to provide, if the customer chooses ruleType is deliverBy.
        Example: "{{tomorrowDate}}"
      - `deliveryOption.useBestNextDate` (boolean)
        When this is set to true, if the scheduled delivery date falls on a Holiday, then the next business day will be considered to deliver the shipment.
      - `customs` (object)
        Customs information required for international shipments and optional for domestic shipments.
- Required only for RMG carrier in domestic shipment requests.
- Must include customsItems and customsInfo objects.
      - `customs.customsInfo` (object, required)
        This is additional customs information required along with item details.
      - `customs.customsInfo.reasonForExport` (string, required)
        Reason for exporting the items.
        Enum: same as `customs.customsInfo.reasonForExport` in "By Carrier" (6 values)
      - `customs.customsInfo.comments` (string)
        Free-form comments regarding the exported shipment.
        Example: "Test comment"
      - `customs.customsInfo.invoiceNumber` (string)
        The commercial invoice number assigned by the exporter.
        Example: "001189223"
      - `customs.customsInfo.importerCustomsReference` (string)
        A reference number used by the importer, such as a VAT number, PO number, or insured number.
        Example: "987654"
      - `customs.customsInfo.sdrValue` (number)
        When an international parcel is insured, the insured value must be expressed in Special Drawing Rights values.
        Example: 23.32
      - `customs.customsInfo.EELPFC` (string)
        A number provided by the Automated Export System (AES).  Required if the item is more than $2,500 USD, per Schedule B export codes.  Required if EELPFC  is AES ITN.
- AES ITN is a unique transaction number generated by the Automated Export System (AES) when export data is filed for international shipments from the U.S.
- The ITN format is AES XYYYYMMDDNNNNNN, where X indicates the type, YYYYMMDD is the filing date, and NNNNNN is a 6-digit number. Example: AES X20250327123456
- If the ITN is not available, an exemption format may be used: AESDOWN [Filer ID] [mm/dd/yyyy]. Example: AESDOWN 12345678912 03/27/2025
        Example: "NOEEI 30.2D2"
      - `customs.customsInfo.currencyCode` (string, required)
        The currency used for declared value. Use three uppercase letters, per ISO 4217.
        Example: "USD"
      - `customs.customsInfo.fromCustomsReference` (string)
        Free-form reference information provided by the requestor of the shipment. Depending on the carrier this information may or may not be rendered on the customs documents.
        Example: "EFEFE4554545"
      - `customs.customsInfo.licenseNumber` (string)
        The export license number associated with the commodity.
        Example: "456ABC123"
      - `customs.customsInfo.certificateNumber` (string)
        The certificate number associated with the commodity.
        Example: "987"
      - `customs.customsInfo.customsDeclaredValue` (number, required)
        Item value in mentioned currencyCode.
        Example: 6000
      - `customs.customsInfo.termsOfSale` (string)
        Defines the delivery and payment terms between the shipper and recipient. Currenty supported by carriers - UPS, FedEx and DHL. - Common values include:
  - CIP: Carriage and Insurance Paid to
  - CPT: Carriage Paid To
  - DAP: Delivered at Place
  - DAT: Delivered at Terminal
  - DDP: Delivered Duty Paid
  - EXW: Ex Works
  - FCA: Free Carrier
        Enum: same as `customs.customsInfo.termsOfSale` in "By Carrier" (7 values)
      - `customs.customsItems` (array, required)
        Items included in the customs declaration.
      - `customs.customsItems.description` (string)
        A detailed description of the commodity, up to 255 characters. The description will appear on the customs form. If the shipment has multiple types of items, create a separate customsItems object for each. Each description will appear on the form.
        Example: "Books"
      - `customs.customsItems.itemId` (string)
        Unique identifier for the commodity.
        Example: "item1"
      - `customs.customsItems.orderNumber` (string)
        The unique identifier for the order.
        Example: "ORD1"
      - `customs.customsItems.quantity` (number)
        Enter the total number of items of this type of commodity.
        Example: 1
      - `customs.customsItems.unitPrice` (number)
        The price of one item of this type of commodity.
        Example: 3000
      - `customs.customsItems.weightUnit` (string)
        The unit of measurement. This field is required by the unitWeight object.
        Example: "OZ"
      - `customs.customsItems.weight` (number)
        Weight of the item.
        Example: 0.1
      - `customs.customsItems.hSTariffCode` (string)
        The destination country's tariff-classification number (HS code) for the commodity. Most countries use the six-digit Harmonized System (HS) as the basis for their tariff classifications and then add digits for more detail. The maximum length for an HS code is 14 characters. The HS code will appear on the customs form. If the shipment has multiple types of items, create a separate customsItems object for each. HS Code is required for RMG b2b shipment.
        Example: "AST559"
      - `customs.customsItems.originCountryCode` (string)
        The two-character ISO country code of the shipment's origin country. Use ISO 3166-1 Alpha-2 standard values.
        Example: "US"
      - `customs.customsDocuments` (array)
        Use this field to attach Electronic Trade Documents (ETDs) to your DHL international shipment. 
Each item should represent a document uploaded previously using the [Upload ETD API](/openapi/shipping/electronic-trade-document/uploadetd).
- For DHL, if you pass this field, ensure the selected service type is PAPERLESS.
- The s3FileId value must be taken from the [Upload ETD API response](/openapi/shipping/electronic-trade-document/uploadetd).
> Electronic trade document must upload before shipment label creation.
      - `customs.customsDocuments.fileName` (string, required)
        The name of the uploaded trade document file.
        Example: "invoice.pdf"
      - `customs.customsDocuments.s3FileId` (string, required)
        The relative file path where the document is stored in the S3 bucket.
        Example: "uploads/shipping/intl_docs/sa58a03/0oa2bxnhu03i48mh50h8/NJ3ww7gv73kwDJK/DRNgGjEraOvV8ZB_invoice.pdf"
      - `customs.customsDocuments.documentType` (string, required)
        Type of the uploaded document. This value is referenced when generating customs declarations.
Must match the type used during document upload.
        Enum: same as `customs.customsDocuments.documentType` in "By Carrier" (7 values)
    - By RuleSet:
      - `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
      - `soldToAddress` (object)
        Billing address of the buyer responsible for the shipment payment. It can be domestic or international address. 
- If the importer is the same as the final recipient, the toAddress and soldToAddress must match.
- If the importer is different from the final recipient, enter the importer address in the soldToAddress and enter the final recipient's address in the toAddress.
      - `soldToAddress.addressLine1` (string)
        Primary street address of the billing entity.
        Example: "1600 Amphitheatre Parkway"
      - `soldToAddress.addressLine2` (string)
        Additional address information such as apartment, suite, or unit number.
        Example: "Suite 101"
      - `soldToAddress.addressLine3` (string)
        Optional extra address details.
        Example: "Near central market"
      - `soldToAddress.company` (string)
        The name of the company associated with the SoldTo address.
        Example: "ABC Company"
      - `soldToAddress.name` (string)
        The contact person's full name for the billing entity.
        Example: "John Doe"
      - `soldToAddress.phone` (string)
        Phone number of the SoldTo entity.
        Example: "650-253-0000"
      - `soldToAddress.email` (string)
        Email address of the SoldTo entity.
        Example: "billing@abccompany.com"
      - `soldToAddress.residential` (boolean)
        Indicates whether the SoldTo address is a residential location (true/false).
      - `soldToAddress.cityTown` (string)
        City or town of the billing address.
        Example: "Mountain View"
      - `soldToAddress.stateProvince` (string)
        State or province of the billing address.
        Example: "CA"
      - `soldToAddress.postalCode` (string)
        Postal or ZIP code of the billing address.
        Example: "94043"
      - `soldToAddress.countryCode` (string)
        Two-letter country code of the billing address (ISO 3166-1 alpha-2).
        Example: "US"
      - `soldToAddress.taxId` (string)
        The Tax Identification Number (TIN). TIN Number is supported for FedEx as of now. Max character length = 18. 
- EIN, VAT, GST, and IOSS are mapped to BUSINESS_NATIONAL.
- EORI is mapped to BUSINESS_UNION.
- RFC with a length of 12 characters is mapped to BUSINESS_NATIONAL.
- RFC with a length of 13 characters is mapped to PERSONAL_NATIONAL.
      - `soldToAddress.taxIdType` (string)
        Specifies the type of tax identification being provided.
        Enum: same as `soldToAddress.taxIdType` in "By Carrier" (6 values)
      - `additionalAddresses` (array)
        A list of additional addresses associated with the shipment. 
- Each object includes an address and its designated type, such as BROKER or other parties involved in customs or shipping processes. 
- Additional address could be domestic or International both.
      - `additionalAddresses.address` (object)
        The additional address details.
      - `additionalAddresses.address.residential` (boolean)
        If the address is residential.
      - `additionalAddresses.address.phone` (string)
        Contact phone number for the address.
        Example: "732-443-1007"
      - `additionalAddresses.address.countryCode` (string)
        The ISO 2-letter country code.
        Example: "US"
      - `additionalAddresses.address.company` (string)
        The name of the company associated with the address.
        Example: "ABC Company"
      - `additionalAddresses.address.postalCode` (string)
        ZIP or postal code.
        Example: "08810-1411"
      - `additionalAddresses.address.cityTown` (string)
        Name of the city or town.
        Example: "DAYTON"
      - `additionalAddresses.address.name` (string)
        Name of the contact person.
        Example: "Warehouse Manager"
      - `additionalAddresses.address.stateProvince` (string)
        State or province code.
        Example: "NJ"
      - `additionalAddresses.address.addressLine1` (string)
        Primary street address line.
        Example: "2270 US HIGHWAY 130"
      - `additionalAddresses.addressType` (string)
        Type of the additional address (e.g., BROKER). This is required if passing additionalAddresses. Note: The addressType SHIPPER is returned only in USPS responses.
        Enum: same as `additionalAddresses.addressType` in "By Carrier" (7 values)
      - `altReturnAddress` (object)
        This is an optional field. if a package shipped from Location_A to Location_B needs to return to Location_C. The alternate address will be printed on the label. Use this object to specify a return address different from the fromAddress. Supported by FedEx, UPS, and Purolator.
      - `altReturnAddress.addressLine1` (string)
        The first line of the alternate return address, such as a street address or PO Box.
        Example: "27 Waterview Dr"
      - `altReturnAddress.addressLine2` (string)
        The addressLine2 contains Street address or Landmark (if any).
        Example: "near abc street"
      - `altReturnAddress.addressLine3` (string)
        The addressLine3 contains P.O. Box (if any) near the address.
        Example: "near xyz street"
      - `altReturnAddress.company` (string)
        The name of the company, in case if the alternate return address is not residential.  Max length = 30.
        Example: "PB"
      - `altReturnAddress.email` (string)
        Specifies the valid email address associated with the alternate return address.  Max length = 30
        Example: "testuser@gmail.com"
      - `altReturnAddress.cityTown` (string)
        The city or town for the alternate return address.
        Example: "Shelton"
      - `altReturnAddress.countryCode` (string)
        The two-letter ISO country code for the alternate return address.
        Example: "CA"
      - `altReturnAddress.name` (string)
        The name of the recipient or organization for the alternate return address.
        Example: "Paul Wright"
      - `altReturnAddress.phone` (string)
        The phone number associated with the alternate return address.
        Example: "203-555-1213"
      - `altReturnAddress.postalCode` (string)
        The postal or ZIP code for the alternate return address.
        Example: "06484"
      - `altReturnAddress.stateProvince` (string)
        The 2-letter state or province code for the alternate return address.
        Example: "CT"
      - `parcel` (object)
        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: same as `parcel.dimUnit` in "By Carrier" (2 values)
      - `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: same as `parcel.weightUnit` in "By Carrier" (2 values)
      - `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
      - `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"
      - `rateShopBy` (string)
        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.  Through shipViaCode, customers can create a shipment using a single code (Custom Carrier Code) that represents a specific combination of carrier, carrier account, parcel type, service, and special services.
        Enum: same as `rateShopBy` in "By Carrier" (4 values)
      - `byRuleSet` (object)
        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.hazmat` (string)
        This is for Hazardous material.
        Example: "test"
      - `byRuleSet.shipOption` (string)
        The options for shipment configured as part of the automation rule. For example: Ship Via Code
        Example: "xxxxxxxx"
      - `shipmentOptions` (object)
        Shipment Options have an option of Manifest.  With Manifest, the Mail Center agent can print the Manifest (End of day records of all created shipment) of selected carrier.
      - `shipmentOptions.addToManifest` (boolean)
        This option asks if the shipment is to be added for Manifest, so that the shipment will reflect in the Manifest Form while compilation. Supported for CPC and USPS carriers.  The value can be 'true' or 'false'.
        Example: true
      - `shipmentOptions.minimalAddressValidation` (boolean)
        Allows performing minimal address validation during shipment creation. the addressLine1 field is not validated if set to true.
Minimal address validation is supported only for these APIs:
  - Create Shipment
  - Create Bulk Shipments
  - Create Multipiece Shipment
        Enum: same as `shipmentOptions.minimalAddressValidation` in "By Carrier" (2 values)
      - `shipmentOptions.bookingConfirmationNumber` (string)
        This is an advanced booking number required for FedEx Express Freight shipments. It must be obtained through the appropriate channel in the shipment's origin country. Without a valid booking confirmation number, pickup and space allocation for the shipment are not guaranteed. The booking number must be between 5 and 12 digits.
        Example: "XXXX56789812"
      - `shipmentOptions.shipperID` (string)
        The unique identifier of the known shipper associated with this shipment.
        Enum: "fromAddress", "toAddress", "fromAndToAddress"
      - `carrierPayments` (array) — one of:
        Defines how carrier charges are billed to a third party. Use this field to specify 
account and charge type details for transportation and/or duties and taxes. This 
field is optional and currently supported for FedEx, UPS, DHL Express and Purolator.

- If no party (who will pay for TRANSPORTATION_CHARGES or duties and taxes) is explicitly specified during shipment creation, the charges will automatically default to the sender (shipper). To direct charges to a different party, the appropriate bill-to details must be provided in the request.
        - FedEx Carrier Payment:
          - `accountNumber` (string)
            The FedEx account number of the party to be billed.
            Example: "602684342"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Billing party for the shipment charges.
            Enum: same as `party` in "FedEx Carrier Payment" (4 values)
          - `typeOfCharge` (string)
            The type of charge billed to the specified party. Possible values:
- TRANSPORTATION_CHARGES: Transportation-related charges only. When billing transportation charges to the sender (BILL_SENDER), the accountNumber must match the account used to initiate the shipment.
- DUTIES_AND_TAXES: Duties and taxes only
- ALL_CHARGES: All Shipment Charges (Transportatio and Duties and Taxes)Required when using BILL_RECEIVER_CONTRACT (FedEx COLLECT); includes all charges
            Enum: same as `typeOfCharge` in "FedEx Carrier Payment" (3 values)
        - UPS Carrier Payment:
          - `accountNumber` (string)
            The UPS account number of the party to be billed.
            Example: "1Z999AA10123456784"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Party to be billed.
            Enum: same as `party` in "UPS Carrier Payment" (3 values)
          - `typeOfCharge` (string)
            The type of charge billed to the specified party. UPS requires split charges. ALL_CHARGES is not supported.
            Enum: same as `typeOfCharge` in "UPS Carrier Payment" (2 values)
        - DHL Express Carrier Payment:
          - `accountNumber` (string)
            The DHL Express account number of the party to be billed.
            Example: "DHL123456"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Billing party for DHL Express. Account number is required for all scenarios.
            Enum: same as `party` in "FedEx Carrier Payment" (4 values)
          - `typeOfCharge` (string)
            The type of charge billed to the specified party.
            Enum: same as `typeOfCharge` in "FedEx Carrier Payment" (3 values)
        - Purolator Carrier Payment:
          - `accountNumber` (string)
            The DHL Express account number of the party to be billed.
            Example: "DHL123456"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Billing party for DHL Express. Account number is required for all scenarios.
            Enum: same as `party` in "FedEx Carrier Payment" (4 values)
          - `typeOfCharge` (string)
            The type of charge billed to the specified party.
            Enum: same as `typeOfCharge` in "FedEx Carrier Payment" (3 values)
      - `docTab` (object)
        This option is used to provide additional information into the label's additional space. It is supported only for doc size 4x6_75.
        Example: {"templateName":"1","toAddressName":{"displayName":"CUS","value":"","row":1,"column":1},"parcelTrackingNumber":{"displayName":"TRK","value":"","row":2,"column":1},"carrier":{"displayName":"CAR","value":"","row":3,"column":1},"serviceId":{"displayName":"SER","value":"","row":1,"column":2},"dateOfShipment":{"displayName":"DATE","value":"","row":2,"column":2},"pieceNumber":{"displayName":"PKG#","value":"","row":3,"column":2},"packageTotalCarrierCharge":{"displayName":"PCHG","value":"","row":3,"column":3},"totalCarrierCharge":{"displayName":"TCHG","value":"","row":2,"column":3},"packageWeight":{"displayName":"PWGT","value":"","row":1,"column":3},"totalWeight":{"displayName":"TWGT","value":"","row":1,"column":4},"customField1":{"displayName":"INV","value":"010610000388302031320259999950","row":2,"column":4}}
      - `docTab.templateName` (string)
        This is an optional field and will be used when the client has multiple doctab options.
        Example: "1"
      - `docTab.toAddressName` (object)
      - `docTab.toAddressName.displayName` (string)
        This is a mandatory field. It will be displayed on the label
        Example: "TO"
      - `docTab.toAddressName.value` (string)
        If the field is part of a request or response, the value will be picked up from there. In the case of custom fields, the user-provided value will be printed.
        Example: "Test1"
      - `docTab.toAddressName.row` (integer)
        Row Position of the Item. The min value is 1.
        Example: 1
      - `docTab.toAddressName.column` (integer)
        Column Position of the Item. The min value is 1.
        Example: 1
      - `docTab.parcelTrackingNumber` (object)
      - `docTab.carrier` (object)
      - `docTab.serviceId` (object)
      - `docTab.dateOfShipment` (object)
      - `docTab.pieceNumber` (object)
      - `docTab.packageTotalCarrierCharge` (object)
      - `docTab.totalCarrierCharge` (object)
      - `docTab.packageWeight` (object)
      - `docTab.totalWeight` (object)
      - `docTab.customField1` (object)
      - `docTab.customField2` (object)
      - `docTab.customField3` (object)
      - `docTab.customField4` (object)
      - `deliveryConfirmation` (object)
        Indicates the supporting special service or document as an evidence of shipment delivery. 
For the delivery confirmation, user can select any of the following special services, but they may vary as per the carrier selection. 
  - Signature Required/ Indirect Signature Required : SIGNATURE
  - Delivery confirmation: DELIVERY_CONFIRMATION
  - Proof of age required (18 years) Adult Signature Required: ADULT_SIGNATURE
  - Proof of age required (19 years): ADULT_SIGNATURE_19
  - No Signature Required: NO_SIGNATURE
  - Direct Signature Required: DIRECT_SIGNATURE
  - Chain of Signature: CHAIN_OF_SIGNATURE 
  
  Carrier specific options:
  - UPS supports SIGNATURE and ADULT_SIGNATURE. 
  - FedEx supports SIGNATURE, ADULT_SIGNATURE, NO_SIGNATURE, and DIRECT_SIGNATURE.
  - Purolator supports ADULT_SIGNATURE, NO_SIGNATURE, and CHAIN_OF_SIGNATURE.
  - GoFor supports SIGNATURE.
  - CPC supports SIGNATURE, DELIVERY_CONFIRMATION, ADULT_SIGNATURE, ADULT_SIGNATURE_19, and NO_SIGNATURE.
      - `deliveryConfirmation.type` (string)
        The delivery confirmation Type.
        Enum: same as `deliveryConfirmation.type` in "By Carrier" (7 values)
      - `handling` (object)
        Few shipments need a special handling, and the reason can be fragile items or highly secured shipments. There might be other case scenarios. In a simple term, this field defines shipment handling, which provides users a capability to select handling options. 
User can select any of the following handling options (special services), but they may vary as per the carrier selection.
  - Hold For Pickup: HOLD_FOR_PICKUP
  - Saturday Delivery: SATURDAY_DELIVERY
  - UPS Premium Care: PREMIUM_CARE
  - Direct Delivery Only: DIRECT_DELIVERY_ONLY
  - Additional Handling: ADDITIONAL_HANDLING 
  
  Carrier specific options:
  - UPS supports all handling options mentioned above. 
  - FedEx supports HOLD_FOR_PICKUP, SATURDAY_DELIVERY, and ADDITIONAL_HANDLING.
  - Purolator supports HOLD_FOR_PICKUP, SATURDAY_DELIVERY, and ADDITIONAL_HANDLING.
      - `handling.type` (string)
        The special handling type.
        Enum: same as `handling.type` in "By Carrier" (5 values)
      - `insurance` (object)
        Indicates the insurance coverage, which is selected by users while create shipment - rate shopping. User can select below-mentioned special service for insurance: 
  - Declared Value Surcharge: INSURANCE
  
  Carrier specific options:
  - UPS, FedEx, Purolator, and CPC support special service INSURANCE.
      - `insurance.type` (string)
        The insurance type.
        Enum: same as `insurance.type` in "By Carrier" (1 values)
      - `insurance.amount` (number)
        The insurance amount in the currency specified for the shipment.
        Example: 200
      - `references` (object)
        References are tags or information that is printed on Shipping Label based on the customer's requirement.  Reference Fields can have values/indication like department name, invoice no., package description, purchase order no., carrier note, cost account no., transportation no., or PO no., print custom message etc. Each of the reference field can have only one indication/value.
      - `references.reference1` (string)
        Reference 1 can have one of the above-indicated values/information, which is printed on Label. For FedEx, it is a Reference number in the invoice. For USPS, it is a print custom message that will be printed vertically at the top of the label.  Max length = 30.
        Example: "custome message"
      - `references.reference2` (string)
        Reference 2 can have other details as indicated in the example values above. This is also printed on Label. For FedEx, this is the department. For USPS, it is a print custom message that will be printed horizontally at the bottom of the label.  Max length = 30.
        Example: "SendTech"
      - `references.reference3` (string)
        Reference 3 can have the information which were not fulfilled in Ref1 and Ref2. For FedEx, this is the invoice number.  Max length = 30.
        Example: "98437"
      - `references.reference4` (string)
        Reference 4 can have more information which were not provided in Ref1, Ref2, or Ref3. For FedEx, this is the PO number.  Max length = 30.
        Example: "Overnight Shipping"
      - `references.poNumber` (string)
        The Purchase Order Number. For FedEx, the PO number is passed in the reference4 field.  Max length = 30.
        Example: "R2W 2H2"
      - `references.department` (string)
        The department of the Recipient.For FedEx, the Department is passed in reference2 field.  Max length = 30.
        Example: "Name department"
      - `references.additionalReference1` (string)
        Additional Reference is hardly used, but sender can mention anything as per requirement, just for Recipient's information.  Max length = 30.
        Example: "612987641"
      - `references.additionalReference2` (string)
        Any tags or information that to be shown to Recipient, can be mentioned by Sender, which is not indicated on AdditionalReference1 field, e.g., PO No, Order No. etc. Max length = 30.
        Example: "989"
      - `references.shippingNotes` (string)
        Shipping notes are the instructions or messages that the sender wants to communicate to the carrier or the recipient regarding the handling, delivery, or any special requirements for the shipment. These notes can include specific delivery instructions, handling precautions, or any other relevant information that can assist in ensuring the safe and accurate delivery of the package.  Max length = 30.
        Example: "Handle with care."
      - `references.ShipperReference` (string)
        Shipper Reference is a unique identifier or code assigned by the shipper to a specific shipment or package.  Max length = 30.
        Example: "REF123456789"
      - `references.transportationReference` (string)
        Transportation Reference is a unique identifier or code used to track and manage the transportation of a shipment or package throughout the shipping process.  Max length = 30.
        Example: "TRANSREF987654321"
      - `metadata` (array)
        Additional metadata that needs to be stored for this shipment can be added here. Supported values are [Cost Account Name, Cost Account Id, Cost Account Code](/openapi/costaccount/cost-account-management/addcostaccount), [Account Code](/openapi/billingcodes/account-code/createaccountcode) and [Company Code](/openapi/billingcodes/company-code/createcompanycode).If Cost Account metadata is provided, all three Cost Account fields are required.
        Example: [[{"name":"costAccountName","value":"costAccountName"},{"name":"costAccountId","value":"costAccountId"},{"name":"costAccountCode","value":"Code"},{"name":"accountCode","value":"code"},{"name":"companyCode","value":"code"}]]
      - `metadata.name` (string)
        Name of the Cost Account which are linked to Shipment.
        Example: "costAccountName"
      - `metadata.value` (string)
        Indicates the value for the CostAccount.
        Example: "cost1"
      - `labelSize` (string, required)
        Defines the label size of the Shipment, that is, the Shipping Label is available in different Doc Size.  Max length = 10
        Enum: same as `labelSize` in "By Carrier" (3 values)
      - `labelType` (string, required)
        Defines the type of the Shipment. QR_CODE supported for carrier USPS only as of now.  Max length = 14
        Enum: same as `labelType` in "By Carrier" (2 values)
      - `labelFormat` (string, required)
        "Defines the file/format in which the label is printed.  QR_CODE can be generated only in GIF format. Max length = 14"
        Enum: same as `labelFormat` in "By Carrier" (4 values)
      - `contentType` (string)
        Specifies how the label content is encoded. URL is supported for PDF and GIF.  BASE64 is supported for ZPL2, PNG, and GIF.
        Enum: same as `contentType` in "By Carrier" (2 values)
      - `printerAliasName` (string)
        Refers to a printer connected (directly or via network) to a computer. Max length = 60
        Example: "test"
      - `dateOfShipment` (string)
        The date when shipment is created/shipped. The format of the Date is YYYY-MM-DD.
        Example: "2024-03-20"
      - `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 data when shipment is to be delivered, which is scheduled by sender. The format of the Date is YYYY-MM-DD. This field will be mandatory to provide, if the customer chooses ruleType is deliverBy.
        Example: "2024-03-20"
      - `deliveryOption.useBestNextDate` (boolean)
        When this is set to true, if the scheduled delivery date falls on a Holiday or there is no carrier to deliver on the deliverby date, then the next business day will be considered to deliver the shipment.
      - `customs` (object)
        Customs information required for international shipments and optional for domestic shipments.
- Required only for RMG carrier in domestic shipment requests.
- Must include customsItems and customsInfo objects.
        Example: {"fromAddress":{"name":"Sender Name","addressLine1":"1600 Amphitheatre Parkway","addressLine2":"near abc street","addressLine3":"near xyz street","company":"PB","email":"testuser@gmail.com","phone":"6502530000","cityTown":"Mountain View","stateProvince":"CA","postalCode":"94043","inductionPostalCode":"06905","countryCode":"US","residential":true},"toAddress":{"name":"Recipient Name","addressLine1":"350 Fifth Avenue","addressLine2":"near abc street","addressLine3":"near xyz street","cityTown":"New York","stateProvince":"NY","postalCode":"10118","countryCode":"US","company":"PB","phone":"2127363100","email":"recipient@gmail.com","residential":true,"isPOBox":true},"parcel":{"length":10,"width":10,"height":10,"dimUnit":"IN","weightUnit":"OZ","weight":10,"packageValue":10},"parcelType":"PKG","rateShopBy":"carrier","byCarrier":{"carrierAccountId":"YNp3883Bap3L","carrier":"USPS","service":"EM"},"shipmentOptions":{"addToManifest":true,"shipperID":"1234567890"},"specialServices":[{"inputParameters":[{"name":"INPUT_VALUE","value":"100"}],"specialserviceId":"Ins"}],"metadata":[{"name":"costAccountName","value":"costAccountName"},{"name":"costAccountId","value":"costAccountId"},{"name":"costAccountCode","value":"Code"},{"name":"accountCode","value":"code"},{"name":"companyCode","value":"code"}],"references":{"reference1":"custome message","reference2":"SendTech"},"labelSize":"DOC_4X6","labelType":"SHIPPING_LABEL","labelFormat":"PDF","contentType":"URL","dateOfShipment":"2025-10-28","deliveryOption":{"deliverBy":"2025-10-30","useBestNextDate":false}}
      - `customs.customsInfo` (object, required)
        This is additional customs information required along with item details.
      - `customs.customsInfo.reasonForExport` (string, required)
        Reason for exporting the items.
        Enum: same as `customs.customsInfo.reasonForExport` in "By Carrier" (6 values)
      - `customs.customsInfo.comments` (string)
        Free-form comments regarding the exported shipment.
        Example: "Test comment"
      - `customs.customsInfo.invoiceNumber` (string)
        The commercial invoice number assigned by the exporter.
        Example: "001189223"
      - `customs.customsInfo.importerCustomsReference` (string)
        A reference number used by the importer, such as a VAT number, PO number, or insured number.
        Example: "987654"
      - `customs.customsInfo.sdrValue` (number)
        When an international parcel is insured, the insured value must be expressed in Special Drawing Rights values.
        Example: 23.32
      - `customs.customsInfo.EELPFC` (string)
        A number provided by the Automated Export System (AES).  Required if the item is more than $2,500 USD, per Schedule B export codes.  Required if EELPFC  is AES ITN.
- AES ITN is a unique transaction number generated by the Automated Export System (AES) when export data is filed for international shipments from the U.S.
- The ITN format is AES XYYYYMMDDNNNNNN, where X indicates the type, YYYYMMDD is the filing date, and NNNNNN is a 6-digit number. Example: AES X20250327123456
- If the ITN is not available, an exemption format may be used: AESDOWN [Filer ID] [mm/dd/yyyy]. Example: AESDOWN 12345678912 03/27/2025
        Example: "NOEEI 30.2D2"
      - `customs.customsInfo.currencyCode` (string, required)
        The currency used for declared value. Use three uppercase letters, per ISO 4217.
        Example: "USD"
      - `customs.customsInfo.fromCustomsReference` (string)
        Free-form reference information provided by the requestor of the shipment. Depending on the carrier this information may or may not be rendered on the customs documents.
        Example: "EFEFE4554545"
      - `customs.customsInfo.licenseNumber` (string)
        The export license number associated with the commodity.
        Example: "456ABC123"
      - `customs.customsInfo.certificateNumber` (string)
        The certificate number associated with the commodity.
        Example: "987"
      - `customs.customsInfo.customsDeclaredValue` (number, required)
        Item value in mentioned currencyCode.
        Example: 6000
      - `customs.customsInfo.termsOfSale` (string)
        Defines the delivery and payment terms between the shipper and recipient. Currenty supported by carriers - UPS, FedEx and DHL. - Common values include:
  - CIP: Carriage and Insurance Paid to
  - CPT: Carriage Paid To
  - DAP: Delivered at Place
  - DAT: Delivered at Terminal
  - DDP: Delivered Duty Paid
  - EXW: Ex Works
  - FCA: Free Carrier
        Enum: same as `customs.customsInfo.termsOfSale` in "By Carrier" (7 values)
      - `customs.customsItems` (array, required)
        Items included in the customs declaration.
      - `customs.customsItems.description` (string)
        A detailed description of the commodity, up to 255 characters. The description will appear on the customs form. If the shipment has multiple types of items, create a separate customsItems object for each. Each description will appear on the form.
        Example: "Books"
      - `customs.customsItems.itemId` (string)
        Unique identifier for the commodity.
        Example: "item1"
      - `customs.customsItems.orderNumber` (string)
        The unique identifier for the order.
        Example: "ORD1"
      - `customs.customsItems.quantity` (number)
        Enter the total number of items of this type of commodity.
        Example: 1
      - `customs.customsItems.unitPrice` (number)
        The price of one item of this type of commodity.
        Example: 3000
      - `customs.customsItems.weightUnit` (string)
        The unit of measurement. This field is required by the unitWeight object.
        Example: "OZ"
      - `customs.customsItems.weight` (number)
        Weight of the item.
        Example: 0.1
      - `customs.customsItems.hSTariffCode` (string)
        The destination country's tariff-classification number (HS code) for the commodity. Most countries use the six-digit Harmonized System (HS) as the basis for their tariff classifications and then add digits for more detail. The maximum length for an HS code is 14 characters. The HS code will appear on the customs form. If the shipment has multiple types of items, create a separate customsItems object for each. HS Code is required for RMG b2b shipment.
        Example: "AST559"
      - `customs.customsItems.originCountryCode` (string)
        The two-character ISO country code of the shipment's origin country. Use ISO 3166-1 Alpha-2 standard values.
        Example: "US"
      - `customs.customsDocuments` (array)
        Use this field to attach Electronic Trade Documents (ETDs) to your DHL international shipment. 
Each item should represent a document uploaded previously using the [Upload ETD API](/openapi/shipping/electronic-trade-document/uploadetd).
- For DHL, if you pass this field, ensure the selected service type is PAPERLESS.
- The s3FileId value must be taken from the [Upload ETD API response](/openapi/shipping/electronic-trade-document/uploadetd).
> Electronic trade document must upload before shipment label creation.
      - `customs.customsDocuments.fileName` (string, required)
        The name of the uploaded trade document file.
        Example: "invoice.pdf"
      - `customs.customsDocuments.s3FileId` (string, required)
        The relative file path where the document is stored in the S3 bucket.
        Example: "uploads/shipping/intl_docs/sa58a03/0oa2bxnhu03i48mh50h8/NJ3ww7gv73kwDJK/DRNgGjEraOvV8ZB_invoice.pdf"
      - `customs.customsDocuments.documentType` (string, required)
        Type of the uploaded document. This value is referenced when generating customs declarations.
Must match the type used during document upload.
        Enum: same as `customs.customsDocuments.documentType` in "By Carrier" (7 values)
    - By ShipCode:
      - `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
      - `soldToAddress` (object)
        Billing address of the buyer responsible for the shipment payment. It can be domestic or international address. 
- If the importer is the same as the final recipient, the toAddress and soldToAddress must match.
- If the importer is different from the final recipient, enter the importer address in the soldToAddress and enter the final recipient's address in the toAddress.
      - `soldToAddress.addressLine1` (string)
        Primary street address of the billing entity.
        Example: "1600 Amphitheatre Parkway"
      - `soldToAddress.addressLine2` (string)
        Additional address information such as apartment, suite, or unit number.
        Example: "Suite 101"
      - `soldToAddress.addressLine3` (string)
        Optional extra address details.
        Example: "Near central market"
      - `soldToAddress.company` (string)
        The name of the company associated with the SoldTo address.
        Example: "ABC Company"
      - `soldToAddress.name` (string)
        The contact person's full name for the billing entity.
        Example: "John Doe"
      - `soldToAddress.phone` (string)
        Phone number of the SoldTo entity.
        Example: "650-253-0000"
      - `soldToAddress.email` (string)
        Email address of the SoldTo entity.
        Example: "billing@abccompany.com"
      - `soldToAddress.residential` (boolean)
        Indicates whether the SoldTo address is a residential location (true/false).
      - `soldToAddress.cityTown` (string)
        City or town of the billing address.
        Example: "Mountain View"
      - `soldToAddress.stateProvince` (string)
        State or province of the billing address.
        Example: "CA"
      - `soldToAddress.postalCode` (string)
        Postal or ZIP code of the billing address.
        Example: "94043"
      - `soldToAddress.countryCode` (string)
        Two-letter country code of the billing address (ISO 3166-1 alpha-2).
        Example: "US"
      - `soldToAddress.taxId` (string)
        The Tax Identification Number (TIN). TIN Number is supported for FedEx as of now. Max character length = 18. 
- EIN, VAT, GST, and IOSS are mapped to BUSINESS_NATIONAL.
- EORI is mapped to BUSINESS_UNION.
- RFC with a length of 12 characters is mapped to BUSINESS_NATIONAL.
- RFC with a length of 13 characters is mapped to PERSONAL_NATIONAL.
      - `soldToAddress.taxIdType` (string)
        Specifies the type of tax identification being provided.
        Enum: same as `soldToAddress.taxIdType` in "By Carrier" (6 values)
      - `additionalAddresses` (array)
        A list of additional addresses associated with the shipment. 
- Each object includes an address and its designated type, such as BROKER or other parties involved in customs or shipping processes. 
- Additional address could be domestic or International both.
      - `additionalAddresses.address` (object)
        The additional address details.
      - `additionalAddresses.address.residential` (boolean)
        If the address is residential.
      - `additionalAddresses.address.phone` (string)
        Contact phone number for the address.
        Example: "732-443-1007"
      - `additionalAddresses.address.countryCode` (string)
        The ISO 2-letter country code.
        Example: "US"
      - `additionalAddresses.address.company` (string)
        The name of the company associated with the address.
        Example: "ABC Company"
      - `additionalAddresses.address.postalCode` (string)
        ZIP or postal code.
        Example: "08810-1411"
      - `additionalAddresses.address.cityTown` (string)
        Name of the city or town.
        Example: "DAYTON"
      - `additionalAddresses.address.name` (string)
        Name of the contact person.
        Example: "Warehouse Manager"
      - `additionalAddresses.address.stateProvince` (string)
        State or province code.
        Example: "NJ"
      - `additionalAddresses.address.addressLine1` (string)
        Primary street address line.
        Example: "2270 US HIGHWAY 130"
      - `additionalAddresses.addressType` (string)
        Type of the additional address (e.g., BROKER). This is required if passing additionalAddresses. Note: The addressType SHIPPER is returned only in USPS responses.
        Enum: same as `additionalAddresses.addressType` in "By Carrier" (7 values)
      - `altReturnAddress` (object)
        This is an optional field. if a package shipped from Location_A to Location_B needs to return to Location_C. The alternate address will be printed on the label. Use this object to specify a return address different from the fromAddress. Supported by FedEx, UPS, and Purolator.
        Example: {"addressLine1":"27 Waterview Dr","cityTown":"Shelton","countryCode":"US","name":"Paul Wright","phone":"203-555-1213","postalCode":"06484","stateProvince":"CT"}
      - `altReturnAddress.addressLine1` (string)
        The first line of the alternate return address, such as a street address or PO Box.
        Example: "27 Waterview Dr"
      - `altReturnAddress.addressLine2` (string)
        The addressLine2 contains Street address or Landmark (if any).
        Example: "near abc street"
      - `altReturnAddress.addressLine3` (string)
        The addressLine3 contains P.O. Box (if any) near the address.
        Example: "near xyz street"
      - `altReturnAddress.company` (string)
        The name of the company for the alternate return address, in case if the recipient's address is not residential.  Max length = 30.
        Example: "PB"
      - `altReturnAddress.email` (string)
        The email address of the recipient. It can be person's email address or company email address (for non-residential).
        Example: "user@email.com"
      - `altReturnAddress.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
      - `altReturnAddress.cityTown` (string)
        The city or town for the alternate return address.
        Example: "Shelton"
      - `altReturnAddress.countryCode` (string)
        The two-letter ISO country code for the alternate return address.
        Example: "US"
      - `altReturnAddress.name` (string)
        The name of the recipient or organization for the alternate return address.
        Example: "Paul Wright"
      - `altReturnAddress.phone` (string)
        The phone number associated with the alternate return address.
        Example: "203-555-1213"
      - `altReturnAddress.postalCode` (string)
        The postal or ZIP code for the alternate return address.
        Example: "06484"
      - `altReturnAddress.stateProvince` (string)
        The 2-letter state or province code for the alternate return address.
        Example: "CT"
      - `parcel` (object)
        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: same as `parcel.dimUnit` in "By Carrier" (2 values)
      - `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: same as `parcel.weightUnit` in "By Carrier" (2 values)
      - `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
      - `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"
      - `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.  Through ShipViaCode, customers can create a shipment using a single code (Custom Carrier Code) that represents a specific combination of carrier, carrier account, parcel type, service, and special services.
        Enum: same as `rateShopBy` in "By Carrier" (4 values)
      - `byShipViaCode` (object)
        The shipment is generated 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.
      - `shipmentOptions` (object)
        Shipment Options have an added feature that is Manifest. With Manifest, the Mail Center agent can print the Manifest (End of day records of all created shipment) of selected carrier.
        Example: {"minimalAddressValidation":true,"bypassAddressValidation":"toAddress","bookingConfirmationNumber":"XXXX56789812"}
      - `shipmentOptions.addToManifest` (boolean)
        This option asks if the shipment is to be added for Manifest, so that the shipment will reflect in the Manifest Form while compilation. Supported for CPC and USPS carriers.  The value can be 'true' or 'false'.
        Example: true
      - `shipmentOptions.minimalAddressValidation` (boolean)
        Allows performing minimal address validation during shipment creation. the addressLine1 field is not validated if set to true.
Minimal address validation is supported only for these APIs:
  - Create Shipment
  - Create Bulk Shipments
  - Create Multipiece Shipment
        Enum: same as `shipmentOptions.minimalAddressValidation` in "By Carrier" (2 values)
      - `shipmentOptions.bookingConfirmationNumber` (string)
        This field specifies the booking confirmation number for Freight International services.
        Example: "XXXX56789812"
      - `shipmentOptions.b2b` (boolean)
        Required only for RMG carrier. Must be set to true to indicate a business-to-business (B2B) shipment.
        Example: true
      - `shipmentOptions.senderEORI` (string)
        Sender's Economic Operators Registration and Identification number. EORI is a unique identification number used for customs clearance in the European Union. This Number can be 14 characters long in Alphanumeric format. Required for RMG B2B shipments.
        Example: "GB123456789101"
      - `shipmentOptions.recipientEORI` (string)
        Recipient's EORI number. ORI is a unique identification number used for customs clearance in the European Union. This Number can be 14 characters long in Alphanumeric format. Required for RMG B2B shipments.
        Example: "GB123456789102"
      - `shipmentOptions.senderUKIMSNumber` (string)
        UKIMS (UK Internal Market Scheme) is an authorization that allows businesses to move goods between Great Britain (GB) and Northern Ireland (NI) without paying EU (European) duty. UKIMS Number can be 32 characters long in Alphanumeric format. Required if the package value value is over £135.
        Example: "GBUKIM12345678910100000000000000"
      - `shipmentOptions.exportLicenceRequired` (boolean)
        Specifies whether the shipment includes goods that require an official export license.
- applies to both RMG B2B and B2C shipments
- Required as part of customs compliance under the Windsor Agreement
        Example: true
      - `shipmentOptions.declarationId` (string)
        Required for CPC shipments originating in Canada and destined for the US when X_ACCESS_KEY was not provided during CPC carrier onboarding; if X_ACCESS_KEY is configured, omit this field. Each declarationId is unique to a single shipment.
        Example: "USA1006189"
      - `shipmentOptions.shipperID` (string)
        The unique identifier of the known shipper associated with this shipment.
        Example: "1234567890"
      - `carrierPayments` (array) — one of:
        Defines how carrier charges are billed to a third party. Use this field to specify 
account and charge type details for transportation and/or duties and taxes. This 
field is optional and currently supported for FedEx, UPS, DHL Express and Purolator.

- If no party (who will pay for TRANSPORTATION_CHARGES or duties and taxes) is explicitly specified during shipment creation, the charges will automatically default to the sender (shipper). To direct charges to a different party, the appropriate bill-to details must be provided in the request.
        - FedEx Carrier Payment:
          - `accountNumber` (string)
            The FedEx account number of the party to be billed.
            Example: "602684342"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Billing party for the shipment charges.
            Enum: same as `party` in "FedEx Carrier Payment" (4 values)
          - `typeOfCharge` (string)
            The type of charge billed to the specified party. Possible values:
- TRANSPORTATION_CHARGES: Transportation-related charges only. When billing transportation charges to the sender (BILL_SENDER), the accountNumber must match the account used to initiate the shipment.
- DUTIES_AND_TAXES: Duties and taxes only
- ALL_CHARGES: All Shipment Charges (Transportatio and Duties and Taxes)Required when using BILL_RECEIVER_CONTRACT (FedEx COLLECT); includes all charges
            Enum: same as `typeOfCharge` in "FedEx Carrier Payment" (3 values)
        - UPS Carrier Payment:
          - `accountNumber` (string)
            The UPS account number of the party to be billed.
            Example: "1Z999AA10123456784"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Party to be billed.
            Enum: same as `party` in "UPS Carrier Payment" (3 values)
          - `typeOfCharge` (string)
            The type of charge billed to the specified party. UPS requires split charges. ALL_CHARGES is not supported.
            Enum: same as `typeOfCharge` in "UPS Carrier Payment" (2 values)
        - DHL Express Carrier Payment:
          - `accountNumber` (string)
            The DHL Express account number of the party to be billed.
            Example: "DHL123456"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Billing party for DHL Express. Account number is required for all scenarios.
            Enum: same as `party` in "FedEx Carrier Payment" (4 values)
          - `typeOfCharge` (string)
            The type of charge billed to the specified party.
            Enum: same as `typeOfCharge` in "FedEx Carrier Payment" (3 values)
        - Purolator Carrier Payment:
          - `accountNumber` (string)
            The DHL Express account number of the party to be billed.
            Example: "DHL123456"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Billing party for DHL Express. Account number is required for all scenarios.
            Enum: same as `party` in "FedEx Carrier Payment" (4 values)
          - `typeOfCharge` (string)
            The type of charge billed to the specified party.
            Enum: same as `typeOfCharge` in "FedEx Carrier Payment" (3 values)
      - `docTab` (object)
        This option is used to provide additional information into the label's additional space. It is supported only for doc size 4x6_75.
        Example: {"templateName":"1","toAddressName":{"displayName":"TO","value":"Test1","row":1,"column":1},"parcelTrackingNumber":{"displayName":"TO","value":"Test1","row":1,"column":1},"carrier":{"displayName":"TO","value":"Test1","row":1,"column":1},"serviceId":{"displayName":"TO","value":"Test1","row":1,"column":1},"dateOfShipment":{"displayName":"TO","value":"Test1","row":1,"column":1},"pieceNumber":{"displayName":"TO","value":"Test1","row":1,"column":1},"packageTotalCarrierCharge":{"displayName":"TO","value":"Test1","row":1,"column":1},"totalCarrierCharge":{"displayName":"TO","value":"Test1","row":1,"column":1},"packageWeight":{"displayName":"TO","value":"Test1","row":1,"column":1},"totalWeight":{"displayName":"TO","value":"Test1","row":1,"column":1},"customField1":{"displayName":"TO","value":"Test1","row":1,"column":1},"customField2":{"displayName":"TO","value":"Test1","row":1,"column":1},"customField3":{"displayName":"TO","value":"Test1","row":1,"column":1},"customField4":{"displayName":"TO","value":"Test1","row":1,"column":1}}
      - `docTab.templateName` (string)
        This is an optional field and will be used when the client has multiple doctab options.
        Example: "1"
      - `docTab.toAddressName` (object)
      - `docTab.toAddressName.displayName` (string)
        This is a mandatory field. It will be displayed on the label
        Example: "TO"
      - `docTab.toAddressName.value` (string)
        If the field is part of a request or response, the value will be picked up from there. In the case of custom fields, the user-provided value will be printed.
        Example: "Test1"
      - `docTab.toAddressName.row` (integer)
        Row Position of the Item. The min value is 1.
        Example: 1
      - `docTab.toAddressName.column` (integer)
        Column Position of the Item. The min value is 1.
        Example: 1
      - `docTab.parcelTrackingNumber` (object)
      - `docTab.carrier` (object)
      - `docTab.serviceId` (object)
      - `docTab.dateOfShipment` (object)
      - `docTab.pieceNumber` (object)
      - `docTab.packageTotalCarrierCharge` (object)
      - `docTab.totalCarrierCharge` (object)
      - `docTab.packageWeight` (object)
      - `docTab.totalWeight` (object)
      - `docTab.customField1` (object)
      - `docTab.customField2` (object)
      - `docTab.customField3` (object)
      - `docTab.customField4` (object)
      - `specialServices` (array)
        It provides a carrier based special or extra service, which also varies as per selected service and parcel type. User can override this value by defining it at shipment level.

> Provide either the specialserviceId or the specialservice objects such as deliveryConfirmation, handling, insurance and returnOptions, but not both.
      - `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"
      - `deliveryConfirmation` (object)
        Indicates the supporting special service or document as an evidence of shipment delivery.

> Provide either the specialserviceId or the specialservice objects such as deliveryConfirmation, handling, insurance and returnOptions, but not both.

For the delivery confirmation, user can select any of the following special services, but they may vary as per the carrier selection. 
  - Signature Required/ Indirect Signature Required : SIGNATURE
  - Delivery confirmation: DELIVERY_CONFIRMATION
  - Proof of age required (18 years) Adult Signature Required: ADULT_SIGNATURE
  - Proof of age required (19 years): ADULT_SIGNATURE_19
  - No Signature Required: NO_SIGNATURE
  - Direct Signature Required: DIRECT_SIGNATURE
  - Chain of Signature: CHAIN_OF_SIGNATURE 
  
  Carrier specific options:
  - UPS supports SIGNATURE and ADULT_SIGNATURE. 
  - FedEx supports SIGNATURE, ADULT_SIGNATURE, NO_SIGNATURE, and DIRECT_SIGNATURE.
  - Purolator supports ADULT_SIGNATURE, NO_SIGNATURE, and CHAIN_OF_SIGNATURE.
  - GoFor supports SIGNATURE.
  - CPC supports SIGNATURE, DELIVERY_CONFIRMATION, ADULT_SIGNATURE, ADULT_SIGNATURE_19, and NO_SIGNATURE.
        Example: {"type":"ADULT_SIGNATURE","value":"amit"}
      - `deliveryConfirmation.type` (string)
        The delivery confirmation Type.
        Enum: same as `deliveryConfirmation.type` in "By Carrier" (7 values)
      - `handling` (object)
        Few shipments need a special handling, and the reason can be fragile items or highly secured shipments. There might be other case scenarios. In a simple term, this field defines shipment handling, which provides users a capability to select handling options.

> Provide either the specialserviceId or the specialservice objects such as deliveryConfirmation, handling, insurance and returnOptions, but not both.

User can select any of the following handling options (special services), but they may vary as per the carrier selection.
  - Hold For Pickup: HOLD_FOR_PICKUP
  - Saturday Delivery: SATURDAY_DELIVERY
  - UPS Premium Care: PREMIUM_CARE
  - Direct Delivery Only: DIRECT_DELIVERY_ONLY
  - Additional Handling: ADDITIONAL_HANDLING 
  
  Carrier specific options:
  - UPS supports all handling options mentioned above. 
  - FedEx supports HOLD_FOR_PICKUP, SATURDAY_DELIVERY, and ADDITIONAL_HANDLING.
  - Purolator supports HOLD_FOR_PICKUP, SATURDAY_DELIVERY, and ADDITIONAL_HANDLING.
        Example: {"type":"ADDITIONAL_HANDLING","value":"HOLD"}
      - `handling.type` (string)
        The special handling type.
        Enum: same as `handling.type` in "By Carrier" (5 values)
      - `insurance` (object)
        Indicates the insurance coverage, which is selected by users while create shipment - rate shopping. User can select below-mentioned special service for insurance: 
  - Declared Value Surcharge: INSURANCE
  
  Carrier specific options:
  - UPS, FedEx, Purolator, and CPC support special service INSURANCE. 

> Provide either the specialserviceId or the specialservice objects such as deliveryConfirmation, handling, insurance and returnOptions, but not both.
        Example: {"type":"INSURANCE","amount":200}
      - `insurance.type` (string)
        The insurance type.
        Enum: same as `insurance.type` in "By Carrier" (1 values)
      - `insurance.amount` (number)
        The insurance amount in the currency specified for the shipment.
        Example: 200
      - `references` (object)
        References are tags or information that is printed on Shipping Label based on the customer's requirement.  Reference Fields can have values/indication like department name, invoice no., package description, purchase order no., carrier note, cost account no., transportation no., or PO no., print custom message etc. Each of the reference field can have only one indication/value.
      - `references.reference1` (string)
        Reference 1 can have one of the above-indicated values/information, which is printed on Label. For FedEx, it is a Reference number in the invoice. For USPS, it is a print custom message that will be printed vertically at the top of the label.  Max length = 30.
        Example: "custome message"
      - `references.reference2` (string)
        Reference 2 can have other details as indicated in the example values above. This is also printed on Label. For FedEx, this is the department. For USPS, it is a print custom message that will be printed horizontally at the bottom of the label.  Max length = 30.
        Example: "SendTech"
      - `references.reference3` (string)
        Reference 3 can have the information which were not fulfilled in Ref1 and Ref2. For FedEx, this is the invoice number.  Max length = 30.
        Example: "98437"
      - `references.reference4` (string)
        Reference 4 can have more information which were not provided in Ref1, Ref2, or Ref3. For FedEx, this is the PO number.  Max length = 30.
        Example: "Overnight Shipping"
      - `references.poNumber` (string)
        The Purchase Order Number. For FedEx, the PO number is passed in the reference4 field.  Max length = 30.
        Example: "R2W 2H2"
      - `references.department` (string)
        The department of the Recipient.For FedEx, the Department is passed in reference2 field.  Max length = 30.
        Example: "Name department"
      - `references.additionalReference1` (string)
        Additional Reference is hardly used, but sender can mention anything as per requirement, just for Recipient's information.  Max length = 30.
        Example: "612987641"
      - `references.additionalReference2` (string)
        Any tags or information that to be shown to Recipient, can be mentioned by Sender, which is not indicated on AdditionalReference1 field, e.g., PO No, Order No. etc. Max length = 30.
        Example: "989"
      - `references.shippingNotes` (string)
        Shipping notes are the instructions or messages that the sender wants to communicate to the carrier or the recipient regarding the handling, delivery, or any special requirements for the shipment. These notes can include specific delivery instructions, handling precautions, or any other relevant information that can assist in ensuring the safe and accurate delivery of the package.  Max length = 30.
        Example: "Handle with care."
      - `references.ShipperReference` (string)
        Shipper Reference is a unique identifier or code assigned by the shipper to a specific shipment or package.  Max length = 30.
        Example: "REF123456789"
      - `references.transportationReference` (string)
        Transportation Reference is a unique identifier or code used to track and manage the transportation of a shipment or package throughout the shipping process.  Max length = 30.
        Example: "TRANSREF987654321"
      - `metadata` (array)
        Additional metadata that needs to be stored for this shipment can be added here. Supported values are [Cost Account Name, Cost Account Id, Cost Account Code](/openapi/costaccount/cost-account-management/addcostaccount), [Account Code](/openapi/billingcodes/account-code/createaccountcode) and [Company Code](/openapi/billingcodes/company-code/createcompanycode).If Cost Account metadata is provided, all three Cost Account fields are required.
        Example: [{"name":"costAccountName","value":"costAccountName"},{"name":"costAccountId","value":"costAccountId"},{"name":"costAccountCode","value":"Code"},{"name":"accountCode","value":"code"},{"name":"companyCode","value":"code"}]
      - `metadata.name` (string)
        Name of the Cost Account which are linked to Shipment.
        Example: "costAccountName"
      - `metadata.value` (string)
        Indicates the value for the CostAccount.
        Example: "cost1"
      - `labelSize` (string, required)
        Defines the label size of the Shipment, that is, the Shipping Label is available in different Doc Size.  Max length = 10
        Enum: same as `labelSize` in "By Carrier" (3 values)
      - `labelType` (string, required)
        Defines the type of the Shipment. QR_CODE supported for carrier USPS only as of now.  Max length = 14
        Enum: same as `labelType` in "By Carrier" (2 values)
      - `labelFormat` (string, required)
        "Defines the file/format in which the label is printed. For ZPL2, DOC_4X6 will be supported, while for PDF, both the sizes are supported. QR_CODE can be generated only in GIF format. Max length = 14"
        Enum: same as `labelFormat` in "By Carrier" (4 values)
      - `contentType` (string)
        Specifies how the label content is encoded. URL is supported for PDF and GIF.  BASE64 is supported for ZPL2, PNG, and GIF.
        Enum: same as `contentType` in "By Carrier" (2 values)
      - `printerAliasName` (string)
        Refers to a printer connected (directly or via network) to a computer. Max length = 60
        Example: "test"
      - `dateOfShipment` (string)
        The date when shipment is created/shipped. The format of the Date is YYYY-MM-DD.
        Example: "{{todayDate}}"
      - `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.
        Example: {"deliverBy":"{{tomorrowDate}}","useBestNextDate":false}
      - `deliveryOption.deliverBy` (string)
        Delivery date is the data when shipment is to be delivered, which is scheduled by sender. The format of the Date is YYYY-MM-DD.  This field will be mandatory to provide, if the customer chooses ruleType is deliverBy.
        Example: "{{tomorrowDate}}"
      - `deliveryOption.useBestNextDate` (boolean)
        When this is set to true, if the scheduled delivery date falls on a Holiday, then the next business day will be considered to deliver the shipment.
      - `returnOptions` (object)
        This object defines return shipment options. It should be passed when requesting return labels. Supported only for carriers UPS and FedEx as of now. For UPS, this object is required.  For FedEx, this object is optional.  Note: The returnOptions object must be sent with the isReturn query parameter.

> Provide either the specialserviceId or the specialservice objects such as deliveryConfirmation, handling, insurance and returnOptions, but not both.
      - `returnOptions.type` (string, required)
        Specifies the return type. This is the value of special service code for the carrier-supported return service.
        Example: "RETURN_BY_PRL"
      - `returnOptions.inputParameters` (array, required)
        List of input parameters required for return processing.
      - `returnOptions.inputParameters.name` (string)
        The name of the parameter.
        Example: "RMA_NUMBER"
      - `returnOptions.inputParameters.value` (string)
        The corresponding value for the parameter.
        Example: "123"
      - `customs` (object)
        Customs information required for international shipments.
- Required only for RMG carrier in domestic shipment requests.
- Must include customsItems and customsInfo objects.
- Other carriers do not require this object for domestic shipments.
      - `customs.customsInfo` (object, required)
        This is additional customs information required along with item details.
      - `customs.customsInfo.reasonForExport` (string, required)
        Reason for exporting the items.
        Enum: same as `customs.customsInfo.reasonForExport` in "By Carrier" (6 values)
      - `customs.customsInfo.comments` (string)
        Free-form comments regarding the exported shipment.
        Example: "Test comment"
      - `customs.customsInfo.invoiceNumber` (string)
        The commercial invoice number assigned by the exporter.
        Example: "001189223"
      - `customs.customsInfo.importerCustomsReference` (string)
        A reference number used by the importer, such as a VAT number, PO number, or insured number.
        Example: "987654"
      - `customs.customsInfo.sdrValue` (number)
        When an international parcel is insured, the insured value must be expressed in Special Drawing Rights values.
        Example: 23.32
      - `customs.customsInfo.EELPFC` (string)
        A number provided by the Automated Export System (AES).  Required if the item is more than $2,500 USD, per Schedule B export codes.  Required if EELPFC  is AES ITN.
- AES ITN is a unique transaction number generated by the Automated Export System (AES) when export data is filed for international shipments from the U.S.
- The ITN format is AES XYYYYMMDDNNNNNN, where X indicates the type, YYYYMMDD is the filing date, and NNNNNN is a 6-digit number. Example: AES X20250327123456
- If the ITN is not available, an exemption format may be used: AESDOWN [Filer ID] [mm/dd/yyyy]. Example: AESDOWN 12345678912 03/27/2025
        Example: "NOEEI 30.2D2"
      - `customs.customsInfo.currencyCode` (string, required)
        The currency used for declared value. Use three uppercase letters, per ISO 4217.
        Example: "USD"
      - `customs.customsInfo.fromCustomsReference` (string)
        Free-form reference information provided by the requestor of the shipment. Depending on the carrier this information may or may not be rendered on the customs documents.
        Example: "EFEFE4554545"
      - `customs.customsInfo.licenseNumber` (string)
        The export license number associated with the commodity.
        Example: "456ABC123"
      - `customs.customsInfo.certificateNumber` (string)
        The certificate number associated with the commodity.
        Example: "987"
      - `customs.customsInfo.customsDeclaredValue` (number, required)
        Item value in mentioned currencyCode.
        Example: 6000
      - `customs.customsInfo.termsOfSale` (string)
        Defines the delivery and payment terms between the shipper and recipient. Currenty supported by carriers - UPS, FedEx and DHL. - Common values include:
  - CIP: Carriage and Insurance Paid to
  - CPT: Carriage Paid To
  - DAP: Delivered at Place
  - DAT: Delivered at Terminal
  - DDP: Delivered Duty Paid
  - EXW: Ex Works
  - FCA: Free Carrier
        Enum: same as `customs.customsInfo.termsOfSale` in "By Carrier" (7 values)
      - `customs.customsItems` (array, required)
        Items included in the customs declaration.
      - `customs.customsItems.description` (string)
        A detailed description of the commodity, up to 255 characters. The description will appear on the customs form. If the shipment has multiple types of items, create a separate customsItems object for each. Each description will appear on the form.
        Example: "Books"
      - `customs.customsItems.itemId` (string)
        Unique identifier for the commodity.
        Example: "item1"
      - `customs.customsItems.orderNumber` (string)
        The unique identifier for the order.
        Example: "ORD1"
      - `customs.customsItems.quantity` (number)
        Enter the total number of items of this type of commodity.
        Example: 1
      - `customs.customsItems.unitPrice` (number)
        The price of one item of this type of commodity.
        Example: 3000
      - `customs.customsItems.weightUnit` (string)
        The unit of measurement. This field is required by the unitWeight object.
        Example: "OZ"
      - `customs.customsItems.weight` (number)
        Weight of the item.
        Example: 0.1
      - `customs.customsItems.hSTariffCode` (string)
        The destination country's tariff-classification number (HS code) for the commodity. Most countries use the six-digit Harmonized System (HS) as the basis for their tariff classifications and then add digits for more detail. The maximum length for an HS code is 14 characters. The HS code will appear on the customs form. If the shipment has multiple types of items, create a separate customsItems object for each. HS Code is required for RMG b2b shipment.
        Example: "AST559"
      - `customs.customsItems.originCountryCode` (string)
        The two-character ISO country code of the shipment's origin country. Use ISO 3166-1 Alpha-2 standard values.
        Example: "US"
      - `customs.customsDocuments` (array)
        Use this field to attach Electronic Trade Documents (ETDs) to your DHL international shipment. 
Each item should represent a document uploaded previously using the [Upload ETD API](/openapi/shipping/electronic-trade-document/uploadetd).
- For DHL, if you pass this field, ensure the selected service type is PAPERLESS.
- The s3FileId value must be taken from the [Upload ETD API response](/openapi/shipping/electronic-trade-document/uploadetd).
> Electronic trade document must upload before shipment label creation.
      - `customs.customsDocuments.fileName` (string, required)
        The name of the uploaded trade document file.
        Example: "invoice.pdf"
      - `customs.customsDocuments.s3FileId` (string, required)
        The relative file path where the document is stored in the S3 bucket.
        Example: "uploads/shipping/intl_docs/sa58a03/0oa2bxnhu03i48mh50h8/NJ3ww7gv73kwDJK/DRNgGjEraOvV8ZB_invoice.pdf"
      - `customs.customsDocuments.documentType` (string, required)
        Type of the uploaded document. This value is referenced when generating customs declarations.
Must match the type used during document upload.
        Enum: same as `customs.customsDocuments.documentType` in "By Carrier" (7 values)
    - By ExternalCode:
      - `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)
        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: same as `parcel.dimUnit` in "By Carrier" (2 values)
      - `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: same as `parcel.weightUnit` in "By Carrier" (2 values)
      - `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
      - `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"
      - `specialServices` (array)
        It provides a carrier based special or extra service, which also varies as per selected service and parcel type. User can override this value by defining it at shipment level.

> Provide either the specialserviceId or the specialservice objects such as deliveryConfirmation, handling, insurance and returnOptions, but not both.
      - `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"
      - `shipmentOptions` (object)
        Shipment Options have an added feature that is Manifest. With Manifest, the Mail Center agent can print the Manifest (End of day records of all created shipment) of selected carrier.
      - `shipmentOptions.addToManifest` (boolean)
        This option asks if the shipment is to be added for Manifest, so that the shipment will reflect in the Manifest Form while compilation. Supported for CPC and USPS carriers.  The value can be 'true' or 'false'.
        Example: true
      - `references` (object)
        References are tags or information that is printed on Shipping Label based on the customer's requirement.  Reference Fields can have values/indication like department name, invoice no., package description, purchase order no., carrier note, cost account no., transportation no., or PO no., print custom message etc. Each of the reference field can have only one indication/value.
      - `references.reference1` (string)
        Reference 1 can have one of the above-indicated values/information, which is printed on Label. For FedEx, it is a Reference number in the invoice. For USPS, it is a print custom message that will be printed vertically at the top of the label.  Max length = 30.
        Example: "custome message"
      - `references.reference2` (string)
        Reference 2 can have other details as indicated in the example values above. This is also printed on Label. For FedEx, this is the department. For USPS, it is a print custom message that will be printed horizontally at the bottom of the label.  Max length = 30.
        Example: "SendTech"
      - `references.reference3` (string)
        Reference 3 can have the information which were not fulfilled in Ref1 and Ref2. For FedEx, this is the invoice number.  Max length = 30.
        Example: "98437"
      - `references.reference4` (string)
        Reference 4 can have more information which were not provided in Ref1, Ref2, or Ref3. For FedEx, this is the PO number.  Max length = 30.
        Example: "Overnight Shipping"
      - `references.poNumber` (string)
        The Purchase Order Number. For FedEx, the PO number is passed in the reference4 field.  Max length = 30.
        Example: "R2W 2H2"
      - `references.department` (string)
        The department of the Recipient.For FedEx, the Department is passed in reference2 field.  Max length = 30.
        Example: "Name department"
      - `references.additionalReference1` (string)
        Additional Reference is hardly used, but sender can mention anything as per requirement, just for Recipient's information.  Max length = 30.
        Example: "612987641"
      - `references.additionalReference2` (string)
        Any tags or information that to be shown to Recipient, can be mentioned by Sender, which is not indicated on AdditionalReference1 field, e.g., PO No, Order No. etc. Max length = 30.
        Example: "989"
      - `references.shippingNotes` (string)
        Shipping notes are the instructions or messages that the sender wants to communicate to the carrier or the recipient regarding the handling, delivery, or any special requirements for the shipment. These notes can include specific delivery instructions, handling precautions, or any other relevant information that can assist in ensuring the safe and accurate delivery of the package.  Max length = 30.
        Example: "Handle with care."
      - `references.ShipperReference` (string)
        Shipper Reference is a unique identifier or code assigned by the shipper to a specific shipment or package.  Max length = 30.
        Example: "REF123456789"
      - `references.transportationReference` (string)
        Transportation Reference is a unique identifier or code used to track and manage the transportation of a shipment or package throughout the shipping process.  Max length = 30.
        Example: "TRANSREF987654321"
      - `metadata` (array)
        Additional metadata that needs to be stored for this shipment can be added here. Supported values are [Cost Account Name, Cost Account Id, Cost Account Code](/openapi/costaccount/cost-account-management/addcostaccount), [Account Code](/openapi/billingcodes/account-code/createaccountcode) and [Company Code](/openapi/billingcodes/company-code/createcompanycode).If Cost Account metadata is provided, all three Cost Account fields are required.
        Example: [{"name":"costAccountName","value":"costAccountName"},{"name":"costAccountId","value":"costAccountId"},{"name":"costAccountCode","value":"Code"},{"name":"accountCode","value":"code"},{"name":"companyCode","value":"code"}]
      - `metadata.name` (string)
        Name of the Cost Account which are linked to Shipment.
        Example: "costAccountName"
      - `metadata.value` (string)
        Indicates the value for the CostAccount.
        Example: "cost1"
      - `labelSize` (string, required)
        Defines the label size of the Shipment, that is, the Shipping Label is available in different Doc Size.  Max length = 10
        Enum: same as `labelSize` in "By Carrier" (3 values)
      - `labelType` (string, required)
        Defines the type of the Shipment. QR_CODE supported for carrier USPS only as of now.  Max length = 14
        Enum: same as `labelType` in "By Carrier" (2 values)
      - `labelFormat` (string, required)
        "Defines the file/format in which the label is printed. For ZPL2, DOC_4X6 will be supported, while for PDF, both the sizes are supported. QR_CODE can be generated only in GIF format. Max length = 14"
        Enum: same as `labelFormat` in "By Carrier" (4 values)
      - `contentType` (string)
        Specifies how the label content is encoded. URL is supported for PDF and GIF.  BASE64 is supported for ZPL2, PNG, and GIF.
        Enum: same as `contentType` in "By Carrier" (2 values)
      - `dateOfShipment` (string)
        The date when shipment is created/shipped. The format of the Date is YYYY-MM-DD.
        Example: "2025-11-20"
      - `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 data when shipment is to be delivered, which is scheduled by sender. The format of the Date is YYYY-MM-DD.  This field will be mandatory to provide, if the customer chooses ruleType is deliverBy.
        Example: "2024-03-20"
      - `deliveryOption.useBestNextDate` (boolean)
        When this is set to true, if the scheduled delivery date falls on a Holiday, then the next business day will be considered to deliver the shipment.
    - International Shipment:
      - `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.
        Example: "24182 Kathy Ave"
      - `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.cityTown` (string)
        The name of the city or town the Sender's address belongs to.
        Example: "Lake Forest"
      - `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.
        Example: "CA"
      - `fromAddress.postalCode` (string)
        The Postal Code or ZIP Code of the address.  For CA addresses, it is a six-character alphanumeric string Postal Code in this format: 'A1A 1A1'.  While for US addresses, it is either the 5-digit or 9-digit ZIP Code in one of the following formats: '12345' or '12345-6789'.
        Example: "92630-1827"
      - `fromAddress.countryCode` (string)
        The country in which the sender's address is located. The value is the two-character ISO Code of the country from the ISO country list.  It is ISO 3166-1 Alpha-2 standard values. This is included for the best results of search, 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.
        Example: "US"
      - `fromAddress.company` (string)
        The name of the company, in case if the sender address is not residential.
        Example: "PB"
      - `fromAddress.phone` (string)
        This is sender's phone number. The digits can be with or without spaces or hyphens.
        Example: "203-555-1214"
      - `fromAddress.email` (string)
        This is sender's valid email. Email is required if the customer is using GoFor Carrier. Sender email is required for RMG b2b shipment.
        Example: "test2user@gmail.com"
      - `fromAddress.residential` (boolean)
        The specified address can be Residential or Official. In case if the address is Residential, the boolean value is 'true', else it is 'false'.
        Example: true
      - `fromAddress.taxId` (string)
        The Tax Identification Number (TIN). TIN Number is supported for FedEx as of now. Max character length = 18. 
- EIN, VAT, GST, and IOSS are mapped to BUSINESS_NATIONAL.
- EORI is mapped to BUSINESS_UNION.
- RFC with a length of 12 characters is mapped to BUSINESS_NATIONAL.
- RFC with a length of 13 characters is mapped to PERSONAL_NATIONAL.
      - `fromAddress.taxIdType` (string)
        Specifies the type of tax identification being provided.
        Enum: same as `soldToAddress.taxIdType` in "By Carrier" (6 values)
      - `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: "771 Atlantic Ave"
      - `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: "BRAMPTON"
      - `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: "ON"
      - `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: "L6Y 2N4"
      - `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: "CA"
      - `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: "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
      - `toAddress.taxId` (string)
        The Tax Identification Number (TIN). TIN Number is supported for FedEx as of now. Max character length = 18. 
- EIN, VAT, GST, and IOSS are mapped to BUSINESS_NATIONAL.
- EORI is mapped to BUSINESS_UNION.
- RFC with a length of 12 characters is mapped to BUSINESS_NATIONAL.
- RFC with a length of 13 characters is mapped to PERSONAL_NATIONAL.
      - `toAddress.taxIdType` (string)
        Specifies the type of tax identification being provided.
        Enum: same as `soldToAddress.taxIdType` in "By Carrier" (6 values)
      - `soldToAddress` (object)
        Billing address of the buyer responsible for the shipment payment. It can be domestic or international address. 
- If the importer is the same as the final recipient, the toAddress and soldToAddress must match.
- If the importer is different from the final recipient, enter the importer address in the soldToAddress and enter the final recipient's address in the toAddress.
      - `soldToAddress.addressLine1` (string)
        Primary street address of the billing entity.
        Example: "1600 Amphitheatre Parkway"
      - `soldToAddress.addressLine2` (string)
        Additional address information such as apartment, suite, or unit number.
        Example: "Suite 101"
      - `soldToAddress.addressLine3` (string)
        Optional extra address details.
        Example: "Near central market"
      - `soldToAddress.company` (string)
        The name of the company associated with the SoldTo address.
        Example: "ABC Company"
      - `soldToAddress.name` (string)
        The contact person's full name for the billing entity.
        Example: "John Doe"
      - `soldToAddress.phone` (string)
        Phone number of the SoldTo entity.
        Example: "650-253-0000"
      - `soldToAddress.email` (string)
        Email address of the SoldTo entity.
        Example: "billing@abccompany.com"
      - `soldToAddress.residential` (boolean)
        Indicates whether the SoldTo address is a residential location (true/false).
      - `soldToAddress.cityTown` (string)
        City or town of the billing address.
        Example: "Mountain View"
      - `soldToAddress.stateProvince` (string)
        State or province of the billing address.
        Example: "CA"
      - `soldToAddress.postalCode` (string)
        Postal or ZIP code of the billing address.
        Example: "94043"
      - `soldToAddress.countryCode` (string)
        Two-letter country code of the billing address (ISO 3166-1 alpha-2).
        Example: "US"
      - `soldToAddress.taxId` (string)
        The Tax Identification Number (TIN). TIN Number is supported for FedEx as of now. Max character length = 18. 
- EIN, VAT, GST, and IOSS are mapped to BUSINESS_NATIONAL.
- EORI is mapped to BUSINESS_UNION.
- RFC with a length of 12 characters is mapped to BUSINESS_NATIONAL.
- RFC with a length of 13 characters is mapped to PERSONAL_NATIONAL.
      - `soldToAddress.taxIdType` (string)
        Specifies the type of tax identification being provided.
        Enum: same as `soldToAddress.taxIdType` in "By Carrier" (6 values)
      - `additionalAddresses` (array)
        A list of additional addresses associated with the shipment. 
- Each object includes an address and its designated type, such as BROKER or other parties involved in customs or shipping processes. 
- Additional address could be domestic or International both.
      - `additionalAddresses.address` (object)
        The additional address details.
      - `additionalAddresses.address.residential` (boolean)
        If the address is residential.
      - `additionalAddresses.address.phone` (string)
        Contact phone number for the address.
        Example: "732-443-1007"
      - `additionalAddresses.address.countryCode` (string)
        The ISO 2-letter country code.
        Example: "US"
      - `additionalAddresses.address.company` (string)
        The name of the company associated with the address.
        Example: "ABC Company"
      - `additionalAddresses.address.postalCode` (string)
        ZIP or postal code.
        Example: "08810-1411"
      - `additionalAddresses.address.cityTown` (string)
        Name of the city or town.
        Example: "DAYTON"
      - `additionalAddresses.address.name` (string)
        Name of the contact person.
        Example: "Warehouse Manager"
      - `additionalAddresses.address.stateProvince` (string)
        State or province code.
        Example: "NJ"
      - `additionalAddresses.address.addressLine1` (string)
        Primary street address line.
        Example: "2270 US HIGHWAY 130"
      - `additionalAddresses.addressType` (string)
        Type of the additional address (e.g., BROKER). This is required if passing additionalAddresses. Note: The addressType SHIPPER is returned only in USPS responses.
        Enum: same as `additionalAddresses.addressType` in "By Carrier" (7 values)
      - `altReturnAddress` (object)
        This is an optional field. if a package shipped from Location_A to Location_B needs to return to Location_C. The alternate address will be printed on the label. Use this object to specify a return address different from the fromAddress. Supported by USPS, FedEx, UPS, and Purolator.
      - `altReturnAddress.addressLine1` (string)
        The first line of the alternate return address, such as a street address or PO Box.
        Example: "27 Waterview Dr"
      - `altReturnAddress.addressLine2` (string)
        The addressLine2 contains Street address or Landmark (if any).
        Example: "near abc street"
      - `altReturnAddress.addressLine3` (string)
        The addressLine3 contains P.O. Box (if any) near the address.
        Example: "near xyz street"
      - `altReturnAddress.company` (string)
        The name of the company for the alternate return address, in case if the recipient's address is not residential.  Max length = 30.
        Example: "PB"
      - `altReturnAddress.email` (string)
        The email address of the recipient. It can be person's email address or company email address (for non-residential).
        Example: "user@email.com"
      - `altReturnAddress.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
      - `altReturnAddress.cityTown` (string)
        The city or town for the alternate return address.
        Example: "Shelton"
      - `altReturnAddress.countryCode` (string)
        The country in which the address is located. 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.
        Example: "US"
      - `altReturnAddress.name` (string)
        The name of the recipient or organization for the alternate return address.
        Example: "User Name"
      - `altReturnAddress.phone` (string)
        The phone number associated with the alternate return address.
        Example: "203-555-1213"
      - `altReturnAddress.postalCode` (string)
        The postal or ZIP code for the alternate return address.
        Example: "06484"
      - `altReturnAddress.stateProvince` (string)
        The 2-letter state or province code for the alternate return address.
        Example: "CT"
      - `parcel` (object)
        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: same as `parcel.dimUnit` in "By Carrier" (2 values)
      - `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: same as `parcel.weightUnit` in "By Carrier" (2 values)
      - `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
      - `parcelType` (string, required)
        Type of parcel, such as Package, Envelope, Box, etc.
        Example: "PKG"
      - `rateShopBy` (string, required)
        Determines the rate shopping method.
        Enum: "carrier", "rateGroup", "ruleSet"
      - `byCarrier` (object, required)
        Groups a shipment by carrier and service to determine rating, label generation, and routing behavior.
Validation Rules
- One of the following fields must be provided in the byCarrier object:
    - carrierAccountId
    - carrier
- If both fields are provided, carrierAccountId takes precedence and any carrier-level properties are ignored.
- If neither field is provided, the request fails validation.
- - When carrierAccountId is provided, it must be associated with the resolved location (the provided X-PB-LocationId, or the enterprise default location if location is omitted). Otherwise, the request fails.
- When carrierAccountId is provided, it must be associated with the resolved location (the provided X-PB-LocationId, or the enterprise default location if location is omitted). Otherwise, the request fails.

Location and Carrier Resolution

Carrier accounts used for shipment processing are resolved based on the location identified by the X-PB-LocationId request header. If the header is not provided, the enterprise default location created during developer onboarding is used.

| X-PB-LocationId | Location Used | Carriers Configured at Location/Division/Enterprise | Carrier Accounts | Behavior |
|-----------------|--------------|----------------------------------|------------------|----------|
| Provided | Provided Location ID | One carrier | One account | The available account is selected and the shipment is created. |
| Provided | Provided Location ID | One carrier | Multiple accounts | The oldest onboarded account is selected and the shipment is created. |
| Provided | Provided Location ID | Multiple carriers | Any | Request fails validation. carrierAccountId or carrier must be specified. |
| Provided | Provided Location ID | One carrier at each level | Multiple accounts | The oldest onboarded account across all levels is selected, and the shipment is created. |
| Not Provided | Enterprise Default Location | One carrier | One account | The available account is selected and the shipment is created. |
| Not Provided | Enterprise Default Location | One carrier | Multiple accounts | The oldest onboarded account is selected and the shipment is created. |
| Not Provided | Enterprise Default Location | Multiple carriers | Any | Request fails validation. carrierAccountId or carrier must be specified. |
| Not Provided | Enterprise Default Location  | One carrier at each level | Multiple accounts | The oldest onboarded account across all levels is selected, and the shipment is created. |
      - `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: "zmOKKBAn0X1"
      - `byCarrier.carrier` (string)
        A unique identifier associated with the specific carrier, i.e. CarrierID, which must be valid.
        Example: "FedEx"
      - `byCarrier.service` (string, required)
        Indicates a unique identifier associated with the carrier specific service, which is ServiceID, which must be valid.
        Example: "NDA"
      - `shipmentOptions` (object)
        Shipment Options have an added feature that is Manifest. With Manifest, the Mail Center agent can print the Manifest (End of day records of all created shipment) of selected carrier.
      - `shipmentOptions.addToManifest` (boolean)
        This option asks if the shipment is to be added for Manifest, so that the shipment will reflect in the Manifest Form while compilation. Supported for CPC and USPS carriers.  The value can be 'true' or 'false'.
        Example: true
      - `shipmentOptions.bookingConfirmationNumber` (string)
        This is an advanced booking number required for FedEx Express Freight shipments. It must be obtained through the appropriate channel in the shipment's origin country. Without a valid booking confirmation number, pickup and space allocation for the shipment are not guaranteed. The booking number must be between 5 and 12 digits.
        Example: "XXXX56789812"
      - `shipmentOptions.shipperID` (string)
        The unique identifier of the known shipper associated with this shipment.
        Example: "1234567890"
      - `shipmentOptions.b2b` (boolean)
        Required only for RMG carrier. Must be set to true to indicate a business-to-business (B2B) shipment.
        Example: true
      - `shipmentOptions.senderEORI` (string)
        Sender's Economic Operators Registration and Identification number. EORI is a unique identification number used for customs clearance in the European Union. This Number can be 14 characters long in Alphanumeric format. Required for RMG B2B shipments.
        Example: "GB123456789101"
      - `shipmentOptions.recipientEORI` (string)
        Recipient's EORI number. ORI is a unique identification number used for customs clearance in the European Union. This Number can be 14 characters long in Alphanumeric format. Required for RMG B2B shipments.
        Example: "GB123456789102"
      - `shipmentOptions.senderUKIMSNumber` (string)
        UKIMS (UK Internal Market Scheme) is an authorization that allows businesses to move goods between Great Britain (GB) and Northern Ireland (NI) without paying EU (European) duty. UKIMS Number can be 32 characters long in Alphanumeric format. Required if the package value value is over £135.
        Example: "GBUKIM12345678910100000000000000"
      - `shipmentOptions.exportLicenceRequired` (boolean)
        Specifies whether the shipment includes goods that require an official export license.
- applies to both RMG B2B and B2C shipments
- Required as part of customs compliance under the Windsor Agreement
        Example: true
      - `shipmentOptions.additionalShipmentOptions` (array)
        Additional carrier-specific shipment options provided as name/value pairs.

DHL Express International: When creating a document-only shipment with DHL Express International (for example when the selected service is a documents service), pass DOCUMENTS_ONLY with value true to indicate that the shipment contains documents only. This bypasses customs clearance processing that would otherwise apply to non-document international shipments.
        Example: [{"name":"DOCUMENTS_ONLY","value":"true"}]
      - `shipmentOptions.additionalShipmentOptions.name` (string)
        The name of the additional shipment option. For DHL document-only shipments, use DOCUMENTS_ONLY.
        Example: "DOCUMENTS_ONLY"
      - `shipmentOptions.additionalShipmentOptions.value` (string)
        The value for the additional shipment option. For DOCUMENTS_ONLY, use true to mark the shipment as documents only.
        Example: "true"
      - `carrierPayments` (array) — one of:
        Defines how carrier charges are billed to a third party. Use this field to specify 
account and charge type details for transportation and/or duties and taxes. This 
field is optional and currently supported for FedEx, UPS, DHL Express and Purolator.

- If no party (who will pay for TRANSPORTATION_CHARGES or duties and taxes) is explicitly specified during shipment creation, the charges will automatically default to the sender (shipper). To direct charges to a different party, the appropriate bill-to details must be provided in the request.
        - FedEx Carrier Payment:
          - `accountNumber` (string)
            The FedEx account number of the party to be billed.
            Example: "602684342"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Billing party for the shipment charges.
            Enum: same as `party` in "FedEx Carrier Payment" (4 values)
          - `typeOfCharge` (string)
            The type of charge billed to the specified party. Possible values:
- TRANSPORTATION_CHARGES: Transportation-related charges only. When billing transportation charges to the sender (BILL_SENDER), the accountNumber must match the account used to initiate the shipment.
- DUTIES_AND_TAXES: Duties and taxes only
- ALL_CHARGES: All Shipment Charges (Transportatio and Duties and Taxes)Required when using BILL_RECEIVER_CONTRACT (FedEx COLLECT); includes all charges
            Enum: same as `typeOfCharge` in "FedEx Carrier Payment" (3 values)
        - UPS Carrier Payment:
          - `accountNumber` (string)
            The UPS account number of the party to be billed.
            Example: "1Z999AA10123456784"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Party to be billed.
            Enum: same as `party` in "UPS Carrier Payment" (3 values)
          - `typeOfCharge` (string)
            The type of charge billed to the specified party. UPS requires split charges. ALL_CHARGES is not supported.
            Enum: same as `typeOfCharge` in "UPS Carrier Payment" (2 values)
        - DHL Express Carrier Payment:
          - `accountNumber` (string)
            The DHL Express account number of the party to be billed.
            Example: "DHL123456"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Billing party for DHL Express. Account number is required for all scenarios.
            Enum: same as `party` in "FedEx Carrier Payment" (4 values)
          - `typeOfCharge` (string)
            The type of charge billed to the specified party.
            Enum: same as `typeOfCharge` in "FedEx Carrier Payment" (3 values)
        - Purolator Carrier Payment:
          - `accountNumber` (string)
            The DHL Express account number of the party to be billed.
            Example: "DHL123456"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Billing party for DHL Express. Account number is required for all scenarios.
            Enum: same as `party` in "FedEx Carrier Payment" (4 values)
          - `typeOfCharge` (string)
            The type of charge billed to the specified party.
            Enum: same as `typeOfCharge` in "FedEx Carrier Payment" (3 values)
      - `specialServices` (array)
        It provides a carrier based special or extra service, which also varies as per selected service and parcel type. User can override this value by defining it at shipment level.

> Provide either the specialserviceId or the specialservice objects such as deliveryConfirmation, handling, insurance and returnOptions, but not both.
      - `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"
      - `references` (object)
        References are tags or information that is printed on Shipping Label based on the customer's requirement.  Reference Fields can have values/indication like department name, invoice no., package description, purchase order no., carrier note, cost account no., transportation no., or PO no., print custom message etc. Each of the reference field can have only one indication/value.
      - `references.reference1` (string)
        Reference 1 can have one of the above-indicated values/information, which is printed on Label. For FedEx, it is a Reference number in the invoice. For USPS, it is a print custom message that will be printed vertically at the top of the label.  Max length = 30.
        Example: "custome message"
      - `references.reference2` (string)
        Reference 2 can have other details as indicated in the example values above. This is also printed on Label. For FedEx, this is the department. For USPS, it is a print custom message that will be printed horizontally at the bottom of the label.  Max length = 30.
        Example: "SendTech"
      - `references.reference3` (string)
        Reference 3 can have the information which were not fulfilled in Ref1 and Ref2. For FedEx, this is the invoice number.  Max length = 30.
        Example: "98437"
      - `references.reference4` (string)
        Reference 4 can have more information which were not provided in Ref1, Ref2, or Ref3. For FedEx, this is the PO number.  Max length = 30.
        Example: "Overnight Shipping"
      - `references.poNumber` (string)
        The Purchase Order Number. For FedEx, the PO number is passed in the reference4 field.  Max length = 30.
        Example: "R2W 2H2"
      - `references.department` (string)
        The department of the Recipient.For FedEx, the Department is passed in reference2 field.  Max length = 30.
        Example: "Name department"
      - `references.additionalReference1` (string)
        Additional Reference is hardly used, but sender can mention anything as per requirement, just for Recipient's information.  Max length = 30.
        Example: "612987641"
      - `references.additionalReference2` (string)
        Any tags or information that to be shown to Recipient, can be mentioned by Sender, which is not indicated on AdditionalReference1 field, e.g., PO No, Order No. etc. Max length = 30.
        Example: "989"
      - `references.shippingNotes` (string)
        Shipping notes are the instructions or messages that the sender wants to communicate to the carrier or the recipient regarding the handling, delivery, or any special requirements for the shipment. These notes can include specific delivery instructions, handling precautions, or any other relevant information that can assist in ensuring the safe and accurate delivery of the package.  Max length = 30.
        Example: "Handle with care."
      - `references.ShipperReference` (string)
        Shipper Reference is a unique identifier or code assigned by the shipper to a specific shipment or package.  Max length = 30.
        Example: "REF123456789"
      - `references.transportationReference` (string)
        Transportation Reference is a unique identifier or code used to track and manage the transportation of a shipment or package throughout the shipping process.  Max length = 30.
        Example: "TRANSREF987654321"
      - `metadata` (array)
        Additional metadata that needs to be stored for this shipment can be added here. Supported values are [Cost Account Name, Cost Account Id, Cost Account Code](/openapi/costaccount/cost-account-management/addcostaccount), [Account Code](/openapi/billingcodes/account-code/createaccountcode) and [Company Code](/openapi/billingcodes/company-code/createcompanycode).If Cost Account metadata is provided, all three Cost Account fields are required.
        Example: [[{"name":"costAccountName","value":"costAccountName"},{"name":"costAccountId","value":"costAccountId"},{"name":"costAccountCode","value":"Code"},{"name":"accountCode","value":"code"},{"name":"companyCode","value":"code"}]]
      - `metadata.name` (string)
        Name of the Cost Account which are linked to Shipment.
        Example: "costAccountName"
      - `metadata.value` (string)
        Indicates the value for the CostAccount.
        Example: "cost1"
      - `labelSize` (string, required)
        Defines the label size of the Shipment, that is, the Shipping Label is available in different Doc Size.  Max length = 10
        Example: "DOC_4X6"
      - `labelType` (string, required)
        Defines the type of the Shipment.  Max length = 14
        Enum: "SHIPPING_LABEL"
      - `labelFormat` (string, required)
        Defines the file/format in which the label is printed. For ZPL2, DOC_4X6 will be supported, while for PDF, both the sizes are supported. Max length = 14
        Enum: same as `labelFormat` in "By Carrier" (4 values)
      - `contentType` (string)
        Specifies how the label content is encoded. URL is supported for PDF and GIF.  BASE64 is supported for ZPL2, PNG, and GIF.
        Enum: same as `contentType` in "By Carrier" (2 values)
      - `printerAliasName` (string)
        Refers to a printer connected (directly or via network) to a computer. Max length = 60
        Example: "test"
      - `dateOfShipment` (string)
        The date when shipment is created/shipped. The format of the Date is YYYY-MM-DD.
        Example: "2024-11-20"
      - `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 data when shipment is to be delivered, which is scheduled by sender. The format of the Date is YYYY-MM-DD.  This field will be mandatory to provide, if the customer chooses ruleType is deliverBy.
        Example: "2024-12-30"
      - `deliveryOption.useBestNextDate` (boolean)
        When this is set to true, if the scheduled delivery date falls on a Holiday, then the next business day will be considered to deliver the shipment.
      - `customs` (object, required)
        Customs information required for international shipments.
      - `customs.customsInfo` (object, required)
        This is additional customs information required along with item details.
      - `customs.customsInfo.reasonForExport` (string, required)
        Reason for exporting the items.
        Enum: same as `customs.customsInfo.reasonForExport` in "By Carrier" (6 values)
      - `customs.customsInfo.comments` (string)
        Free-form comments regarding the exported shipment.
        Example: "Test comment"
      - `customs.customsInfo.invoiceNumber` (string)
        The commercial invoice number assigned by the exporter.
        Example: "001189223"
      - `customs.customsInfo.importerCustomsReference` (string)
        A reference number used by the importer, such as a VAT number, PO number, or insured number.
        Example: "987654"
      - `customs.customsInfo.sdrValue` (number)
        When an international parcel is insured, the insured value must be expressed in Special Drawing Rights values.
        Example: 23.32
      - `customs.customsInfo.EELPFC` (string)
        A number provided by the Automated Export System (AES).  Required if the item is more than $2,500 USD, per Schedule B export codes.  Required if EELPFC  is AES ITN.
- AES ITN is a unique transaction number generated by the Automated Export System (AES) when export data is filed for international shipments from the U.S.
- The ITN format is AES XYYYYMMDDNNNNNN, where X indicates the type, YYYYMMDD is the filing date, and NNNNNN is a 6-digit number. Example: AES X20250327123456
- If the ITN is not available, an exemption format may be used: AESDOWN [Filer ID] [mm/dd/yyyy]. Example: AESDOWN 12345678912 03/27/2025
        Example: "NOEEI 30.2D2"
      - `customs.customsInfo.currencyCode` (string, required)
        The currency used for declared value. Use three uppercase letters, per ISO 4217.
        Example: "USD"
      - `customs.customsInfo.fromCustomsReference` (string)
        Free-form reference information provided by the requestor of the shipment. Depending on the carrier this information may or may not be rendered on the customs documents.
        Example: "EFEFE4554545"
      - `customs.customsInfo.licenseNumber` (string)
        The export license number associated with the commodity.
        Example: "456ABC123"
      - `customs.customsInfo.certificateNumber` (string)
        The certificate number associated with the commodity.
        Example: "987"
      - `customs.customsInfo.customsDeclaredValue` (number, required)
        Item value in mentioned currencyCode.
        Example: 6000
      - `customs.customsInfo.termsOfSale` (string)
        Defines the delivery and payment terms between the shipper and recipient. Currenty supported by carriers - UPS, FedEx and DHL. - Common values include:
  - CIP: Carriage and Insurance Paid to
  - CPT: Carriage Paid To
  - DAP: Delivered at Place
  - DAT: Delivered at Terminal
  - DDP: Delivered Duty Paid
  - EXW: Ex Works
  - FCA: Free Carrier
        Enum: same as `customs.customsInfo.termsOfSale` in "By Carrier" (7 values)
      - `customs.customsItems` (array, required)
        Items included in the customs declaration.
      - `customs.customsItems.description` (string)
        A detailed description of the commodity, up to 255 characters. The description will appear on the customs form. If the shipment has multiple types of items, create a separate customsItems object for each. Each description will appear on the form.
        Example: "Books"
      - `customs.customsItems.itemId` (string)
        This is the unique identifier for the commodity.
        Example: "item1234"
      - `customs.customsItems.orderNumber` (string)
        The unique identifier for the order.
        Example: "ORD1234"
      - `customs.customsItems.quantity` (number)
        Enter the total number of items of this type of commodity.
        Example: 1
      - `customs.customsItems.unitPrice` (number)
        The price of one item of this type of commodity.
        Example: 3000
      - `customs.customsItems.weightUnit` (string)
        The unit of measurement. This field is required by the unitWeight object.
        Example: "OZ"
      - `customs.customsItems.weight` (number)
        Weight of the item.
        Example: 0.1
      - `customs.customsItems.hSTariffCode` (string)
        The destination country's tariff-classification number (HS code) for the commodity. Most countries use the six-digit Harmonized System (HS) as the basis for their tariff classifications and then add digits for more detail. The maximum length for an HS code is 14 characters. The HS code will appear on the customs form. If the shipment has multiple types of items, create a separate customsItems object for each. HS Code is required for RMG b2b shipment.
        Example: "AST559"
      - `customs.customsItems.originCountryCode` (string)
        The two-character ISO country code of the shipment's origin country. Use ISO 3166-1 Alpha-2 standard values.
        Example: "US"
      - `customs.customsDocuments` (array)
        Use this field to attach Electronic Trade Documents (ETDs) to your DHL international shipment. 
Each item should represent a document uploaded previously using the [Upload ETD API](/openapi/shipping/electronic-trade-document/uploadetd).
- For DHL, if you pass this field, ensure the selected service type is PAPERLESS.
- The s3FileId value must be taken from the [Upload ETD API response](/openapi/shipping/electronic-trade-document/uploadetd).
> Electronic trade document must upload before shipment label creation.
      - `customs.customsDocuments.fileName` (string, required)
        The name of the uploaded trade document file.
        Example: "invoice.pdf"
      - `customs.customsDocuments.s3FileId` (string, required)
        The relative file path where the document is stored in the S3 bucket.
        Example: "uploads/shipping/intl_docs/sa58a03/0oa2bxnhu03i48mh50h8/NJ3ww7gv73kwDJK/DRNgGjEraOvV8ZB_invoice.pdf"
      - `customs.customsDocuments.documentType` (string, required)
        Type of the uploaded document. This value is referenced when generating customs declarations.
Must match the type used during document upload.
        Enum: same as `customs.customsDocuments.documentType` in "By Carrier" (7 values)
    - Military Mail Shipment:
      - `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)
      - `toAddress.addressLine1` (string)
        The addressLine1 can contain the Flat number, Building or Apartment Name/number (if any) or company name (if not residential).
        Example: "UNIT 35007"
      - `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 to where the address belongs.
        Example: "APO"
      - `toAddress.countryCode` (string)
        The two-character ISO Code of the destination country from this ISO country list.  The country in which the address is located. 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.
        Example: "US"
      - `toAddress.name` (string)
        Name of the recipient to which this address points.
        Example: "Recipient Name"
      - `toAddress.phone` (string)
        This is recipient's phone number. Enter the digits with or without spaces or hyphens. The maximum limit of characters for Phone number are 10 digits.
        Example: "518-727-4964"
      - `toAddress.company` (string)
        The name of the company, in case if the receiver address is not residential.
        Example: "PB"
      - `toAddress.email` (string)
        This must be sender's valid email. Email is required if the customer is using GoFor Carrier.
        Example: "testuser@gmail.com"
      - `toAddress.postalCode` (string)
        The Postal Code or ZIP Code of the address. For US addresses, use either the 5-digit or 9-digit ZIP Code in one of the following formats: '12345' or '12345-6789'. If you use a different format, such as 12345- or 123451234, will receive an error.
        Example: "96376-5007"
      - `toAddress.stateProvince` (string)
        The State or Province of the address. For a US or Canadian address, it is the 2-letter state or province code.
        Example: "AP"
      - `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'.
      - `parcel` (object)
        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: same as `parcel.dimUnit` in "By Carrier" (2 values)
      - `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: same as `parcel.weightUnit` in "By Carrier" (2 values)
      - `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
      - `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"
      - `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.  Through shipViaCode, customers can create a shipment using a single code (Custom Carrier Code) that represents a specific combination of carrier, carrier account, parcel type, service, and special services.
        Enum: same as `rateShopBy` in "By Carrier" (4 values)
      - `byCarrier` (object)
        Groups a shipment by carrier and service to determine rating, label generation, and routing behavior.
Validation Rules
- One of the following fields must be provided in the byCarrier object:
    - carrierAccountId
    - carrier
- If both fields are provided, carrierAccountId takes precedence and any carrier-level properties are ignored.
- If neither field is provided, the request fails validation.
- - When carrierAccountId is provided, it must be associated with the resolved location (the provided X-PB-LocationId, or the enterprise default location if location is omitted). Otherwise, the request fails.
- When carrierAccountId is provided, it must be associated with the resolved location (the provided X-PB-LocationId, or the enterprise default location if location is omitted). Otherwise, the request fails.

Location and Carrier Resolution

Carrier accounts used for shipment processing are resolved based on the location identified by the X-PB-LocationId request header. If the header is not provided, the enterprise default location created during developer onboarding is used.

| X-PB-LocationId | Location Used | Carriers Configured at Location/Division/Enterprise | Carrier Accounts | Behavior |
|-----------------|--------------|----------------------------------|------------------|----------|
| Provided | Provided Location ID | One carrier | One account | The available account is selected and the shipment is created. |
| Provided | Provided Location ID | One carrier | Multiple accounts | The oldest onboarded account is selected and the shipment is created. |
| Provided | Provided Location ID | Multiple carriers | Any | Request fails validation. carrierAccountId or carrier must be specified. |
| Provided | Provided Location ID | One carrier at each level | Multiple accounts | The oldest onboarded account across all levels is selected, and the shipment is created. |
| Not Provided | Enterprise Default Location | One carrier | One account | The available account is selected and the shipment is created. |
| Not Provided | Enterprise Default Location | One carrier | Multiple accounts | The oldest onboarded account is selected and the shipment is created. |
| Not Provided | Enterprise Default Location | Multiple carriers | Any | Request fails validation. carrierAccountId or carrier must be specified. |
| Not Provided | Enterprise Default Location  | One carrier at each level | Multiple accounts | The oldest onboarded account across all levels is selected, and the shipment is created. |
      - `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: "zmOKKBAn0X1"
      - `byCarrier.carrier` (string)
        A unique identifier associated with the specific carrier, i.e. CarrierID, which must be valid.
        Example: "FedEx"
      - `byCarrier.service` (string, required)
        Indicates a unique identifier associated with the carrier specific service, which is ServiceID, which must be valid.
        Example: "NDA"
      - `shipmentOptions` (object)
        Shipment Options have an added feature that is Manifest. With Manifest, the Mail Center agent can print the Manifest (End of day records of all created shipment) of selected carrier.
        Example: {"addToManifest":true,"shipperId":"2000084646"}
      - `shipmentOptions.addToManifest` (boolean)
        This option asks if the shipment is to be added for Manifest, so that the shipment will reflect in the Manifest Form while compilation. Supported for CPC and USPS carriers.  The value can be 'true' or 'false'.
        Example: true
      - `shipmentOptions.shipperID` (string)
        The unique identifier of the known shipper associated with this shipment.
        Example: "1234567890"
      - `deliveryConfirmation` (object)
        Indicates the supporting special service or document as an evidence of shipment delivery. 
For the delivery confirmation, user can select any of the following special services, but they may vary as per the carrier selection. 
  - Signature Required/ Indirect Signature Required : SIGNATURE
  - Delivery confirmation: DELIVERY_CONFIRMATION
  - Proof of age required (18 years) Adult Signature Required: ADULT_SIGNATURE
  - Proof of age required (19 years): ADULT_SIGNATURE_19
  - No Signature Required: NO_SIGNATURE
  - Direct Signature Required: DIRECT_SIGNATURE
  - Chain of Signature: CHAIN_OF_SIGNATURE 
  
  Carrier specific options:
  - UPS supports SIGNATURE and ADULT_SIGNATURE. 
  - FedEx supports SIGNATURE, ADULT_SIGNATURE, NO_SIGNATURE, and DIRECT_SIGNATURE.
  - Purolator supports ADULT_SIGNATURE, NO_SIGNATURE, and CHAIN_OF_SIGNATURE.
  - GoFor supports SIGNATURE.
  - CPC supports SIGNATURE, DELIVERY_CONFIRMATION, ADULT_SIGNATURE, ADULT_SIGNATURE_19, and NO_SIGNATURE.
      - `deliveryConfirmation.type` (string)
        The delivery confirmation Type.
        Enum: same as `deliveryConfirmation.type` in "By Carrier" (7 values)
      - `handling` (object)
        Few shipments need a special handling, and the reason can be fragile items or highly secured shipments. There might be other case scenarios. In a simple term, this field defines shipment handling, which provides users a capability to select handling options. 
User can select any of the following handling options (special services), but they may vary as per the carrier selection.
  - Hold For Pickup: HOLD_FOR_PICKUP
  - Saturday Delivery: SATURDAY_DELIVERY
  - UPS Premium Care: PREMIUM_CARE
  - Direct Delivery Only: DIRECT_DELIVERY_ONLY
  - Additional Handling: ADDITIONAL_HANDLING 
  
  Carrier specific options:
  - UPS supports all handling options mentioned above. 
  - FedEx supports HOLD_FOR_PICKUP, SATURDAY_DELIVERY, and ADDITIONAL_HANDLING.
  - Purolator supports HOLD_FOR_PICKUP, SATURDAY_DELIVERY, and ADDITIONAL_HANDLING.
      - `handling.type` (string)
        The special handling type.
        Enum: same as `handling.type` in "By Carrier" (5 values)
      - `insurance` (object)
        Indicates the insurance coverage, which is selected by users while create shipment - rate shopping. User can select below-mentioned special service for insurance: 
  - Declared Value Surcharge: INSURANCE
  
  Carrier specific options:
  - UPS, FedEx, Purolator, and CPC support special service INSURANCE.
      - `insurance.type` (string)
        The insurance type.
        Enum: same as `insurance.type` in "By Carrier" (1 values)
      - `insurance.amount` (number)
        The insurance amount in the currency specified for the shipment.
        Example: 200
      - `references` (object)
        References are tags or information that is printed on Shipping Label based on the customer's requirement.  Reference Fields can have values/indication like department name, invoice no., package description, purchase order no., carrier note, cost account no., transportation no., or PO no., print custom message etc. Each of the reference field can have only one indication/value.
      - `references.reference1` (string)
        Reference 1 can have one of the above-indicated values/information, which is printed on Label. For FedEx, it is a Reference number in the invoice. For USPS, it is a print custom message that will be printed vertically at the top of the label.  Max length = 30.
        Example: "custome message"
      - `references.reference2` (string)
        Reference 2 can have other details as indicated in the example values above. This is also printed on Label. For FedEx, this is the department. For USPS, it is a print custom message that will be printed horizontally at the bottom of the label.  Max length = 30.
        Example: "SendTech"
      - `references.reference3` (string)
        Reference 3 can have the information which were not fulfilled in Ref1 and Ref2. For FedEx, this is the invoice number.  Max length = 30.
        Example: "98437"
      - `references.reference4` (string)
        Reference 4 can have more information which were not provided in Ref1, Ref2, or Ref3. For FedEx, this is the PO number.  Max length = 30.
        Example: "Overnight Shipping"
      - `references.poNumber` (string)
        The Purchase Order Number. For FedEx, the PO number is passed in the reference4 field.  Max length = 30.
        Example: "R2W 2H2"
      - `references.department` (string)
        The department of the Recipient.For FedEx, the Department is passed in reference2 field.  Max length = 30.
        Example: "Name department"
      - `references.additionalReference1` (string)
        Additional Reference is hardly used, but sender can mention anything as per requirement, just for Recipient's information.  Max length = 30.
        Example: "612987641"
      - `references.additionalReference2` (string)
        Any tags or information that to be shown to Recipient, can be mentioned by Sender, which is not indicated on AdditionalReference1 field, e.g., PO No, Order No. etc. Max length = 30.
        Example: "989"
      - `references.shippingNotes` (string)
        Shipping notes are the instructions or messages that the sender wants to communicate to the carrier or the recipient regarding the handling, delivery, or any special requirements for the shipment. These notes can include specific delivery instructions, handling precautions, or any other relevant information that can assist in ensuring the safe and accurate delivery of the package.  Max length = 30.
        Example: "Handle with care."
      - `references.ShipperReference` (string)
        Shipper Reference is a unique identifier or code assigned by the shipper to a specific shipment or package.  Max length = 30.
        Example: "REF123456789"
      - `references.transportationReference` (string)
        Transportation Reference is a unique identifier or code used to track and manage the transportation of a shipment or package throughout the shipping process.  Max length = 30.
        Example: "TRANSREF987654321"
      - `metadata` (array)
        Additional metadata that needs to be stored for this shipment can be added here. Supported values are [Cost Account Name, Cost Account Id, Cost Account Code](/openapi/costaccount/cost-account-management/addcostaccount), [Account Code](/openapi/billingcodes/account-code/createaccountcode) and [Company Code](/openapi/billingcodes/company-code/createcompanycode).If Cost Account metadata is provided, all three Cost Account fields are required.
        Example: [{"name":"costAccountName","value":"cost1"}]
      - `metadata.name` (string)
        Name of the Cost Account which are linked to Shipment.
        Example: "costAccountName"
      - `metadata.value` (string)
        Indicates the value for the CostAccount.
        Example: "cost1"
      - `labelSize` (string, required)
        Defines the label size of the Shipment, that is, the Shipping Label is available in different Doc Size.  Max length = 10
        Enum: same as `labelSize` in "By Carrier" (3 values)
      - `labelType` (string, required)
        Defines the type of the Shipment. QR_CODE supported for carrier USPS only as of now.  Max length = 14
        Enum: same as `labelType` in "By Carrier" (2 values)
      - `labelFormat` (string, required)
        "Defines the file/format in which the label is printed. For ZPL2, DOC_4X6 will be supported, while for PDF, both the sizes are supported. QR_CODE can be generated only in GIF format. Max length = 14"
        Enum: same as `labelFormat` in "By Carrier" (4 values)
      - `contentType` (string)
        Specifies how the label content is encoded. URL is supported for PDF and GIF.  BASE64 is supported for ZPL2, PNG, and GIF.
        Enum: same as `contentType` in "By Carrier" (2 values)
      - `printerAliasName` (string)
        Refers to a printer connected (directly or via network) to a computer. Max length = 60
        Example: "test"
      - `dateOfShipment` (string)
        The date when shipment is created/shipped. The format of the Date is YYYY-MM-DD.
        Example: "2025-09-04"
      - `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.
        Example: {"deliverBy":"2025-09-10","useBestNextDate":false}
      - `deliveryOption.deliverBy` (string)
        Delivery date is the data when shipment is to be delivered, which is scheduled by sender. The format of the Date is YYYY-MM-DD.  This field will be mandatory to provide, if the customer chooses ruleType is deliverBy.
        Example: "2025-09-10"
      - `deliveryOption.useBestNextDate` (boolean)
        When this is set to true, if the scheduled delivery date falls on a Holiday, then the next business day will be considered to deliver the shipment.
      - `customs` (object, required)
        Example: {"customsItems":[{"description":"T-shirt","hSTariffCode":"610910","originCountryCode":"US","quantity":1,"unitPrice":10,"weightUnit":"OZ","weight":1}],"customsInfo":{"reasonForExport":"GIFT","customsDeclaredValue":10,"currencyCode":"USD","EELPFC":"NOEEI 30.2D2","certificateNumber":"123456","comments":"This is a sample comment","fromCustomsReference":"EFEFE4554545","importerCustomsReference":"dff3433","invoiceNumber":"123456","licenseNumber":"123456","sdrValue":10,"termsOfSale":"DDP"}}
      - `customs.customsItems` (array, required)
        Example: [{"description":"T-shirt","hSTariffCode":"610910","originCountryCode":"US","quantity":1,"unitPrice":10,"weightUnit":"OZ","weight":1}]
      - `customs.customsItems.description` (string, required)
        A detailed description of the commodity, up to 255 characters. The description will appear on the customs form. If the shipment has multiple types of items, create a separate customsItems object for each. Each description will appear on the form.
        Example: "T-shirt"
      - `customs.customsItems.hSTariffCode` (object)
        The destination country’s tariff-classification number (HS code) for the commodity. Most countries use the six-digit Harmonized System (HS) as the basis for their tariff classifications and then add digits for more detail. The maximum length for an HS code is 14 characters. The HS code will appear on the customs form. If the shipment has multiple types of items, create a separate customsItems object for each.
        Example: "610910"
      - `customs.customsItems.originCountryCode` (string)
        The two-character ISO country code of the shipment’s origin country. Use ISO 3166-1 Alpha-2 standard values.
        Example: "US"
      - `customs.customsItems.quantity` (number, required)
        Enter the total number of items of this type of commodity.
        Example: 1
      - `customs.customsItems.unitPrice` (number, required)
        The price of one item of this type of commodity.
        Example: 10
      - `customs.customsItems.weightUnit` (string, required)
        The unit of measurement. This field is required by the unitWeight object.
        Enum: "OZ"
      - `customs.customsItems.weight` (number, required)
        The weight of the item.
        Example: 1
      - `customs.customsInfo` (object, required)
        This is additional customs information required along with item details.
        Example: {"reasonForExport":"GIFT","customsDeclaredValue":10,"currencyCode":"USD","EELPFC":"NOEEI 30.2D2","certificateNumber":"123456","comments":"This is a sample comment","fromCustomsReference":"EFEFE4554545","importerCustomsReference":"dff3433","invoiceNumber":"123456","licenseNumber":"123456","sdrValue":10,"termsOfSale":"DDP"}
      - `customs.customsInfo.reasonForExport` (string, required)
        The reason the commodity is being exported.
        Enum: same as `customs.customsInfo.reasonForExport` in "By Carrier" (6 values)
      - `customs.customsInfo.customsDeclaredValue` (number, required)
        Item value in mentioned currencyCode
        Example: 10
      - `customs.customsInfo.currencyCode` (string, required)
        The currency used for declared value. Use three uppercase letters, per ISO 4217
        Example: "USD"
      - `customs.customsInfo.EELPFC` (string)
        A number provided by the Automated Export System (AES).  Required if the item is more than $2,500 USD, per Schedule B export codes.  Required if EELPFC  is AES ITN.
- AES ITN is a unique transaction number generated by the Automated Export System (AES) when export data is filed for international shipments from the U.S.
- The ITN format is AES XYYYYMMDDNNNNNN, where X indicates the type, YYYYMMDD is the filing date, and NNNNNN is a 6-digit number. Example: AES X20250327123456
- If the ITN is not available, an exemption format may be used: AESDOWN [Filer ID] [mm/dd/yyyy]. Example: AESDOWN 12345678912 03/27/2025
        Example: "NOEEI 30.2D2"
      - `customs.customsInfo.certificateNumber` (string)
        The certificate number associated with the commodity.
        Example: "123456"
      - `customs.customsInfo.comments` (string)
        Free-form comments regarding the exported shipment.
        Example: "This is a sample comment"
      - `customs.customsInfo.fromCustomsReference` (string)
        Free-form reference information provided by the requestor of the shipment. Depending on the carrier this information may or may not be rendered on the customs documents.
        Example: "EFEFE4554545"
      - `customs.customsInfo.importerCustomsReference` (string)
        A reference number used by the importer, such as a VAT number, PO number, or insured number.
        Example: "dff3433"
      - `customs.customsInfo.invoiceNumber` (string)
        The commercial invoice number assigned by the exporter.
        Example: "123456"
      - `customs.customsInfo.licenseNumber` (string)
        The export license number associated with the commodity.
        Example: "123456"
      - `customs.customsInfo.sdrValue` (number)
        When an international parcel is insured, the insured value must be expressed in Special Drawing Rights values.
        Example: 10

## Response 200 fields (application/json):

  - `body` (domesticShipmentResponseV2 (object) or internationalShipmentResponseV2 (object) or MilitaryMailShipmentResponseV2 (object)) — one of:
    - domesticShipmentResponseV2:
      - `correlationId` (string)
        Key assigned by the shipping system to the transaction.
        Example: "6270e32715df4c4884a2008f943fe179"
      - `shipmentId` (string)
        The shipmentId, a unique identifier for an individual Shipment.
        Example: "USPS2200613202723337"
      - `parcelTrackingNumber` (string)
        The Tracking number given to the Parcel for tracking purpose.
        Example: "9470109109628000114503"
      - `carrierAccountId` (string)
        Unique identifier of the carrier account under which shipments is processed.
        Example: "GOaVO7vERQxO"
      - `labelLayout` (array)
        Example: [{"contentType":"URL","contents":"https://prv-labels-cls.gcs.pitneybowes.com/usps/910187923/outbound/label/5ecfa0ecc6454caeb90c55d35229de90.pdf","fileFormat":"PDF","size":"DOC_4X6","type":"SHIPPING_LABEL"}]
      - `labelLayout.contentType` (string)
        Specifies how the label content is encoded.
        Enum: "BASE64", "URL"
      - `labelLayout.contents` (string)
        The URL to access the label document if the content type is URL, or the Base64-encoded data if the content type is BASE64
        Example: "XlhBCl5MSDE2LDEyCl5MTDEyMTIKXkZUIDU4MSwgNDAzIF5BVU4gIF5GRDAwMDNeRlMgXkZYIENvbmZpZ3VyYWJsZSBUZXh0IDEK..."
      - `labelLayout.fileFormat` (string)
        Defines the type of the shipment which is printed. For example, Shipping label prints in PDF form.
        Example: "ZPL2"
      - `labelLayout.size` (string)
        Defines the label size of the Shipment, that is, the Shipping Label is available in different Doc Size.
        Example: "DOC_4X6"
      - `labelLayout.type` (string)
        Defines the type of the Shipment.
        Enum: same as `labelType` in "International Shipment" (1 values)
      - `parcel` (object)
        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: same as `parcel.dimUnit` in "By Carrier" (2 values)
      - `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: same as `parcel.weightUnit` in "By Carrier" (2 values)
      - `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
      - `rate` (object)
        Example: {"baseCharge":27.6,"carrier":"USPS","currencyCode":"USD","deliveryCommitment":{},"inductionPostalCode":"06905","parcelType":"PKG","rateTypeId":"CONTRACT_RATES","serviceId":"EM","specialServices":[],"totalCarrierCharge":27.6,"destinationZone":"1","isHazmat":false}
      - `rate.baseCharge` (number)
        The base service charge is payable to the carrier, excluding special service charges.
        Example: 27.6
      - `rate.carrier` (string)
        Carrier is a service used to transport the parcels or couriers from one place to another.
        Example: "USPS"
      - `rate.currencyCode` (string)
        A three-character (all uppercase letter) symbol of a currency according to the international ISO standard. As a rule, the first two letters denote the name of the country, and the third letter, the name of the currency thereof. For example, for US - the currency is Dollars and code is USD. Similarly for Canada, the currencycode is CAD, and for India, it is INR.
        Example: "USD"
      - `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.serviceId` (string)
        The unique identifier given to the carrier specific service.
        Example: "EM"
      - `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                                                         |
      - `rate.surcharges.fee` (number)
        The amount of the surcharge.
        Example: 2.95
      - `rate.surcharges.name` (string)
        The name of surcharge.
        Example: "ResidentialDelivery"
      - `rate.totalCarrierCharge` (number)
        The total amount payable to the carrier, including special service fees, surcharges, and any international taxes and duties, except as noted below:
        Example: 27.6
      - `rate.deliveryCommitment` (object)
        Check for estimated delivery date, guarantee (if any), and number of days for shipment to be delivered.
        Example: {}
      - `rate.deliveryCommitment.estimatedDeliveryDateTime` (string)
        Estimated Delivery Date.
        Example: "2024-03-25"
      - `rate.deliveryCommitment.maxEstimatedNumberOfDays` (string)
        Max days to deliver shipment.
        Example: 5
      - `rate.deliveryCommitment.guarantee` (string)
        Checks if there is any guarantee or committment for shipment delivery.
        Example: "None"
      - `rate.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"
      - `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: "1"
      - `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.totalTaxAmount` (number)
        Total tax amount applied to the shipment. Returned in case of canada carriers.
        Example: 2.69
      - `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
      - `references` (object)
        References are tags or information that is printed on Shipping Label based on the customer's requirement.  Reference Fields can have values/indication like department name, invoice no., package description, purchase order no., carrier note, cost account no., transportation no., or PO no., print custom message etc. Each of the reference field can have only one indication/value.
      - `references.reference1` (string)
        Reference 1 can have one of the above-indicated values/information, which is printed on Label. For FedEx, it is a Reference number in the invoice. For USPS, it is a print custom message that will be printed vertically at the top of the label.  Max length = 30.
        Example: "custome message"
      - `references.reference2` (string)
        Reference 2 can have other details as indicated in the example values above. This is also printed on Label. For FedEx, this is the department. For USPS, it is a print custom message that will be printed horizontally at the bottom of the label.  Max length = 30.
        Example: "SendTech"
      - `references.reference3` (string)
        Reference 3 can have the information which were not fulfilled in Ref1 and Ref2. For FedEx, this is the invoice number.  Max length = 30.
        Example: "98437"
      - `references.reference4` (string)
        Reference 4 can have more information which were not provided in Ref1, Ref2, or Ref3. For FedEx, this is the PO number.  Max length = 30.
        Example: "Overnight Shipping"
      - `references.poNumber` (string)
        The Purchase Order Number. For FedEx, the PO number is passed in the reference4 field.  Max length = 30.
        Example: "R2W 2H2"
      - `references.department` (string)
        The department of the Recipient.For FedEx, the Department is passed in reference2 field.  Max length = 30.
        Example: "Name department"
      - `references.additionalReference1` (string)
        Additional Reference is hardly used, but sender can mention anything as per requirement, just for Recipient's information.  Max length = 30.
        Example: "612987641"
      - `references.additionalReference2` (string)
        Any tags or information that to be shown to Recipient, can be mentioned by Sender, which is not indicated on AdditionalReference1 field, e.g., PO No, Order No. etc. Max length = 30.
        Example: "989"
      - `references.shippingNotes` (string)
        Shipping notes are the instructions or messages that the sender wants to communicate to the carrier or the recipient regarding the handling, delivery, or any special requirements for the shipment. These notes can include specific delivery instructions, handling precautions, or any other relevant information that can assist in ensuring the safe and accurate delivery of the package.  Max length = 30.
        Example: "Handle with care."
      - `references.ShipperReference` (string)
        Shipper Reference is a unique identifier or code assigned by the shipper to a specific shipment or package.  Max length = 30.
        Example: "REF123456789"
      - `references.transportationReference` (string)
        Transportation Reference is a unique identifier or code used to track and manage the transportation of a shipment or package throughout the shipping process.  Max length = 30.
        Example: "TRANSREF987654321"
      - `printStatus` (string)
        Status of the Printed Label.
        Example: "submitted"
      - `printError` (object)
      - `printError.code` (string)
        indicates error code of print
        Example: "validation_error"
      - `printError.message` (string)
        Error message if print failed
        Example: "Api is not supported for your 1.10.15 version please install latest dh version"
      - `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
      - `soldToAddress` (object)
        Billing address of the buyer responsible for the shipment payment. It can be domestic or international address. This is a required field for carrier UPS.
- If the importer is the same as the final recipient, the toAddress and soldToAddress must match.
- If the importer is different from the final recipient, enter the importer address in the soldToAddress and enter the final recipient's address in the toAddress.
      - `soldToAddress.addressLine1` (string)
        Primary street address of the billing entity.
        Example: "70 Hanlan RD"
      - `soldToAddress.addressLine2` (string)
        Additional address information such as apartment, suite, or unit number.
        Example: "Suite 101"
      - `soldToAddress.addressLine3` (string)
        Optional extra address details.
        Example: "Near central market"
      - `soldToAddress.company` (string)
        The name of the company associated with the SoldTo address.
        Example: "ABC Company"
      - `soldToAddress.name` (string)
        The contact person's full name for the billing entity.
        Example: "John Doe"
      - `soldToAddress.phone` (string)
        Phone number of the SoldTo entity.
        Example: "905-555-1234"
      - `soldToAddress.email` (string)
        Email address of the SoldTo entity.
        Example: "billing@abccompany.com"
      - `soldToAddress.residential` (boolean)
        Indicates whether the SoldTo address is a residential location (true/false).
      - `soldToAddress.cityTown` (string)
        City or town of the billing address.
        Example: "Woodbridge"
      - `soldToAddress.stateProvince` (string)
        State or province of the billing address.
        Example: "ON"
      - `soldToAddress.postalCode` (string)
        Postal or ZIP code of the billing address.
        Example: "L4L 3P6"
      - `soldToAddress.countryCode` (string)
        Two-letter country code of the billing address (ISO 3166-1 alpha-2).
        Example: "CA"
      - `additionalAddresses` (array)
        A list of additional addresses associated with the shipment. 
- Each object includes an address and its designated type, such as BROKER or other parties involved in customs or shipping processes. 
- Additional address could be domestic or International both.
      - `additionalAddresses.address` (object)
        The additional address details.
      - `additionalAddresses.address.residential` (boolean)
        If the address is residential.
      - `additionalAddresses.address.phone` (string)
        Contact phone number for the address.
        Example: "732-443-1007"
      - `additionalAddresses.address.countryCode` (string)
        The ISO 2-letter country code.
        Example: "US"
      - `additionalAddresses.address.company` (string)
        The name of the company associated with the address.
        Example: "ABC Company"
      - `additionalAddresses.address.postalCode` (string)
        ZIP or postal code.
        Example: "08810-1411"
      - `additionalAddresses.address.cityTown` (string)
        Name of the city or town.
        Example: "DAYTON"
      - `additionalAddresses.address.name` (string)
        Name of the contact person.
        Example: "Warehouse Manager"
      - `additionalAddresses.address.stateProvince` (string)
        State or province code.
        Example: "NJ"
      - `additionalAddresses.address.addressLine1` (string)
        Primary street address line.
        Example: "2270 US HIGHWAY 130"
      - `additionalAddresses.addressType` (string)
        Type of the additional address (e.g., BROKER). This is required if passing additionalAddresses. Note: The addressType SHIPPER is returned only in USPS responses.
        Enum: same as `additionalAddresses.addressType` in "By Carrier" (7 values)
      - `shipmentOptions` (object)
        Example: {"addToManifest":true,"receiptOption":"noOptions","shipperId":"2000084646","billingWeight":"16.00"}
      - `shipmentOptions.addToManifest` (boolean)
        The option asks if the shipment is to be added for Manifest, so that the shipment will reflect in the Manifest Form while compilation. The value can be 'true' or 'false'. Applicable for USPS and CPC carriers.
        Example: true
      - `shipmentOptions.printCustomMessage` (string)
        It prints a custom message on shipping label. Custom messages are not supported for RMG shipments.
        Example: "Print Message 1"
      - `shipmentOptions.receiptOption` (string)
        It provides options to print receipt with shipping label. Only applicable for USPS, and it can have the indicated possible/ enum values.
        Enum: "RECEIPT_ONLY", "RECEIPT_WITH_INSTRUCTIONS", "or NO_OPTIONS"
      - `shipmentOptions.printDepartment` (string)
        It prints the Department on Shipping Label, applicable for FedEx.
        Example: "department"
      - `shipmentOptions.printInvoiceNumber` (string)
        It prints Invoice Number on Shipping Label, applicable for FedEx.
        Example: "invoicenumber"
      - `shipmentOptions.printPONumber` (string)
        It prints Product Order number on Shipping Label, applicable for FedEx.
        Example: "ponumber"
      - `shipmentOptions.shipperId` (string)
        The unique identifier of the known shipper.
        Example: "2000084646"
      - `shipmentOptions.minimalAddressValidation` (boolean)
        Allows performing minimal address validation during shipment creation. the addressLine1 field is not validated if set to true.
Minimal address validation is supported only for these APIs:
   - Create Shipment
   - Create Bulk Shipments
   - Create Multipiece Shipment
        Enum: same as `shipmentOptions.minimalAddressValidation` in "By Carrier" (2 values)
      - `shipmentOptions.billingWeight` (string)
        The weight used by the carrier to calculate the shipping cost. This value is determined as the greater of the actual weight and the dimensional weight.
        Example: "16.00"
      - `shipmentOptions.bookingConfirmationNumber` (string)
        This is an advanced booking number required for FedEx Express Freight shipments. It must be obtained through the appropriate channel in the shipment's origin country. Without a valid booking confirmation number, pickup and space allocation for the shipment are not guaranteed. The booking number must be between 5 and 12 digits.
        Example: "XXXX56789812"
      - `carrierPayments` (array) — one of:
        Defines how carrier charges are billed to a third party. Use this field to specify 
account and charge type details for transportation and/or duties and taxes. This 
field is optional and currently supported for FedEx, UPS, DHL Express and Purolator.

- If no party (who will pay for TRANSPORTATION_CHARGES or duties and taxes) is explicitly specified during shipment creation, the charges will automatically default to the sender (shipper). To direct charges to a different party, the appropriate bill-to details must be provided in the request.
        - FedEx Carrier Payment:
          - `accountNumber` (string)
            The FedEx account number of the party to be billed.
            Example: "602684342"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Billing party for the shipment charges.
            Enum: same as `party` in "FedEx Carrier Payment" (4 values)
          - `typeOfCharge` (string)
            The type of charge billed to the specified party. Possible values:
- TRANSPORTATION_CHARGES: Transportation-related charges only. When billing transportation charges to the sender (BILL_SENDER), the accountNumber must match the account used to initiate the shipment.
- DUTIES_AND_TAXES: Duties and taxes only
- ALL_CHARGES: All Shipment Charges (Transportatio and Duties and Taxes)Required when using BILL_RECEIVER_CONTRACT (FedEx COLLECT); includes all charges
            Enum: same as `typeOfCharge` in "FedEx Carrier Payment" (3 values)
        - UPS Carrier Payment:
          - `accountNumber` (string)
            The UPS account number of the party to be billed.
            Example: "1Z999AA10123456784"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Party to be billed.
            Enum: same as `party` in "UPS Carrier Payment" (3 values)
          - `typeOfCharge` (string)
            The type of charge billed to the specified party. UPS requires split charges. ALL_CHARGES is not supported.
            Enum: same as `typeOfCharge` in "UPS Carrier Payment" (2 values)
        - DHL Express Carrier Payment:
          - `accountNumber` (string)
            The DHL Express account number of the party to be billed.
            Example: "DHL123456"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Billing party for DHL Express. Account number is required for all scenarios.
            Enum: same as `party` in "FedEx Carrier Payment" (4 values)
          - `typeOfCharge` (string)
            The type of charge billed to the specified party.
            Enum: same as `typeOfCharge` in "FedEx Carrier Payment" (3 values)
        - Purolator Carrier Payment:
          - `accountNumber` (string)
            The DHL Express account number of the party to be billed.
            Example: "DHL123456"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Billing party for DHL Express. Account number is required for all scenarios.
            Enum: same as `party` in "FedEx Carrier Payment" (4 values)
          - `typeOfCharge` (string)
            The type of charge billed to the specified party.
            Enum: same as `typeOfCharge` in "FedEx Carrier Payment" (3 values)
    - internationalShipmentResponseV2:
      - `correlationId` (string)
        Key assigned by the shipping system to the transaction.
        Example: "5ecfa0ecc6454caeb90cxxxxxxxxxxx"
      - `shipmentId` (string)
        A unique identifier shipment tracking number.
        Example: "USPS2200692189973693"
      - `parcelTrackingNumber` (string)
        The unique tracking number assigned to the parcel for tracking purposes.
        Example: "CE956743785US"
      - `labelLayout` (array)
        Details about the shipping label generated.
      - `labelLayout.contentType` (string)
        Specifies how the label content is encoded.
        Enum: same as `labelLayout.contentType` in "domesticShipmentResponseV2" (2 values)
      - `labelLayout.contents` (string)
        The URL to access the label document if the content type is URL, or the Base64-encoded data if the content type is BASE64.
        Example: "https://prv-labels-cls.gcs.pitneycloud.com/usps/910187923/outbound/label/5ecfa0ecc6454caeb90c55d35229de90.pdf"
      - `labelLayout.fileFormat` (string)
        Defines the format of the label document.
        Example: "PDF"
      - `labelLayout.size` (string)
        Specifies the label size of the shipment.
        Example: "DOC_4X6"
      - `labelLayout.type` (string)
        Defines the type of the shipment.
        Enum: same as `labelType` in "International Shipment" (1 values)
      - `parcel` (object)
        Details of the parcel being shipped.
      - `parcel.length` (integer)
        Length of the parcel. Length is always the greatest of the three dimensions. The other two dimensions are used in the calculation of the girth.
        Example: 2
      - `parcel.height` (integer)
        Height of the parcel. By convention, the height is the smallest dimension of the parcel.
        Example: 1
      - `parcel.width` (integer)
        Width of the parcel. There is no strict rule as to which element is the width or the height, but typically, by convention the width is the second greatest dimension of a parcel.
        Example: 1
      - `parcel.dimUnit` (string)
        DimUnit is a standard for measuring the physical quantities of specified dimension parameters.
        Enum: "IN"
      - `parcel.weightUnit` (string)
        WeightUnit is a standard for measuring the physical quantities of specified weight.
        Enum: same as `customs.customsItems.weightUnit` in "Military Mail Shipment" (1 values)
      - `parcel.weight` (number)
        Weight is the measure of how heavy an object is.
        Example: 2
      - `parcel.packageValue` (number)
        Declared value of the package.
        Example: 2
      - `rate` (object)
        Details of the shipping rate.
      - `rate.baseCharge` (number)
        The base service charge is payable to the carrier, excluding special service charges.
        Example: 40.91
      - `rate.carrier` (string)
        The carrier used for the shipment. Carrier is a service used to transport the parcels or couriers from one place to another.
        Example: "USPS"
      - `rate.currencyCode` (string)
        Currency used for the shipping charges. It is a three-character (all uppercase letter) symbol of a currency according to the international ISO standard. As a rule, the first two letters denote the name of the country, and the third letter, the name of the currency thereof. For example, for US - the currency is Dollars and code is USD. Similarly for Canada, the currencycode is CAD, and for India, it is INR.
        Example: "USD"
      - `rate.deliveryCommitment` (object)
        Check for estimated delivery date, guarantee (if any), and number of days for shipment to be delivered.
      - `rate.deliveryCommitment.additionalDetails` (string)
        Additional information about the delivery.
        Example: "6 - 10 business days to many major markets"
      - `rate.deliveryCommitment.guarantee` (string)
        Checks if there is any guarantee or committment for shipment delivery.
        Example: "NONE"
      - `rate.deliveryCommitment.maxEstimatedNumberOfDays` (string)
        Maximum number of estimated days for delivery.
        Example: "10"
      - `rate.deliveryCommitment.minEstimatedNumberOfDays` (string)
        Minimum number of estimated days for delivery.
        Example: "6"
      - `rate.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: "92630"
      - `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)
        Rate type identifier. Its value can be CONTRACT_RATES, COMMERCIAL or COMMERCIAL_BASE for USPS and COMMERCIAL for other carriers depending on the Pitney Bowes contract/subscription.
        Example: "CONTRACT_RATES"
      - `rate.serviceId` (string)
        The unique identifier given to the carrier specific service.
        Example: "PMI"
      - `rate.totalCarrierCharge` (number)
        Total charges for the carrier service including special service fees, surcharges, and any international taxes and duties.
        Example: 40.91
      - `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
      - `references` (object)
        References associated with the shipment.
      - `references.reference1` (string)
        Reference 1.
        Example: "123456"
      - `references.reference2` (string)
        Reference 2.
        Example: "SendTech"
      - `references.reference3` (string)
        Reference 3.
        Example: "98437"
      - `references.reference4` (string)
        Reference 4.
        Example: "FedEx Overnight Shipping"
      - `references.department` (string)
        Department name associated with the shipment.
        Example: "Name department"
      - `references.poNumber` (string)
        Purchase order number.
        Example: "R2W 2H2"
      - `references.additionalReference1` (string)
        Additional reference 1.
        Example: "612987641"
      - `references.additionalReference2` (string)
        Additional reference 2.
        Example: "989"
      - `print` (object)
        Details of the print operation.
      - `print.status` (string)
        Status of the print operation.
        Example: "error"
      - `print.jobId` (string)
        Job ID for the print operation.
        Example: "0244nOWpqlgzE2n"
      - `print.error` (object)
        Details of the print error.
      - `print.error.code` (string)
        Error code for the print operation.
        Example: "not_found"
      - `print.error.message` (string)
        Error message for the print operation.
        Example: "printer not found for given alias: test"
      - `print.error.additionalCode` (string)
        Additional error code.
        Example: "DH_NF_20002"
      - `print.error.additionalInfo` (string)
        Additional information about the error.
        Example: "Alias name not found, please create a printer mapping"
      - `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.
        Example: "24182 Kathy Ave"
      - `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.cityTown` (string)
        The name of the city or town the Sender's address belongs to.
        Example: "Lake Forest"
      - `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.
        Example: "CA"
      - `fromAddress.postalCode` (string)
        The Postal Code or ZIP Code of the address.  For CA addresses, it is a six-character alphanumeric string Postal Code in this format: 'A1A 1A1'.  While for US addresses, it is either the 5-digit or 9-digit ZIP Code in one of the following formats: '12345' or '12345-6789'.
        Example: "92630-1827"
      - `fromAddress.countryCode` (string)
        The country in which the sender's address is located. The value is the two-character ISO Code of the country from the ISO country list.  It is ISO 3166-1 Alpha-2 standard values. This is included for the best results of search, 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.
        Example: "US"
      - `fromAddress.company` (string)
        The name of the company, in case if the sender address is not residential.
        Example: "PB"
      - `fromAddress.phone` (string)
        This is sender's phone number. The digits can be with or without spaces or hyphens.
        Example: "203-555-1214"
      - `fromAddress.email` (string)
        This is sender's valid email. Email is required if the customer is using GoFor Carrier.
        Example: "test2user@gmail.com"
      - `fromAddress.residential` (boolean)
        The specified address can be Residential or Official. In case if the address is Residential, the boolean value is 'true', else it is 'false'.
        Example: true
      - `fromAddress.status` (string)
        The validation status of the sender's address.
        Example: "VALIDATED_AND_NOT_CHANGED"
      - `toAddress` (object)
        The complete address of the Sender.
      - `toAddress.name` (string)
        The name of the Sender to which this address points.
        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 Sender.
        Example: "771 Atlantic Ave"
      - `toAddress.cityTown` (string)
        The name of the city or town the Sender's address belongs to.
        Example: "BRAMPTON"
      - `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.
        Example: "ON"
      - `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'.
        Example: "L6Y 2N4"
      - `toAddress.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.
        Example: "CA"
      - `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)
        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
      - `toAddress.taxId` (string)
        The Tax Identification Number (TIN). TIN Number is supported for FedEx as of now. Max character length = 18. 
- EIN, VAT, GST, and IOSS are mapped to BUSINESS_NATIONAL.
- EORI is mapped to BUSINESS_UNION.
- RFC with a length of 12 characters is mapped to BUSINESS_NATIONAL.
- RFC with a length of 13 characters is mapped to PERSONAL_NATIONAL.
      - `toAddress.taxIdType` (string)
        Specifies the type of tax identification being provided.
        Enum: same as `soldToAddress.taxIdType` in "By Carrier" (6 values)
      - `soldToAddress` (object)
        Billing address of the buyer responsible for the shipment payment. It can be domestic or international address. 
- If the importer is the same as the final recipient, the toAddress and soldToAddress must match.
- If the importer is different from the final recipient, enter the importer address in the soldToAddress and enter the final recipient's address in the toAddress.
      - `soldToAddress.addressLine1` (string)
        Primary street address of the billing entity.
        Example: "1600 Amphitheatre Parkway"
      - `soldToAddress.addressLine2` (string)
        Additional address information such as apartment, suite, or unit number.
        Example: "Suite 101"
      - `soldToAddress.addressLine3` (string)
        Optional extra address details.
        Example: "Near central market"
      - `soldToAddress.company` (string)
        The name of the company associated with the SoldTo address.
        Example: "ABC Company"
      - `soldToAddress.name` (string)
        The contact person's full name for the billing entity.
        Example: "John Doe"
      - `soldToAddress.phone` (string)
        Phone number of the SoldTo entity.
        Example: "650-253-0000"
      - `soldToAddress.email` (string)
        Email address of the SoldTo entity.
        Example: "billing@abccompany.com"
      - `soldToAddress.residential` (boolean)
        Indicates whether the SoldTo address is a residential location (true/false).
      - `soldToAddress.cityTown` (string)
        City or town of the billing address.
        Example: "Mountain View"
      - `soldToAddress.stateProvince` (string)
        State or province of the billing address.
        Example: "CA"
      - `soldToAddress.postalCode` (string)
        Postal or ZIP code of the billing address.
        Example: "94043"
      - `soldToAddress.countryCode` (string)
        Two-letter country code of the billing address (ISO 3166-1 alpha-2).
        Example: "US"
      - `soldToAddress.taxId` (string)
        The Tax Identification Number (TIN). TIN Number is supported for FedEx as of now. Max character length = 18. 
- EIN, VAT, GST, and IOSS are mapped to BUSINESS_NATIONAL.
- EORI is mapped to BUSINESS_UNION.
- RFC with a length of 12 characters is mapped to BUSINESS_NATIONAL.
- RFC with a length of 13 characters is mapped to PERSONAL_NATIONAL.
      - `soldToAddress.taxIdType` (string)
        Specifies the type of tax identification being provided.
        Enum: same as `soldToAddress.taxIdType` in "By Carrier" (6 values)
      - `additionalAddresses` (array)
        A list of additional addresses associated with the shipment. 
- Each object includes an address and its designated type, such as BROKER or other parties involved in customs or shipping processes. 
- Additional address could be domestic or International both.
      - `additionalAddresses.address` (object)
        The additional address details.
      - `additionalAddresses.address.residential` (boolean)
        If the address is residential.
      - `additionalAddresses.address.phone` (string)
        Contact phone number for the address.
        Example: "732-443-1007"
      - `additionalAddresses.address.countryCode` (string)
        The ISO 2-letter country code.
        Example: "US"
      - `additionalAddresses.address.company` (string)
        The name of the company associated with the address.
        Example: "ABC Company"
      - `additionalAddresses.address.postalCode` (string)
        ZIP or postal code.
        Example: "08810-1411"
      - `additionalAddresses.address.cityTown` (string)
        Name of the city or town.
        Example: "DAYTON"
      - `additionalAddresses.address.name` (string)
        Name of the contact person.
        Example: "Warehouse Manager"
      - `additionalAddresses.address.stateProvince` (string)
        State or province code.
        Example: "NJ"
      - `additionalAddresses.address.addressLine1` (string)
        Primary street address line.
        Example: "2270 US HIGHWAY 130"
      - `additionalAddresses.addressType` (string)
        Type of the additional address (e.g., BROKER). This is required if passing additionalAddresses. Note: The addressType SHIPPER is returned only in USPS responses.
        Enum: same as `additionalAddresses.addressType` in "By Carrier" (7 values)
      - `altReturnAddress` (object)
        This is an optional field. if a package shipped from Location_A to Location_B needs to return to Location_C. The alternate address will be printed on the label. Use this object to specify a return address different from the fromAddress. Supported by USPS, FedEx, UPS, and Purolator.
      - `altReturnAddress.addressLine1` (string)
        The first line of the alternate return address, such as a street address or PO Box.
        Example: "27 Waterview Dr"
      - `altReturnAddress.addressLine2` (string)
        The addressLine2 contains Street address or Landmark (if any).
        Example: "near abc street"
      - `altReturnAddress.addressLine3` (string)
        The addressLine3 contains P.O. Box (if any) near the address.
        Example: "near xyz street"
      - `altReturnAddress.company` (string)
        The name of the company for the alternate return address, in case if the recipient's address is not residential.  Max length = 30.
        Example: "PB"
      - `altReturnAddress.email` (string)
        The email address of the recipient. It can be person's email address or company email address (for non-residential).
        Example: "user@email.com"
      - `altReturnAddress.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
      - `altReturnAddress.cityTown` (string)
        The city or town for the alternate return address.
        Example: "Shelton"
      - `altReturnAddress.countryCode` (string)
        The country in which the address is located. 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.
        Example: "US"
      - `altReturnAddress.name` (string)
        The name of the recipient or organization for the alternate return address.
        Example: "User Name"
      - `altReturnAddress.phone` (string)
        The phone number associated with the alternate return address.
        Example: "203-555-1213"
      - `altReturnAddress.postalCode` (string)
        The postal or ZIP code for the alternate return address.
        Example: "06484"
      - `altReturnAddress.stateProvince` (string)
        The 2-letter state or province code for the alternate return address.
        Example: "CT"
      - `shipmentOptions` (object)
        Options for the shipment.
      - `shipmentOptions.addToManifest` (boolean)
        The option asks if the shipment is to be added for Manifest, so that the shipment will reflect in the Manifest Form while compilation. The value can be 'true' or 'false'. Applicable for USPS and CPC carriers.
        Example: true
      - `shipmentOptions.billingWeight` (string)
        The weight used by the carrier to calculate the shipping cost. This value is determined as the greater of the actual weight and the dimensional weight.
        Example: "128.0"
      - `shipmentOptions.bookingConfirmationNumber` (string)
        This is an advanced booking number required for FedEx Express Freight shipments. It must be obtained through the appropriate channel in the shipment's origin country. Without a valid booking confirmation number, pickup and space allocation for the shipment are not guaranteed. The booking number must be between 5 and 12 digits.
        Example: "XXXX56789812"
      - `carrierPayments` (array) — one of:
        Defines how carrier charges are billed to a third party. Use this field to specify 
account and charge type details for transportation and/or duties and taxes. This 
field is optional and currently supported for FedEx, UPS, DHL Express and Purolator.

- If no party (who will pay for TRANSPORTATION_CHARGES or duties and taxes) is explicitly specified during shipment creation, the charges will automatically default to the sender (shipper). To direct charges to a different party, the appropriate bill-to details must be provided in the request.
        - FedEx Carrier Payment:
          - `accountNumber` (string)
            The FedEx account number of the party to be billed.
            Example: "602684342"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Billing party for the shipment charges.
            Enum: same as `party` in "FedEx Carrier Payment" (4 values)
          - `typeOfCharge` (string)
            The type of charge billed to the specified party. Possible values:
- TRANSPORTATION_CHARGES: Transportation-related charges only. When billing transportation charges to the sender (BILL_SENDER), the accountNumber must match the account used to initiate the shipment.
- DUTIES_AND_TAXES: Duties and taxes only
- ALL_CHARGES: All Shipment Charges (Transportatio and Duties and Taxes)Required when using BILL_RECEIVER_CONTRACT (FedEx COLLECT); includes all charges
            Enum: same as `typeOfCharge` in "FedEx Carrier Payment" (3 values)
        - UPS Carrier Payment:
          - `accountNumber` (string)
            The UPS account number of the party to be billed.
            Example: "1Z999AA10123456784"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Party to be billed.
            Enum: same as `party` in "UPS Carrier Payment" (3 values)
          - `typeOfCharge` (string)
            The type of charge billed to the specified party. UPS requires split charges. ALL_CHARGES is not supported.
            Enum: same as `typeOfCharge` in "UPS Carrier Payment" (2 values)
        - DHL Express Carrier Payment:
          - `accountNumber` (string)
            The DHL Express account number of the party to be billed.
            Example: "DHL123456"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Billing party for DHL Express. Account number is required for all scenarios.
            Enum: same as `party` in "FedEx Carrier Payment" (4 values)
          - `typeOfCharge` (string)
            The type of charge billed to the specified party.
            Enum: same as `typeOfCharge` in "FedEx Carrier Payment" (3 values)
        - Purolator Carrier Payment:
          - `accountNumber` (string)
            The DHL Express account number of the party to be billed.
            Example: "DHL123456"
          - `countryCode` (string)
            Two-letter ISO country code of the party to be billed.
            Example: "US"
          - `postalCode` (string)
            Postal code of the party to be billed.
            Example: "30305"
          - `party` (string)
            Billing party for DHL Express. Account number is required for all scenarios.
            Enum: same as `party` in "FedEx Carrier Payment" (4 values)
          - `typeOfCharge` (string)
            The type of charge billed to the specified party.
            Enum: same as `typeOfCharge` in "FedEx Carrier Payment" (3 values)
      - `customs` (object)
        Customs information required for international shipments.
      - `customs.customsInfo` (object, required)
        This is additional customs information required along with item details.
      - `customs.customsInfo.reasonForExport` (string, required)
        Reason for exporting the items.
        Enum: same as `customs.customsInfo.reasonForExport` in "By Carrier" (6 values)
      - `customs.customsInfo.comments` (string)
        Free-form comments regarding the exported shipment.
        Example: "Test comment"
      - `customs.customsInfo.invoiceNumber` (string)
        The commercial invoice number assigned by the exporter.
        Example: "001189223"
      - `customs.customsInfo.importerCustomsReference` (string)
        A reference number used by the importer, such as a VAT number, PO number, or insured number.
        Example: "987654"
      - `customs.customsInfo.sdrValue` (number)
        When an international parcel is insured, the insured value must be expressed in Special Drawing Rights values.
        Example: 23.32
      - `customs.customsInfo.EELPFC` (string)
        A number provided by the Automated Export System (AES).  Required if the item is more than $2,500 USD, per Schedule B export codes.  Required if EELPFC  is AES ITN.
- AES ITN is a unique transaction number generated by the Automated Export System (AES) when export data is filed for international shipments from the U.S.
- The ITN format is AES XYYYYMMDDNNNNNN, where X indicates the type, YYYYMMDD is the filing date, and NNNNNN is a 6-digit number. Example: AES X20250327123456
- If the ITN is not available, an exemption format may be used: AESDOWN [Filer ID] [mm/dd/yyyy]. Example: AESDOWN 12345678912 03/27/2025
        Example: "NOEEI 30.2D2"
      - `customs.customsInfo.currencyCode` (string, required)
        The currency used for declared value. Use three uppercase letters, per ISO 4217.
        Example: "USD"
      - `customs.customsInfo.fromCustomsReference` (string)
        Free-form reference information provided by the requestor of the shipment. Depending on the carrier this information may or may not be rendered on the customs documents.
        Example: "EFEFE4554545"
      - `customs.customsInfo.licenseNumber` (string)
        The export license number associated with the commodity.
        Example: "456ABC123"
      - `customs.customsInfo.certificateNumber` (string)
        The certificate number associated with the commodity.
        Example: "987"
      - `customs.customsInfo.customsDeclaredValue` (number, required)
        Item value in mentioned currencyCode.
        Example: 6000
      - `customs.customsInfo.termsOfSale` (string)
        Defines the delivery and payment terms between the shipper and recipient. Currenty supported by carriers - UPS, FedEx and DHL. - Common values include:
  - CIP: Carriage and Insurance Paid to
  - CPT: Carriage Paid To
  - DAP: Delivered at Place
  - DAT: Delivered at Terminal
  - DDP: Delivered Duty Paid
  - EXW: Ex Works
  - FCA: Free Carrier
        Enum: same as `customs.customsInfo.termsOfSale` in "By Carrier" (7 values)
      - `customs.customsItems` (array, required)
        Items included in the customs declaration.
      - `customs.customsItems.description` (string)
        A detailed description of the commodity, up to 255 characters. The description will appear on the customs form. If the shipment has multiple types of items, create a separate customsItems object for each. Each description will appear on the form.
        Example: "Books"
      - `customs.customsItems.itemId` (string)
        This is the unique identifier for the commodity.
        Example: "item1234"
      - `customs.customsItems.orderNumber` (string)
        The unique identifier for the order.
        Example: "ORD1234"
      - `customs.customsItems.quantity` (number)
        Enter the total number of items of this type of commodity.
        Example: 1
      - `customs.customsItems.unitPrice` (number)
        The price of one item of this type of commodity.
        Example: 3000
      - `customs.customsItems.weightUnit` (string)
        The unit of measurement. This field is required by the unitWeight object.
        Example: "OZ"
      - `customs.customsItems.weight` (number)
        Weight of the item.
        Example: 0.1
      - `customs.customsItems.hSTariffCode` (string)
        The destination country's tariff-classification number (HS code) for the commodity. Most countries use the six-digit Harmonized System (HS) as the basis for their tariff classifications and then add digits for more detail. The maximum length for an HS code is 14 characters. The HS code will appear on the customs form. If the shipment has multiple types of items, create a separate customsItems object for each. HS Code is required for RMG b2b shipment.
        Example: "AST559"
      - `customs.customsItems.originCountryCode` (string)
        The two-character ISO country code of the shipment's origin country. Use ISO 3166-1 Alpha-2 standard values.
        Example: "US"
      - `customs.customsDocuments` (array)
        Use this field to attach Electronic Trade Documents (ETDs) to your DHL international shipment. 
Each item should represent a document uploaded previously using the [Upload ETD API](/openapi/shipping/electronic-trade-document/uploadetd).
- For DHL, if you pass this field, ensure the selected service type is PAPERLESS.
- The s3FileId value must be taken from the [Upload ETD API response](/openapi/shipping/electronic-trade-document/uploadetd).
> Electronic trade document must upload before shipment label creation.
      - `customs.customsDocuments.fileName` (string, required)
        The name of the uploaded trade document file.
        Example: "invoice.pdf"
      - `customs.customsDocuments.s3FileId` (string, required)
        The relative file path where the document is stored in the S3 bucket.
        Example: "uploads/shipping/intl_docs/sa58a03/0oa2bxnhu03i48mh50h8/NJ3ww7gv73kwDJK/DRNgGjEraOvV8ZB_invoice.pdf"
      - `customs.customsDocuments.documentType` (string, required)
        Type of the uploaded document. This value is referenced when generating customs declarations.
Must match the type used during document upload.
        Enum: same as `customs.customsDocuments.documentType` in "By Carrier" (7 values)
    - MilitaryMailShipmentResponseV2:
      - `correlationId` (string)
        Key assigned by the shipping system to the transaction.
        Example: "c68db9dd73114910910661b354667d16"
      - `shipmentId` (string)
        The shipmentId, a unique identifier for an individual Shipment.
        Example: "USPS2200608348653900"
      - `parcelTrackingNumber` (string)
        The Tracking number given to the Parcel for tracking purpose.
        Example: "9405509109628000023076"
      - `labelLayout` (array)
        Example: [{"contentType":"URL","contents":"https://stg-labels-cls.gcs.pitneybowes.com/usps/164770160/outbound/label/c68db9dd73114910910661b354667d16.pdf","fileFormat":"PDF","size":"DOC_4X6","type":"SHIPPING_LABEL"}]
      - `labelLayout.contentType` (string)
        Specifies how the label content is encoded.
        Enum: same as `labelLayout.contentType` in "domesticShipmentResponseV2" (2 values)
      - `labelLayout.contents` (string)
        The URL to access the label document if the content type is URL, or the Base64-encoded data if the content type is BASE64
        Example: "XlhBCl5MSDE2LDEyCl5MTDEyMTIKXkZUIDU4MSwgNDAzIF5BVU4gIF5GRDAwMDNeRlMgXkZYIENvbmZpZ3VyYWJsZSBUZXh0IDEK..."
      - `labelLayout.fileFormat` (string)
        Defines the type of the shipment which is printed. For example, Shipping label prints in PDF form.
        Example: "ZPL2"
      - `labelLayout.size` (string)
        Defines the label size of the Shipment, that is, the Shipping Label is available in different Doc Size.
        Example: "DOC_4X6"
      - `labelLayout.type` (string)
        Defines the type of the Shipment.
        Enum: same as `labelType` in "International Shipment" (1 values)
      - `parcel` (object)
        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: same as `parcel.dimUnit` in "By Carrier" (2 values)
      - `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: same as `parcel.weightUnit` in "By Carrier" (2 values)
      - `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
      - `rate` (object)
        Example: {"baseCharge":12.17,"carrier":"USPS","currencyCode":"USD","deliveryCommitment":{"additionalDetails":"By end of Day","estimatedDeliveryDateTime":"2025-09-08","guarantee":"NONE","maxEstimatedNumberOfDays":"3","minEstimatedNumberOfDays":"3"},"inductionPostalCode":"94043","parcelType":"PKG","rateTypeId":"COMMERCIAL","serviceId":"PM","totalCarrierCharge":12.17,"destinationZone":"8","isHazmat":false}
      - `rate.baseCharge` (number)
        The base service charge is payable to the carrier, excluding special service charges.
        Example: 12.17
      - `rate.carrier` (string)
        Carrier is a service used to transport the parcels or couriers from one place to another.
        Example: "USPS"
      - `rate.currencyCode` (string)
        A three-character (all uppercase letter) symbol of a currency according to the international ISO standard. As a rule, the first two letters denote the name of the country, and the third letter, the name of the currency thereof. For example, for US - the currency is Dollars and code is USD. Similarly for Canada, the currencycode is CAD, and for India, it is INR.
        Example: "USD"
      - `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.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                                                         |
      - `rate.surcharges.fee` (number)
        The amount of the surcharge.
        Example: 2.95
      - `rate.surcharges.name` (string)
        The name of surcharge.
        Example: "ResidentialDelivery"
      - `rate.totalCarrierCharge` (number)
        The total amount payable to the carrier, including special service fees, surcharges, and any international taxes and duties, except as noted below:
        Example: 12.17
      - `rate.deliveryCommitment` (object)
        Check for estimated delivery date, guarantee (if any), and number of days for shipment to be delivered.
        Example: {"additionalDetails":"By end of Day","estimatedDeliveryDateTime":"2025-09-08","guarantee":"NONE","maxEstimatedNumberOfDays":"3","minEstimatedNumberOfDays":"3"}
      - `rate.deliveryCommitment.estimatedDeliveryDateTime` (string)
        Estimated Delivery Date.
        Example: "2025-09-08"
      - `rate.deliveryCommitment.maxEstimatedNumberOfDays` (string)
        Max days to deliver shipment.
        Example: "3"
      - `rate.deliveryCommitment.guarantee` (string)
        Checks if there is any guarantee or committment for shipment delivery.
        Example: "NONE"
      - `rate.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: "94043"
      - `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"
      - `references` (object)
        References are tags or information that is printed on Shipping Label based on the customer's requirement.  Reference Fields can have values/indication like department name, invoice no., package description, purchase order no., carrier note, cost account no., transportation no., or PO no., print custom message etc. Each of the reference field can have only one indication/value.
      - `references.reference1` (string)
        Reference 1 can have one of the above-indicated values/information, which is printed on Label. For FedEx, it is a Reference number in the invoice. For USPS, it is a print custom message that will be printed vertically at the top of the label.  Max length = 30.
        Example: "custome message"
      - `references.reference2` (string)
        Reference 2 can have other details as indicated in the example values above. This is also printed on Label. For FedEx, this is the department. For USPS, it is a print custom message that will be printed horizontally at the bottom of the label.  Max length = 30.
        Example: "SendTech"
      - `references.reference3` (string)
        Reference 3 can have the information which were not fulfilled in Ref1 and Ref2. For FedEx, this is the invoice number.  Max length = 30.
        Example: "98437"
      - `references.reference4` (string)
        Reference 4 can have more information which were not provided in Ref1, Ref2, or Ref3. For FedEx, this is the PO number.  Max length = 30.
        Example: "Overnight Shipping"
      - `references.poNumber` (string)
        The Purchase Order Number. For FedEx, the PO number is passed in the reference4 field.  Max length = 30.
        Example: "R2W 2H2"
      - `references.department` (string)
        The department of the Recipient.For FedEx, the Department is passed in reference2 field.  Max length = 30.
        Example: "Name department"
      - `references.additionalReference1` (string)
        Additional Reference is hardly used, but sender can mention anything as per requirement, just for Recipient's information.  Max length = 30.
        Example: "612987641"
      - `references.additionalReference2` (string)
        Any tags or information that to be shown to Recipient, can be mentioned by Sender, which is not indicated on AdditionalReference1 field, e.g., PO No, Order No. etc. Max length = 30.
        Example: "989"
      - `references.shippingNotes` (string)
        Shipping notes are the instructions or messages that the sender wants to communicate to the carrier or the recipient regarding the handling, delivery, or any special requirements for the shipment. These notes can include specific delivery instructions, handling precautions, or any other relevant information that can assist in ensuring the safe and accurate delivery of the package.  Max length = 30.
        Example: "Handle with care."
      - `references.ShipperReference` (string)
        Shipper Reference is a unique identifier or code assigned by the shipper to a specific shipment or package.  Max length = 30.
        Example: "REF123456789"
      - `references.transportationReference` (string)
        Transportation Reference is a unique identifier or code used to track and manage the transportation of a shipment or package throughout the shipping process.  Max length = 30.
        Example: "TRANSREF987654321"
      - `printStatus` (string)
        Status of the Printed Label.
        Example: "submitted"
      - `printError` (object)
      - `printError.code` (string)
        indicates error code of print
        Example: "validation_error"
      - `printError.message` (string)
        Error message if print failed
        Example: "Api is not supported for your 1.10.15 version please install latest dh version"
      - `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)
        Example: {"addToManifest":true,"receiptOption":"noOptions","shipperId":"2000084646"}
      - `shipmentOptions.addToManifest` (boolean)
        The option asks if the shipment is to be added for Manifest, so that the shipment will reflect in the Manifest Form while compilation. The value can be 'true' or 'false'. Applicable for USPS and CPC carriers.
        Example: true
      - `shipmentOptions.printCustomMessage` (string)
        It prints a custom message on shipping label. Custom messages are not supported for RMG shipments.
        Example: "Print Message 1"
      - `shipmentOptions.receiptOption` (string)
        It provides options to print receipt with shipping label. Only applicable for USPS, and it can have the indicated possible/ enum values.
        Enum: same as `shipmentOptions.receiptOption` in "domesticShipmentResponseV2" (3 values)
      - `shipmentOptions.printDepartment` (string)
        It prints the Department on Shipping Label, applicable for FedEx.
        Example: "department"
      - `shipmentOptions.printInvoiceNumber` (string)
        It prints Invoice Number on Shipping Label, applicable for FedEx.
        Example: "invoicenumber"
      - `shipmentOptions.printPONumber` (string)
        It prints Product Order number on Shipping Label, applicable for FedEx.
        Example: "ponumber"
      - `shipmentOptions.shipperId` (string)
        The unique identifier of the known shipper.
        Example: "2000084646"
      - `shipmentOptions.minimalAddressValidation` (boolean)
        Allows performing minimal address validation during shipment creation. the addressLine1 field is not validated if set to true.
Minimal address validation is supported only for these APIs:
   - Create Shipment
   - Create Bulk Shipments
   - Create Multipiece Shipment
        Enum: same as `shipmentOptions.minimalAddressValidation` in "By Carrier" (2 values)
      - `shipmentOptions.billingWeight` (string)
        The weight used by the carrier to calculate the shipping cost. This value is determined as the greater of the actual weight and the dimensional weight.
        Example: "128.0"
      - `customs` (object)
      - `customs.customsItems` (array)
      - `customs.customsItems.description` (string)
        A detailed description of the commodity, up to 255 characters. The description will appear on the customs form. If the shipment has multiple types of items, create a separate customsItems object for each. Each description will appear on the form.
        Example: "T-shirt"
      - `customs.customsItems.hSTariffCode` (object)
        The destination country’s tariff-classification number (HS code) for the commodity. Most countries use the six-digit Harmonized System (HS) as the basis for their tariff classifications and then add digits for more detail. The maximum length for an HS code is 14 characters. The HS code will appear on the customs form. If the shipment has multiple types of items, create a separate customsItems object for each.
        Example: "610910"
      - `customs.customsItems.originCountryCode` (string)
        The two-character ISO country code of the shipment’s origin country. Use ISO 3166-1 Alpha-2 standard values.
        Example: "US"
      - `customs.customsItems.quantity` (number)
        Enter the total number of items of this type of commodity.
        Example: 1
      - `customs.customsItems.unitPrice` (number)
        The price of one item of this type of commodity.
        Example: 10
      - `customs.customsItems.weightUnit` (string)
        The unit of measurement. This field is required by the unitWeight object.
        Enum: same as `customs.customsItems.weightUnit` in "Military Mail Shipment" (1 values)
      - `customs.customsItems.weight` (number)
        The weight of the item.
        Example: 1
      - `customs.customsInfo` (object)
        This is additional customs information required along with item details.
      - `customs.customsInfo.reasonForExport` (string)
        The reason the commodity is being exported.
        Enum: same as `customs.customsInfo.reasonForExport` in "By Carrier" (6 values)
      - `customs.customsInfo.customsDeclaredValue` (number)
        Item value in mentioned currencyCode
        Example: 10
      - `customs.customsInfo.currencyCode` (string)
        The currency used for declared value. Use three uppercase letters, per ISO 4217
        Example: "USD"
      - `customs.customsInfo.EELPFC` (string)
        A number provided by the Automated Export System (AES).  Required if the item is more than $2,500 USD, per Schedule B export codes.  Required if EELPFC  is AES ITN.
- AES ITN is a unique transaction number generated by the Automated Export System (AES) when export data is filed for international shipments from the U.S.
- The ITN format is AES XYYYYMMDDNNNNNN, where X indicates the type, YYYYMMDD is the filing date, and NNNNNN is a 6-digit number. Example: AES X20250327123456
- If the ITN is not available, an exemption format may be used: AESDOWN [Filer ID] [mm/dd/yyyy]. Example: AESDOWN 12345678912 03/27/2025
        Example: "NOEEI 30.2D2"
      - `customs.customsInfo.certificateNumber` (string)
        The certificate number associated with the commodity.
        Example: "123456"
      - `customs.customsInfo.comments` (string)
        Free-form comments regarding the exported shipment.
        Example: "This is a sample comment"
      - `customs.customsInfo.fromCustomsReference` (string)
        Free-form reference information provided by the requestor of the shipment. Depending on the carrier this information may or may not be rendered on the customs documents.
        Example: "EFEFE4554545"
      - `customs.customsInfo.importerCustomsReference` (string)
        A reference number used by the importer, such as a VAT number, PO number, or insured number.
        Example: "dff3433"
      - `customs.customsInfo.invoiceNumber` (string)
        The commercial invoice number assigned by the exporter.
        Example: "123456"
      - `customs.customsInfo.licenseNumber` (string)
        The export license number associated with the commodity.
        Example: "123456"
      - `customs.customsInfo.sdrValue` (number)
        When an international parcel is insured, the insured value must be expressed in Special Drawing Rights values.
        Example: 10

## 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.


