{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/bond/main/json-schema/bond-businesses-post-serializer-schema.json",
  "title": "BusinessesPostSerializer",
  "x-generated": "2026-10-14",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/bond-business-openapi.yml#/components/schemas/BusinessesPostSerializer",
  "type": "object",
  "properties": {
    "brand_business_id": {
      "type": "string",
      "description": "The brand's UUID for the business."
    },
    "ein": {
      "type": "string",
      "description": "The Tax Identification Number"
    },
    "legal_business_name": {
      "type": "string",
      "description": "The legal business name"
    },
    "dba_business_name": {
      "type": "string",
      "description": "The doing-business-as name (trade name)"
    },
    "business_type": {
      "type": "string",
      "description": "The business type",
      "enum": [
        "cooperative",
        "limited_liability_company",
        "sole_proprietorship",
        "partnership",
        "limited_partnership",
        "corporation",
        "nonprofit_organization"
      ]
    },
    "date_established": {
      "type": "string",
      "description": "Date of incorporation in YYYY-MM-DD format",
      "format": "string"
    },
    "phone": {
      "type": "string",
      "description": "Phone number"
    },
    "email": {
      "type": "string",
      "description": "Business contact email"
    },
    "website": {
      "type": "string",
      "description": "The official website"
    },
    "industry_type": {
      "type": "string",
      "description": "Type of business conducted"
    },
    "number_of_employees": {
      "type": "string",
      "description": "Description of number of employees at firm, as a range or value"
    },
    "addresses": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Address"
      }
    },
    "beneficial_owners": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/BeneficialOwnerPostSerializer"
      }
    }
  },
  "required": [
    "legal_business_name"
  ],
  "$defs": {
    "Address": {
      "title": "",
      "type": "object",
      "properties": {
        "address_type": {
          "type": "string",
          "description": "Address type is one of the following : MAILING, PHYSICAL, REGISTERED",
          "enum": [
            "MAILING",
            "PHYSICAL",
            "REGISTERED"
          ]
        },
        "street": {
          "type": "string",
          "description": "Has a 1 to 40-character limit. May only contain alphanumerics and the special characters `. , _ - #`"
        },
        "street2": {
          "type": "string",
          "description": "Has a 40-character limit. May only contain alphanumerics and the special characters `. , _ - #`"
        },
        "city": {
          "type": "string",
          "description": "Has a 2 to 40-character limit. May contain only alphanumerics, `-`, `_`,`.`, and spaces",
          "minLength": 2,
          "maxLength": 40
        },
        "state": {
          "type": "string",
          "description": "Has a 2-character limit for US address.<br />Has a 20-character limit for non US address."
        },
        "zip_code": {
          "type": "string",
          "description": "zip code in 5-digit (12345) or 9-digit (12345-1234) format for US address.<br />Has a 2 to 20-character limit for non US address."
        },
        "country": {
          "type": "string",
          "description": "ISO 3166-1 alpha-2 country code.<br />Has a 2-character limit."
        },
        "is_primary": {
          "type": "boolean",
          "description": "Is Primary Address?"
        }
      },
      "required": [
        "address_type",
        "street",
        "city",
        "state",
        "zip_code",
        "country",
        "is_primary"
      ]
    },
    "BeneficialOwnerPostSerializer": {
      "type": "object",
      "properties": {
        "dob": {
          "type": "string",
          "description": "Date of birth in YYYY-MM-DD format.",
          "format": "string"
        },
        "first_name": {
          "type": "string",
          "description": "First name.<br />Has a 1 to 20-character limit. Must start with an alphabet and may only contain alphabets, spaces, and apostrophes."
        },
        "middle_name": {
          "type": "string",
          "description": "Middle name.<br />Has a 20-character limit. Must start with an alphabet and may only contain alphabets, spaces, and apostrophes."
        },
        "last_name": {
          "type": "string",
          "description": "Last name.<br />Has a 2 to 20-character limit. Must start with an alphabet and may only contain alphabets, spaces, and apostrophes."
        },
        "addresses": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Address"
          }
        }
      },
      "required": [
        "first_name",
        "last_name",
        "addresses"
      ]
    }
  }
}