{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/simply-energy/json-schema/simply-energy-response-common-customer-schema.json",
  "title": "ResponseCommonCustomer",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/simply-energy-data-holder-customers-api-openapi.yml#/components/schemas/ResponseCommonCustomer",
  "properties": {
    "data": {
      "$ref": "#/$defs/ResponseCommonCustomer_data"
    },
    "links": {
      "$ref": "#/$defs/Links"
    },
    "meta": {
      "$ref": "#/$defs/Meta"
    }
  },
  "required": [
    "data",
    "links"
  ],
  "type": "object",
  "$defs": {
    "CommonOrganisation": {
      "properties": {
        "lastUpdateTime": {
          "description": "The date and time that this record was last updated by the customer. If no update has occurred then this date should reflect the initial creation date for the data.",
          "type": "string",
          "x-cds-type": "DateTimeString"
        },
        "agentFirstName": {
          "description": "The first name of the individual providing access on behalf of the organisation. For people with single names this field need not be present. The single name should be in the _lastName_ field.",
          "type": "string"
        },
        "agentLastName": {
          "description": "The last name of the individual providing access on behalf of the organisation. For people with single names, the single name should be in this field.",
          "type": "string"
        },
        "agentRole": {
          "description": "The role of the individual identified as the agent who is providing authorisation. Expected to be used for display. Default to \"Unspecified\" if the role is not known.",
          "type": "string"
        },
        "businessName": {
          "description": "Name of the organisation.",
          "type": "string"
        },
        "legalName": {
          "description": "Legal name, if different to the business name.",
          "type": "string"
        },
        "shortName": {
          "description": "Short name used for communication, if different to the business name.",
          "type": "string"
        },
        "abn": {
          "description": "Australian Business Number for the organisation.",
          "type": "string"
        },
        "acn": {
          "description": "Australian Company Number for the organisation. Required only if an ACN is applicable for the organisation type.",
          "type": "string"
        },
        "isACNCRegistered": {
          "description": "`true` if registered with the ACNC. `false` if not. Absent or `null` if not confirmed.",
          "type": "boolean"
        },
        "industryCode": {
          "description": "A valid [ANZSIC](http://www.abs.gov.au/ANZSIC) code for the organisation. If the industry code held by the data holder is not one of the supported [ANZSIC](http://www.abs.gov.au/ANZSIC) versions, then it must not be supplied.",
          "type": "string",
          "x-cds-type": "ExternalRef"
        },
        "industryCodeVersion": {
          "default": "ANZSIC_1292.0_2006_V2.0",
          "description": "The applicable [ANZSIC](http://www.abs.gov.au/ANZSIC) release version of the industry code provided. Should only be supplied if _industryCode_ is also supplied. If _industryCode_ is supplied but _industryCodeVersion_ is absent, default is `ANZSIC_1292.0_2006_V2.0`.",
          "enum": [
            "ANZSIC_1292.0_2006_V1.0",
            "ANZSIC_1292.0_2006_V2.0"
          ],
          "type": "string"
        },
        "organisationType": {
          "description": "Legal organisation type.",
          "enum": [
            "COMPANY",
            "GOVERNMENT_ENTITY",
            "OTHER",
            "PARTNERSHIP",
            "SOLE_TRADER",
            "TRUST"
          ],
          "type": "string"
        },
        "registeredCountry": {
          "default": "AUS",
          "description": "Enumeration with values from [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country codes. Assumed to be `AUS` if absent.",
          "type": "string",
          "x-cds-type": "ExternalRef"
        },
        "establishmentDate": {
          "description": "The date the organisation described was established.",
          "type": "string",
          "x-cds-type": "DateString"
        }
      },
      "required": [
        "agentLastName",
        "agentRole",
        "businessName",
        "organisationType"
      ],
      "type": "object",
      "x-conditional": [
        "industryCodeVersion"
      ]
    },
    "CommonPerson": {
      "properties": {
        "lastUpdateTime": {
          "description": "The date and time that this record was last updated by the customer. If no update has occurred then this date should reflect the initial creation date for the data.",
          "type": "string",
          "x-cds-type": "DateTimeString"
        },
        "firstName": {
          "description": "For people with single names this field need not be present. The single name should be in the _lastName_ field. Where a data holder cannot determine first and middle names from a collection of given names, a single string representing all given names **MAY** be provided.",
          "type": "string"
        },
        "lastName": {
          "description": "For people with single names, the single name should be in this field.",
          "type": "string"
        },
        "middleNames": {
          "description": "Field is mandatory but array may be empty.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "prefix": {
          "description": "Also known as title or salutation. The prefix to the name (e.g., Mr, Mrs, Ms, Miss, Sir, etc.)",
          "type": "string"
        },
        "suffix": {
          "description": "Used for a trailing suffix to the name (e.g., Jr.)",
          "type": "string"
        },
        "occupationCode": {
          "description": "Value is a valid **[[ANZSCO]](#iref-ANZSCO)** Standard Occupation classification code. If the occupation code held by the data holder is not one of the supported **[[ANZSCO]](#iref-ANZSCO)** versions, then it must not be supplied.",
          "type": "string",
          "x-cds-type": "ExternalRef"
        },
        "occupationCodeVersion": {
          "default": "ANZSCO_1220.0_2013_V1.2",
          "description": "The applicable **[[ANZSCO]](#iref-ANZSCO)** release version of the occupation code provided. Mandatory if an _occupationCode_ is supplied. If _occupationCode_ is supplied but _occupationCodeVersion_ is absent, default is `ANZSCO_1220.0_2013_V1.2`.",
          "enum": [
            "ANZSCO_1220.0_2006_V1.0",
            "ANZSCO_1220.0_2006_V1.1",
            "ANZSCO_1220.0_2013_V1.2",
            "ANZSCO_1220.0_2013_V1.3"
          ],
          "type": "string"
        }
      },
      "required": [
        "lastName",
        "middleNames"
      ],
      "type": "object",
      "x-conditional": [
        "occupationCodeVersion"
      ]
    },
    "Links": {
      "properties": {
        "self": {
          "description": "Fully qualified link that generated the current response document.",
          "type": "string",
          "x-cds-type": "URIString"
        }
      },
      "required": [
        "self"
      ],
      "type": "object"
    },
    "Meta": {
      "type": "object"
    },
    "ResponseCommonCustomer_data": {
      "properties": {
        "customerUType": {
          "description": "The type of customer object that is present.",
          "enum": [
            "organisation",
            "person"
          ],
          "type": "string"
        },
        "person": {
          "$ref": "#/$defs/CommonPerson"
        },
        "organisation": {
          "$ref": "#/$defs/CommonOrganisation"
        }
      },
      "required": [
        "customerUType"
      ],
      "type": "object",
      "x-conditional": [
        "person",
        "organisation"
      ]
    }
  }
}