{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/fedex/json-schema/fedex-body-schema.json",
  "title": "body",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/fedex-rate-api-openapi.yml#/components/schemas/body",
  "oneOf": [
    {
      "$ref": "#/$defs/Full_Schema_Quote_Rate"
    },
    {
      "$ref": "#/$defs/MinimumSamplePayload_1"
    },
    {
      "$ref": "#/$defs/FreightSamplePayload-RateResourceDetails_1"
    },
    {
      "$ref": "#/$defs/US_Domestic_Rate_shop"
    },
    {
      "$ref": "#/$defs/FDGSamplePayload-RateResourceDetails-IntraEurope"
    },
    {
      "$ref": "#/$defs/Alternate_Currency_Rate_Quote"
    },
    {
      "$ref": "#/$defs/Express_Freight_Rate_Quote"
    },
    {
      "$ref": "#/$defs/International_Hold_At_Location_with_Adult_Signature_Option"
    },
    {
      "$ref": "#/$defs/International_Multi_Piece_Rate_Quote"
    },
    {
      "$ref": "#/$defs/International_Return_Rate_Quote"
    },
    {
      "$ref": "#/$defs/Intra_Canada_Rate_Quote"
    },
    {
      "$ref": "#/$defs/Intra_Europe_Rate_Quote"
    },
    {
      "$ref": "#/$defs/Intra_India_Cash_On_Delivery_Rate_Quote"
    },
    {
      "$ref": "#/$defs/Intra_Mexico_Express_Saver_Rate_Quote"
    },
    {
      "$ref": "#/$defs/Priority_Alert_Rate_Quote"
    },
    {
      "$ref": "#/$defs/Express_Freight_Saturday_Pickup_Rate_Quote"
    },
    {
      "$ref": "#/$defs/SmartPost_Rate_Quote"
    },
    {
      "$ref": "#/$defs/International_Dry_Ice_Rate_Quote"
    },
    {
      "$ref": "#/$defs/US_Domestic_Multi_Piece_Rate_Quote"
    },
    {
      "$ref": "#/$defs/US_Domestic_Priority_Overnight_Rate_Quote"
    },
    {
      "$ref": "#/$defs/Ground_Home_Delivery_Appointment_Delivery_Rate_Quote"
    },
    {
      "$ref": "#/$defs/International_Ground_Rate_Quote"
    },
    {
      "$ref": "#/$defs/International_Priority_Rate_Quote"
    }
  ],
  "$defs": {
    "AccountNumber": {
      "type": "object",
      "properties": {
        "value": {
          "type": "string",
          "description": "This is the account number. Maximum Length is 9. <br>Example: Your account number"
        }
      },
      "description": "This is the Account number details.<br><i>Note:<ul><li>If the paymentType is Sender, then the account number is optional in shippingChargesPayment.</li></ul>"
    },
    "Address": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string",
          "description": "This is a placeholder for City Name. <br> Example: Beverly Hills"
        },
        "stateOrProvinceCode": {
          "type": "string",
          "description": "This is a placeholder for State or Province code.State code is required for US, CA, PR and not required for other countries. Conditional. Max length is 2. <br> Example: CA <br><a onclick='loadDocReference(\"canadaprovincecodes\")'>Click here to see State Or Province Code</a>"
        },
        "postalCode": {
          "type": "string",
          "description": "Indicate the Postal code. This is optional for non postal-aware countries. Maximum length is 10.<br> Example: 65247<br><a onclick='loadDocReference(\"postalawarecountries\")'>Click here to see Postal aware countries</a>"
        },
        "countryCode": {
          "type": "string",
          "description": "This is the two-letter country code. Maximum length is 2.<br>Example: US<br><a onclick='loadDocReference(\"countrycodes\")'>Click here to see Country Codes</a>"
        },
        "residential": {
          "type": "boolean",
          "description": "Indicate whether this address is residential (as opposed to commercial). <br> Valid values are TRUE and FALSE."
        }
      },
      "description": "This is detailed information on physical location. May be used as an actual physical address (place to which one could go), or as a container of address parts which should be handled as a unit (such as a city-state-ZIP combination within the U.S.)."
    },
    "Address_1": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string",
          "description": "Specify name of city, town, etc.<br> Example: Beverly Hills"
        },
        "stateOrProvinceCode": {
          "type": "string",
          "description": "Specify State or province code. Maximum length is 2.State code is required for US, CA, PR and not required for other countries. Conditional. Max length is 2.<br> Example: CA <br><a onclick='loadDocReference(\"canadaprovincecodes\")'>Click here to see State Or Province Codes</a>"
        },
        "postalCode": {
          "type": "string",
          "description": "Specify the postal code. This is optional for non postal- aware countries. Maximum length is 10.<br> Example: 65247<br><a onclick='loadDocReference(\"postalawarecountries\")'>Click here to see Postal aware countries</a>"
        },
        "countryCode": {
          "type": "string",
          "description": "The two-letter country code. Maximum length is 2.<br>Example: US<br><a onclick='loadDocReference(\"countrycodes\")'>Click here to see Country Codes</a>"
        },
        "residential": {
          "type": "boolean",
          "description": "Indicate whether this address is residential (as opposed to commercial)."
        }
      },
      "description": "This is detailed information on physical location. May be used as an actual physical address (place to which one could go), or as a container of address parts which should be handled as a unit (such as a city-state-ZIP combination within the US). Country code is required. Postal code is required for postal aware countries. State or province code is mandatory for Puerto Rico."
    },
    "Address_2": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string",
          "description": "This is a placeholder for City Name. <br> Example: Beverly Hills"
        },
        "stateOrProvinceCode": {
          "type": "string",
          "description": "This is a placeholder for State or Province code. State code is required for US, CA, PR and not required for other countries. Conditional. Max length is 2 .<br> Example: CA <br><a onclick='loadDocReference(\"canadaprovincecodes\")'>Click here to see State Or Province Code</a>"
        },
        "postalCode": {
          "type": "string",
          "description": "Indicate the Postal code. This is optional for non postal-aware countries. Maximum length is 10.<br> Example: 65247<br><a onclick='loadDocReference(\"postalawarecountries\")'>Click here to see Postal aware countries</a>"
        },
        "countryCode": {
          "type": "string",
          "description": "This is the two-letter country code. Maximum length is 2.<br>Example: US<br><a onclick='loadDocReference(\"countrycodes\")'>Click here to see Country Codes</a>"
        },
        "residential": {
          "type": "boolean",
          "description": "Indicate whether this address is residential (as opposed to commercial)."
        }
      },
      "description": "This is detailed information on physical location. May be used as an actual physical address (place to which one could go), or as a container of address parts which should be handled as a unit (such as a city-state-ZIP combination within the U.S.)."
    },
    "AlcoholDetail": {
      "required": [
        "alcoholRecipientType"
      ],
      "type": "object",
      "properties": {
        "alcoholRecipientType": {
          "type": "string",
          "description": "Specify the recipient type for the alcohol shipment.",
          "enum": [
            "LICENSEE",
            "CONSUMER"
          ]
        },
        "shipperAgreementType": {
          "type": "string",
          "description": "Specify the shipper entity type. <br>Example: Fulfillment house, Retailer or a Winery."
        }
      },
      "description": "Indicate the alcohol shipment details. This object is mandatory if alcohol special service is selected."
    },
    "Alternate_Currency_Rate_Quote": {},
    "BatteryClassificationDetail": {
      "type": "object",
      "properties": {
        "material": {
          "type": "string",
          "description": "Describes the material composition of the battery or cell. Example: LITHIUM_METAL",
          "enum": [
            "LITHIUM_METAL",
            "LITHIUM_ION"
          ]
        },
        "regulatorySubType": {
          "type": "string",
          "description": "Specify the regulation specific classification for the battery or cell.",
          "enum": [
            "IATA_SECTION_II"
          ]
        },
        "packing": {
          "type": "string",
          "description": "Indicate the packing arrangement of the battery or cell with respect to other items within the same package. Example: CONTAINED_IN_EQUIPMENT",
          "enum": [
            "CONTAINED_IN_EQUIPMENT",
            "PACKED_WITH_EQUIPMENT"
          ]
        }
      },
      "description": "Describe the attributes of a battery or cell that are used for classification purposes. Typically this structure would be used to allow customers to declare batteries or cells for which full dangerous goods documentation and procedures are not required."
    },
    "BrokerDetail": {
      "required": [
        "broker",
        "type"
      ],
      "type": "object",
      "properties": {
        "broker": {
          "$ref": "#/$defs/BrokerDetailBroker"
        },
        "type": {
          "type": "string",
          "description": "This is Broker Type.Example:IMPORT",
          "enum": [
            "IMPORT"
          ]
        }
      },
      "description": "These are Broker Detail for the rate quote."
    },
    "BrokerDetailBroker": {
      "allOf": [
        {
          "$ref": "#/$defs/Party"
        },
        {
          "required": [
            "address",
            "contact"
          ],
          "properties": {
            "address": {
              "description": "These are Broker address details."
            },
            "contact": {
              "description": "These are broker contact details such as Name, Email, PhoneNumber."
            }
          }
        }
      ]
    },
    "CODTransportationChargesDetail": {
      "type": "object",
      "properties": {
        "rateType": {
          "type": "string",
          "description": "Specify COD Rate Type.",
          "enum": [
            "ACCOUNT",
            "ACTUAL",
            "CURRENT",
            "CUSTOM",
            "LIST",
            "INCENTIVE",
            "PREFERRED",
            "PREFERRED_INCENTIVE",
            "PREFERRED_CURRENCY"
          ]
        },
        "rateLevelType": {
          "type": "string",
          "description": "Specify whether the rate applied on bundle or indiividual package.",
          "enum": [
            "BUNDLED_RATE",
            "INDIVIDUAL_PACKAGE_RATE"
          ]
        },
        "chargeLevelType": {
          "type": "string",
          "description": "Specify whether the charges applied on current or all packages.",
          "enum": [
            "CURRENT_PACKAGE",
            "SUM_OF_PACKAGES"
          ]
        },
        "chargeType": {
          "type": "string",
          "description": "Specify the Charges Type.",
          "enum": [
            "COD_SURCHARGE",
            "NET_CHARGE",
            "NET_FREIGHT",
            "TOTAL_CUSTOMER_CHARGE"
          ]
        }
      },
      "description": "These are COD Transportation Charges Detail."
    },
    "CommercialInvoice": {
      "type": "object",
      "properties": {
        "shipmentPurpose": {
          "type": "string",
          "description": "The reason for the shipment.  Note: SOLD is not a valid purpose for a Proforma Invoice.",
          "enum": [
            "GIFT",
            "NOT_SOLD",
            "PERSONAL_EFFECTS",
            "REPAIR_AND_RETURN",
            "SAMPLE",
            "SOLD",
            "COMMERCIAL",
            "RETURN_AND_REPAIR",
            "PERSONAL_USE"
          ]
        }
      },
      "description": "The Commercial Invoice element is required for electronic upload of CI data. It will serve to create/transmit an electronic Commercial Invoice through the FedEx system.<br>Customers are responsible for printing their own Commercial Invoice.<br>If you would like FedEx to generate a Commercial Invoice and transmit it to Customs for clearance purposes, you need to specify that in the 'ETDDetail/RequesteDocumentCopies' element.<br> Support consists of a Maximum of 99 commodity line items."
    },
    "Commodity": {
      "type": "object",
      "properties": {
        "description": {
          "type": "string",
          "description": "Indicate the description of the dutiable packages.<br> Maximum Length is 450. <br> Example: DOCUMENTS <br><a onclick='loadDocReference(\"vaguecommoditydescriptions\")'>Click here to see Vague commodity descriptions</a>"
        },
        "weight": {
          "description": "Specify the Total weight of this commodity. This element is used to estimate duties and taxes.",
          "allOf": [
            {
              "$ref": "#/$defs/Weight_2"
            }
          ]
        },
        "quantity": {
          "type": "integer",
          "description": "Specify the total number of units (using quantityUnits as the unit of measure) of this commodity present in the shipment. This element is used to estimate duties and taxes. <br>Example: 1",
          "format": "int32"
        },
        "customsValue": {
          "description": "Specify the required Customs value for this commodity.",
          "allOf": [
            {
              "$ref": "#/$defs/Money"
            }
          ]
        },
        "unitPrice": {
          "allOf": [
            {
              "$ref": "#/$defs/Money"
            },
            {
              "description": "Specifies the unit price of the commodity. "
            }
          ]
        },
        "numberOfPieces": {
          "type": "integer",
          "description": "Specifies the number of pieces for this commodity.<br>Example: 10",
          "format": "int32"
        },
        "countryOfManufacture": {
          "type": "string",
          "description": "This is commodity country of manufacture. This is required. Maximum allowed length is 4. <br>Example: US<br><a onclick='loadDocReference(\"countrycodes\")'>Click here to see Country Codes</a>"
        },
        "quantityUnits": {
          "type": "string",
          "description": "Indicate quantiy unit used. Used to estimate duties and taxes <br> Example: PCS<br><a onclick='loadDocReference(\"harmonizedsystemcodeunitofmeasure-table1\")'>click here to see Commodity Unit Measures</a>"
        },
        "name": {
          "type": "string",
          "description": "Indicate the Commodity name<br>Example: DOCUMENTS"
        },
        "harmonizedCode": {
          "type": "string",
          "description": "This is to specify the Harmonized Tariff System (HTS) code to meet U.S. and foreign governments' customs requirements. These are mainly used to estimate the duties and taxes.<br>Example: A six digit code for Almonds fresh or dried is 080211. The HTS code for pistachios in shell is 080251. The HTS code for fish is HS203.<br>To research the classification for your commodity, use the FedEx Global Trade Manager online at <a href='http://www.fedex.com/gtm' target='_blank'>fedex.com/gtm</a>. You can find the commodities and its respective codes by logging into FedEx and selecting harmonized code option. You will find country-specific information to determine whether your commodity is considered to be a document or non-document for your destination. <br>For additional information about harmonized code, refer to <a href='https://www.usitc.gov/documents/hts_external_guide.pdf' target='_blank'>harmonized code</a>."
        },
        "partNumber": {
          "type": "string",
          "description": "Specify the part number if any. Example: P1"
        }
      }
    },
    "ContactAndAddress": {
      "type": "object",
      "properties": {
        "contact": {
          "$ref": "#/$defs/Contact_2"
        },
        "address": {
          "$ref": "#/$defs/Address_1"
        }
      },
      "description": "Specify the contact and address details of a location."
    },
    "Contact_2": {
      "type": "object",
      "properties": {
        "personName": {
          "type": "string",
          "description": "Specify contact name.<br>Note: Recommended Length is 70. There's no specific validation for the length.<br> Example: John Taylor"
        },
        "emailAddress": {
          "type": "string",
          "description": "Specify contact email address. Maximum length is 80. <br> Example: sample@company.com"
        },
        "phoneNumber": {
          "type": "string",
          "description": "Specify contact phone number. Maximum length is 15. <br> Example: 1234567890"
        },
        "phoneExtension": {
          "type": "string",
          "description": "Specify contact phone extension. Maximum length is 6. <br> Example: 1234"
        },
        "faxNumber": {
          "type": "string",
          "description": "Specify contact fax number. Maximum length is 15. <br> Example: 1234567890"
        },
        "companyName": {
          "type": "string",
          "description": "Specify contact company name. Maximum length is 35."
        }
      },
      "description": "Indicate the contact details."
    },
    "CustomsClearanceDetail": {
      "required": [
        "commodities"
      ],
      "type": "object",
      "properties": {
        "brokers": {
          "type": "array",
          "description": "Conditional.<br>Required if BROKER_SELECT_OPTION is specified as a shipment special service type.  A country code must be specified in addition to one of the following address items: postal code, city, or location id.",
          "items": {
            "$ref": "#/$defs/BrokerDetail"
          }
        },
        "commercialInvoice": {
          "$ref": "#/$defs/CommercialInvoice"
        },
        "freightOnValue": {
          "type": "string",
          "description": " Indicates Freight on value for customs.",
          "enum": [
            "CARRIER_RISK",
            "OWN_RISK"
          ]
        },
        "dutiesPayment": {
          "$ref": "#/$defs/Payment"
        },
        "commodities": {
          "type": "array",
          "description": "Indicates the details about the dutiable packages. Maximum upto 999 commodities per shipment.",
          "items": {
            "$ref": "#/$defs/Commodity"
          }
        }
      },
      "description": "This is Customs clearance data, used for both international and intra-country shipping and rating. Customs commodity data is required for international and intra-country rating. "
    },
    "DangerousGoodsContainer": {
      "type": "object",
      "properties": {
        "offeror": {
          "type": "string",
          "description": "Specify the shipper name(offeror) or contact number. Required on all shipping papers."
        },
        "hazardousCommodities": {
          "type": "array",
          "description": "Specify the kinds and quantities of all hazardous commodities in the current container.",
          "items": {
            "$ref": "#/$defs/HazardousCommodityContent"
          }
        },
        "numberOfContainers": {
          "type": "integer",
          "description": "Indicate the number of containers.",
          "format": "int32"
        },
        "containerType": {
          "type": "string",
          "description": "Indicate the type of container."
        },
        "emergencyContactNumber": {
          "$ref": "#/$defs/PhoneNumber"
        },
        "packaging": {
          "$ref": "#/$defs/HazardousCommodityPackagingDetail"
        },
        "packingType": {
          "type": "string",
          "description": "Indicate the packing type used.",
          "enum": [
            "ALL_PACKED_IN_ONE"
          ]
        },
        "radioactiveContainerClass": {
          "type": "string",
          "description": "Indicate the packaging type of the container used to package the radioactive materials.",
          "enum": [
            "EXCEPTED_PACKAGE",
            "INDUSTRIAL_IP1",
            "INDUSTRIAL_IP2",
            "INDUSTRIAL_IP3",
            "TYPE_A",
            "TYPE_B_M",
            "TYPE_B_U",
            "TYPE_C"
          ]
        }
      },
      "description": "Dangerous Goods Container"
    },
    "DangerousGoodsDetail": {
      "type": "object",
      "properties": {
        "accessibility": {
          "type": "string",
          "description": "Indicate the Dangerous Goods Accessibility Type.<br> Inaccessible means it does not have to be accessible on the aircraft.  Accessible means it must be fully accessible on the aircraft, and is more strictly controlled.",
          "enum": [
            "ACCESSIBLE",
            "INACCESSIBLE"
          ]
        },
        "options": {
          "type": "array",
          "description": "Specify the special handling requested for the package.<br> Example: BATTERY",
          "items": {
            "type": "string",
            "enum": [
              "HAZARDOUS_MATERIALS",
              "BATTERY",
              "ORM_D",
              "REPORTABLE_QUANTITIES",
              "SMALL_QUANTITY_EXCEPTION",
              "LIMITED_QUANTITIES_COMMODITIES"
            ]
          }
        },
        "containers": {
          "type": "array",
          "description": "Indicate one or more containers used to pack dangerous goods commodities.",
          "items": {
            "$ref": "#/$defs/DangerousGoodsContainer"
          }
        },
        "regulation": {
          "type": "string",
          "description": "The hazardous package shipment regulation type.",
          "enum": [
            "ADR",
            "DOT",
            "IATA",
            "ORMD"
          ]
        }
      },
      "description": "Use this object to specify Dangerous Goods shipment Detail."
    },
    "DeliveryOnInvoiceAcceptanceDetail": {
      "type": "object",
      "properties": {
        "recipient": {
          "$ref": "#/$defs/DeliveryOnInvoiceAcceptanceDetailRecipient"
        }
      },
      "description": "Indicate the Delivery On Invoice Acceptance detail. Recipient is required for Delivery On Invoice Special service."
    },
    "DeliveryOnInvoiceAcceptanceDetailRecipient": {
      "allOf": [
        {
          "$ref": "#/$defs/Party_2"
        },
        {
          "required": [
            "address",
            "contact"
          ],
          "properties": {
            "address": {
              "$ref": "#/$defs/DeliveryOnInvoiceAcceptanceDetailRecipient_address"
            },
            "contact": {
              "$ref": "#/$defs/DeliveryOnInvoiceAcceptanceDetailRecipient_contact"
            }
          }
        }
      ]
    },
    "DeliveryOnInvoiceAcceptanceDetailRecipient_address": {
      "required": [
        "countryCode"
      ],
      "properties": {
        "streetLines": {
          "type": "array",
          "description": "This is the combination of number, street name, etc. <br>Note: At least one line is required and streetlines more than 3 will be ignored. Empty lines should not be included. Maximum Length per line is 35.<br>Example: [10 FedEx Parkway, Suite 302, .etc.]",
          "items": {
            "type": "string"
          }
        },
        "countryCode": {
          "type": "string",
          "description": "The two-letter country code. <br>Maximum length is 2.<br>Example: US<br><a onclick='loadDocReference(\"countrycodes\")'>Click here to see Country Codes</a>"
        }
      }
    },
    "DeliveryOnInvoiceAcceptanceDetailRecipient_contact": {
      "required": [
        "companyName",
        "personName",
        "phoneNumber"
      ],
      "properties": {
        "companyName": {
          "type": "string",
          "description": "This is a placeholder for company name. Maximum length is 35."
        },
        "faxNumber": {
          "type": "string",
          "description": "This is a placeholder for Fax number. Maximum length is 15."
        },
        "personName": {
          "type": "string",
          "description": "This is a placeholder for contact person's name. Maximum Length is 70."
        },
        "phoneNumber": {
          "type": "string",
          "description": "This is a placeholder for phone number associated with this contact. Maximum length is 15."
        }
      }
    },
    "Dimensions": {
      "description": "Indicate the dimensions of the package.<br> Following conditions will apply: <ul><li>Dimensions are optional but when added, then all three dimensions must be indicated.</li><li>Dimensions are required with YOUR_PACKAGING package type.</li></ul>Note: The Maximum/minimum dimension values varies based on the services and the packaging types. Refer <a href=\"https://www.fedex.com/en-us/service-guide.html\" target=\"_blank\">FedEx Service Guide</a> for service details related to DIM Weighting for FedEx Express and oversize conditions for FedEx Express and FedEx Ground.",
      "allOf": [
        {
          "$ref": "#/$defs/Dimensions_1"
        },
        {
          "required": [
            "height",
            "length",
            "units",
            "width"
          ],
          "properties": {
            "length": {
              "type": "integer",
              "description": "Indicate the length of the package. No implied decimal places. Maximum value: 999 <br> Example: 20",
              "format": "int32"
            },
            "width": {
              "type": "integer",
              "description": "Indicate the width of the package. No implied decimal places. Maximum value: 999 <br> Example: 10",
              "format": "int32"
            },
            "height": {
              "type": "integer",
              "description": "Indicate the height of the package. No implied decimal places. Maximum value: 999 <br> Example: 10",
              "format": "int32"
            },
            "units": {
              "type": "string",
              "description": "Indicate the unit of measure for the provided dimensions.<br>Valid Values are:<ul><li>IN - Inches</li><li>CM - Centimeters</li></ul>"
            }
          }
        }
      ]
    },
    "Dimensions_1": {
      "type": "object",
      "properties": {
        "length": {
          "type": "integer",
          "description": "Indicate the length of the package. No implied decimal places. Maximum value: 999 <br> Example: 20",
          "format": "int32"
        },
        "width": {
          "type": "integer",
          "description": "Indicate the width of the package. No implied decimal places. Maximum value: 999 <br> Example: 10",
          "format": "int32"
        },
        "height": {
          "type": "integer",
          "description": "Indicate the height of the package. No implied decimal places. Maximum value: 999 <br> Example: 10",
          "format": "int32"
        },
        "units": {
          "type": "string",
          "description": "Indicate the unit of measure for the provided dimensions.<br>Valid Values are:<ul><li>IN - Inches</li><li>CM - Centimeters</li></ul>",
          "enum": [
            "CM",
            "IN"
          ]
        }
      },
      "description": "Indicate the dimensions of the package.<br> Following conditions will apply: <ul><li>Dimensions are optional but when added, then all three dimensions must be indicated.</li><li>Dimensions are required with YOUR_PACKAGING package type.</li></ul>Note: The Maximum/minimum dimension values varies based on the services and the packaging types. Refer <a href=\"https://www.fedex.com/en-us/service-guide.html\" target=\"_blank\">FedEx Service Guide</a> for service details related to DIM Weighting for FedEx Express and oversize conditions for FedEx Express and FedEx Ground."
    },
    "Express_Freight_Rate_Quote": {},
    "Express_Freight_Saturday_Pickup_Rate_Quote": {},
    "FDGSamplePayload-RateResourceDetails-IntraEurope": {},
    "FreightSamplePayload-RateResourceDetails_1": {},
    "Full_Schema_Quote_Rate": {
      "required": [
        "accountNumber",
        "requestedShipment"
      ],
      "type": "object",
      "properties": {
        "accountNumber": {
          "$ref": "#/$defs/AccountNumber"
        },
        "rateRequestControlParameters": {
          "$ref": "#/$defs/RateRequestControlParameters"
        },
        "requestedShipment": {
          "$ref": "#/$defs/RequestedShipment"
        },
        "processingOptions": {
          "type": "array",
          "description": "<ul><li>For shipments within the US and Canada:</br>If you want the response to include pickup cost details (pickupRateDetail), make sure to:<ul><li>Set processingOptions to INCLUDE_PICKUPRATES</li></ul></li></ul><ul><li>For all other countries:</br>Pickup charges are automatically included in the standard surcharge fields, so no extra setup is needed.</ul></li>.",
          "items": {
            "type": "string",
            "enum": [
              "INCLUDE_PICKUPRATES"
            ]
          }
        },
        "carrierCodes": {
          "type": "array",
          "description": "Specify the four letter code of a FedEx operating company that meets your requirements.<br> Example: FDXE<br><ul><li>FDXE - FedEx Express</li><li>FDXG - FedEx Ground</li><li>FXSP - FedEx SmartPost</li><li>FXCC - FedEx Custom Critical.</li></ul>",
          "items": {
            "type": "string"
          }
        },
        "version": {
          "$ref": "#/$defs/Version"
        }
      },
      "description": "The request elements for requesting a rate quote."
    },
    "Ground_Home_Delivery_Appointment_Delivery_Rate_Quote": {},
    "HazardousCommodityContent": {
      "type": "object",
      "properties": {
        "quantity": {
          "$ref": "#/$defs/HazardousCommodityQuantityDetail"
        },
        "innerReceptacles": {
          "type": "array",
          "description": "Specifies the inner receptacles within the container.",
          "items": {
            "$ref": "#/$defs/HazardousCommodityInnerReceptacleDetail"
          }
        },
        "options": {
          "$ref": "#/$defs/HazardousCommodityOptionDetail"
        },
        "description": {
          "$ref": "#/$defs/HazardousCommodityDescription"
        }
      },
      "description": "Documents the kind and quantity of an individual hazardous commodity in a package."
    },
    "HazardousCommodityDescription": {
      "type": "object",
      "properties": {
        "sequenceNumber": {
          "type": "integer",
          "description": "In conjunction with the regulatory identifier, this field uniquely identifies a specific hazardous materials commodity.",
          "format": "int32"
        },
        "processingOptions": {
          "type": "array",
          "description": "Indicates any special processing options to be applied to the description of the dangerous goods commodity.",
          "items": {
            "type": "string",
            "enum": [
              "INCLUDE_SPECIAL_PROVISIONS"
            ]
          }
        },
        "subsidiaryClasses": {
          "type": "array",
          "description": "Specifies the hazardous material subsidiary classes.",
          "items": {
            "type": "string"
          }
        },
        "labelText": {
          "type": "string",
          "description": "Specifies the DOT diamond hazard label type. This element can also include limited quantity or exemption number."
        },
        "technicalName": {
          "type": "string",
          "description": "Specify the technical name for the hazardous commodity."
        },
        "packingDetails": {
          "$ref": "#/$defs/HazardousCommodityPackingDetail"
        },
        "authorization": {
          "type": "string",
          "description": "Information related to quantity limitations and operator or state variations as may be applicable to the dangerous goods commodity."
        },
        "reportableQuantity": {
          "type": "boolean",
          "description": "The element specifies the reportable quantity of the hazardous material."
        },
        "percentage": {
          "type": "number",
          "description": "Indicates the percentage.",
          "format": "double"
        },
        "id": {
          "type": "string",
          "description": "Specifies the ID of label text."
        },
        "packingGroup": {
          "type": "string",
          "description": "Identifies IATA packing group for a hazardous commodity.",
          "enum": [
            "DEFAULT",
            "I",
            "II",
            "III"
          ]
        },
        "properShippingName": {
          "type": "string",
          "description": "The proper shipping name as defined by the regulation.<br>The name can also include qualifying words."
        },
        "hazardClass": {
          "type": "string",
          "description": "Specify hazard class for commodity."
        }
      },
      "description": "Identifies and describes an individual hazardous commodity."
    },
    "HazardousCommodityInnerReceptacleDetail": {
      "type": "object",
      "properties": {
        "quantity": {
          "$ref": "#/$defs/HazardousCommodityQuantityDetail"
        }
      },
      "description": "This describes information about the inner receptacles for the hazardous commodity in a particular dangerous goods container."
    },
    "HazardousCommodityOptionDetail": {
      "type": "object",
      "properties": {
        "labelTextOption": {
          "type": "string",
          "description": "Specifies how the customer wishes the label text to be handled for this commodity in this package.",
          "enum": [
            "APPEND",
            "OVERRIDE",
            "STANDARD"
          ]
        },
        "customerSuppliedLabelText": {
          "type": "string",
          "description": "Text used in labeling the commodity under control of the labelTextOption field."
        }
      },
      "description": "Customer-provided specifications for handling individual commodities."
    },
    "HazardousCommodityPackagingDetail": {
      "type": "object",
      "properties": {
        "count": {
          "type": "integer",
          "description": "Indicate the number and type of packaging units for dangerous goods.",
          "format": "int32"
        },
        "units": {
          "type": "string",
          "description": "Specify the unit of the package."
        }
      },
      "description": "Identifies number and type of packaging units for hazardous commodities."
    },
    "HazardousCommodityPackingDetail": {
      "type": "object",
      "properties": {
        "packingInstructions": {
          "type": "string",
          "description": "Indicates the coded specification for how commodity is to be packed."
        },
        "cargoAircraftOnly": {
          "type": "boolean",
          "description": "Indicates the shipment is packaged/documented for movement ONLY on cargo aircraft."
        }
      },
      "description": "Specifies documentation and limits for validation of an individual packing group/category."
    },
    "HazardousCommodityQuantityDetail": {
      "type": "object",
      "properties": {
        "quantityType": {
          "type": "string",
          "description": "Specifies type of a quantity unit.",
          "enum": [
            "GROSS",
            "NET"
          ]
        },
        "amount": {
          "type": "number",
          "description": "Specifies amount details.",
          "format": "double"
        },
        "units": {
          "type": "string",
          "description": "Specify unit details."
        }
      },
      "description": "Specifies Hazardous Commodity Quantity Detail."
    },
    "HoldAtLocationDetail": {
      "required": [
        "locationId"
      ],
      "type": "object",
      "properties": {
        "locationId": {
          "type": "string",
          "description": "This is an alphanumeric identifier used for Location/Facility Identification.<br><br>Example: YBZA<br><br>Note: <i><ul><li>For HAL Shipment, Location ID is <b>REQUIRED</b> to ensure packages are delivered to the right location.</li><li>Use endpoint [<b>Find Location</b>] in [<b>Location Search API</b>], to find the correct location ID for your shipment.</li></ul></i>"
        },
        "locationContactAndAddress": {
          "$ref": "#/$defs/ContactAndAddress"
        },
        "locationType": {
          "type": "string",
          "description": "Specify the Location Type.<br> Example: FEDEX_ONSITE",
          "enum": [
            "FEDEX_AUTHORIZED_SHIP_CENTER",
            "FEDEX_OFFICE",
            "FEDEX_SELF_SERVICE_LOCATION",
            "FEDEX_STAFFED",
            "RETAIL_ALLICANCE_LOCATION",
            "FEDEX_GROUND_TERMINAL",
            "FEDEX_ONSITE"
          ]
        }
      },
      "description": "Use this object to specify required information for a shipment to be held at destination FedEx location. <br><br><i>Note: This object HoldAtLocationDetail is <b>REQUIRED</b>, when HOLD_AT_LOCATION is chosen in the specialServiceTypes.</i>"
    },
    "HomeDeliveryPremiumDetail": {
      "type": "object",
      "properties": {
        "shipTimestamp": {
          "type": "string",
          "description": "This is shipment date. Both the date and time portions of the string are expected to be used. The date should not be a past date or a date more than 10 days in the future. The time is the local time of the shipment based on the shipper's time zone.<br>Formats: YYYY-MM-DD, YYYY-MM-DD HH:MM:SS <br> Example: 2024-06-14 19:23:51"
        },
        "homedeliveryPremiumType": {
          "type": "string",
          "description": "This is Home Delivery Premium Type. It allows to specify additional premimum service options for the home delivery shipment. Can specify Evening delivery or a Date certain, or can specify appointment for the delivery.",
          "enum": [
            "APPOINTMENT",
            "DATE_CERTAIN",
            "EVENING"
          ]
        }
      },
      "description": "These are Special service elements for FedEx Ground Home Delivery shipments. If selected, element homedeliveryPremiumType is mandatory.\n\n"
    },
    "InternationalControlledExportDetail": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Indicate International Controlled Export Type.<br>Example: WAREHOUSE_WITHDRAWAL",
          "enum": [
            "DEA_036",
            "DEA_236",
            "DEA_486",
            "DSP_05",
            "DSP_61",
            "DSP_73",
            "DSP_85",
            "DSP_94",
            "DSP_LICENSE_AGREEMENT",
            "FROM_FOREIGN_TRADE_ZONE",
            "WAREHOUSE_WITHDRAWAL"
          ]
        }
      },
      "description": "Use this object to specify International Controlled Export shipment Details."
    },
    "InternationalTrafficInArmsRegulationsDetail": {
      "type": "object",
      "properties": {
        "licenseOrExemptionNumber": {
          "type": "string",
          "description": "The export or license number for the ITAR shipment.<br>Example: 9871234"
        }
      },
      "description": "These are International Traffic In Arms Regulations shipment service Details."
    },
    "International_Dry_Ice_Rate_Quote": {},
    "International_Ground_Rate_Quote": {},
    "International_Hold_At_Location_with_Adult_Signature_Option": {},
    "International_Multi_Piece_Rate_Quote": {},
    "International_Priority_Rate_Quote": {},
    "International_Return_Rate_Quote": {},
    "Intra_Canada_Rate_Quote": {},
    "Intra_Europe_Rate_Quote": {},
    "Intra_India_Cash_On_Delivery_Rate_Quote": {},
    "Intra_Mexico_Express_Saver_Rate_Quote": {},
    "MinimumSamplePayload_1": {},
    "Money": {
      "allOf": [
        {
          "$ref": "#/$defs/Money_1"
        },
        {
          "properties": {
            "amount": {
              "type": "number",
              "description": "Indicates the declared amount value for the shipment."
            },
            "currency": {
              "type": "string",
              "description": "Indicates the currency associated with the amount."
            }
          }
        }
      ]
    },
    "Money_1": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "number",
          "description": "Indicates the amount. Example: 12.45",
          "format": "double"
        },
        "currency": {
          "type": "string",
          "description": "Indicate the three-character ISO currency code. <br>Example: USD<br><a onclick='loadDocReference(\"currencycodes\")'>Click here to see Currency Codes</a>"
        }
      },
      "description": "Indicate the amount details. This is optional, but if indicated, amount and currency must be provided."
    },
    "PackageCODDetail": {
      "type": "object",
      "properties": {
        "codCollectionAmount": {
          "$ref": "#/$defs/Money_1"
        },
        "codCollectionType": {
          "type": "string",
          "description": "Indicate the type of funds FedEx should collect upon shipment delivery. <br> Conditionally required for Ground COD rates",
          "enum": [
            "ANY",
            "CASH",
            "COMPANY_CHECK",
            "GUARANTEED_FUNDS",
            "PERSONAL_CHECK"
          ]
        }
      },
      "description": "Indicates package COD Detail.  COD main information is set in shipment level."
    },
    "PackageSpecialServicesRequested": {
      "type": "object",
      "properties": {
        "specialServiceTypes": {
          "type": "array",
          "description": "Indicate the special services  requested.<br><a onclick='loadDocReference(\"packagelevelspecialservicetypes\")'>Click here to see Package level Special Service Types</a>",
          "items": {
            "type": "string",
            "description": "Specifies the items."
          }
        },
        "signatureOptionType": {
          "type": "string",
          "description": "Type of a Signature Option.",
          "enum": [
            "SERVICE_DEFAULT",
            "NO_SIGNATURE_REQUIRED",
            "INDIRECT",
            "DIRECT",
            "ADULT"
          ]
        },
        "alcoholDetail": {
          "$ref": "#/$defs/AlcoholDetail"
        },
        "dangerousGoodsDetail": {
          "$ref": "#/$defs/DangerousGoodsDetail"
        },
        "packageCODDetail": {
          "$ref": "#/$defs/PackageSpecialServicesRequestedPackageCODDetail"
        },
        "pieceCountVerificationBoxCount": {
          "type": "integer",
          "description": "Provide the pieceCount or VerificationBoxCount for batteries or cells that are contained within this specific package.",
          "format": "int32"
        },
        "batteryDetails": {
          "type": "array",
          "description": "Specify the details about the batteries or cells that are contained within this specific package.",
          "items": {
            "$ref": "#/$defs/BatteryClassificationDetail"
          }
        },
        "dryIceWeight": {
          "$ref": "#/$defs/Weight_1_2"
        },
        "standaloneBatteryDetails": {
          "type": "array",
          "description": "Provides details about the batteries or cells that are contained within this specific package.",
          "items": {
            "$ref": "#/$defs/StandaloneBatteryDetails"
          }
        }
      },
      "description": "These special services are available at the package level for some or all service types. Needs Indicated, if rate data is being requested for the special services. "
    },
    "PackageSpecialServicesRequestedPackageCODDetail": {
      "$ref": "#/$defs/PackageCODDetail"
    },
    "Party": {
      "type": "object",
      "properties": {
        "address": {
          "$ref": "#/$defs/Address"
        },
        "accountNumber": {
          "$ref": "#/$defs/AccountNumber"
        }
      },
      "description": "Indicate the party to a transaction including the physical address, contact information and account number information."
    },
    "Party_2": {
      "type": "object",
      "properties": {
        "address": {
          "$ref": "#/$defs/Address_2"
        },
        "contact": {
          "$ref": "#/$defs/Contact_2"
        },
        "accountNumber": {
          "$ref": "#/$defs/AccountNumber"
        }
      },
      "description": "Indicate the party to a transaction including the physical address, contact information and account number information."
    },
    "Payment": {
      "type": "object",
      "properties": {
        "payor": {
          "$ref": "#/$defs/Payor"
        },
        "paymentType": {
          "type": "string",
          "description": "Indicate the payment Type. Applicable for Express and Ground rates.",
          "enum": [
            "SENDER"
          ]
        }
      },
      "description": "These are details about shipment payment. Value payor is optional when paymentType provided as SENDER."
    },
    "Payor": {
      "type": "object",
      "properties": {
        "responsibleParty": {
          "description": "These are payer details such as address, account and contacts.",
          "allOf": [
            {
              "$ref": "#/$defs/Party_2"
            },
            {
              "required": [
                "accountNumber"
              ],
              "properties": {
                "accountNumber": {
                  "type": "object"
                }
              }
            }
          ]
        }
      },
      "description": "This is payer Information responsible for paying for the shipment.<br>Note: Optional when paymentType is SENDER."
    },
    "PhoneNumber": {
      "required": [
        "areaCode",
        "countryCode"
      ],
      "type": "object",
      "properties": {
        "areaCode": {
          "type": "string",
          "description": "Indicates the area code."
        },
        "extension": {
          "type": "string",
          "description": "Indicates the Extension."
        },
        "countryCode": {
          "type": "string",
          "description": "The two-letter code used to identify a country.<br>Example: US"
        },
        "personalIdentificationNumber": {
          "type": "string",
          "description": "Indicates the Personal Identification Number."
        },
        "localNumber": {
          "type": "string",
          "description": "Telephone number to use for contact in the event of an emergency."
        }
      },
      "description": "Indicates the telephone number to use for contact in the event of an emergency."
    },
    "PickupDetail": {
      "type": "object",
      "description": "<ul><li>For shipments within the US and Canada:</br>If you want the response to include pickup cost details (pickupRateDetail), make sure to:<ul><li>Set processingOptions to INCLUDE_PICKUPRATES</li></ul></li></ul><ul><li>For all other countries:</br>Pickup charges are automatically included in the standard surcharge fields, so no extra setup is needed.</ul></li>.",
      "properties": {
        "readyDateTime": {
          "type": "string",
          "format": "date",
          "description": "Pickup ready date in YYYY-MM-DD format."
        },
        "latestPickupDateTime": {
          "type": "string",
          "format": "date",
          "description": "Latest pickup date in YYYY-MM-DD format."
        },
        "courierInstructions": {
          "type": "string",
          "description": "Special instructions for the courier"
        },
        "requestType": {
          "$ref": "#/$defs/PickupRequestType"
        },
        "requestSource": {
          "$ref": "#/$defs/PickupRequestSourceType"
        }
      }
    },
    "PickupRequestSourceType": {
      "type": "string",
      "description": "Source of the pickup request",
      "enum": [
        "AUTOMATION",
        "CUSTOMER_SERVICE"
      ]
    },
    "PickupRequestType": {
      "type": "string",
      "description": "Type of pickup request",
      "enum": [
        "FUTURE_DAY",
        "SAME_DAY"
      ]
    },
    "Priority_Alert_Rate_Quote": {},
    "RateAddress": {
      "description": "Descriptive data for a physical location. May be used as an actual physical address (place to which one could go), or as a container of address parts which should be handled as a unit (such as a city-state-ZIP combination within  the US). Country code is required.  Postal code is required for postal aware countries.",
      "allOf": [
        {
          "$ref": "#/$defs/Address_2"
        },
        {
          "required": [
            "countryCode",
            "postalCode"
          ],
          "properties": {
            "countryCode": {
              "type": "string"
            },
            "postalCode": {
              "type": "string"
            }
          }
        }
      ]
    },
    "RateParty": {
      "required": [
        "address"
      ],
      "type": "object",
      "properties": {
        "address": {
          "$ref": "#/$defs/RateAddress"
        }
      },
      "description": "Specify the shipper address details."
    },
    "RateRequestControlParameters": {
      "type": "object",
      "properties": {
        "returnTransitTimes": {
          "type": "boolean",
          "description": "Indicate if the transit time and commit data are to be returned in the reply. Default value is false.<br>Valid values are TRUE and FALSE."
        },
        "servicesNeededOnRateFailure": {
          "type": "boolean",
          "description": "Specify the services to be requested if the rate data is not available.<br>Valid values are TRUE and FALSE."
        },
        "variableOptions": {
          "type": "string",
          "description": "Specify service options whose combinations are to be considered when replying with available services.<br>Example: FREIGHT_GUARANTEE</br>",
          "enum": [
            "SATURDAY_DELIVERY",
            "FREIGHT_GUARANTEE",
            "SMART_POST_ALLOWED_INDICIA",
            "SMARTPOST_HUB_ID"
          ]
        },
        "rateSortOrder": {
          "type": "string",
          "description": "This is a sort order you can specify to control the order of the response data. <br> Example: SERVICENAMETRADITIONAL</br> <br> <ul><li>SERVICENAMETRADITIONAL - data in order of highest to lowest service (Default)</li><li>COMMITASCENDING - data in order of ascending delivery committment</li><li>COMMITDESCENDING - data in order of descending delivery committment.</li></ul></br>",
          "enum": [
            "COMMITASCENDING",
            "SERVICENAMETRADITIONAL",
            "COMMITDESCENDING"
          ]
        }
      },
      "description": "Specify the return transit times, services needed on rate failure, choice of variable option and order to sort rate options to filter and sort the expected response."
    },
    "RequestePackageLineItemDimensions": {
      "description": "Specify the dimensions of this package and the unit type used for the measurements. Valid measurements are whole numbers greater than zero.",
      "allOf": [
        {
          "$ref": "#/$defs/Dimensions"
        }
      ]
    },
    "RequestedPackageLineItem": {
      "required": [
        "weight"
      ],
      "type": "object",
      "properties": {
        "subPackagingType": {
          "type": "string",
          "description": "This is a physical packaging type used for the package. <br><a onclick='loadDocReference(\"subpackagetypes\")'>Click here to see sub-packaging types</a><br>For more information on physical packaging or packaging regulatory requirements, visit fedex.com or contact your FedEx representative."
        },
        "groupPackageCount": {
          "type": "integer",
          "description": "Indicate the grouped package count. These are number of identical package(s) each with one or more commodities. <br> Example: 2",
          "format": "int32"
        },
        "declaredValue": {
          "description": "This is the Declared Value - represents FedEx Maximum liability in connection with a shipment of that Package, including but not limited to, any loss, damage, delay, misdelivery, any failure to provide information, or misdelivery of information relating to the Shipment.",
          "allOf": [
            {
              "$ref": "#/$defs/Money"
            }
          ]
        },
        "weight": {
          "description": "Indicate the total weight of the requested package line items.",
          "allOf": [
            {
              "$ref": "#/$defs/Weight_2"
            }
          ]
        },
        "dimensions": {
          "$ref": "#/$defs/RequestePackageLineItemDimensions"
        },
        "variableHandlingChargeDetail": {
          "$ref": "#/$defs/VariableHandlingChargeDetail"
        },
        "packageSpecialServices": {
          "description": "These special services are available at the package level for some or all service types.  Indicated if rate data is being requested for the special services.",
          "allOf": [
            {
              "$ref": "#/$defs/PackageSpecialServicesRequested"
            }
          ]
        }
      }
    },
    "RequestedShipment": {
      "required": [
        "pickupType",
        "recipient",
        "requestedPackageLineItems",
        "shipper"
      ],
      "type": "object",
      "properties": {
        "shipper": {
          "description": "The descriptive data for the physical shipper location from which the shipment originates.",
          "allOf": [
            {
              "$ref": "#/$defs/RateParty"
            }
          ]
        },
        "pickupDetail": {
          "$ref": "#/$defs/PickupDetail"
        },
        "recipient": {
          "description": "Indicate the descriptive data for the recipient location to which the shipment is to be received.",
          "allOf": [
            {
              "$ref": "#/$defs/RateParty"
            }
          ]
        },
        "serviceType": {
          "type": "string",
          "description": "Indicate the FedEx service type used for this shipment. The results will be filtered by the service type value indicated. If no serviceType is indicated then all the applicable services and corresponding rates will be returned.<br>Example: STANDARD_OVERNIGHT<br><a onclick='loadDocReference(\"servicetypes\")'>Click here to see Service Types</a>"
        },
        "preferredCurrency": {
          "type": "string",
          "description": "Indicate the currency the caller requests to have used in all returned monetary values (when a choice is possible). Used in conjunction with the rateRequestType data element. This element is used to pull Preferred rates.<br>Example: USD<br><a onclick='loadDocReference(\"currencycodes\")'> Click here to see Currency Codes</a>"
        },
        "rateRequestType": {
          "type": "array",
          "description": "Indicate the type of rates to be returned.<br>Following are values:<ul><li>LIST - Returns FedEx published list rates in addition to account-specific rates (if applicable).</li><li>PREFERRED - Returns rates in the preferred currency specified in the element preferredCurrency.</li><li>ACCOUNT - Returns account specific rates (Default).</li><li>INCENTIVE - This is one-time discount for incentivising the customer. For more information, contact your FedEx representative.</li></ul>Examples: [\"LIST\",\"PREFERRED\"]",
          "items": {
            "type": "string",
            "description": "Specifies the items.",
            "enum": [
              "LIST",
              "INCENTIVE",
              "ACCOUNT",
              "PREFERRED"
            ]
          }
        },
        "shipDateStamp": {
          "type": "string",
          "description": " This is shipment date. Both the date and time portions of the string are expected to be used. The date should not be a past date or a date more than 10 days in the future. The time is the local time of the shipment based on the shipper's time zone.<br>Required Format is YYYY-MM-DD<br> Example: 2019-09-05"
        },
        "pickupType": {
          "type": "string",
          "description": "Indicate the pickup type method by which the shipment to be tendered to FedEx.<br><a onclick='loadDocReference(\"pickuptypes\")'>Click here for more information on Pickup Types.</a>",
          "enum": [
            "CONTACT_FEDEX_TO_SCHEDULE",
            "DROPOFF_AT_FEDEX_LOCATION",
            "USE_SCHEDULED_PICKUP"
          ]
        },
        "requestedPackageLineItems": {
          "type": "array",
          "description": "These are one or more package-attribute descriptions, each of which describes an individual package, a group of identical packages, or (for the total-piece-total-weight case) common characteristics of all packages in the shipment.<ul><li>At least one instance containing the weight for at least one package is required for EXPRESS and GROUND shipments.</li><li>Not used for FREIGHT.</li><li>Single piece requests will have one RequestedPackageLineItem.</li><li>Multiple piece requests will have multiple RequestedPackageLineItems.</li><li>Maximum occurrences is 99.</li></ul>",
          "items": {
            "$ref": "#/$defs/RequestedPackageLineItem"
          }
        },
        "documentShipment": {
          "type": "boolean",
          "description": "Indicate whether or not its a document Shipment."
        },
        "variableHandlingChargeDetail": {
          "description": "contains the detail used to calculate a variable handling charge, a potentially non-fixed handling surcharge. Based on if there is a percent value, or a fixed amount, the charge can either be fixed or percents based.",
          "allOf": [
            {
              "$ref": "#/$defs/VariableHandlingChargeDetail"
            }
          ]
        },
        "packagingType": {
          "type": "string",
          "description": "This is the Packaging type associated with this rate. For Ground/SmartPost,it  will always be YOUR_PACKAGING. For domestic Express, the packaging may have been bumped so it may not match the value specified on the request. For International Express the packaging may be bumped and not mapped.<br><a onclick='loadDocReference(\"packagetypes\")'>Click here to see Package Types</a>"
        },
        "totalPackageCount": {
          "type": "integer",
          "description": "Indicate the total number of packages in the shipment. <br>The Maximum number of packages in a rate request is 100.",
          "format": "int32"
        },
        "totalWeight": {
          "type": "number",
          "description": "Specify the total weight of the shipment. <br>This is only applies to International shipments and should be used on the first package of a multiple piece shipment. This value contains 1 explicit decimal position.",
          "format": "double"
        },
        "shipmentSpecialServices": {
          "$ref": "#/$defs/RequestedShipmentSpecialServicesRequested"
        },
        "customsClearanceDetail": {
          "$ref": "#/$defs/RequestedShipmentCustomsClearanceDetail"
        },
        "smartPostInfoDetail": {
          "$ref": "#/$defs/RequestedShipmentSmartPostInfoDetail"
        }
      },
      "description": "This is shipment data for which a rate quote (or rate-shipping comparison) is requested."
    },
    "RequestedShipmentCustomsClearanceDetail": {
      "description": "This is Customs clearance data associated with the shipment. This is used for both international and intra-country shipping and rating. Customs commodity data is required for international and intra-country rating.",
      "allOf": [
        {
          "$ref": "#/$defs/CustomsClearanceDetail"
        }
      ]
    },
    "RequestedShipmentSmartPostInfoDetail": {
      "description": "Indicate the FedEx Smartpost shipment details. Required for Smartpost shipments only.",
      "allOf": [
        {
          "$ref": "#/$defs/SmartPostInfoDetail"
        }
      ]
    },
    "RequestedShipmentSpecialServicesRequested": {
      "description": "Specify the special services requested at the shipment level.<br>This has to be specified if rate data needed for the special services. ",
      "allOf": [
        {
          "$ref": "#/$defs/ShipmentSpecialServicesRequested"
        }
      ]
    },
    "ShipmentCODDetail": {
      "type": "object",
      "properties": {
        "addTransportationChargesDetail": {
          "$ref": "#/$defs/CODTransportationChargesDetail"
        },
        "codRecipient": {
          "$ref": "#/$defs/Party_2"
        },
        "remitToName": {
          "type": "string",
          "description": "Specifies the name of person or company receiving the secured or unsecured payment.<br>Example: FedEx"
        },
        "codCollectionType": {
          "type": "string",
          "description": "Indicate the type of funds FedEx should collect upon shipment delivery.",
          "enum": [
            "ANY",
            "CASH",
            "COMPANY_CHECK",
            "GUARANTEED_FUNDS",
            "PERSONAL_CHECK"
          ]
        },
        "financialInstitutionContactAndAddress": {
          "$ref": "#/$defs/ContactAndAddress"
        },
        "returnReferenceIndicatorType": {
          "type": "string",
          "description": "Indicate the type of reference information to include on the COD return shipping label.",
          "enum": [
            "INVOICE",
            "PO",
            "REFERENCE",
            "TRACKING"
          ]
        }
      },
      "description": "Specifies Shipment COD Detail"
    },
    "ShipmentDryIceDetail": {
      "type": "object",
      "properties": {
        "totalWeight": {
          "$ref": "#/$defs/Weight_1_2"
        },
        "packageCount": {
          "type": "integer",
          "description": "This is package count.<br>Example: 12",
          "format": "int32"
        }
      },
      "description": "Use this object to indicate package count with weight for this shipment containing dry ice. Dry ice is supported in both shipment level and package level services."
    },
    "ShipmentSpecialServicesRequested": {
      "type": "object",
      "properties": {
        "returnShipmentDetail": {
          "$ref": "#/$defs/ShipmentSpecialServicesRequested_returnShipmentDetail"
        },
        "deliveryOnInvoiceAcceptanceDetail": {
          "$ref": "#/$defs/DeliveryOnInvoiceAcceptanceDetail"
        },
        "internationalTrafficInArmsRegulationsDetail": {
          "$ref": "#/$defs/InternationalTrafficInArmsRegulationsDetail"
        },
        "holdAtLocationDetail": {
          "$ref": "#/$defs/HoldAtLocationDetail"
        },
        "shipmentCODDetail": {
          "$ref": "#/$defs/ShipmentSpecialServicesRequestedShipmentCODDetail"
        },
        "shipmentDryIceDetail": {
          "$ref": "#/$defs/ShipmentDryIceDetail"
        },
        "internationalControlledExportDetail": {
          "$ref": "#/$defs/InternationalControlledExportDetail"
        },
        "homeDeliveryPremiumDetail": {
          "$ref": "#/$defs/HomeDeliveryPremiumDetail"
        },
        "specialServiceTypes": {
          "type": "array",
          "description": "Indicate special services for which the rate data is being requested. Special Services are available at the shipment level for some or all service types.<br>Example: BROKER_SELECT_OPTION <br><a onclick='loadDocReference(\"shipmentlevelspecialservicetypes\")'>Click here to see Shipment level Special Service Types</a>",
          "items": {
            "type": "string"
          }
        }
      },
      "description": "Indicate special services for which the rate data is being requested. Special Services are available at the shipment level for some or all service types.<br>Example: [BROKER_SELECT_OPTION]<br><a onclick='loadDocReference(\"shipmentlevelspecialservicetypes\")'>Click here to see Shipment level Special Service Types</a>"
    },
    "ShipmentSpecialServicesRequestedShipmentCODDetail": {
      "description": "Use this object to specify Collect On Delivery (COD) shipment details.",
      "allOf": [
        {
          "$ref": "#/$defs/ShipmentCODDetail"
        }
      ]
    },
    "ShipmentSpecialServicesRequested_returnShipmentDetail": {
      "type": "object",
      "properties": {
        "returnType": {
          "type": "string",
          "description": "The type of return shipment being requested. ",
          "enum": [
            "FEDEX_TAG",
            "PENDING",
            "PRINT_RETURN_LABEL",
            "EMAIL_LABEL",
            "NET_RETURN",
            "VOICE_CALL_TAG"
          ]
        }
      },
      "description": "Details for the Return Shipment."
    },
    "SmartPostInfoDetail": {
      "type": "object",
      "properties": {
        "ancillaryEndorsement": {
          "type": "string",
          "description": "Indicate the type of ancillary endorsement. Is required for Presorted Standard but not for returns or parcel select. Note not all are usable for all ancillary endorsements.<br>For more information, refer to the <a href = 'https://www.fedex.com/en-us/shipping/fedex-smartpost/rates-zones.html' target='_blank'>FedEx SmartPost®</a>.",
          "enum": [
            "ADDRESS_CORRECTION",
            "CARRIER_LEAVE_IF_NO_RESPONSE",
            "CHANGE_SERVICE",
            "FORWARDING_SERVICE",
            "RETURN_SERVICE"
          ]
        },
        "hubId": {
          "type": "string",
          "description": "Specify the four-digit numeric Hub ID value used during rate quote for smartport shipments.<br><a onclick='loadDocReference(\"smartposthubids\")'>Click here to see Hub Ids</a>"
        },
        "indicia": {
          "type": "string",
          "description": "Specify the indicia type.<br>Available options include:<ul><li>MEDIA_MAIL</li><li>PARCEL_SELECT (1 LB through 70 LB)</li><li>PRESORTED_BOUND_PRINTED_MATTER</li><li>PRESORTED_STANDARD (less than 1 LB)</li><li>PARCEL_RETURN</li></ul>",
          "enum": [
            "MEDIA_MAIL",
            "PARCEL_RETURN",
            "PARCEL_SELECT",
            "PRESORTED_BOUND_PRINTED_MATTER",
            "PRESORTED_STANDARD"
          ]
        },
        "specialServices": {
          "type": "string",
          "description": "Specify the special handling associated with Smartpost Shipment.<br><a onclick='loadDocReference(\"shipmentlevelspecialservicetypes\")'>Click here to see Shipment Level Special Service Types</a>",
          "enum": [
            "USPS_DELIVERY_CONFIRMATION"
          ]
        }
      },
      "description": "Use this object to specify the smartpost shipment details. <br>Required for SMARTPOST service. If SmartPostInfoDetail is indicated, the elements below it are also required."
    },
    "SmartPost_Rate_Quote": {},
    "StandaloneBatteryDetails": {
      "type": "object",
      "properties": {
        "batteryMaterialType": {
          "type": "string",
          "description": "Describes the material composition of the battery or cell.",
          "enum": [
            "LITHIUM_METAL",
            "LITHIUM_ION"
          ]
        }
      }
    },
    "US_Domestic_Multi_Piece_Rate_Quote": {},
    "US_Domestic_Priority_Overnight_Rate_Quote": {},
    "US_Domestic_Rate_shop": {},
    "VariableHandlingChargeDetail": {
      "required": [
        "rateElementBasis"
      ],
      "type": "object",
      "properties": {
        "rateType": {
          "type": "string",
          "description": "The rate type indicates what type of rate request is being returned; account, preferred, incentive, etc.",
          "enum": [
            "ACCOUNT",
            "ACTUAL",
            "CURRENT",
            "CUSTOM",
            "LIST",
            "INCENTIVE",
            "PREFERRED",
            "PREFERRED_INCENTIVE",
            "PREFERRED_CURRENCY"
          ]
        },
        "percentValue": {
          "type": "number",
          "description": "Indicate the variable handling percentage. Actual percentage (10 means 10%, which is a mutiplier of 0.1).",
          "format": "double"
        },
        "rateLevelType": {
          "type": "string",
          "description": "indicates whether or not the rating is being done at the package level, or if the packages are bundled together. At the package level, charges are applied based on the details of each individual package. If they are bundled, one package is chosen as the parent and charges are applied based on that one package.",
          "enum": [
            "BUNDLED_RATE",
            "INDIVIDUAL_PACKAGE_RATE"
          ]
        },
        "fixedValue": {
          "description": "Indicate the Fixed value. <br>If you choose FIXED_AMOUNT as the ChargeType, this element allows you to enter the fixed value of the handling charge. The element allows entry of 7 characters before the decimal and 2 characters following the decimal. <br>Example - 5.00.",
          "allOf": [
            {
              "$ref": "#/$defs/Money"
            }
          ]
        },
        "rateElementBasis": {
          "type": "string",
          "description": "Indicate the rate charge on which, the variable handling amount is calculated.",
          "enum": [
            "NET_CHARGE",
            "NET_FREIGHT",
            "BASE_CHARGE",
            "NET_CHARGE_EXCLUDING_TAXES"
          ]
        }
      },
      "description": "Indicate the details on how to calculate variable handling charges at the package level. If indicated, element rateLevelType is required."
    },
    "Version": {
      "type": "object",
      "properties": {
        "major": {
          "description": "This version is incremented when significant changes are made to the API functionality. These could be breaking changes and might require code-adjustments from clients. Accepts only numbers",
          "type": "integer"
        },
        "minor": {
          "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the second number in API versioning scheme. Accepts only numbers",
          "type": "integer"
        },
        "patch": {
          "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the third number in API versioning scheme. Accepts only numbers",
          "type": "integer"
        }
      }
    },
    "Weight_1_2": {
      "type": "object",
      "properties": {
        "units": {
          "type": "string",
          "description": "Specifies the package weight unit. For Dry Ice the unit of measure is KG.",
          "enum": [
            "KG",
            "LB"
          ]
        },
        "value": {
          "type": "number",
          "description": "Specifies the package weight.<br> Example: 68.25",
          "format": "double"
        }
      },
      "description": "These are the weight details."
    },
    "Weight_2": {
      "allOf": [
        {
          "$ref": "#/$defs/Weight_1_2"
        },
        {
          "required": [
            "units",
            "value"
          ],
          "properties": {
            "units": {
              "type": "string"
            },
            "value": {
              "type": "number"
            }
          }
        }
      ]
    }
  }
}