{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/green-check-verified/main/json-schema/green-check-verified-service-provider-crb-schema.json",
  "title": "ServiceProviderCRB",
  "x-generated": "2026-10-20",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/green-check-verified-crb-info-api-openapi.yml#/components/schemas/ServiceProviderCRB",
  "properties": {
    "id": {
      "$ref": "#/$defs/UUID",
      "description": "ID"
    },
    "name": {
      "type": "string",
      "description": "Organization name"
    },
    "street_address": {
      "type": "string",
      "description": "Street Address"
    },
    "street_address_2": {
      "type": [
        "string",
        "null"
      ],
      "description": "Street Address 2"
    },
    "city": {
      "allOf": [
        {
          "$ref": "#/$defs/City"
        }
      ],
      "description": "City",
      "type": [
        "string",
        "null"
      ]
    },
    "ein": {
      "allOf": [
        {
          "$ref": "#/$defs/EIN"
        }
      ],
      "description": "Employer Identification Number",
      "type": [
        "string",
        "null"
      ]
    },
    "phone_number": {
      "allOf": [
        {
          "$ref": "#/$defs/PhoneNumber"
        }
      ],
      "description": "Phone Number",
      "type": [
        "string",
        "null"
      ]
    },
    "postal_code": {
      "allOf": [
        {
          "$ref": "#/$defs/PostalCode"
        }
      ],
      "description": "Postal Code",
      "type": [
        "string",
        "null"
      ]
    },
    "country": {
      "type": [
        "string",
        "null"
      ],
      "description": "Country"
    },
    "state": {
      "$ref": "#/$defs/USStates",
      "description": "State"
    },
    "website": {
      "allOf": [
        {
          "$ref": "#/$defs/Website"
        }
      ],
      "description": "Website",
      "type": [
        "string",
        "null"
      ]
    },
    "timezone": {
      "$ref": "#/$defs/IANATimezones",
      "description": "Timezone"
    },
    "mailing_street_address": {
      "type": [
        "string",
        "null"
      ],
      "description": "Mailing Street Address"
    },
    "mailing_city": {
      "allOf": [
        {
          "$ref": "#/$defs/City"
        }
      ],
      "description": "Mailing City",
      "type": [
        "string",
        "null"
      ]
    },
    "mailing_state": {
      "allOf": [
        {
          "$ref": "#/$defs/USStates"
        }
      ],
      "description": "Mailing State",
      "type": [
        "string",
        "null"
      ]
    },
    "mailing_postal_code": {
      "allOf": [
        {
          "$ref": "#/$defs/PostalCode"
        }
      ],
      "description": "Mailing Postal Code",
      "type": [
        "string",
        "null"
      ]
    },
    "established_date": {
      "allOf": [
        {
          "$ref": "#/$defs/ShortDate"
        }
      ],
      "description": "Date the dispensary was established",
      "type": [
        "string",
        "null"
      ]
    },
    "ftEmployees": {
      "$ref": "#/$defs/NullablePositiveInteger",
      "description": "Number of full time employees"
    },
    "ptEmployees": {
      "$ref": "#/$defs/NullablePositiveInteger",
      "description": "Number of part time employees"
    },
    "entityType": {
      "allOf": [
        {
          "$ref": "#/$defs/EntityType"
        }
      ],
      "description": "Type of business entity",
      "type": [
        "string",
        "null"
      ]
    },
    "dba": {
      "type": [
        "string",
        "null"
      ],
      "description": "Doing Business As"
    },
    "monthlySales": {
      "type": [
        "string",
        "null"
      ],
      "description": "Estimated amouunt of monthly sales"
    },
    "monthlyCustomers": {
      "$ref": "#/$defs/NullablePositiveInteger",
      "description": "Estimated amount of monthly customers"
    },
    "org_type": {
      "$ref": "#/$defs/OrganizationType",
      "description": "Org Type\n\ndispensary = standalone dispensary. MUO stands for Multi-Unit Organization, where the \"muo\" org is the parent and it's child orgs have org type dispesary"
    },
    "business_type": {
      "allOf": [
        {
          "$ref": "#/$defs/DispensaryBusinessType"
        }
      ],
      "type": [
        "string",
        "null"
      ]
    },
    "template_id": {
      "$ref": "#/$defs/UUID"
    },
    "template_result_id": {
      "$ref": "#/$defs/UUID"
    },
    "status": {
      "$ref": "#/$defs/DueDiligenceStatus"
    },
    "pos_configs": {
      "items": {
        "$ref": "#/$defs/AccessPosConfig"
      },
      "type": "array"
    }
  },
  "required": [
    "id",
    "name",
    "street_address",
    "street_address_2",
    "city",
    "ein",
    "phone_number",
    "postal_code",
    "country",
    "state",
    "website",
    "timezone",
    "mailing_street_address",
    "mailing_city",
    "mailing_state",
    "mailing_postal_code",
    "established_date",
    "ftEmployees",
    "ptEmployees",
    "entityType",
    "dba",
    "monthlySales",
    "monthlyCustomers",
    "org_type",
    "business_type",
    "template_id",
    "template_result_id",
    "status",
    "pos_configs"
  ],
  "type": "object",
  "additionalProperties": false,
  "$defs": {
    "AccessPosConfig": {
      "properties": {
        "name": {
          "$ref": "#/$defs/FriendlyPosName"
        },
        "status": {
          "$ref": "#/$defs/PosConnectionStatus"
        },
        "updated_date": {
          "$ref": "#/$defs/UtcDateTime",
          "type": "string",
          "format": "date-time"
        }
      },
      "required": [
        "name",
        "updated_date"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "City": {
      "type": "string",
      "description": "City",
      "pattern": "^[a-zA-Z\\s.-]+$"
    },
    "DispensaryBusinessType": {
      "type": "string",
      "enum": [
        "retail",
        "wholesale"
      ]
    },
    "DueDiligenceStatus": {
      "enum": [
        "bank_disconnected",
        "bank_approved",
        "bank_review_in_progress",
        "bank_awaiting_review",
        "bank_in_progress",
        "bank_pending",
        "gcv_approved",
        "gcv_awaiting_review",
        "gcv_in_progress",
        "gcv_pending",
        "update_required"
      ],
      "type": "string"
    },
    "EIN": {
      "type": "string",
      "description": "EIN (Employer Identification Number) - ##-#######",
      "pattern": "^\\d{2}-\\d{7}$"
    },
    "EntityType": {
      "enum": [
        "sole",
        "partnership",
        "corporation",
        "llc"
      ],
      "type": "string"
    },
    "FriendlyPosName": {
      "type": "string",
      "enum": [
        "Alleaves",
        "Dutchie",
        "Dutchie Wholesale",
        "Cova",
        "Meadow",
        "MJ Freeway",
        "MJ Freeway Wholesale",
        "Greenbits",
        "GrowFlow",
        "GrowFlow Wholesale",
        "Portal42",
        "Metrc S2S",
        "Metrc S2S Wholesale",
        "Flourish",
        "Flourish Wholesale",
        "Flowhub",
        "BioTrack",
        "BioTrack Wholesale",
        "Treez",
        "Blaze",
        "Quickbooks",
        "Sage Intacct",
        "Canix",
        "Brytemap",
        "POSaBIT",
        "Proteus420",
        "IndicaOnline",
        "Sweed",
        "Weave",
        "Jane",
        "Manual Upload Wholesale",
        "Cova Test Account",
        "Leaf Logix Test Account",
        "BioTrack Test Account",
        "Mj Freeway Test Account",
        "Treez IO Test Account",
        "Green Bits Test Account",
        "Manual Upload Retail",
        "Not Configured",
        "Unsupported",
        "CRBMonitor",
        "Plaid"
      ]
    },
    "IANATimezones": {
      "enum": [
        "America/New_York",
        "America/Detroit",
        "America/Kentucky/Louisville",
        "America/Kentucky/Monticello",
        "America/Indiana/Indianapolis",
        "America/Indiana/Vincennes",
        "America/Indiana/Winamac",
        "America/Indiana/Marengo",
        "America/Indiana/Petersburg",
        "America/Indiana/Vevay",
        "America/Chicago",
        "America/Indiana/Tell_City",
        "America/Indiana/Knox",
        "America/Menominee",
        "America/North_Dakota/Center",
        "America/North_Dakota/New_Salem",
        "America/North_Dakota/Beulah",
        "America/Denver",
        "America/Boise",
        "America/Phoenix",
        "America/Los_Angeles",
        "America/Anchorage",
        "America/Juneau",
        "America/Puerto_Rico",
        "America/Sitka",
        "America/St_Thomas",
        "America/Metlakatla",
        "America/Yakutat",
        "America/Nome",
        "America/Adak",
        "Pacific/Honolulu",
        "Pacific/Guam",
        "Pacific/Kosrae",
        "Pacific/Midway",
        "Pacific/Pago_Pago",
        "Pacific/Palau",
        "Pacific/Kwajalein",
        "Pacific/Saipan"
      ],
      "type": "string"
    },
    "NullablePositiveInteger": {
      "type": [
        "integer",
        "null"
      ],
      "format": "int32",
      "minimum": 0
    },
    "OrganizationType": {
      "enum": [
        "bank",
        "dispensary",
        "gcv",
        "transport_vendor",
        "muo",
        "data_integrator_client"
      ],
      "type": "string"
    },
    "PhoneNumber": {
      "type": "string",
      "description": "Phone Number - (###) ####-####",
      "pattern": "^\\(\\d{3}\\)\\s\\d{3}-\\d{4}$"
    },
    "PosConnectionStatus": {
      "type": "string",
      "enum": [
        "Connected",
        "Not Connected",
        "Needs Attention",
        "Pending"
      ]
    },
    "PostalCode": {
      "type": "string",
      "description": "Postal Code",
      "pattern": "^\\d{5}(?:[-\\s]?\\d{4})?$"
    },
    "ShortDate": {
      "type": "string",
      "pattern": "^[2][0][0-9]{2}[-]([0][0-9]|[1][0-2])[-]([0-2][0-9]|[3][0-1])"
    },
    "USStates": {
      "description": "Enumeration of all of the United States",
      "enum": [
        "AL",
        "AK",
        "AZ",
        "AR",
        "AS",
        "CA",
        "CO",
        "CT",
        "DE",
        "DC",
        "FM",
        "FL",
        "GA",
        "GU",
        "HI",
        "ID",
        "IL",
        "IN",
        "IA",
        "KS",
        "KY",
        "LA",
        "ME",
        "MD",
        "MA",
        "MH",
        "MI",
        "MN",
        "MS",
        "MO",
        "MT",
        "NE",
        "NV",
        "NH",
        "NJ",
        "NM",
        "NY",
        "NC",
        "ND",
        "MP",
        "OH",
        "OK",
        "OR",
        "PW",
        "PA",
        "PR",
        "RI",
        "SC",
        "SD",
        "TN",
        "TX",
        "UM",
        "UT",
        "VT",
        "VA",
        "VI",
        "WA",
        "WV",
        "WI",
        "WY",
        "AA",
        "AE",
        "AP"
      ],
      "type": "string"
    },
    "UUID": {
      "type": "string",
      "format": "uuid",
      "pattern": "^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$"
    },
    "UtcDateTime": {
      "type": "string",
      "format": "date-time"
    },
    "Website": {
      "type": "string",
      "description": "Website",
      "pattern": "^(https?:\\/\\/)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&=]*)"
    }
  }
}