states/NC.json

{
  "state": "NC",
  "spec": {
    "document": "North Carolina Motor Fuels EDI Implementation Guide, transporter return GAS-1301 (CCR)",
    "version": "1.0.7",
    "where": "https://www.ncdor.gov/documents/motor-fuels-edi-implementation-guide",
    "pinned": "2026-03",
    "checked": "2026-09-23",
    "note": "nothing in 1.0.7 changes the transporter file these tests were written for (guide 1.0.4): schedule codes, the envelope, segment layouts and the product codes in use are unchanged, and the file conforms. one change matters for amendments only: BTI13 now takes CO (corrected) and 6S (supplemental) where 1.0.4 had 05 and 15. North Carolina counts an order in the period it started, not the one it completed."
  },
  "max_length": {
    "supplier.name": 35,
    "consignor.name": 35,
    "consignee.name": 35,
    "consignee.address": 35,
    "consignee.city": 30
  },
  "period_basis": "start",
  "tests": [
    {
      "type": "Freight",
      "name": "BOL is not a 3 to 15 digit number",
      "field": "bol",
      "test": "^[0-9]{3,15}$"
    },
    {
      "type": "Freight",
      "name": "Net is not a 3 to 6 digit number",
      "field": "net",
      "test": "^[0-9]{3,6}$"
    },
    {
      "type": "Freight",
      "name": "Gross is not a 3 to 6 digit number",
      "field": "gross",
      "test": "^[0-9]{3,6}$"
    },
    {
      "type": "Freight",
      "name": "No Commodity Code Mapping",
      "field": "cmd_code",
      "test": "^(?!nocode-).+$"
    },
    {
      "type": "Freight",
      "name": "Missing Ship Date",
      "field": "shipped",
      "test": "^.+$"
    },
    {
      "type": "Freight",
      "name": "Missing Shipper",
      "field": "shipper.cmp_id",
      "test": "^.+$"
    },
    {
      "type": "Freight",
      "name": "Missing Supplier",
      "field": "supplier.cmp_id",
      "test": "^.+$"
    },
    {
      "type": "Freight",
      "name": "Missing AccountOf/Consignor",
      "field": "consignor.cmp_id",
      "test": "^.+$"
    },
    {
      "type": "Freight",
      "name": "Missing Consignee",
      "field": "consignee.cmp_id",
      "test": "^.+$"
    },
    {
      "type": "Shipper",
      "name": "Shipper State is not 2 letters",
      "field": "shipper.state",
      "test": "^[a-z]{2}$"
    },
    {
      "type": "Shipper",
      "name": "Shipper TCN missing or Invalid Format",
      "field": "shipper.tcn",
      "test": "^T[0-9]{2}[a-z]{2}[0-9]{4}$"
    },
    {
      "type": "Supplier",
      "name": "Supplier Tax ID is not a 9 digit number",
      "field": "supplier.tax_id",
      "test": "^[0-9]{9,}$"
    },
    {
      "type": "Consignor",
      "name": "Consignor Tax ID is not a 9 digit number",
      "field": "consignor.tax_id",
      "test": "^[0-9]{9,}$"
    },
    {
      "type": "Consignee",
      "name": "Missing Consignee name",
      "field": "consignee.name",
      "test": "^.+$"
    },
    {
      "type": "Consignee",
      "name": "Missing Consignee City",
      "field": "consignee.city",
      "test": "^.+$"
    },
    {
      "type": "Consignee",
      "name": "Consignee State is not 2 Letters",
      "field": "consignee.state",
      "test": "^[a-z]{2}$"
    },
    {
      "type": "Consignee",
      "name": "Missing Consignee Zip",
      "field": "consignee.zip",
      "test": "^.+$"
    },
    {
      "type": "Consignee",
      "name": "Consignee Tax ID is not a 9 digit number",
      "field": "consignee.tax_id",
      "test": "^[0-9]{9,}$"
    }
  ]
}