AER CDR Discovery - Get Status and Get Outages

Anonymous Consumer Data Standards Common API discovery endpoints served by the AER on its CDR host. GET /discovery/status returns the current operational status of the data holder's CDR endpoints and GET /discovery/outages returns scheduled and current outages. Verified 2026-07-27 - status returned HTTP 200 with data.status OK and an updateTime, outages returned HTTP 200 with an empty outages array, both with header x-v 1 (x-v 2 returns 406). This is the AER's status page - there is no HTML status site - and it is the correct surface to poll before raising a support ticket against the product reference data endpoints. Both endpoints are brand-scoped and must be called under a retailer path segment; the unbranded /cds-au/v1/discovery/status returns 404. Observed quirk - the outages response links.self echoed a different brand path than the one requested.

OpenAPI Specification

cds-common-api-openapi.json Raw ↑
{
  "openapi": "3.0.3",
  "info": {
    "title": "CDR Common API",
    "version": "1.36.0",
    "description": "Specifications for common endpoints applicable to all data holders (except secondary data holders).",
    "license": {
      "name": "MIT License",
      "url": "https://opensource.org/licenses/MIT"
    },
    "contact": {
      "name": "Data Standards Body",
      "email": "contact@dsb.gov.au",
      "url": "https://dsb.gov.au/"
    }
  },
  "servers": [
    {
      "description": "MTLS",
      "url": "https://mtls.dh.example.com/cds-au/v1"
    }
  ],
  "tags": [
    {
      "name": "Data Holder Customers",
      "x-shortName": "Customers",
      "description": "Data Holder Customer endpoints"
    },
    {
      "name": "Data Holder Operations",
      "x-shortName": "Operations",
      "description": "Data Holder Operations endpoints"
    }
  ],
  "paths": {
    "/common/customer": {
      "get": {
        "tags": [
          "Data Holder Customers"
        ],
        "summary": "Get Customer",
        "description": "Obtain basic information on the customer that has authorised the current session.\n\n<h3 id='cdr-common-api_get-customer_conventions'>Conventions</h3>\nIn the customer payloads there are conventions that are explained below.\n\n#### Given Names\n\n_firstName_ represents the first of a person's given names.\n\n_middleNames_ represents a collection of given names if the person has more than one given name.\n\nWhere a data holder holds a person's given names as a single string in source systems, it may not possible in some situations to reliably split these given names into their component first and middle names. In these situations, data holders **MAY** use the _firstName_ field to return the single string of given names and an empty _middleNames_ array.\n\nFor example, if a person's given names are \"John Paul Winston\" and the Data Holder is unable to determine which is the first name, they can return `\"firstName\": \"John Paul Winston\"`.",
        "operationId": "getCustomer",
        "parameters": [
          {
            "$ref": "#/components/parameters/HeaderXV"
          },
          {
            "$ref": "#/components/parameters/HeaderXMinV"
          },
          {
            "$ref": "#/components/parameters/HeaderXFAPIInteractionId"
          },
          {
            "$ref": "#/components/parameters/HeaderXFAPIAuthDate"
          },
          {
            "$ref": "#/components/parameters/HeaderXFAPICustomerIPAddress"
          },
          {
            "$ref": "#/components/parameters/HeaderXCDSClientHeaders"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/GetCustomer200"
          },
          "400": {
            "$ref": "#/components/responses/GetCustomer400"
          },
          "406": {
            "$ref": "#/components/responses/GetCustomer406"
          }
        },
        "x-scopes": [
          "common:customer.basic:read"
        ],
        "x-version": "1"
      }
    },
    "/common/customer/detail": {
      "get": {
        "tags": [
          "Data Holder Customers"
        ],
        "summary": "Get Customer Detail",
        "description": "Obtain detailed information on the authorised customer within the current session.\n\nObsolete versions: [v1](includes/obsolete/get-customer-detail-v1.html).",
        "operationId": "getCustomerDetail",
        "parameters": [
          {
            "$ref": "#/components/parameters/HeaderXV"
          },
          {
            "$ref": "#/components/parameters/HeaderXMinV"
          },
          {
            "$ref": "#/components/parameters/HeaderXFAPIInteractionId"
          },
          {
            "$ref": "#/components/parameters/HeaderXFAPIAuthDate"
          },
          {
            "$ref": "#/components/parameters/HeaderXFAPICustomerIPAddress"
          },
          {
            "$ref": "#/components/parameters/HeaderXCDSClientHeaders"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/GetCustomerDetail200"
          },
          "400": {
            "$ref": "#/components/responses/GetCustomerDetail400"
          },
          "406": {
            "$ref": "#/components/responses/GetCustomerDetail406"
          }
        },
        "x-scopes": [
          "common:customer.detail:read"
        ],
        "x-version": "2"
      }
    },
    "/discovery/status": {
      "get": {
        "servers": [
          {
            "description": "TLS",
            "url": "https://tls.dh.example.com/cds-au/v1"
          }
        ],
        "tags": [
          "Data Holder Operations"
        ],
        "summary": "Get Status",
        "description": "Obtain a health check status for the implementation.",
        "operationId": "getStatus",
        "parameters": [
          {
            "$ref": "#/components/parameters/HeaderXV"
          },
          {
            "$ref": "#/components/parameters/HeaderXMinV"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/GetStatus200"
          },
          "400": {
            "$ref": "#/components/responses/GetStatus400"
          },
          "406": {
            "$ref": "#/components/responses/GetStatus406"
          }
        },
        "x-version": "1"
      }
    },
    "/discovery/outages": {
      "get": {
        "servers": [
          {
            "description": "TLS",
            "url": "https://tls.dh.example.com/cds-au/v1"
          }
        ],
        "tags": [
          "Data Holder Operations"
        ],
        "summary": "Get Outages",
        "description": "Obtain a list of scheduled outages for the implementation.",
        "operationId": "getOutages",
        "parameters": [
          {
            "$ref": "#/components/parameters/HeaderXV"
          },
          {
            "$ref": "#/components/parameters/HeaderXMinV"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/GetOutages200"
          },
          "400": {
            "$ref": "#/components/responses/GetOutages400"
          },
          "406": {
            "$ref": "#/components/responses/GetOutages406"
          }
        },
        "x-version": "1"
      }
    }
  },
  "components": {
    "parameters": {
      "HeaderXV": {
        "name": "x-v",
        "in": "header",
        "description": "Version of the API endpoint requested by the client. Must be set to a positive integer. The endpoint should respond with the highest supported version between [_x-min-v_](#request-headers) and [_x-v_](#request-headers). If the value of [_x-min-v_](#request-headers) is equal to or higher than the value of [_x-v_](#request-headers) then the [_x-min-v_](#request-headers) header should be treated as absent. If all versions requested are not supported then the endpoint **MUST** respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers).",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "HeaderXMinV": {
        "name": "x-min-v",
        "in": "header",
        "description": "Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The endpoint should respond with the highest supported version between [_x-min-v_](#request-headers) and [_x-v_](#request-headers). If all versions requested are not supported then the endpoint **MUST** respond with a `406 Not Acceptable`.",
        "schema": {
          "type": "string"
        }
      },
      "HeaderXFAPIInteractionId": {
        "name": "x-fapi-interaction-id",
        "in": "header",
        "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder **MUST** play back this value in the _x-fapi-interaction-id_ response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.",
        "schema": {
          "type": "string"
        }
      },
      "HeaderXFAPIAuthDate": {
        "name": "x-fapi-auth-date",
        "in": "header",
        "description": "The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-1.0-Baseline]](#nref-FAPI-1-0-Baseline)**. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.",
        "schema": {
          "type": "string"
        },
        "x-conditional": true
      },
      "HeaderXFAPICustomerIPAddress": {
        "name": "x-fapi-customer-ip-address",
        "in": "header",
        "description": "The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.",
        "schema": {
          "type": "string"
        }
      },
      "HeaderXCDSClientHeaders": {
        "name": "x-cds-client-headers",
        "in": "header",
        "description": "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User-Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.",
        "schema": {
          "type": "string"
        },
        "x-conditional": true,
        "x-cds-type": "Base64"
      }
    },
    "headers": {
      "XV": {
        "description": "The [payload version](#response-headers) that the endpoint has responded with.",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "XFAPIInteractionId": {
        "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder **MUST** play back this value in the _x-fapi-interaction-id_ response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.",
        "required": true,
        "schema": {
          "type": "string"
        }
      }
    },
    "responses": {
      "GetCustomer200": {
        "description": "Successful response",
        "headers": {
          "x-v": {
            "$ref": "#/components/headers/XV"
          },
          "x-fapi-interaction-id": {
            "$ref": "#/components/headers/XFAPIInteractionId"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ResponseCommonCustomer"
            }
          }
        }
      },
      "GetCustomer400": {
        "description": "The following error codes **MUST** be supported:<br/><ul class=\"error-code-list\"><li>[400 - Invalid Field](#error-400-field-invalid)</li><li>[400 - Missing Required Field](#error-400-field-missing)</li><li>[400 - Invalid Version](#error-400-header-invalid-version)</li></ul>",
        "headers": {
          "x-fapi-interaction-id": {
            "$ref": "#/components/headers/XFAPIInteractionId"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ResponseErrorListV2"
            }
          }
        }
      },
      "GetCustomer406": {
        "description": "The following error codes **MUST** be supported:<br/><ul class=\"error-code-list\"><li>[406 - Unsupported Version](#error-406-header-unsupported-version)</li></ul>",
        "headers": {
          "x-fapi-interaction-id": {
            "$ref": "#/components/headers/XFAPIInteractionId"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ResponseErrorListV2"
            }
          }
        }
      },
      "GetCustomerDetail200": {
        "description": "Successful response",
        "headers": {
          "x-v": {
            "$ref": "#/components/headers/XV"
          },
          "x-fapi-interaction-id": {
            "$ref": "#/components/headers/XFAPIInteractionId"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ResponseCommonCustomerDetailV2"
            }
          }
        }
      },
      "GetCustomerDetail400": {
        "description": "The following error codes **MUST** be supported:<br/><ul class=\"error-code-list\"><li>[400 - Invalid Field](#error-400-field-invalid)</li><li>[400 - Missing Required Field](#error-400-field-missing)</li><li>[400 - Invalid Version](#error-400-header-invalid-version)</li></ul>",
        "headers": {
          "x-fapi-interaction-id": {
            "$ref": "#/components/headers/XFAPIInteractionId"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ResponseErrorListV2"
            }
          }
        }
      },
      "GetCustomerDetail406": {
        "description": "The following error codes **MUST** be supported:<br/><ul class=\"error-code-list\"><li>[406 - Unsupported Version](#error-406-header-unsupported-version)</li></ul>",
        "headers": {
          "x-fapi-interaction-id": {
            "$ref": "#/components/headers/XFAPIInteractionId"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ResponseErrorListV2"
            }
          }
        }
      },
      "GetStatus200": {
        "description": "Successful response",
        "headers": {
          "x-v": {
            "$ref": "#/components/headers/XV"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ResponseCommonDiscoveryStatus"
            }
          }
        }
      },
      "GetStatus400": {
        "description": "The following error codes **MUST** be supported:<br/><ul class=\"error-code-list\"><li>[400 - Invalid Field](#error-400-field-invalid)</li><li>[400 - Missing Required Field](#error-400-field-missing)</li><li>[400 - Invalid Version](#error-400-header-invalid-version)</li></ul>",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ResponseErrorListV2"
            }
          }
        }
      },
      "GetStatus406": {
        "description": "The following error codes **MUST** be supported:<br/><ul class=\"error-code-list\"><li>[406 - Unsupported Version](#error-406-header-unsupported-version)</li></ul>",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ResponseErrorListV2"
            }
          }
        }
      },
      "GetOutages200": {
        "description": "Successful response",
        "headers": {
          "x-v": {
            "$ref": "#/components/headers/XV"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ResponseDiscoveryOutagesList"
            }
          }
        }
      },
      "GetOutages400": {
        "description": "The following error codes **MUST** be supported:<br/><ul class=\"error-code-list\"><li>[400 - Invalid Field](#error-400-field-invalid)</li><li>[400 - Missing Required Field](#error-400-field-missing)</li><li>[400 - Invalid Version](#error-400-header-invalid-version)</li></ul>",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ResponseErrorListV2"
            }
          }
        }
      },
      "GetOutages406": {
        "description": "The following error codes **MUST** be supported:<br/><ul class=\"error-code-list\"><li>[406 - Unsupported Version](#error-406-header-unsupported-version)</li></ul>",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ResponseErrorListV2"
            }
          }
        }
      }
    },
    "schemas": {
      "ResponseCommonDiscoveryStatus": {
        "required": [
          "data",
          "links"
        ],
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "status",
              "updateTime"
            ],
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "description": "Enumeration with values: <ul><li>`OK`: (implementation is fully functional).<li>`PARTIAL_FAILURE`: (one or more endpoints are unexpectedly unavailable).<li>`UNAVAILABLE`: (the full implementation is unexpectedly unavailable).<li>`SCHEDULED_OUTAGE`: (an advertised outage is in effect).</ul>",
                "enum": [
                  "OK",
                  "PARTIAL_FAILURE",
                  "SCHEDULED_OUTAGE",
                  "UNAVAILABLE"
                ]
              },
              "explanation": {
                "type": "string",
                "description": "Provides an explanation of the current outage that can be displayed to an end customer. Mandatory if the status property is any value other than `OK`."
              },
              "detectionTime": {
                "type": "string",
                "description": "The date and time that the current outage was detected. Should only be present if the status property is `PARTIAL_FAILURE` or `UNAVAILABLE`.",
                "x-cds-type": "DateTimeString"
              },
              "expectedResolutionTime": {
                "type": "string",
                "description": "The date and time that full service is expected to resume (if known). Should not be present if the status property has a value of `OK`.",
                "x-cds-type": "DateTimeString"
              },
              "updateTime": {
                "type": "string",
                "description": "The date and time that this status was last updated by the Data Holder.",
                "x-cds-type": "DateTimeString"
              }
            },
            "x-conditional": [
              "explanation"
            ]
          },
          "links": {
            "$ref": "#/components/schemas/Links"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "ResponseDiscoveryOutagesList": {
        "required": [
          "data",
          "links"
        ],
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "outages"
            ],
            "type": "object",
            "properties": {
              "outages": {
                "type": "array",
                "description": "List of scheduled outages. Property is mandatory but may contain an empty list if no outages are scheduled.",
                "items": {
                  "$ref": "#/components/schemas/DiscoveryOutage"
                }
              }
            }
          },
          "links": {
            "$ref": "#/components/schemas/Links"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "DiscoveryOutage": {
        "required": [
          "duration",
          "explanation",
          "outageTime"
        ],
        "type": "object",
        "properties": {
          "outageTime": {
            "type": "string",
            "description": "Date and time that the outage is scheduled to begin.",
            "x-cds-type": "DateTimeString"
          },
          "duration": {
            "type": "string",
            "description": "Planned duration of the outage. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax).",
            "x-cds-type": "ExternalRef"
          },
          "isPartial": {
            "type": "boolean",
            "description": "Flag that indicates, if present and set to `true`, that the outage is only partial meaning that only a subset of normally available endpoints will be affected by the outage."
          },
          "explanation": {
            "type": "string",
            "description": "Provides an explanation of the current outage that can be displayed to an end customer."
          }
        }
      },
      "ResponseCommonCustomer": {
        "required": [
          "data",
          "links"
        ],
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "customerUType"
            ],
            "type": "object",
            "properties": {
              "customerUType": {
                "type": "string",
                "description": "The type of customer object that is present.",
                "enum": [
                  "organisation",
                  "person"
                ]
              },
              "person": {
                "$ref": "#/components/schemas/CommonPerson"
              },
              "organisation": {
                "$ref": "#/components/schemas/CommonOrganisation"
              }
            },
            "x-conditional": [
              "person",
              "organisation"
            ]
          },
          "links": {
            "$ref": "#/components/schemas/Links"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "ResponseCommonCustomerDetailV2": {
        "required": [
          "data",
          "links"
        ],
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "customerUType"
            ],
            "type": "object",
            "properties": {
              "customerUType": {
                "type": "string",
                "description": "The type of customer object that is present.",
                "enum": [
                  "organisation",
                  "person"
                ]
              },
              "person": {
                "$ref": "#/components/schemas/CommonPersonDetailV2"
              },
              "organisation": {
                "$ref": "#/components/schemas/CommonOrganisationDetailV2"
              }
            },
            "x-conditional": [
              "person",
              "organisation"
            ]
          },
          "links": {
            "$ref": "#/components/schemas/Links"
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "CommonPerson": {
        "required": [
          "lastName",
          "middleNames"
        ],
        "type": "object",
        "properties": {
          "lastUpdateTime": {
            "type": "string",
            "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.",
            "x-cds-type": "DateTimeString"
          },
          "firstName": {
            "type": "string",
            "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."
          },
          "lastName": {
            "type": "string",
            "description": "For people with single names, the single name should be in this field."
          },
          "middleNames": {
            "type": "array",
            "description": "Field is mandatory but array may be empty.",
            "items": {
              "type": "string"
            }
          },
          "prefix": {
            "type": "string",
            "description": "Also known as title or salutation. The prefix to the name (e.g., Mr, Mrs, Ms, Miss, Sir, etc.)"
          },
          "suffix": {
            "type": "string",
            "description": "Used for a trailing suffix to the name (e.g., Jr.)"
          },
          "occupationCode": {
            "type": "string",
            "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.",
            "x-cds-type": "ExternalRef"
          },
          "occupationCodeVersion": {
            "type": "string",
            "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`.",
            "default": "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"
            ]
          }
        },
        "x-conditional": [
          "occupationCodeVersion"
        ]
      },
      "CommonPersonDetailV2": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonPerson"
          },
          {
            "required": [
              "emailAddresses",
              "phoneNumbers",
              "physicalAddresses"
            ],
            "type": "object",
            "properties": {
              "phoneNumbers": {
                "type": "array",
                "description": "Array is mandatory but may be empty if no phone numbers are held.",
                "items": {
                  "$ref": "#/components/schemas/CommonPhoneNumber"
                }
              },
              "emailAddresses": {
                "type": "array",
                "description": "May be empty.",
                "items": {
                  "$ref": "#/components/schemas/CommonEmailAddress"
                }
              },
              "physicalAddresses": {
                "type": "array",
                "description": "Array is mandatory but may be empty if no valid addresses are held. One and only one address may have the purpose of `REGISTERED`. Zero or one, and no more than one, record may have the purpose of `MAIL`. If zero then the `REGISTERED` address is to be used for mail.",
                "items": {
                  "$ref": "#/components/schemas/CommonPhysicalAddressWithPurpose"
                }
              }
            }
          }
        ]
      },
      "CommonOrganisation": {
        "required": [
          "agentLastName",
          "agentRole",
          "businessName",
          "organisationType"
        ],
        "type": "object",
        "properties": {
          "lastUpdateTime": {
            "type": "string",
            "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.",
            "x-cds-type": "DateTimeString"
          },
          "agentFirstName": {
            "type": "string",
            "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."
          },
          "agentLastName": {
            "type": "string",
            "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."
          },
          "agentRole": {
            "type": "string",
            "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."
          },
          "businessName": {
            "type": "string",
            "description": "Name of the organisation."
          },
          "legalName": {
            "type": "string",
            "description": "Legal name, if different to the business name."
          },
          "shortName": {
            "type": "string",
            "description": "Short name used for communication, if different to the business name."
          },
          "abn": {
            "type": "string",
            "description": "Australian Business Number for the organisation."
          },
          "acn": {
            "type": "string",
            "description": "Australian Company Number for the organisation. Required only if an ACN is applicable for the organisation type."
          },
          "isACNCRegistered": {
            "type": "boolean",
            "description": "`true` if registered with the ACNC. `false` if not. Absent or `null` if not confirmed.",
            "default": null
          },
          "industryCode": {
            "type": "string",
            "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.",
            "x-cds-type": "ExternalRef"
          },
          "industryCodeVersion": {
            "type": "string",
            "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`.",
            "default": "ANZSIC_1292.0_2006_V2.0",
            "enum": [
              "ANZSIC_1292.0_2006_V1.0",
              "ANZSIC_1292.0_2006_V2.0"
            ]
          },
          "organisationType": {
            "type": "string",
            "description": "Legal organisation type.",
            "enum": [
              "COMPANY",
              "GOVERNMENT_ENTITY",
              "OTHER",
              "PARTNERSHIP",
              "SOLE_TRADER",
              "TRUST"
            ]
          },
          "registeredCountry": {
            "type": "string",
            "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.",
            "default": "AUS",
            "x-cds-type": "ExternalRef"
          },
          "establishmentDate": {
            "type": "string",
            "description": "The date the organisation described was established.",
            "x-cds-type": "DateString"
          }
        },
        "x-conditional": [
          "industryCodeVersion"
        ]
      },
      "CommonOrganisationDetailV2": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonOrganisation"
          },
          {
            "required": [
              "physicalAddresses"
            ],
            "type": "object",
            "properties": {
              "physicalAddresses": {
                "type": "array",
                "description": "Array is mandatory but may be empty if no valid addresses are held. One and only one address may have the purpose of `REGISTERED`. Zero or one, and no more than one, record may have the purpose of `MAIL`. If zero then the `REGISTERED` address is to be used for mail.",
                "items": {
                  "$ref": "#/components/schemas/CommonPhysicalAddressWithPurpose"
                }
              }
            }
          }
        ]
      },
      "CommonPhoneNumber": {
        "required": [
          "fullNumber",
          "number",
          "purpose"
        ],
        "type": "object",
        "properties": {
          "isPreferred": {
            "type": "boolean",
            "description": "May be `true` for one and only one entry to indicate the preferred phone number. Assumed to be `false` if not present.",
            "default": false
          },
          "purpose": {
            "type": "string",
            "description": "The purpose of the number as specified by the customer.",
            "enum": [
              "HOME",
              "INTERNATIONAL",
              "MOBILE",
              "OTHER",
              "UNSPECIFIED",
              "WORK"
            ]
          },
          "countryCode": {
            "type": "string",
            "descripti

# --- truncated at 32 KB (43 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/aer/refs/heads/main/openapi/cds-common-api-openapi.json