{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/fedex/json-schema/fedex-full-schema-notification-schema.json",
  "title": "Full_Schema_Notification",
  "description": "The request to receive a tracking notification.",
  "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_Notification",
  "required": [
    "senderContactName",
    "senderEMailAddress",
    "trackingEventNotificationDetail",
    "trackingNumberInfo"
  ],
  "type": "object",
  "properties": {
    "senderContactName": {
      "type": "string",
      "description": "Placeholder for Sender contact name.<br> Example: Sam Smith"
    },
    "senderEMailAddress": {
      "type": "string",
      "description": "Email address of the sender from which the shipment notification will be sent.<br>Example: LSR123@gmail.com"
    },
    "trackingEventNotificationDetail": {
      "$ref": "#/$defs/TrackingEventNotificationDetail"
    },
    "trackingNumberInfo": {
      "$ref": "#/$defs/TrackingNumberInfo_Notifications"
    },
    "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 in a specific time range. <br>Format: YYYY-MM-DD<br>example:'2019-10-13'"
    },
    "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 in a specific time range. <br>Format: YYYY-MM-DD<br>example:'2019-10-13'"
    }
  },
  "$defs": {
    "EmailDetail": {
      "required": [
        "emailAddress"
      ],
      "type": "object",
      "properties": {
        "emailAddress": {
          "type": "string",
          "description": "Specifies email address on which user wants to get notified for various registered events.<br>Example: p1@fedex.com"
        },
        "name": {
          "type": "string",
          "description": "Specifies the name of the notification recipient.<br>Example: Sam Smith"
        }
      },
      "description": "Specifies the Email Notification Details."
    },
    "Localization": {
      "required": [
        "languageCode"
      ],
      "type": "object",
      "properties": {
        "languageCode": {
          "type": "string",
          "description": "Identifies two-letter code for the language (e.g. en/EN, fr/FR, es/ES etc..).<br> Example: en"
        },
        "localeCode": {
          "type": "string",
          "description": "Identifies the two-letter code for the region, used to further identify the requested language.  for example, if you request Spanish, you must include a locale code of <i>US</i> for North American Spanish, or <i>MX</i> for Mexico. <br> Example: US<br><a onclick='loadDocReference(\"locales\")'>Click here to see Locales</a>"
        }
      },
      "description": "Specifies the language details for email notification."
    },
    "TrackingEventNotificationDetail": {
      "description": "Object for holding tracking event Notification details.",
      "allOf": [
        {
          "$ref": "#/$defs/TrackingEventNotificationDetail_2"
        }
      ]
    },
    "TrackingEventNotificationDetail_2": {
      "required": [
        "trackingNotifications"
      ],
      "type": "object",
      "properties": {
        "trackingNotifications": {
          "type": "array",
          "description": "List of Tracking notifications requested for events like ON_DELIVERY, ON_ESTIMATED_DELIVERY, ON_EXCEPTION, ON_TENDER.",
          "items": {
            "$ref": "#/$defs/TrackingNotification"
          }
        },
        "personalMessage": {
          "type": "string",
          "description": "An optional message which will be included in the body of the email."
        },
        "supportHTML": {
          "title": "@Ignore4TPP",
          "description": "If value is 'true' then html tags are included in the response date.  If 'false' they are not provided in the response."
        }
      },
      "description": "Tracking Event Notification details."
    },
    "TrackingNotification": {
      "required": [
        "notificationDetail",
        "notificationEventTypes"
      ],
      "type": "object",
      "properties": {
        "notificationDetail": {
          "$ref": "#/$defs/TrackingNotificationDetail"
        },
        "role": {
          "type": "string",
          "description": "This is to specify Recipient_Role in the shipment. <br>Possible values - BROKER, OTHER, RECIPIENT, SHIPPER <br> Example: SHIPPER"
        },
        "notificationEventTypes": {
          "type": "array",
          "description": "Identifies the events for which the client is requesting notifications. <br>Possible Values are: ON_DELIVERY, ON_ESTIMATED_DELIVERY, ON_EXCEPTION, ON_TENDER",
          "items": {
            "type": "string"
          }
        },
        "currentResultRequestedFlag": {
          "type": "boolean",
          "description": "If value is 'true' the current tracking results for the shipment along with notification details will be provided to the client. If 'false' only results for the notification request is provided.<br>Defaults to 'false'<br>Example: true"
        }
      },
      "description": "Identifies a list of details for Tracking Notifications"
    },
    "TrackingNotificationDetail": {
      "required": [
        "emailDetail",
        "localization",
        "notificationType"
      ],
      "type": "object",
      "properties": {
        "localization": {
          "$ref": "#/$defs/Localization"
        },
        "emailDetail": {
          "$ref": "#/$defs/EmailDetail"
        },
        "notificationType": {
          "type": "string",
          "description": "Identifies the format of the notification. <br>valid values are 'HTML' or 'TEXT'."
        }
      },
      "description": "Information about the notification email and the language of the notification requested."
    },
    "TrackingNumberInfo_2": {
      "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."
    },
    "TrackingNumberInfo_Notifications": {
      "description": "Information uniquely identifying the shipment such as Tracking Qualifier, Carrier Code, and Tracking number.",
      "allOf": [
        {
          "$ref": "#/$defs/TrackingNumberInfo_2"
        }
      ]
    }
  }
}