{
 "description": "Some optional fields in the request are not processed, but are included as part of upstream compatibility. Make a request using pickup.isTest=true to check your request format, and ignoreUnprocessed=true to make the upstream request with unprocesed fields.",
 "type": "object",
 "properties": {
  "accessorials": {
   "type": "object",
   "properties": {
    "appointmentDetails": {
     "type": "object",
     "properties": {
      "delivery": {
       "type": "object",
       "properties": {
        "end": {
         "type": "string",
         "pattern": "\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}(?::\\d{2}(?:[.]\\d{3})?)?)?"
        },
        "start": {
         "type": "string",
         "pattern": "\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}(?::\\d{2}(?:[.]\\d{3})?)?)?"
        }
       }
      },
      "pickup": {
       "type": "object",
       "properties": {
        "end": {
         "type": "string",
         "pattern": "\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}(?::\\d{2}(?:[.]\\d{3})?)?)?"
        },
        "start": {
         "type": "string",
         "pattern": "\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}(?::\\d{2}(?:[.]\\d{3})?)?)?"
        }
       },
       "required": [
        "end",
        "start"
       ]
      }
     }
    },
    "cod": {
     "type": "object",
     "properties": {
      "amount": {
       "type": "string",
       "pattern": "\\d+.\\d{2}"
      },
      "currency": {
       "enum": [
        "USD",
        "CAD",
        "MXN"
       ]
      },
      "customerCheckAcceptable": {
       "type": "boolean"
      },
      "remitTo": {
       "type": "object",
       "properties": {
        "address1": {
         "type": "string"
        },
        "address2": {
         "type": "string"
        },
        "city": {
         "type": "string"
        },
        "country": {
         "enum": [
          "USA",
          "CAN",
          "MEX",
          "US",
          "CA",
          "MX"
         ]
        },
        "name": {
         "type": "string"
        },
        "postalCode": {
         "type": "string",
         "pattern": "(?:\\d{5}(?:[-]\\d{4})?)|(?:(?:[A-Za-z][0-9][A-Za-z][0-9][A-Za-z])[0-9]?)"
        },
        "stateProvince": {
         "enum": [
          "AL",
          "AK",
          "AZ",
          "AR",
          "CA",
          "CO",
          "CT",
          "DC",
          "DE",
          "FL",
          "GA",
          "HI",
          "ID",
          "IL",
          "IN",
          "IA",
          "KS",
          "KY",
          "LA",
          "ME",
          "MD",
          "MA",
          "MI",
          "MN",
          "MS",
          "MO",
          "MT",
          "NE",
          "NV",
          "NH",
          "NJ",
          "NM",
          "NY",
          "NC",
          "ND",
          "OH",
          "OK",
          "OR",
          "PA",
          "PR",
          "RI",
          "SC",
          "SD",
          "TN",
          "TX",
          "UT",
          "VT",
          "VA",
          "WA",
          "WV",
          "WI",
          "WY",
          "AB",
          "BC",
          "MB",
          "NB",
          "NL",
          "NS",
          "NT",
          "NU",
          "ON",
          "PE",
          "QC",
          "SK",
          "YT",
          "CMX",
          "AGU",
          "BCN",
          "BCS",
          "CAM",
          "COA",
          "COL",
          "CHP",
          "CHH",
          "DUR",
          "GUA",
          "GRO",
          "HID",
          "JAL",
          "MEX",
          "MIC",
          "MOR",
          "NAY",
          "NLE",
          "OAX",
          "PUE",
          "QUE",
          "ROO",
          "SLP",
          "SIN",
          "SON",
          "TAB",
          "TAM",
          "TLA",
          "VER",
          "YUC",
          "ZAC"
         ]
        }
       }
      },
      "terms": {
       "enum": [
        "Prepaid",
        "Collect"
       ]
      }
     },
     "required": [
      "amount",
      "customerCheckAcceptable",
      "remitTo",
      "terms"
     ]
    },
    "codes": {
     "type": "array",
     "items": {
      "enum": [
       "LFTP",
       "IPU",
       "LTDAP",
       "REP",
       "LFTD",
       "IDL",
       "LTDAD",
       "RES",
       "PSC",
       "GRD_PU",
       "IPU",
       "RPU",
       "GRD_DEL",
       "IDEL",
       "RDEL",
       "FRE",
       "CSD",
       "DELON",
       "FLATBD",
       "ARR",
       "CAP",
       "BOND",
       "OD",
       "SS",
       "BLKH"
      ]
     }
    },
    "fullValueCoverageDetails": {
     "type": "object",
     "properties": {
      "currency": {
       "enum": [
        "USD",
        "CAD",
        "MXN"
       ]
      },
      "monetaryValue": {
       "type": "string",
       "pattern": "\\d+.\\d{2}"
      }
     },
     "required": [
      "monetaryValue"
     ]
    },
    "hazardousDetails": {
     "type": "object",
     "properties": {
      "emergencyContact": {
       "type": "object",
       "properties": {
        "name": {
         "type": "string"
        },
        "phone": {
         "type": "string"
        }
       },
       "required": [
        "phone"
       ]
      }
     },
     "required": [
      "emergencyContact"
     ]
    },
    "limitedAccessType": {
     "type": "object",
     "properties": {
      "destination": {
       "enum": [
        "Church",
        "Military",
        "School",
        "Mini-Storage",
        "Other"
       ]
      },
      "origin": {
       "enum": [
        "Church",
        "Military",
        "School",
        "Mini-Storage",
        "Other"
       ]
      }
     }
    },
    "markDetails": {
     "type": "object",
     "properties": {
      "pieces": {
       "type": "integer"
      }
     },
     "required": [
      "pieces"
     ]
    },
    "sortAndSegregateDetails": {
     "type": "object",
     "properties": {
      "pieces": {
       "type": "integer"
      }
     },
     "required": [
      "pieces"
     ]
    },
    "timeCriticalDetails": {
     "type": "object",
     "properties": {
      "date": {
       "type": "object",
       "properties": {
        "end": {
         "type": "string",
         "pattern": "\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}(?::\\d{2}(?:[.]\\d{3})?)?)?"
        },
        "start": {
         "type": "string",
         "pattern": "\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}(?::\\d{2}(?:[.]\\d{3})?)?)?"
        }
       }
      },
      "type": {
       "enum": [
        "Deliver On Date",
        "Deliver On or After Date",
        "Deliver By Date",
        "Delivery Window"
       ]
      }
     },
     "required": [
      "date",
      "type"
     ]
    }
   }
  },
  "billTo": {
   "type": "object",
   "properties": {
    "address1": {
     "type": "string"
    },
    "city": {
     "type": "string"
    },
    "contact": {
     "type": "object",
     "properties": {
      "email": {
       "type": "string"
      },
      "name": {
       "type": "string"
      },
      "phone": {
       "type": "string"
      },
      "phoneExt": {
       "type": "string"
      }
     }
    },
    "country": {
     "enum": [
      "USA",
      "CAN",
      "MEX",
      "US",
      "CA",
      "MX"
     ]
    },
    "name": {
     "type": "string"
    },
    "postalCode": {
     "type": "string",
     "pattern": "(?:\\d{5}(?:[-]\\d{4})?)|(?:(?:[A-Za-z][0-9][A-Za-z][0-9][A-Za-z])[0-9]?)"
    },
    "stateProvince": {
     "enum": [
      "AL",
      "AK",
      "AZ",
      "AR",
      "CA",
      "CO",
      "CT",
      "DC",
      "DE",
      "FL",
      "GA",
      "HI",
      "ID",
      "IL",
      "IN",
      "IA",
      "KS",
      "KY",
      "LA",
      "ME",
      "MD",
      "MA",
      "MI",
      "MN",
      "MS",
      "MO",
      "MT",
      "NE",
      "NV",
      "NH",
      "NJ",
      "NM",
      "NY",
      "NC",
      "ND",
      "OH",
      "OK",
      "OR",
      "PA",
      "PR",
      "RI",
      "SC",
      "SD",
      "TN",
      "TX",
      "UT",
      "VT",
      "VA",
      "WA",
      "WV",
      "WI",
      "WY",
      "AB",
      "BC",
      "MB",
      "NB",
      "NL",
      "NS",
      "NT",
      "NU",
      "ON",
      "PE",
      "QC",
      "SK",
      "YT",
      "CMX",
      "AGU",
      "BCN",
      "BCS",
      "CAM",
      "COA",
      "COL",
      "CHP",
      "CHH",
      "DUR",
      "GUA",
      "GRO",
      "HID",
      "JAL",
      "MEX",
      "MIC",
      "MOR",
      "NAY",
      "NLE",
      "OAX",
      "PUE",
      "QUE",
      "ROO",
      "SLP",
      "SIN",
      "SON",
      "TAB",
      "TAM",
      "TLA",
      "VER",
      "YUC",
      "ZAC"
     ]
    }
   }
  },
  "pickup": {
   "type": "object",
   "properties": {
    "function": {
     "enum": [
      "Create"
     ]
    },
    "isTest": {
     "type": "boolean"
    },
    "requestedPickupDate": {
     "type": "string",
     "pattern": "\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}(?::\\d{2}(?:[.]\\d{3})?)?)?"
    },
    "requestorRole": {
     "enum": [
      "Shipper",
      "Consignee",
      "Third Party"
     ]
    },
    "specialInstructions": {
     "type": "string"
    },
    "appId": {
     "type": [
      "string",
      "integer"
     ],
     "description": "ArcBest APP_ID if required"
    },
    "requestor": {
     "type": "object",
     "properties": {
      "email": {
       "type": "string"
      },
      "name": {
       "type": "string"
      },
      "phone": {
       "type": "string"
      },
      "phoneExt": {
       "type": "string"
      }
     }
    }
   },
   "required": [
    "function",
    "requestedPickupDate",
    "requestorRole"
   ]
  },
  "commodities": {
   "type": "object",
   "properties": {
    "handlingUnits": {
     "type": "array",
     "items": {
      "type": "object",
      "properties": {
       "count": {
        "type": "integer"
       },
       "dimensionsUnit": {
        "enum": [
         "Inches",
         "Centimeters"
        ]
       },
       "height": {
        "type": "integer"
       },
       "length": {
        "type": "integer"
       },
       "lineItems": {
        "type": "array",
        "items": {
         "type": "object",
         "properties": {
          "classification": {
           "enum": [
            "50",
            "55",
            "60",
            "65",
            "70",
            "77.5",
            "85",
            "92.5",
            "100",
            "110",
            "125",
            "150",
            "175",
            "200",
            "250",
            "300",
            "400",
            "500"
           ]
          },
          "description": {
           "type": "string"
          },
          "hazardous": {
           "type": "boolean"
          },
          "hazardousDescription": {
           "type": "string"
          },
          "nmfc": {
           "type": "string",
           "pattern": "\\d+"
          },
          "nmfcSub": {
           "type": "string",
           "pattern": "\\d+"
          },
          "packagingType": {
           "enum:": [
            "BAG",
            "BL",
            "BRL",
            "BSK",
            "BX",
            "BKT",
            "BLKH",
            "BDL",
            "CRB",
            "CTN",
            "CS",
            "CHT",
            "CL",
            "CRT",
            "CYL",
            "DR",
            "FIR",
            "HMP",
            "HHD",
            "KEG",
            "PKG",
            "PL",
            "PLT",
            "PC",
            "RK",
            "REL",
            "RL",
            "SKD",
            "SLP",
            "TOTE",
            "TRK",
            "TB",
            "BXT",
            "CBY",
            "CAS",
            "CHS",
            "COL",
            "DRM",
            "HPR",
            "HGH",
            "PAL",
            "PAT",
            "PCS",
            "RCK",
            "ROL",
            "TBN",
            "TBE"
           ]
          },
          "pieces": {
           "type": "integer"
          },
          "weight": {
           "type": "integer"
          },
          "weightUnit": {
           "enum": [
            "Pounds",
            "Kilograms"
           ]
          }
         },
         "required": []
        }
       },
       "stackable": {
        "type": "boolean"
       },
       "tareWeight": {
        "type": "integer"
       },
       "type": {
        "enum:": [
         "BAG",
         "BL",
         "BRL",
         "BSK",
         "BX",
         "BKT",
         "BLKH",
         "BDL",
         "CRB",
         "CTN",
         "CS",
         "CHT",
         "CL",
         "CRT",
         "CYL",
         "DR",
         "FIR",
         "HMP",
         "HHD",
         "KEG",
         "PKG",
         "PL",
         "PLT",
         "PC",
         "RK",
         "REL",
         "RL",
         "SKD",
         "SLP",
         "TOTE",
         "TRK",
         "TB",
         "BXT",
         "CBY",
         "CAS",
         "CHS",
         "COL",
         "DRM",
         "HPR",
         "HGH",
         "PAL",
         "PAT",
         "PCS",
         "RCK",
         "ROL",
         "TBN",
         "TBE"
        ]
       },
       "weight": {
        "type": "integer"
       },
       "weightUnit": {
        "enum": [
         "Pounds",
         "Kilograms"
        ]
       },
       "width": {
        "type": "integer"
       }
      },
      "required": [
       "count",
       "type",
       "weight"
      ]
     }
    }
   },
   "required": [
    "handlingUnits"
   ]
  },
  "destination": {
   "type": "object",
   "properties": {
    "address1": {
     "type": "string"
    },
    "city": {
     "type": "string"
    },
    "contact": {
     "type": "object",
     "properties": {
      "email": {
       "type": "string"
      },
      "name": {
       "type": "string"
      },
      "phone": {
       "type": "string"
      },
      "phoneExt": {
       "type": "string"
      }
     }
    },
    "country": {
     "enum": [
      "USA",
      "CAN",
      "MEX",
      "US",
      "CA",
      "MX"
     ]
    },
    "name": {
     "type": "string"
    },
    "postalCode": {
     "type": "string",
     "pattern": "(?:\\d{5}(?:[-]\\d{4})?)|(?:(?:[A-Za-z][0-9][A-Za-z][0-9][A-Za-z])[0-9]?)"
    },
    "stateProvince": {
     "enum": [
      "AL",
      "AK",
      "AZ",
      "AR",
      "CA",
      "CO",
      "CT",
      "DC",
      "DE",
      "FL",
      "GA",
      "HI",
      "ID",
      "IL",
      "IN",
      "IA",
      "KS",
      "KY",
      "LA",
      "ME",
      "MD",
      "MA",
      "MI",
      "MN",
      "MS",
      "MO",
      "MT",
      "NE",
      "NV",
      "NH",
      "NJ",
      "NM",
      "NY",
      "NC",
      "ND",
      "OH",
      "OK",
      "OR",
      "PA",
      "PR",
      "RI",
      "SC",
      "SD",
      "TN",
      "TX",
      "UT",
      "VT",
      "VA",
      "WA",
      "WV",
      "WI",
      "WY",
      "AB",
      "BC",
      "MB",
      "NB",
      "NL",
      "NS",
      "NT",
      "NU",
      "ON",
      "PE",
      "QC",
      "SK",
      "YT",
      "CMX",
      "AGU",
      "BCN",
      "BCS",
      "CAM",
      "COA",
      "COL",
      "CHP",
      "CHH",
      "DUR",
      "GUA",
      "GRO",
      "HID",
      "JAL",
      "MEX",
      "MIC",
      "MOR",
      "NAY",
      "NLE",
      "OAX",
      "PUE",
      "QUE",
      "ROO",
      "SLP",
      "SIN",
      "SON",
      "TAB",
      "TAM",
      "TLA",
      "VER",
      "YUC",
      "ZAC"
     ]
    }
   },
   "required": [
    "address1",
    "city",
    "contact",
    "country",
    "name",
    "postalCode",
    "stateProvince"
   ]
  },
  "images": {
   "type": "object",
   "properties": {
    "email": {
     "type": "object",
     "properties": {
      "addresses": {
       "type": "array",
       "items": {
        "type": "string"
       }
      },
      "includeBol": {
       "type": "boolean"
      },
      "includeLabels": {
       "type": "boolean"
      }
     },
     "required": [
      "addresses"
     ]
    },
    "includeBol": {
     "type": "boolean"
    },
    "includeShippingLabels": {
     "type": "boolean"
    },
    "shippingLabels": {
     "type": "object",
     "properties": {
      "format": {
       "enum": [
        "Avery",
        "Letter",
        "Zebra"
       ]
      },
      "position": {
       "type": "integer"
      },
      "quantity": {
       "type": "integer"
      }
     },
     "required": [
      "format",
      "quantity"
     ]
    }
   },
   "required": [
    "email"
   ]
  },
  "origin": {
   "type": "object",
   "properties": {
    "address1": {
     "type": "string"
    },
    "city": {
     "type": "string"
    },
    "contact": {
     "type": "object",
     "properties": {
      "email": {
       "type": "string"
      },
      "name": {
       "type": "string"
      },
      "phone": {
       "type": "string"
      },
      "phoneExt": {
       "type": "string"
      }
     }
    },
    "country": {
     "enum": [
      "USA",
      "CAN",
      "MEX",
      "US",
      "CA",
      "MX"
     ]
    },
    "name": {
     "type": "string"
    },
    "postalCode": {
     "type": "string",
     "pattern": "(?:\\d{5}(?:[-]\\d{4})?)|(?:(?:[A-Za-z][0-9][A-Za-z][0-9][A-Za-z])[0-9]?)"
    },
    "stateProvince": {
     "enum": [
      "AL",
      "AK",
      "AZ",
      "AR",
      "CA",
      "CO",
      "CT",
      "DC",
      "DE",
      "FL",
      "GA",
      "HI",
      "ID",
      "IL",
      "IN",
      "IA",
      "KS",
      "KY",
      "LA",
      "ME",
      "MD",
      "MA",
      "MI",
      "MN",
      "MS",
      "MO",
      "MT",
      "NE",
      "NV",
      "NH",
      "NJ",
      "NM",
      "NY",
      "NC",
      "ND",
      "OH",
      "OK",
      "OR",
      "PA",
      "PR",
      "RI",
      "SC",
      "SD",
      "TN",
      "TX",
      "UT",
      "VT",
      "VA",
      "WA",
      "WV",
      "WI",
      "WY",
      "AB",
      "BC",
      "MB",
      "NB",
      "NL",
      "NS",
      "NT",
      "NU",
      "ON",
      "PE",
      "QC",
      "SK",
      "YT",
      "CMX",
      "AGU",
      "BCN",
      "BCS",
      "CAM",
      "COA",
      "COL",
      "CHP",
      "CHH",
      "DUR",
      "GUA",
      "GRO",
      "HID",
      "JAL",
      "MEX",
      "MIC",
      "MOR",
      "NAY",
      "NLE",
      "OAX",
      "PUE",
      "QUE",
      "ROO",
      "SLP",
      "SIN",
      "SON",
      "TAB",
      "TAM",
      "TLA",
      "VER",
      "YUC",
      "ZAC"
     ]
    }
   },
   "required": [
    "address1",
    "city",
    "contact",
    "country",
    "name",
    "postalCode",
    "stateProvince"
   ]
  },
  "payment": {
   "type": "object",
   "properties": {
    "terms": {
     "enum": [
      "Prepaid",
      "Collect"
     ]
    }
   },
   "required": [
    "terms"
   ]
  },
  "referenceNumbers": {
   "type": "object",
   "properties": {
    "additionalReferences": {
     "type": "array",
     "items": {
      "type": "object",
      "properties": {
       "name": {
        "enum": [
         "CRN"
        ]
       },
       "value": {
        "type": "string"
       }
      },
      "required": [
       "name",
       "value"
      ]
     }
    },
    "bol": {
     "type": "array",
     "items": {
      "type": "string"
     }
    },
    "po": {
     "type": "array",
     "items": {
      "type": "object",
      "properties": {
       "number": {
        "type": "string"
       },
       "pieces": {
        "type": "integer"
       },
       "weight": {
        "type": "integer"
       },
       "deptartment": {
        "type": "string"
       }
      }
     }
    },
    "pro": {
     "type": "string"
    }
   },
   "required": [
    "po",
    "pro"
   ]
  },
  "version": {
   "enum": [
    "2.1.0"
   ]
  }
 },
 "required": [
  "pickup",
  "commodities",
  "destination",
  "origin",
  "payment",
  "version"
 ]
}