{

"name": "UPS",
"courier_code": "ups",
"tracking_numbers": [
  {
    "name": "UPS",
    "regex": [
      "\\s*1\\s*Z\\s*(?<SerialNumber>",
      "(?<ShipperId>(?:[A-Z0-9]\\s*){6,6})",
      "(?<ServiceType>(?:[A-Z0-9]\\s*){2,2})",
      "(?<PackageId>(?:[A-Z0-9]\\s*){7,7}))",
      "(?<CheckDigit>[A-Z0-9]\\s*)"
    ],
    "validation": {
      "checksum": {
        "name": "mod10",
        "evens_multiplier": 1,
        "odds_multiplier": 2
      }
    },
    "tracking_url": "https://wwwapps.ups.com/WebTracking/track?track=yes&trackNums=%s",
    "additional": [
      {
        "name": "Service Type",
        "regex_group_name": "ServiceType",
        "lookup": [
          {
            "matches": "01",
            "name": "UPS United States Next Day Air (Red)"
          },
          {
            "matches": "02",
            "name": "UPS United States Second Day Air (Blue)"
          },
          {
            "matches": "03",
            "name": "UPS United States Ground"
          },
          {
            "matches": "12",
            "name": "UPS United States Third Day Select"
          },
          {
            "matches": "13",
            "name": "UPS United States Next Day Air Saver (Red Saver)"
          },
          {
            "matches": "15",
            "name": "UPS United States Next Day Air Early A.M."
          },
          {
            "matches": "22",
            "name": "UPS United States Ground - Returns Plus - Three Pickup Attempts"
          },
          {
            "matches": "32",
            "name": "UPS United States Next Day Air Early A.M. - COD"
          },
          {
            "matches": "33",
            "name": "UPS United States Next Day Air Early A.M. - Saturday Delivery, COD"
          },
          {
            "matches": "41",
            "name": "UPS United States Next Day Air Early A.M. - Saturday Delivery"
          },
          {
            "matches": "42",
            "name": "UPS United States Ground - Signature Required"
          },
          {
            "matches": "44",
            "name": "UPS United States Next Day Air - Saturday Delivery"
          },
          {
            "matches": "66",
            "name": "UPS United States Worldwide Express"
          },
          {
            "matches": "72",
            "name": "UPS United States Ground - Collect on Delivery"
          },
          {
            "matches": "78",
            "name": "UPS United States Ground - Returns Plus - One Pickup Attempt"
          },
          {
            "matches": "90",
            "name": "UPS United States Ground - Returns - UPS Prints and Mails Label"
          },
          {
            "matches": "A0",
            "name": "UPS United States Next Day Air Early A.M. - Adult Signature Required"
          },
          {
            "matches": "A1",
            "name": "UPS United States Next Day Air Early A.M. - Saturday Delivery, Adult Signature Required"
          },
          {
            "matches": "A2",
            "name": "UPS United States Next Day Air - Adult Signature Required"
          },
          {
            "matches": "A8",
            "name": "UPS United States Ground - Adult Signature Required"
          },
          {
            "matches": "A9",
            "name": "UPS United States Next Day Air Early A.M. - Adult Signature Required, COD"
          },
          {
            "matches": "AA",
            "name": "UPS United States Next Day Air Early A.M. - Saturday Delivery, Adult Signature Required, COD"
          },
          {
            "matches": "YW",
            "name": "UPS SurePost - Delivered by the USPS"
          }
        ]
      }
    ],
    "test_numbers": {
      "valid": [
        "1Z5R89390357567127",
        "1Z879E930346834440",
        "1Z410E7W0392751591",
        "1Z8V92A70367203024",
        " 1 Z 8 V 9 2 A 7 0 3 6 7 2 0 3 0 2 4 ",
        "1ZXX3150YW44070023"
      ],
      "invalid": [
        "2Z5R89390357567127",
        "1A5R89390357567127",
        "1Z1111111111111111"
      ]
    }
  }
]

}