{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/fedex/json-schema/fedex-full-schema-create-pickup-schema.json",
  "title": "FullSchema-CreatePickup",
  "description": "The request elements to create a pickup.",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/fedex-ltl-freight-api-openapi.yml#/components/schemas/FullSchema-CreatePickup",
  "required": [
    "associatedAccountNumber",
    "freightPickupDetail",
    "originDetail"
  ],
  "type": "object",
  "properties": {
    "associatedAccountNumber": {
      "description": "The associated account number, which is  invoiced for the freight pickup.",
      "allOf": [
        {
          "$ref": "#/$defs/AccountNumber_2"
        }
      ]
    },
    "originDetail": {
      "description": "The origin address if different than the one associated with the shipper account. This element value is required when the package is to be picked up from an address other than the shipper account address.",
      "allOf": [
        {
          "$ref": "#/$defs/OriginDetail"
        }
      ]
    },
    "totalWeight": {
      "type": "array",
      "properties": {
        "units": {
          "type": "string"
        },
        "value": {
          "type": "number"
        }
      },
      "description": "The total shipment weight for pickup. Unit of measure is LB and KG.",
      "items": {
        "$ref": "#/$defs/TotalWeight"
      }
    },
    "packageCount": {
      "type": "integer",
      "description": "The total number of packages for the pickup.<br> Example: 5",
      "format": "int32"
    },
    "remarks": {
      "type": "string",
      "description": "This is a placeholder for any message to be passed to the FedEx pickup. courier.<br> Example: Please ring bell at loading dock."
    },
    "countryRelationships": {
      "type": "string",
      "description": "Describes the country relationship among the shipments being picked up.<br>'DOMESTIC' indicates intra-country shipping; origin and destination country are the same.<br>'INTERNATIONAL' indicates inter-country shipping; origin and destination countries are different.<br>Not applicable for FedEx Ground shipments<br>Example: DOMESTIC",
      "enum": [
        "DOMESTIC",
        "INTERNATIONAL"
      ]
    },
    "trackingNumber": {
      "type": "string",
      "description": "This is a tracking number for FedEx packages used for tracking a single package or group of packages.<br> Example: XXXX0365XXXX"
    },
    "commodityDescription": {
      "type": "string",
      "description": "Description of the commodity being shipped. <br>Example:This field contains CommodityDescription "
    },
    "freightPickupDetail": {
      "description": "This provides the Freight LTL pickup detailed information.",
      "allOf": [
        {
          "$ref": "#/$defs/FreightPickupDetail"
        }
      ]
    },
    "oversizePackageCount": {
      "type": "integer",
      "description": "The number of oversize packages that are tendered to FedEx Ground.",
      "format": "int32"
    },
    "pickupNotificationDetail": {
      "allOf": [
        {
          "$ref": "#/$defs/PickupNotificationdetail"
        }
      ]
    }
  },
  "$defs": {
    "AccountNumber": {
      "type": "object",
      "properties": {
        "value": {
          "type": "string",
          "description": "Specify value of the account number. Maximum length is 9.<br> Example: XXXXX6789"
        }
      },
      "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><li>In case if this is shipping account number, do use the account number used for creating Auth Token.</li></ul>"
    },
    "AccountNumber_2": {
      "description": "Specify the FedEx Account number. <br>Example: Your account number",
      "allOf": [
        {
          "$ref": "#/$defs/PartyAccountNumber"
        }
      ]
    },
    "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)."
        }
      },
      "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_2": {
      "required": [
        "countryCode",
        "streetLines"
      ],
      "type": "object",
      "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"
          }
        },
        "city": {
          "type": "string",
          "description": "This is a placeholder for City Name.<br><br>Note: This is conditional and not required in all the requests. <br><br>Note: It is recommended for Express shipments for the most accurate ODA and OPA surcharges.<br><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><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.<br><br>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).",
          "enum": [
            true,
            false
          ]
        }
      },
      "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)."
    },
    "Address_LTL": {
      "type": "object",
      "properties": {
        "streetLines": {
          "type": "array",
          "description": "This is a 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.<br>Example: [\\\"10 FedEx Parkway\\\", \\\"Suite 302\\\"]",
          "items": {
            "type": "string"
          }
        },
        "urbanizationCode": {
          "type": "string",
          "description": "Optional<br> In Puerto Rico, identical street names and address number ranges can be found within the same ZIP Code. In these cases, the urbanization name is the only element that correctly identifies the location of a particular address.<br> Example: URB FAIR OAKS"
        },
        "city": {
          "type": "string",
          "description": "This is a placeholder for City Name. <br>Note: This is conditional and not required in all the shipping requests. <br> Example: Beverly Hills"
        },
        "stateOrProvinceCode": {
          "type": "string",
          "description": "This is a placeholder for 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/Province Code</a>"
        },
        "postalCode": {
          "type": "string",
          "description": "This is a placeholder for postal code.<br>Note: The postal code is required for postal-aware countries. <br> Example: 38127<br><a onclick='loadDocReference(\"postalawarecountries\")'>Click here to see Postal aware countries</a>"
        },
        "countryCode": {
          "type": "string",
          "description": "This is the two-letter country code.<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."
        },
        "addressClassification": {
          "type": "string",
          "description": "Classifies a given address as either of unknown, residential, mixed or business.",
          "enum": [
            "MIXED",
            "UNKNOWN",
            "BUSINESS",
            "RESIDENTIAL"
          ]
        }
      },
      "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)."
    },
    "Contact": {
      "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."
    },
    "Contact_CreatePickup": {
      "type": "object",
      "properties": {
        "companyName": {
          "type": "string",
          "description": "Specify the contact person's company name. Maximum length is 35."
        },
        "personName": {
          "type": "string",
          "description": "Specify the contact person's name. Maximum Length is 70."
        },
        "phoneNumber": {
          "type": "string",
          "description": "Specify the contact person's phone number. Minimum Length is 8 and Maximum legth is 13."
        },
        "phoneExtension": {
          "type": "string",
          "description": "Specify the contact person's phone extension. Maximum length is 6."
        }
      },
      "description": "Indicates the contact details for the party such as name, phonenumber."
    },
    "Contacts": {
      "type": "object",
      "properties": {
        "companyName": {
          "type": "string",
          "description": "Indicates the contact person's company name."
        },
        "personName": {
          "type": "string",
          "description": "Indicates the contact person's name."
        },
        "phoneNumber": {
          "type": "string",
          "description": "Indicates the contact person's phone number."
        },
        "phoneExtension": {
          "type": "string",
          "description": "Indicates the contact person's phone extension."
        },
        "emailAddress": {
          "type": "string",
          "description": "contact person's email address."
        }
      },
      "description": "Indicates the contact details for the party such as name, email, and phone number."
    },
    "EmailDetail": {
      "type": "object",
      "properties": {
        "address": {
          "type": "string",
          "description": "Specifies the email address.<br>Example: sample@gmail.com"
        },
        "locale": {
          "type": "string",
          "description": "Specifies the language in which the email needs to be sent.Default value is en_US.<br>Example: en_US. .<br><a onclick='loadDocReference(\"locales\")'>Click here to see Locales</a><br>Note: If the locale is left blank or an invalid locale is entered, an error message is returned in response."
        }
      },
      "description": "Email addresses along with locale to which the pickup confirmation email must be sent."
    },
    "FreightAccountNumber": {
      "description": "Indicate the Account number details to be invoiced for freight pickup.",
      "type": "object",
      "properties": {
        "value": {
          "description": "Specify value of the account number. Maximum length is 9.<br> Example: 123456789",
          "type": "string"
        },
        "key": {
          "description": "The account key associated with this account number.",
          "type": "string"
        }
      }
    },
    "FreightDirectDataDetail": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Special freight direct detail. <br> Example: <ul><li>BASIC</li><li>BASIC_BY_APPOINTMENT</li><li>PREMIUM</li><li>STANDARD</li></ul>",
          "enum": [
            "BASIC",
            "BASIC_BY_APPOINTMENT",
            "PREMIUM",
            "STANDARD"
          ]
        },
        "transportationType": {
          "type": "string",
          "description": "Specifies freight direct transportation type. <br> Example: <ul><li>DELIVERY</li><li>PICKUP</li></ul>",
          "enum": [
            "DELIVERY",
            "PICKUP"
          ]
        },
        "emailAddress": {
          "type": "string",
          "description": "Specifies the email address.<br>Example: a@fedex.com"
        },
        "phoneNumberDetails": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/PhoneNumberDetails"
          }
        }
      },
      "description": "Specifies the freight direct data detail."
    },
    "FreightPickupDetail": {
      "type": "object",
      "properties": {
        "accountNumber": {
          "$ref": "#/$defs/FreightAccountNumber"
        },
        "role": {
          "type": "string",
          "description": "Specifies the role. <br>Example: SHIPPER "
        },
        "payment": {
          "type": "string",
          "description": "Specifies the payment. <br>Example: SENDER"
        },
        "submittedBy": {
          "$ref": "#/$defs/Contacts"
        },
        "lineItems": {
          "type": "array",
          "description": "Specifies the list of line items.",
          "items": {
            "$ref": "#/$defs/lineItems"
          }
        },
        "alternateBilling": {
          "description": "The descriptive data of the alternateBilling party for the freight pickup and their physical location. This is used to identify customer's account for billing('Send Bill To'(SBT)).",
          "allOf": [
            {
              "$ref": "#/$defs/Party"
            }
          ]
        },
        "userMessage": {
          "type": "string",
          "description": "Specifies the user message that can be sent as part of the pickup confirmation email.<br>Example: This is the user message"
        }
      }
    },
    "LineItemsDimensions": {
      "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.",
      "type": "object",
      "properties": {
        "length": {
          "format": "int32",
          "description": "Indicate the length of the package. No implied decimal places. Maximum value: 999 <br> Example: 20",
          "type": "integer"
        },
        "width": {
          "format": "int32",
          "description": "Indicate the width of the package. No implied decimal places. Maximum value: 999 <br> Example: 10",
          "type": "integer"
        },
        "height": {
          "format": "int32",
          "description": "Indicate the height of the package. No implied decimal places. Maximum value: 999 <br> Example: 10",
          "type": "integer"
        },
        "units": {
          "description": "Indicate the Unit of measure for the provided dimensions.<br>Valid Values are:<li>IN - inches</li><li>CM - centimeters</li>Note: Any value other than CM including blank/null will default to IN.",
          "type": "string",
          "enum": [
            "CM",
            "IN"
          ]
        }
      }
    },
    "OriginDetail": {
      "description": "This is the origin address, if different than the one associated with the shipper account. It is required if the package is to be picked up from an address other than the shipper account address.",
      "allOf": [
        {
          "$ref": "#/$defs/PickupOriginDetail_LTL"
        }
      ]
    },
    "Party": {
      "type": "object",
      "properties": {
        "address": {
          "$ref": "#/$defs/Address"
        },
        "contact": {
          "$ref": "#/$defs/Contact"
        },
        "accountNumber": {
          "$ref": "#/$defs/AccountNumber"
        }
      },
      "description": "Indicate the party to a transaction including the physical address, contact information and account number information."
    },
    "PartyAccountNumber": {
      "type": "object",
      "properties": {
        "value": {
          "type": "string",
          "description": "This is the account number. Maximum length is 9. <br>Example: Your account number"
        }
      },
      "description": "Specify the assigned FedEx Account Number. If the transportation charges to be billed to a payor other than the sender or recipient, provide the FedEx Account Number. Specify this field when payment type is selected as SENDER."
    },
    "Party_createPickup_LTL": {
      "type": "object",
      "properties": {
        "contact": {
          "$ref": "#/$defs/Contact_CreatePickup"
        },
        "address": {
          "$ref": "#/$defs/Address_LTL"
        },
        "accountNumber": {
          "$ref": "#/$defs/AccountNumber_2"
        },
        "deliveryInstructions": {
          "type": "string",
          "description": "Indicates the detailed instructions for delivery.This is used with Ground Home Delivery."
        }
      },
      "description": "Indicates attributes for a Party to perform a transaction including the physical address, contact information and account number information. "
    },
    "PhoneNumberDetails": {
      "type": "object",
      "properties": {
        "phoneNumber": {
          "type": "string",
          "description": "Indicates the phone number.<br> Example: 7194446666"
        },
        "phoneNumberType": {
          "type": "string",
          "description": "Indicates the phone number type.<br> Example: <ul><li>FAX</li><li>HOME</li><li>MOBILE</li><li>PAGER</li><li>TOLL_FREE</li><li>WORK</li></ul>",
          "enum": [
            "FAX",
            "HOME",
            "MOBILE",
            "PAGER",
            "TOLL_FREE",
            "WORK"
          ]
        }
      },
      "description": "Specifies the PhoneNumberDetails. Maximum of five phone number details are accepted."
    },
    "PickupLocationParty_LTL": {
      "description": "The descriptive data for the party responsible for the pickup and the physical location from which the shipment is picked up. <br>Note: This information is not required in case the pickupAddressType value is set to ACCOUNT.</br>",
      "allOf": [
        {
          "$ref": "#/$defs/Party_createPickup_LTL"
        },
        {
          "required": [
            "address"
          ],
          "properties": {
            "address": {
              "required": [
                "city",
                "countryCode",
                "postalCode",
                "stateOrProvinceCode",
                "streetLines"
              ],
              "properties": {
                "streetLines": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "city": {
                  "type": "string"
                },
                "stateOrProvinceCode": {
                  "type": "string"
                },
                "postalCode": {
                  "type": "string"
                },
                "countryCode": {
                  "type": "string"
                }
              }
            },
            "contact": {
              "properties": {
                "companyName": {
                  "type": "string"
                },
                "personName": {
                  "type": "string"
                },
                "phoneNumber": {
                  "type": "string"
                }
              }
            }
          }
        }
      ]
    },
    "PickupNotificationDetail": {
      "type": "object",
      "properties": {
        "emailDetails": {
          "type": "array",
          "description": "Specifies the list of email addresses along with locale to which the pickup confirmation email should be sent.",
          "items": {
            "$ref": "#/$defs/EmailDetail"
          }
        },
        "format": {
          "type": "string",
          "description": "Specifies the format of email.",
          "enum": [
            "HTML",
            "TEXT"
          ]
        },
        "userMessage": {
          "type": "string",
          "description": "Specifies the user message that can be sent as part of the pickup confirmation email.<br>Example: This is the user message"
        }
      }
    },
    "PickupNotificationdetail": {
      "description": "This object allows user to request for pickup confirmation email. User can specify upto 5 email addresses.",
      "allOf": [
        {
          "$ref": "#/$defs/PickupNotificationDetail"
        }
      ]
    },
    "PickupOriginDetail_LTL": {
      "required": [
        "customerCloseTime",
        "pickupLocation",
        "readyDateTimestamp"
      ],
      "type": "object",
      "properties": {
        "pickupAddressType": {
          "type": "string",
          "description": "Indicates the type of pickup address being used whether it is account address, shipper address or alternate address. <br><br>Note: <ul><li>The default value is OTHER.</li><li> If the value is set to ACCOUNT, then the account address will be used for pickup and the pickupLocation details are not required.</li></ul>",
          "enum": [
            "ACCOUNT",
            "SHIPPER",
            "OTHER"
          ]
        },
        "pickupLocation": {
          "$ref": "#/$defs/PickupLocationParty_LTL"
        },
        "readyDateTimestamp": {
          "type": "string",
          "description": "Indicates the date and time when the freight shipment/package is ready for pick up.<br>Format: [YYYY-MM-DDTHH:MM:SSZ]<br>Example: 2020-04-02T11:00:00Z<br>Note:<br>1.The date format must be YYYY-MM-DDTHH:MM:SS.<br>2.The time must be in the format: HH:MM:SS using a 24-hour clock.<br>3.The date and time are separated by the letter T, such as 2015-03-25T09:30:00.<br>4.The time is local to the pickup postal code.<br>5.Do not include a TZD (time zone designator) as it will be ignored.<br>Example: 2019-11-15T11:00:00",
          "format": "[YYYY-MM-DDTHH:MM:SSZ]"
        },
        "customerCloseTime": {
          "type": "string",
          "description": "Indicates the latest local time at which the driver can gain access to pickup the package(s).<br>Format: HH:MM:SS. <br>Example: 18:00:00<br> Note:<br> 1.The time must be in the format: HH:MM:SS using a 24-hour clock.<br> 2.The time is local to the pickup postal code.<br> 3.Do not include a TZD (time zone designator) as it will be ignored.<br>Example: 2019-11-15T11:00:00",
          "format": "[YYYY-MM-DDTHH:MM:SSZ]"
        },
        "pickupDateType": {
          "type": "string",
          "description": "Indicates whether the pickup request is for the same day or on a future date.",
          "enum": [
            "SAME_DAY",
            "FUTURE_DAY"
          ]
        },
        "packageLocation": {
          "type": "string",
          "description": " Specify a location description from where the courier/driver must pick up the package. It is mandatory for Ground Pickup.<br> Example: FRONT"
        },
        "buildingPart": {
          "type": "string",
          "description": "Specify the building type.",
          "enum": [
            "APARTMENT",
            "BUILDING",
            "DEPARTMENT",
            "FLOOR",
            "ROOM",
            "SUITE"
          ]
        },
        "buildingPartDescription": {
          "type": "string",
          "description": "Indicates the building part such as floor suite or apartment number or an identifier of the building.<br>Example: 111"
        },
        "earlyPickup": {
          "type": "boolean",
          "description": "Specify if it is an early pickup. This applies only to Europe."
        },
        "suppliesRequested": {
          "type": "string",
          "description": "Specify if any shipping supplies are requested at the pickup origin required to pack the shipment such as FedEx Box, Large Box, FedEx Tube.<br> Example: Supplies requested by customer"
        },
        "geographicalPostalCode": {
          "type": "string",
          "description": "This is the alternate postal code associated with pickup location. (Applicable only for European pickups)"
        }
      },
      "description": "Pickup Origin Detail"
    },
    "ShipmentSpecialServicesRequested": {
      "type": "object",
      "properties": {
        "freightGuaranteeDetail": {
          "$ref": "#/$defs/ShipmentSpecialServicesRequested_freightGuaranteeDetail"
        },
        "freightDirectDetail": {
          "$ref": "#/$defs/ShipmentSpecialServicesRequested_freightDirectDetail"
        },
        "specialServiceTypes": {
          "type": "array",
          "description": "Special services requested for the shipment.<br>Example: FREIGHT_GUARANTEE <br><a onclick='loadDocReference(\"freightlevelspecialservicetypes\")'>Click here to see Freight Level Special Service Types</a>",
          "items": {
            "type": "string"
          }
        }
      },
      "description": "Specifies the shipment special services requested."
    },
    "ShipmentSpecialServicesRequested_freightDirectDetail": {
      "type": "object",
      "properties": {
        "freightDirectDataDetails": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/FreightDirectDataDetail"
          }
        }
      },
      "description": "Specifies the freight Direct Detail.It is used for Fedex Freight Direct. Maximum of two Freight direct details are accepted."
    },
    "ShipmentSpecialServicesRequested_freightGuaranteeDetail": {
      "type": "object",
      "properties": {
        "time": {
          "type": "string",
          "description": "Specified the time <br>Example: 10:00"
        }
      },
      "description": "Specifies the freight guarantee detail."
    },
    "TotalWeight": {
      "description": "This is to specify total package weight.",
      "allOf": [
        {
          "$ref": "#/$defs/Weight_2"
        },
        {
          "properties": {
            "units": {
              "type": "string"
            },
            "value": {
              "type": "number"
            }
          }
        }
      ]
    },
    "TrackingNumberInfo": {
      "type": "object",
      "properties": {
        "trackingNumber": {
          "type": "string",
          "description": "The value of the package identifier that is to be used to retrieve the tracking information for a package or group of packages. The only type supported is 'TRACKING_NUMBER_OR_DOORTAG'.  In case of duplicate shipments using the same tracking number, the trackingNumberUniqueId is needed to differentiate between shipments. <br> Example: 123456789012"
        },
        "trackingQualifier": {
          "type": "string",
          "description": "Specifies the tracking qualifier"
        },
        "trackingCarrier": {
          "type": "string",
          "description": "Specifies the FedEx operating company (transportation) used for this package's delivery. The valid values are FDXE, FDXG, FXFR, FXSP, FDXC, FXCC.<br>Example: FDXE"
        },
        "trackingUniqueId": {
          "type": "string",
          "description": "This is the unique qualifier for a specific package, used to distinguish between duplicate FedEx trackingNumbers. <br> Example: 245822~123456789012~FDEG"
        }
      },
      "description": "Tracking Information corresponding to a line item such as Tracking number,TrackingQualifier,TrackingCarrier and Tracking number uniqueId."
    },
    "Weight_2": {
      "required": [
        "units",
        "value"
      ],
      "type": "object",
      "properties": {
        "units": {
          "type": "string",
          "description": "Indicate the weight unit type. The package and commodity weight unit should be the same else the request will result in an error.",
          "enum": [
            "KG"
          ]
        },
        "value": {
          "type": "number",
          "description": "Weight Value.<br> Example: 68.25<br><a onclick='loadDocReference(\"packagetypes\")'>Click here to see Weight Values</a>",
          "format": "double"
        }
      },
      "description": "These are the package weight details.<br>Note: Weight is not required for One rate shipments"
    },
    "Weight_Without_Link": {
      "description": "These are the package weight details.",
      "type": "object",
      "required": [
        "units",
        "value"
      ],
      "properties": {
        "units": {
          "description": "Specifies the shipment weight unit type.<br>Example:KG",
          "type": "string",
          "enum": [
            "KG",
            "LB"
          ]
        },
        "value": {
          "format": "double",
          "description": "Weight Value.<br> Example: 68.25",
          "type": "number"
        }
      }
    },
    "lineItems": {
      "type": "object",
      "properties": {
        "trackingNumber": {
          "$ref": "#/$defs/TrackingNumberInfo"
        },
        "service": {
          "type": "string",
          "description": "Specify the type of service.<br>Example: FEDEX_FREIGHT_ECONOMY, FEDEX_FREIGHT_PRIORITY"
        },
        "sequenceNumber": {
          "type": "number",
          "description": "Specify the sequence number of the package.<br>Example: 1"
        },
        "totalHandlingUnits": {
          "type": "number",
          "description": "Specify the total handling units.<br>Example: 2"
        },
        "justOneMore": {
          "type": "boolean",
          "description": "Specify the boolean value if one or more."
        },
        "description": {
          "type": "string",
          "description": "Specify the description.<br> Example: \"data\""
        },
        "packaging": {
          "type": "string",
          "description": "Specify the packaging being used.",
          "enum": [
            "BAG",
            "BARREL",
            "BASKET",
            "BOX",
            "BUCKET",
            "BUNDLE",
            "CAGE",
            "CARTON",
            "CASE",
            "CHEST",
            "CONTAINER",
            "CRATE",
            "CYLINDER",
            "DRUM",
            "ENVELOPE",
            "HAMPER",
            "OTHER",
            "PACKAGE",
            "PAIL",
            "PALLET",
            "PARCEL",
            "PIECE",
            "REEL",
            "ROLL",
            "SACK",
            "SHRINK_WRAPPED",
            "SKID",
            "TANK",
            "TOTE_BIN",
            "TUBE",
            "UNIT"
          ]
        },
        "pieces": {
          "type": "number",
          "description": "Specifies the number.<br>Example: 4"
        },
        "weight": {
          "$ref": "#/$defs/Weight_Without_Link"
        },
        "dimensions": {
          "$ref": "#/$defs/LineItemsDimensions"
        },
        "destination": {
          "$ref": "#/$defs/Address_2"
        },
        "shipmentSpecialServicesRequested": {
          "$ref": "#/$defs/ShipmentSpecialServicesRequested"
        }
      },
      "description": "Specifies the list of line items for Freight LTL."
    }
  }
}