{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/fedex/json-schema/fedex-full-schema-multiple-piece-shipment-schema.json",
  "title": "Full_Schema_Multiple_Piece_Shipment",
  "description": "The request elements for Tracking by associated shipment.",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/fedex-track-api-openapi.yml#/components/schemas/Full_Schema_Multiple_Piece_Shipment",
  "required": [
    "associatedType",
    "masterTrackingNumberInfo"
  ],
  "type": "object",
  "properties": {
    "includeDetailedScans": {
      "type": "boolean",
      "description": "Indicates if detailed scans are requested or not. <br>Valid values are True, or False."
    },
    "masterTrackingNumberInfo": {
      "$ref": "#/$defs/MasterTrackingInfo"
    },
    "associatedType": {
      "type": "string",
      "description": "The associated shipment type, such as MPS, Group MPS, or an outbound shipment which is linked to a return shipment.<br>Example: STANDARD_MPS<br>STANDARD_MPS: Single shipment with multiple packages, where tracking number got assigned to all pieces, one tracking number is treated as master tracking number while others are child tracking numbers.<br>Group MPS: Behavior is just like standard MPS but it’s created differently. The shipper must be enrolled for this by a particular reference type like ‘PO’ (purchase order).Then any package order create on the same day going to the same place that has the reference number will get grouped into GMPS relationships.<br>OUTBOUND_LINK_TO_RETURN: is an RTRN relationship.Same concept as an MPS.the OUTBOUND_LINK_TO_RETURN is the Master outbound package tracking number, that when tracked with this indicator you can get all the child return pieces.",
      "enum": [
        "OUTBOUND_LINK_TO_RETURN",
        "STANDARD_MPS",
        "GROUP_MPS"
      ]
    },
    "pagingDetails": {
      "$ref": "#/$defs/PagingDetails"
    }
  },
  "$defs": {
    "MasterTrackingInfo": {
      "description": "The detailed master tracking details for the shipment to be tracked.",
      "allOf": [
        {
          "$ref": "#/$defs/TrackingInfo"
        }
      ]
    },
    "PagingDetails": {
      "description": "The details about how to retrieve the subsequent pages when there is more than one page in the TrackReply.",
      "allOf": [
        {
          "$ref": "#/$defs/PagingDetails_2"
        }
      ]
    },
    "PagingDetails_2": {
      "type": "object",
      "properties": {
        "resultsPerPage": {
          "type": "integer",
          "description": "<p>Use this element to specify the number of Tracking results to be returned in the Tracking response. Use this and pagingToken elements, to retrieve remaining set of the track results.</p><p><u>Here is how the paging works:</u><br>For your first track request, send element <i>resultsPerPage</i>, with a number XX (5) and the response will return XX (5) results along with element <i>pagingToken</i> and <i>moreDataAvailable</i> = true or false based on the number of tracking results.</p><ul><li>If <i>moreDataAvailable</i> = false, then there are no more track results can be retrieved further.</li><li>If <i>moreDataAvailable</i> = True, then it means there are more track results and hence send the next tracking request with <i>resultsPerPage</i> = YY (4) and <i>pagingToken</i> = XX + 1 (5)  from Track Response element <i>pagingToken</i>. This can be continued until the <i>moreDataAvailable</i> becomes false or there are no more tracking results.</li></ul> <br> Example: 10",
          "format": "int32"
        },
        "pagingToken": {
          "type": "string",
          "description": "<p>Use this element to specify the starting sequence for the next set of tracking results. This element can be specified if paging is used in the initial tracking request and you need to request next set of track results.</p><p><i>Note:  This element not to be used in the initial tracking request and only should be used in the subsequent track requests when there is paging (element </i>resultsPerPage <i>is specified) indicated.</i></p> <br> Example: 1234567890"
        }
      },
      "description": "Specify the details about how to retrieve the subsequent pages when there is more than one page in the TrackReply."
    },
    "TrackingInfo": {
      "required": [
        "trackingNumberInfo"
      ],
      "type": "object",
      "properties": {
        "shipDateBegin": {
          "type": "string",
          "description": "ShipDateBegin and ShipDateEnd are recommended to narrow the search, reduce lookup time, and avoid duplicates when searching for a specific tracking number within a specific date range. <br>Format: YYYY-MM-DD<br> Example: 2020-03-29"
        },
        "shipDateEnd": {
          "type": "string",
          "description": "ShipDateBegin and ShipDateEnd are recommended to narrow the search, reduce lookup time, and avoid duplicates when searching for a specific tracking number within a specific date range. <br>Format: YYYY-MM-DD<br> Example: 2020-04-01"
        },
        "trackingNumberInfo": {
          "$ref": "#/$defs/TrackingNumberInfo"
        }
      },
      "description": "Tracking details for the shipment to be tracked"
    },
    "TrackingNumberInfo": {
      "required": [
        "trackingNumber"
      ],
      "type": "object",
      "properties": {
        "trackingNumber": {
          "type": "string",
          "description": "This is a Tracking number for FedEx packages used for tracking a single package or group of packages. <br> Example: 128667043726<br><a onclick='loadDocReference(\"mocktrackingnumbersforfedexexpressandfedexground\")'>Click here to see Mock Tracking Numbers.</a>"
        },
        "carrierCode": {
          "type": "string",
          "description": "This is a placeholder to provide the FedEx operating company (transportation) code used for package delivery. <br> Example: FDXE",
          "enum": [
            "FDXE",
            "FDXG",
            "FXSP",
            "FXFR",
            "FDXC",
            "FXCC",
            "FEDEX_CARGO",
            "FEDEX_CUSTOM_CRITICAL",
            "FEDEX_EXPRESS",
            "FEDEX_FREIGHT",
            "FEDEX_GROUND",
            "FEDEX_OFFICE",
            "FEDEX_KINKOS",
            "FX",
            "FDFR",
            "FDEG",
            "FXK",
            "FDC",
            "FDCC"
          ]
        },
        "trackingNumberUniqueId": {
          "type": "string",
          "description": "Unique identifier used to distinguish duplicate FedEx tracking numbers. This value will be set by FedEx systems. <br> Example: 245822\\~123456789012\\~FDEG"
        }
      },
      "description": "Information uniquely identifying a shipment such as Tracking number, ShipDate, and Tracking number uniqueId."
    }
  }
}