{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/usps/json-schema/usps-appointment-full-schema.json",
  "title": "Appointment",
  "description": "Appointment with full details.",
  "x-generated": "2026-11-11",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/usps-appointments-openapi.yml#/components/schemas/AppointmentFull",
  "type": "object",
  "required": [
    "CRID",
    "shipperAppointmentRequestID",
    "destinationEntry",
    "consigneeFacility",
    "detailInfo"
  ],
  "properties": {
    "appointmentType": {
      "description": "The type of appointment. PALLET = 1, BEDLOAD = 2, DROP_AND_PICK = 3, SPEEDLINE = 4.\n\nRequired for Dropship appointments.\n",
      "type": "string",
      "enum": [
        "PALLET",
        "BEDLOAD",
        "DROP_AND_PICK",
        "SPEEDLINE"
      ]
    },
    "destinationEntry": {
      "description": "Dropship is YES. Origin Entry is NO.",
      "type": "string",
      "enum": [
        "YES",
        "NO"
      ]
    },
    "recurringAppointment": {
      "description": "Must have either oneTimeAppointment or recurringAppointment",
      "type": "object",
      "properties": {
        "effectiveStartDate": {
          "description": "Start date of appointment. Required for Create actions.",
          "type": "string",
          "format": "date"
        },
        "effectiveEndDate": {
          "description": "End date of appointment. Required for Create actions.",
          "type": "string",
          "format": "date"
        },
        "appointmentTime": {
          "description": "Time of appointment in Local Time. Required for Create actions.",
          "type": "string",
          "format": "time"
        },
        "dayFrequencyArray": {
          "type": "array",
          "description": "Day of the week for the appointment.  Required for Create actions.",
          "items": {
            "type": "string",
            "enum": [
              "DAILY",
              "SATURDAY",
              "SUNDAY",
              "MONDAY",
              "TUESDAY",
              "WEDNESDAY",
              "THURSDAY",
              "FRIDAY"
            ]
          }
        },
        "weekFrequencyArray": {
          "type": "array",
          "description": "Week of the month for the appointment.  Required for Create actions.",
          "items": {
            "type": "string",
            "enum": [
              "WEEKLY",
              "BI_WEEKLY",
              "FIRST",
              "SECOND",
              "THIRD",
              "FOURTH",
              "FIFTH",
              "SIXTH"
            ]
          }
        }
      }
    },
    "oneTimeAppointment": {
      "description": "Must have either oneTimeAppointment or recurringAppointment",
      "type": "object",
      "properties": {
        "preferredAppointment": {
          "description": "Preferred appointment date and time in ISO 8601 format. Required for Create actions.",
          "type": "string",
          "format": "date-time"
        },
        "optionalAppointment": {
          "description": "Details of the optional appointment start and end time.",
          "type": "object",
          "properties": {
            "optionalAppointmentStart": {
              "description": "Optional appointment start date and time in ISO 8601 format",
              "type": "string",
              "format": "date-time"
            },
            "optionalAppointmentEnd": {
              "description": "Optional appointment end date and time in ISO 8601 format",
              "type": "string",
              "format": "date-time"
            }
          }
        }
      }
    },
    "detailInfo": {
      "description": "Details of the appointment request.",
      "type": "object",
      "properties": {
        "uspsSummary": {
          "type": "array",
          "description": "Additional details of the Appointment.",
          "items": {
            "type": "object",
            "properties": {
              "destinationDiscountIndicator": {
                "description": "Indicator whether this is dropship (NO) or origin entry (YES) appointment. Required for Create actions.",
                "type": "string",
                "enum": [
                  "YES",
                  "NO"
                ]
              },
              "zoneSkippingIndicator": {
                "description": "Zone Skip in the Content of the appointment. Required for Create actions.",
                "type": "string",
                "enum": [
                  "YES",
                  "NO"
                ]
              },
              "fullServiceIndicator": {
                "description": "Indicate content is full service",
                "type": "string",
                "enum": [
                  "YES",
                  "NO"
                ]
              },
              "eInductionIndicator": {
                "description": "Yes/No indicator representing if IMCB is part of an eInduction Content",
                "type": "string",
                "enum": [
                  "YES",
                  "NO"
                ]
              },
              "pallets": {
                "type": "array",
                "description": "Details and properties of the pallets for the appointment.",
                "items": {
                  "type": "object",
                  "properties": {
                    "palletPreSortLevel": {
                      "description": "Required for Create actions.",
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "uspsContainerInfo": {
                            "description": "Details of the container and its contents.",
                            "type": "object",
                            "properties": {
                              "mailOwnerCRID": {
                                "description": "Array of CRIDs of the mail owner. Maximum of 5 values in the array.",
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 15
                                }
                              },
                              "mailOwnerID": {
                                "description": "Array of IDs of the mail owner. Maximum of 5 values in the array.",
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 12
                                }
                              },
                              "uspsPublicationID": {
                                "description": "ID of publication (Periodicals) associated with appointment content",
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 9
                                }
                              },
                              "actualPieceCount": {
                                "description": "Total count of the mail pieces",
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 999999999
                              },
                              "containerWeight": {
                                "description": "Weight of the container",
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 9
                              },
                              "IMCB": {
                                "description": "Array of Intelligent Mail Container Barcode.  Unlimited values allowed. Required for Create actions.",
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 21,
                                  "maxLength": 24
                                }
                              },
                              "IMCBInfo": {
                                "description": "Is the IMCB Linked or Scanned",
                                "type": "string",
                                "enum": [
                                  "LINKED",
                                  "SCANNED"
                                ]
                              },
                              "siblingBarcode": {
                                "description": "Array of unique IMCB barcode associated to IMCB barcode.  Unlimited values allowed.",
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 21,
                                  "maxLength": 24
                                }
                              },
                              "postInductionStatus": {
                                "description": "Status as of induction of FAST appointment",
                                "type": "string",
                                "enum": [
                                  "ACCEPTED",
                                  "ON_HOLD",
                                  "REJECTED",
                                  "NOT_PAID",
                                  "TRANSPORTATION_INFO_UPDATED",
                                  "DISPATCHED_FOR_INDUCTION",
                                  "DISPATCHED_FOR_PICKUP",
                                  "PICKED_UP",
                                  "WAREHOUSED",
                                  "PLANNED",
                                  "DOCKED",
                                  "MAIL_READY_FOR_PICKUP",
                                  "DELIVERED",
                                  "DEPOSITED_WITH_SHIPPER",
                                  "EDOC_SUBMITTED",
                                  "MAIL_READY_TO_BE_SHIPPED",
                                  "POSTAGE_FINALIZED",
                                  "MAIL_VERIFIED_AND_RELEASED",
                                  "MAIL_IN_COPAL_POOL"
                                ]
                              },
                              "containerDestination3digitZIP": {
                                "description": "3 digit zipcode of the destination",
                                "type": "string",
                                "minLength": 3,
                                "maxLength": 3,
                                "pattern": "^\\d{3}$"
                              },
                              "containerDestination5digitZIP": {
                                "description": "5 digit zipcode of the destination",
                                "type": "string",
                                "minLength": 5,
                                "maxLength": 5,
                                "pattern": "^\\d{5}$"
                              }
                            }
                          },
                          "containerLevel": {
                            "$ref": "#/$defs/ContainerLevel"
                          },
                          "count": {
                            "description": "Count for the palletPreSortLevel. Required for Create actions.",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 999999
                          }
                        }
                      }
                    },
                    "count": {
                      "description": "Count for pallets. Required for Create actions. (One of pallets, sacks, trays count)",
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 999999
                    },
                    "handlingUnitType": {
                      "description": "Types of containers used in appointment. Required for Create actions.",
                      "type": "string",
                      "enum": [
                        "AIRBOX",
                        "SACKS",
                        "BUNDLES",
                        "MIXED_LENGTH_TRAYS",
                        "1FT_TRAY",
                        "2FT_TRAY",
                        "EMM_TRAY",
                        "FLAT_TUB",
                        "PARCELS"
                      ]
                    },
                    "palletType": {
                      "description": "Pallet type used to house handing units. Required for Create actions.",
                      "type": "string",
                      "enum": [
                        "AIRBOX",
                        "PALLET",
                        "EIRS_61",
                        "EIRS_61P",
                        "EIRS_66",
                        "EIRS_68",
                        "EIRS_84",
                        "EIRS_84C"
                      ]
                    }
                  }
                }
              },
              "bedload": {
                "type": "object",
                "description": "Details and properties of the bedload for the appointment.",
                "properties": {
                  "uspsContainerInfo": {
                    "description": "Details of the container and its contents.",
                    "type": "object",
                    "properties": {
                      "mailOwnerCRID": {
                        "description": "Array of CRIDs of the mail owner",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 2,
                          "maxLength": 15
                        }
                      },
                      "mailOwnerID": {
                        "description": "ID of the mail owner",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 12
                        }
                      },
                      "uspsPublicationID": {
                        "description": "The Publication ID",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 9
                        }
                      },
                      "actualPieceCount": {
                        "description": "Total count",
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 999999999
                      },
                      "containerWeight": {
                        "description": "Weight of the container",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 9
                      },
                      "IMCB": {
                        "description": "Array of Intelligent Mail Container Barcodes Required for Create actions.",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 21,
                          "maxLength": 24
                        }
                      },
                      "IMCBInfo": {
                        "description": "Is the IMCB linked or scanned",
                        "type": "string",
                        "enum": [
                          "LINKED",
                          "SCANNED"
                        ]
                      },
                      "siblingBarcode": {
                        "description": "Array of unique IMCB barcode associated to IMCB barcode",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 21,
                          "maxLength": 24
                        }
                      }
                    }
                  },
                  "sacks": {
                    "description": "Array for the sacks portion of the appointment",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "preSortLevel": {
                          "description": "Array for the preSortLevel objects",
                          "type": "array",
                          "items": {
                            "description": "Object for the preSortLevel elements",
                            "type": "object",
                            "properties": {
                              "containerLevel": {
                                "$ref": "#/$defs/ContainerLevel"
                              },
                              "count": {
                                "description": "Count for preSortLevel.",
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 999999
                              }
                            }
                          }
                        },
                        "IMPB": {
                          "description": "Intelligent Mail Package Barcode",
                          "type": "string",
                          "minLength": 21,
                          "maxLength": 24
                        },
                        "count": {
                          "description": "Count for sacks. Required for Create actions. (One of pallets, sacks, trays count)",
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 999999
                        }
                      }
                    }
                  },
                  "trays": {
                    "description": "Details and properties of the trays for the appointment.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "preSortLevel": {
                          "description": "Array for the preSortLevel objects",
                          "type": "array",
                          "items": {
                            "description": "Object for the preSortLevel elements",
                            "type": "object",
                            "properties": {
                              "containerLevel": {
                                "$ref": "#/$defs/ContainerLevel"
                              },
                              "count": {
                                "description": "Count for preSortLevel. Required for Create actions.",
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 999999
                              }
                            }
                          }
                        },
                        "IMTB": {
                          "description": "Intelligent Mail Tray Barcode",
                          "type": "string",
                          "minLength": 24,
                          "maxLength": 24
                        },
                        "count": {
                          "description": "Count for trays. Required for Create actions. (One of pallets, sacks, trays count)",
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 999999
                        },
                        "type": {
                          "description": "Tray unit types",
                          "type": "string",
                          "enum": [
                            "MIXED_LENGTH_TRAYS",
                            "1FT_TRAY",
                            "2FT_TRAY",
                            "EMM_TRAY",
                            "FLAT_TUB"
                          ]
                        }
                      }
                    }
                  },
                  "parcels": {
                    "description": "Details and properties of the parcels for the appointment.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "preSortLevel": {
                          "description": "Array for the preSortLevel objects",
                          "type": "array",
                          "items": {
                            "description": "Object for the preSortLevel elements",
                            "type": "object",
                            "properties": {
                              "containerLevel": {
                                "$ref": "#/$defs/ContainerLevel"
                              },
                              "count": {
                                "description": "Count for preSortLevel",
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 999999
                              }
                            }
                          }
                        },
                        "count": {
                          "description": "Count for parcels",
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 999999
                        }
                      }
                    }
                  },
                  "bundles": {
                    "description": "Details and properties of the bundles for the appointment.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "preSortLevel": {
                          "description": "Array for the preSortLevel objects",
                          "type": "array",
                          "items": {
                            "description": "Object for the preSortLevel elements",
                            "type": "object",
                            "properties": {
                              "containerLevel": {
                                "$ref": "#/$defs/ContainerLevel"
                              },
                              "count": {
                                "description": "Count for preSortLevel",
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 999999
                              }
                            }
                          }
                        },
                        "count": {
                          "description": "Count for bundles",
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 999999
                        }
                      }
                    }
                  }
                }
              },
              "perishable": {
                "description": "Is it perishable. Required for Create actions.",
                "type": "string",
                "enum": [
                  "YES",
                  "NO"
                ]
              },
              "mailClass": {
                "description": "Required for Create actions.|\nNumbers represent the mailClass within legacy systems for understanding\n1 FIRST CLASS MAIL 2 PERIODICALS 3 USPS MARKETING MAIL (PREVIOUSLY STANDARD MAIL) 4 PACKAGE SERVICES 6 PARCEL SELECT 7 PRIORITY MAIL",
                "type": "string",
                "enum": [
                  "FIRST_CLASS",
                  "PERIODICALS",
                  "USPS_MARKETING_MAIL",
                  "PACKAGE_SERVICES",
                  "PARCEL_SELECT",
                  "PRIORITY_MAIL",
                  "USPS_GROUND_ADVANTAGE"
                ]
              },
              "rateType": {
                "description": "Rate type describes mail class and mail shape combination",
                "type": "string",
                "enum": [
                  "R",
                  "L",
                  "B",
                  "C",
                  "S",
                  "S1",
                  "S2",
                  "S3",
                  "S4",
                  "S5",
                  "S6",
                  "S7",
                  "F",
                  "A",
                  "N",
                  "P",
                  "T",
                  "D",
                  "X",
                  "H",
                  "M",
                  "Z",
                  "E",
                  "E4",
                  "G",
                  "1",
                  "2",
                  "3",
                  "4",
                  "J",
                  "K",
                  "V",
                  "W",
                  "Y",
                  "Q"
                ]
              },
              "inHomeStart": {
                "description": "Start Date of Appointment in Home DELIVERY",
                "type": "string",
                "format": "date-time"
              },
              "inHomeEnd": {
                "description": "End Date of Appointment in Home DELIVERY",
                "type": "string",
                "format": "date-time"
              },
              "processingCategory": {
                "description": "Mail shape category. Required for Create actions.",
                "type": "string",
                "enum": [
                  "LT",
                  "FL",
                  "CD",
                  "OS",
                  "MP",
                  "IR",
                  "PF",
                  "CM",
                  "SP",
                  "MB"
                ]
              },
              "newsIndicator": {
                "description": "Indicator for Newspaper. Required for Create actions.",
                "type": "string",
                "enum": [
                  "YES",
                  "NO"
                ]
              },
              "priorityMailIndicator": {
                "description": "Priority Mail Indicator. Required for Create actions.",
                "type": "string",
                "enum": [
                  "YES",
                  "NO"
                ]
              },
              "verificationLocation": {
                "description": "Verified Location for BMEU or DMU for FAST appointment",
                "type": "string",
                "enum": [
                  "BMEU",
                  "DMU"
                ]
              },
              "mailContentName": {
                "description": "Shipper assigned name to content",
                "type": "string",
                "minLength": 1,
                "maxLength": 30
              },
              "mailPreparerID": {
                "description": "The unique ID of the mail preparer",
                "type": "string",
                "minLength": 1,
                "maxLength": 12
              },
              "mailPreparerCRID": {
                "description": "CRID of the mail preparer",
                "type": "string",
                "minLength": 2,
                "maxLength": 15
              },
              "schedulerContentID": {
                "description": "The unique ID of the Scheduler",
                "type": "string",
                "minLength": 1,
                "maxLength": 12
              },
              "consigneeContentID": {
                "description": "Consignee Content ID for this USPSSummary object",
                "type": "string",
                "minLength": 1,
                "maxLength": 12
              }
            }
          }
        },
        "consigneeContentID": {
          "description": "Consignee Content ID to stand in for above USPSSummary object",
          "type": "string",
          "minLength": 1,
          "maxLength": 12
        }
      }
    },
    "trailerInfo": {
      "description": "Information about the trailer for the appointment.",
      "type": "object",
      "properties": {
        "trailer": {
          "description": "max of two objects in the array",
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "trailerNumber": {
                "description": "Trailer Identifier",
                "type": "string",
                "minLength": 1,
                "maxLength": 12
              },
              "trailerLength": {
                "description": "Length of the trailer",
                "type": "string",
                "enum": [
                  "20FT",
                  "40FT",
                  "45FT",
                  "48FT",
                  "53FT"
                ]
              }
            }
          }
        },
        "carrier": {
          "description": "Details about the carrier for the appointment.",
          "type": "object",
          "properties": {
            "carrierName": {
              "description": "Name of the carrier. Required for Create actions.",
              "type": "string",
              "minLength": 1,
              "maxLength": 40
            },
            "carrierCRID": {
              "description": "CRID of the carrier",
              "type": "string",
              "minLength": 2,
              "maxLength": 15
            },
            "commonContact": {
              "description": "Contact details of the appointment requestor.",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "contactName": {
                    "description": "Contact name",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60
                  },
                  "telephone": {
                    "description": "Phone number of contact, numbers only, no delimeters, optional + sign",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 25,
                    "pattern": "^\\+?[1-9][0-9]{7,14}$"
                  },
                  "mobilePhone": {
                    "description": "Cell phone number of contact, numbers only, no delimeters, optional + sign",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 25,
                    "pattern": "^\\+?[1-9][0-9]{7,14}$"
                  },
                  "email": {
                    "description": "Email address of contact",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 50,
                    "pattern": "^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,}$"
                  },
                  "fax": {
                    "description": "Fax number of the contact, numbers only, no delimeters, optional +",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 25,
                    "pattern": "^\\+?[1-9][0-9]{7,14}$"
                  },
                  "contactID": {
                    "description": "Identification details for the appointment requestor.",
                    "type": "object",
                    "properties": {
                      "idValue": {
                        "description": "Number on ID",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 30
                      },
                      "idValueType": {
                        "description": "Type of ID used",
                        "type": "string",
                        "enum": [
                          "DRIVERS_LICENSE",
                          "EMPLOYEE_ID"
                        ]
                      }
                    }
                  },
                  "contactType": {
                    "description": "Carrier contact type",
                    "type": "string",
                    "enum": [
                      "ACCOUNT_MANAGER",
                      "CARRIER",
                      "CROSS_DOCK",
                      "CUSTOMER_SERVICE",
                      "HELP_DESK",
                      "DROP_SHIP_COORDINATOR",
                      "APPT_COORDINATOR",
                      "PLANT",
                      "INBOUND_FREIGHT_COORDINATOR",
                      "SALES_OFFICE",
                      "TRUCK_DRIVER",
                      "WAREHOUSE",
                      "OTHER"
                    ]
                  }
                }
              }
            }
          }
        },
        "billOfLadingNumberArray": {
          "description": "max of two values in the array",
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "billOfLadingNumber": {
                "description": "Bill of lading number.",
                "type": "string",
                "minLength": 1,
                "maxLength": 15
              }
            }
          }
        }
      }
    },
    "consigneeFacility": {
      "description": "Consignee Facility details.",
      "type": "object",
      "properties": {
        "facilityNumber": {
          "description": "Facility number. Required for Create actions.",
          "type": "string",
          "minLength": 1,
          "maxLength": 15
        },
        "facilityType": {
          "description": "Type of facility",
          "type": "string",
          "minLength": 1,
          "maxLength": 15
        }
      }
    },
    "comment": {
      "description": "Facility Comments",
      "type": "string",
      "pattern": "^[A-Za-z0-9\\.\\-\\&\\# ]{1,256}$",
      "minLength": 1,
      "maxLength": 256
    },
    "valueAddedService": {
      "description": "Special appointment types offered",
      "type": "string",
      "enum": [
        "D1",
        "D2",
        "D3",
        "D4",
        "D5",
        "D6",
        "D7",
        "D8",
        "D9",
        "D10",
        "D11",
        "D12",
        "D13",
        "D14",
        "D15",
        "D16",
        "D17",
        "D18",
        "D19",
        "D20"
      ]
    },
    "shipperAppointmentRequestID": {
      "pattern": "^[A-Za-z0-9-]{1,12}$",
      "description": "Mailer assigned ID",
      "type": "string",
      "minLength": 1,
      "maxLength": 12
    },
    "consigneeAppointmentID": {
      "pattern": "^[A-Za-z0-9]{1,12}$",
      "description": "Appointment ID assigned from FAST. Required for Update actions.",
      "type": "string",
      "minLength": 1,
      "maxLength": 12
    },
    "schedulerID": {
      "pattern": "^[A-Za-z0-9]{1,12}$",
      "description": "Unique ID for mailer scheduler",
      "type": "string",
      "minLength": 1,
      "maxLength": 12
    },
    "schedulerCorpID": {
      "pattern": "^[A-Za-z0-9]{1,12}$",
      "description": "Unique ID of the corporation generated by PostalOne!",
      "type": "string",
      "minLength": 1,
      "maxLength": 12
    },
    "CRID": {
      "pattern": "^[0-9]{2,15}$",
      "description": "CRID assigned to Scheduler of FAST Appointment",
      "type": "string",
      "minLength": 2,
      "maxLength": 15
    },
    "shipperMultiStopID": {
      "pattern": "^[A-Za-z0-9]{1,12}$",
      "description": "ID assigned to multistop appointments",
      "type": "string",
      "minLength": 1,
      "maxLength": 12
    },
    "consigneeMultiStopID": {
      "pattern": "^[A-Za-z0-9]{1,12}$",
      "description": "Assigned Appointment ID for multistop appointment",
      "type": "string",
      "minLength": 1,
      "maxLength": 12
    },
    "shipperStopNumber": {
      "pattern": "^[0-9]{1,6}$",
      "description": "Number of multistop appointments under FAST appointment",
      "type": "string",
      "minLength": 1,
      "maxLength": 6
    },
    "pickupOrDelivery": {
      "description": "Type of delivery from mailer",
      "type": "string",
      "enum": [
        "PICKUP",
        "DELIVERY"
      ]
    },
    "palletPositionCount": {
      "description": "The number of pallet positions in the appointment",
      "type": "integer",
      "minimum": 0,
      "maximum": 99
    },
    "includesElectronicLoad": {
      "description": "Indicates the Appointment is electronically processed with barcodes",
      "type": "string",
      "enum": [
        "YES",
        "NO"
      ]
    }
  },
  "additionalProperties": false
}