AEMO DER Registration For Account Holders

Using the DER Registration APIs, Account Holders can • Submit DER Connection Agreement data. • Provide AC Connections, and Device details in the same submission AEMO's public API catalogue lists 31 operation(s) for this API, gateway-routed under the path prefix /NEMWholesale/DER/consumer/registration. AEMO's own openapi-link export for this API is a shell — it declares paths: {} with zero operations and names an internal host — so the 31 operation(s) in the OpenAPI captured here were harvested from AEMO's developer-portal operations endpoints (https://dev.aemo.com.au/developer/apis/der-consumer-registration-v1/operations?api-version=2022-04-01-preview), complete with parameters, headers, response codes and response examples. Harvested 2026-07-27 (HTTP 200).

OpenAPI Specification

aemo-der-consumer-registration-v1-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: DER Registration For Account Holders
  description: '## Introduction

    Using the DER Registration APIs, Account Holders can


    • Submit DER Connection Agreement data.


    • Provide AC Connections, and Device details in the same submission'
  version: '3.0'
  x-origin:
  - format: openapi
    source: AEMO API Management developer portal
    url: https://dev.aemo.com.au/developer/apis/der-consumer-registration-v1/operations?api-version=2022-04-01-preview
servers:
- url: https://api-prd.aemo.local/NEMWholesale/DER/consumer/registration
paths:
  /authorize:
    get:
      operationId: authorize
      summary: authorize
      tags:
      - DER Registration For Account Holders
      description: authorize
      parameters:
      - name: code
        in: query
        required: true
        schema:
          type: string
        description: authcode
      responses:
        '200':
          description: 'null'
  /azureLogout:
    get:
      operationId: azureLogout
      summary: azure Logout
      tags:
      - DER Registration For Account Holders
      description: azure Logout
      parameters:
      - name: state
        in: query
        required: true
        schema:
          type: string
        description: logout redirect uri
      responses:
        '200':
          description: 'null'
  /token:
    post:
      operationId: generateTokenUsingClientCredentials
      summary: Generate token using client credentials
      tags:
      - DER Registration For Account Holders
      description: token
      parameters:
      - name: grant_type
        in: query
        required: true
        schema:
          type: string
        description: grant type
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: 'null'
  /getAccessStatus:
    post:
      operationId: getAccessStatus
      summary: Get Access Status
      tags:
      - DER Registration For Account Holders
      description: Get Access Status
      parameters:
      - name: x-initiatingParticipantID
        in: header
        required: true
        schema:
          type: string
        description: The participant ID who the request is from.
      - name: X-market
        in: header
        required: true
        schema:
          type: string
        description: The market the request is for.
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
        description: bearer token
      responses:
        '200':
          description: 'null'
  /getDER:
    post:
      operationId: getDER
      summary: Get DER
      tags:
      - DER Registration For Account Holders
      description: This API is used by participants to get a complete history of versions for a single
        DER Record. The returned file size is to be confirmed..
      parameters:
      - name: x-initiatingParticipantID
        in: header
        required: true
        schema:
          type: string
        description: The participant ID who the request is from.
      - name: X-market
        in: header
        required: true
        schema:
          type: string
        description: The market the request is for.
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
        description: bearer token
      requestBody:
        content:
          application/json:
            example:
              data:
                derRecords:
                - nmi: string
                  jobNumber: string
        description: Get single DER record.
      responses:
        '200':
          description: Get DER record - Success
          content:
            application/json:
              example:
                transactionId: string
                data:
                  derRecords:
                  - nmi: string
                    jobNumber: string
                    recordUpdateDate: string
                    approvedCapacity: 0
                    availablePhasesCount: 1
                    installedPhasesCount: 1
                    islandableInstallation: 'Yes'
                    centralProtectionControl: 'Yes'
                    exportLimitkva: 0
                    underFrequencyProtection: 0
                    underFrequencyProtectionDelay: 0
                    overFrequencyProtection: 0
                    underVoltageProtection: 0
                    underVoltageProtectionDelay: 0
                    overVoltageProtection: 0
                    overVoltageProtectionDelay: 0
                    sustainedOverVoltage: 0
                    frequencyRateOfChange: 0
                    voltageVectorShift: 0
                    interTripScheme: string
                    neutralVoltageDisplacement: 0
                    installerId: string
                    submitterId: string
                    submitterClass: NSP
                    submitMode: Save
                    accessRequested: true
                    comments: string
                    acConnections:
                    - connectionId: 0
                      nspConnectionId: string
                      recordCreationDate: string
                      recordConfirmedDate: string
                      recordEndDate: string
                      commissioningDate: string
                      installationStage: Initial
                      equipmentType: Inverter
                      cecConnectionId: string
                      count: 0
                      statusCode: Inactive
                      frequencyRateOfChange: 0
                      voltageVectorShift: 0
                      interTripScheme: string
                      neutralVoltageDisplacement: 0
                      details:
                        dredInverterInteraction: 'Yes'
                        serialNumbers:
                        - string
                        manufacturerName: string
                        modelNumber: string
                        inverterSeries: string
                        inverterStandard: AS4777.2:2015
                        inverterDeviceCapacity: 0
                        sustainOpOvervoltLimit: 0
                        stopAtOverFreq: 0
                        stopAtUnderFreq: 0
                        invVoltWattRespMode: Enabled
                        invWattRespV1: 0
                        invWattRespV2: 0
                        invWattRespV3: 0
                        invWattRespV4: 0
                        invWattRespPAtV1: 0
                        invWattRespPAtV2: 0
                        invWattRespPAtV3: 0
                        invWattRespPAtV4: 0
                        invVoltVarRespMode: Enabled
                        invVarRespV1: 0
                        invVarRespV2: 0
                        invVarRespV3: 0
                        invVarRespV4: 0
                        invVarRespQAtV1: 0
                        invVarRespQAtV2: 0
                        invVarRespQAtV3: 0
                        invVarRespQAtV4: 0
                        invReactivePowerMode: Enabled
                        invFixReactivePower: 0
                        fixPowerFactorMode: Enabled
                        fixPowerFactor: 0
                        fixPowerFactorQuad: Source
                        powerRespMode: Enabled
                        referencePointP1: 0
                        referencePointP2: 0
                        powerFactorAtP1: 0
                        powerFactorQuadAtP1: string
                        powerFactorAtP2: 0
                        powerFactorQuadAtP2: Source
                        powerRateLimitMode: Enabled
                        powerRampRate: 0
                        reactivePowerRegulation: None
                        voltageSetPoint: 0
                        voltageSetPointUnit: string
                        deadband: 0
                        droop: 0
                        baseForDroop: 0
                        reactivePowerSourceLimit: 0
                        reactivePowerSinkLimit: 0
                        reactiveFixPowerFactor: 0
                        reactiveFixPowerFactorQuad: Source
                        generatorRampRate: Enabled
                        powerRampGradient: 0
                        frequencySensitiveMode: Enabled
                        frequencyDeadband: 0
                        frequencyDroop: 0
                        manufacturerOther: true
                        modelOther: true
                        inverterSeriesOther: true
                      devices:
                      - deviceId: 0
                        nspDeviceId: string
                        recordCreationDate: string
                        recordCommissioningDate: string
                        recordConfirmedDate: string
                        recordEndDate: string
                        cecDeviceId: string
                        type: string
                        subType: string
                        count: 0
                        status: Inactive
                        installationStage: Initial
                        details:
                          typeOther: true
                          subTypeOther: true
                          manufacturerOther: true
                          manufacturerName: string
                          modelOther: true
                          modelNumber: string
                          nominalRatedCapacity: 0
                          nominalStorageCapacity: 0
                    exceptions:
                    - exceptionId: 0
                      code: 0
                      name: string
                      affectedAttributes:
                      - string
                      details: string
                      status: Open
                      deviceId: 0
                      connectionId: 0
                      nspAcknowledged: 'Yes'
                warnings:
                - code: string
                  title: string
                  detail: string
                  source: string
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '405':
          description: Method Not Allowed
        '500':
          description: Internal Server Error
          content:
            application/json:
              example:
                transactionId: string
                data: {}
                errors:
                  code: string
                  title: string
                  detail: string
                  source: string
  /getDERSummary:
    post:
      operationId: getDetailsOfASingleOrMultipleDERRecords
      summary: Get details of a single or multiple DER Records.
      tags:
      - DER Registration For Account Holders
      description: This API is used by participants to get a single or multiple DER Records along with
        their details based on the supplied filters.
      parameters:
      - name: x-initiatingParticipantID
        in: header
        required: true
        schema:
          type: string
        description: The participant ID who the request is from.
      - name: X-market
        in: header
        required: true
        schema:
          type: string
        description: The market the request is for.
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
        description: bearer token
      requestBody:
        content:
          application/json:
            example:
              data:
                nmis:
                - string
                installerId: string
                accessRequested: true
                exceptionCodes:
                - string
                modifiedDateFrom: string
                modifiedDateTo: string
                submitterClass: NSP
                acConnection:
                  equipmentType: string
                  commissioningDateFrom: string
                  commissioningDateTo: string
                  status: string
                  installationStages:
                  - string
                device:
                  types:
                  - string
                  status: string
                  installationStages:
                  - string
        description: Get DER records.
      responses:
        '200':
          description: Get DER summary records - Success
          content:
            application/json:
              example:
                transactionId: string
                data:
                  derRecords:
                  - nmi: string
                    jobNumber: string
                    recordUpdateDate: string
                    approvedCapacity: 0
                    availablePhasesCount: 1
                    installedPhasesCount: 1
                    islandableInstallation: 'Yes'
                    centralProtectionControl: 'Yes'
                    exportLimitkva: 0
                    underFrequencyProtection: 0
                    underFrequencyProtectionDelay: 0
                    overFrequencyProtection: 0
                    underVoltageProtection: 0
                    underVoltageProtectionDelay: 0
                    overVoltageProtection: 0
                    overVoltageProtectionDelay: 0
                    sustainedOverVoltage: 0
                    frequencyRateOfChange: 0
                    voltageVectorShift: 0
                    interTripScheme: string
                    neutralVoltageDisplacement: 0
                    installerId: string
                    submitterId: string
                    submitterClass: NSP
                    submitMode: Save
                    accessRequested: true
                    comments: string
                    acConnections:
                    - connectionId: 0
                      nspConnectionId: string
                      recordCreationDate: string
                      recordConfirmedDate: string
                      recordEndDate: string
                      commissioningDate: string
                      installationStage: Initial
                      equipmentType: Inverter
                      cecConnectionId: string
                      count: 0
                      statusCode: Inactive
                      frequencyRateOfChange: 0
                      voltageVectorShift: 0
                      interTripScheme: string
                      neutralVoltageDisplacement: 0
                      details:
                        dredInverterInteraction: 'Yes'
                        serialNumbers:
                        - string
                        manufacturerName: string
                        modelNumber: string
                        inverterSeries: string
                        inverterStandard: AS4777.2:2015
                        inverterDeviceCapacity: 0
                        sustainOpOvervoltLimit: 0
                        stopAtOverFreq: 0
                        stopAtUnderFreq: 0
                        invVoltWattRespMode: Enabled
                        invWattRespV1: 0
                        invWattRespV2: 0
                        invWattRespV3: 0
                        invWattRespV4: 0
                        invWattRespPAtV1: 0
                        invWattRespPAtV2: 0
                        invWattRespPAtV3: 0
                        invWattRespPAtV4: 0
                        invVoltVarRespMode: Enabled
                        invVarRespV1: 0
                        invVarRespV2: 0
                        invVarRespV3: 0
                        invVarRespV4: 0
                        invVarRespQAtV1: 0
                        invVarRespQAtV2: 0
                        invVarRespQAtV3: 0
                        invVarRespQAtV4: 0
                        invReactivePowerMode: Enabled
                        invFixReactivePower: 0
                        fixPowerFactorMode: Enabled
                        fixPowerFactor: 0
                        fixPowerFactorQuad: Source
                        powerRespMode: Enabled
                        referencePointP1: 0
                        referencePointP2: 0
                        powerFactorAtP1: 0
                        powerFactorQuadAtP1: string
                        powerFactorAtP2: 0
                        powerFactorQuadAtP2: Source
                        powerRateLimitMode: Enabled
                        powerRampRate: 0
                        reactivePowerRegulation: None
                        voltageSetPoint: 0
                        voltageSetPointUnit: string
                        deadband: 0
                        droop: 0
                        baseForDroop: 0
                        reactivePowerSourceLimit: 0
                        reactivePowerSinkLimit: 0
                        reactiveFixPowerFactor: 0
                        reactiveFixPowerFactorQuad: Source
                        generatorRampRate: Enabled
                        powerRampGradient: 0
                        frequencySensitiveMode: Enabled
                        frequencyDeadband: 0
                        frequencyDroop: 0
                        manufacturerOther: true
                        modelOther: true
                        inverterSeriesOther: true
                      devices:
                      - deviceId: 0
                        nspDeviceId: string
                        recordCreationDate: string
                        recordCommissioningDate: string
                        recordConfirmedDate: string
                        recordEndDate: string
                        cecDeviceId: string
                        type: string
                        subType: string
                        count: 0
                        status: Inactive
                        installationStage: Initial
                        details:
                          typeOther: true
                          subTypeOther: true
                          manufacturerOther: true
                          manufacturerName: string
                          modelOther: true
                          modelNumber: string
                          nominalRatedCapacity: 0
                          nominalStorageCapacity: 0
                    exceptions:
                    - exceptionId: 0
                      code: 0
                      name: string
                      affectedAttributes:
                      - string
                      details: string
                      status: Open
                      deviceId: 0
                      connectionId: 0
                      nspAcknowledged: 'Yes'
                warnings:
                - code: string
                  title: string
                  detail: string
                  source: string
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '405':
          description: Method Not Allowed
        '500':
          description: Internal Server Error
          content:
            application/json:
              example:
                transactionId: string
                data: {}
                errors:
                  code: string
                  title: string
                  detail: string
                  source: string
  /getExpiryDateStatus:
    post:
      operationId: getExpiryDateStatus
      summary: get Expiry Date Status
      tags:
      - DER Registration For Account Holders
      description: get Expiry Date Status
      parameters:
      - name: x-initiatingParticipantID
        in: header
        required: true
        schema:
          type: string
        description: The participant ID who the request is from.
      - name: X-market
        in: header
        required: true
        schema:
          type: string
        description: The market the request is for.
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
        description: bearer token
      responses:
        '200':
          description: 'null'
  /getInverterPreference:
    get:
      operationId: getInverterPreference
      summary: Get Inverter Preference
      tags:
      - DER Registration For Account Holders
      description: Get Inverter Preference
      parameters:
      - name: x-initiatingParticipantID
        in: header
        required: true
        schema:
          type: string
        description: The participant ID who the request is from.
      - name: X-market
        in: header
        required: true
        schema:
          type: string
        description: The market the request is for.
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
        description: bearer token
      responses:
        '200':
          description: 'null'
  /getReceipts:
    post:
      operationId: getOfAllReceiptsAssociatedWithSingleOrMultipleDERRecords
      summary: Get of all receipts associated with single or multiple DER Records.
      tags:
      - DER Registration For Account Holders
      description: This API is used by participants to get a list of all receipts associated with single
        or multiple DER Records based on the supplied filter(s).
      parameters:
      - name: x-initiatingParticipantID
        in: header
        required: true
        schema:
          type: string
        description: The participant ID who the request is from.
      - name: X-market
        in: header
        required: true
        schema:
          type: string
        description: The market the request is for.
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
        description: bearer token
      requestBody:
        content:
          application/json:
            example:
              data:
                modifiedDateFrom: string
                modifiedDateTo: string
                jobReferences:
                - nmi: string
                  jobNumber: string
                  installerId: string
        description: Get receipts.
      responses:
        '200':
          description: Get receipts - Success
          content:
            application/json:
              example:
                transactionId: string
                data:
                  receipts:
                  - nmi: string
                    jobNumber: string
                    disclaimer: string
                    derJobCompleteDate: string
                    installerId: string
                    approvedCapacity: 0
                    confirmationLengthTime: 0
                    centralProtectionControl: 'Yes'
                    acConnections:
                    - connectionId: 0
                      equipmentType: Inverter
                      installedCapacity: 0
                      manufacturerName: string
                      modelNumber: string
                    devices:
                    - deviceId: 0
                      type: string
                      installedCapacity: 0
                      manufacturerName: string
                      modelNumber: string
                warnings:
                - code: string
                  title: string
                  detail: string
                  source: string
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '405':
          description: Method Not Allowed
        '422':
          description: Business validation failure
          content:
            application/json:
              example:
                transactionId: string
                errors:
                - code: string
                  title: string
                  detail: string
                  source: string
        '500':
          description: Internal Server Error
          content:
            application/json:
              example:
                transactionId: string
                data: {}
                errors:
                  code: string
                  title: string
                  detail: string
                  source: string
  /getPreferences:
    get:
      operationId: getPreferences
      summary: Get Preferences
      tags:
      - DER Registration For Account Holders
      description: This API is used by participants to get previously submitted preferences for contact
        details, Inverter Settings, and notifications based on approved capacity
      parameters:
      - name: x-initiatingParticipantID
        in: header
        required: true
        schema:
          type: string
        description: The participant ID who the request is from.
      - name: X-market
        in: header
        required: true
        schema:
          type: string
        description: The market the request is for.
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
        description: bearer token
      responses:
        '200':
          description: Get preferences - Success
          content:
            application/json:
              example:
                transactionId: string
                data:
                  contactRole: string
                  emailAddress: string
                  phoneNumber: string
                  notifications:
                  - minApprovedCapacity: 0
                    maxApprovedCapacity: 0
                    approvalRequired: true
                  inverterSettings:
                  - minimumCapacity: 0
                    maximumCapacity: 0
                    details:
                      sustainOpOvervoltLimit: 0
                      stopAtOverFrequency: 0
                      stopAtUnderFrequency: 0
                      inverterVoltWattResponseMode: string
                      inverterWattResponseV1: 0
                      inverterWattResponseV2: 0
                      inverterWattResponseV3: 0
                      inverterWattResponseV4: 0
                      inverterWattResponsePatV1: 0
                      inverterWattResponsePatV2: 0
                      inverterWattResponsePatV3: 0
                      inverterWattResponsePatV4: 0
                      inverterVoltVarResponseMode: string
                      inverterVarResponseV1: 0
                      inverterVarResponseV2: 0
                      inverterVarResponseV3: 0
                      inverterVarResponseV4: 0
                      inverterVarResponseQatV1: 0
                      inverterVarResponseQatV2: 0
                      inverterVarResponseQatV3: 0
                      inverterVarResponseQatV4: 0
                      inverterReactivePowerMode: string
                      inverterFixedReactivePower: 0
                      fixedPowerFactorMode: string
                      fixedPowerFactor: 0
                      fixedPowerFactorQuadrant: string
                      powerResponseMode: string
                      referencePointP1: 0
                      referencePointP2: 0
                      powerFactorAtP1: 0
                      powerFactorQuadrantAtP1: string
                      powerFactorAtP2: 0
                      powerFactorQuadrantAtP2: string
                      powerRateLimitMode: string
                      powerRampRate: 0
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '405':
          description: Method Not Allowed
        '500':
          description: Internal Server Error
          content:
            application/json:
              example:
                transactionId: string
                data: {}
                errors:
                  code: string
                  title: string
                  detail: string
                  source: string
  /getReceiptsUI:
    post:
      operationId: getReceiptsUI
      summary: Get Receipts UI
      tags:
      - DER Registration For Account Holders
      description: Get Receipts UI
      parameters:
      - name: x-initiatingParticipantID
        in: header
        required: true
        schema:
          type: string
        description: The participant ID who the request is from.
      - name: X-market
        in: header
        required: true
        schema:
          type: string
        description: The market the request is for.
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
        description: bearer token
      responses:
        '200':
          description: 'null'
  /getRequestStatus:
    post:
      operationId: getRequestStatus
      summary: Get Request Status
      tags:
      - DER Registration For Account Holders
      description: Get Request Status
      parameters:
      - name: x-initiatingParticipantID
        in: header
        required: true
        schema:
          type: string
        description: The participant ID who the request is from.
      - name: X-market
        in: header
        required: true
        schema:
          type: string
        description: The market the request is for.
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
        description: bearer token
      responses:
        '200':
          description: 'null'
  /grantJobAccess:
    post:
      operationId: grantJobAccessToAccountHolder
      summary: Grant Job Access to Account holder
      tags:
      - DER Registration For Account Holders
      description: This API is used by participants to grant/block job access to Account-holders.
      parameters:
      - name: x-initiatingParticipantID
        in: header
        required: true
        schema:
          type: string
        description: The participant ID who the request is from.
      - name: X-market
        in: header
        required: true
        schema:
          type: string
        description: The market the request is for.
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
        description: bearer token
      requestBody:
        content:
          application/json:
            example:
              data:
                nmi: string
                jobNumber: string
                accessGranted: true
        description: Grant/block job access.
      responses:
        '200':
          description: Grant Job Accsess - Success
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '405':
          description: Method Not Allowed
        '422':
          description: Business validation failure
          content:
            application/json:
              example:
                transactionId: string
                errors:
                - code: string
                  title: string
                  detail: string
                  source: string
        '500':
          description: Internal Server Error
          content:
            application/json:
              example:
                transactionId: string
                data: {}
                errors:
                  code: string
                  title: string
                  detail: string
                  source: string
  /InverterData:
    get:
      operationId: inverterData
      summary: Inverter Data
      tags:
      - DER Registration For Account Holders
      description: Inverter Data
      parameters:
      - name: x-initiatingParticipantID
        in: header
        required: true
        schema:
          type: string
        description: The participant ID who the request is from.
      - name: X-market
        in: header
        required: true
        schema:
          type: string
        description: The market the request is for.
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
        description: bearer token
      responses:
        '200':
          description: 'null'
  /listDeviceSubType/{deviceType}:
    get:
      operationId: listDeviceSubType
      summary: list Device SubType
      tags:
      - DER Registr

# --- truncated at 32 KB (63 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/aemo/refs/heads/main/openapi/aemo-der-consumer-registration-v1-openapi.yml