AEMO DER Registration for NSPs

Using the DER Registration APIs, NSPs can • Submit DER Connection Agreement data. • Provide AC Connections, and Device details in the same submission AEMO's public API catalogue lists 8 operation(s) for this API, gateway-routed under the path prefix /NEMWholesale/DER/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 8 operation(s) in the OpenAPI captured here were harvested from AEMO's developer-portal operations endpoints (https://dev.aemo.com.au/developer/apis/der-business-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-business-registration-v1-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: DER Registration for NSPs
  description: '## Introduction

    Using the DER Registration APIs, NSPs can


    • Submit DER Connection Agreement data.


    • Provide AC Connections, and Device details in the same submission'
  termsOfService: https://dev.aemo.com.au/terms
  version: '3.0'
  x-origin:
  - format: openapi
    source: AEMO API Management developer portal
    url: https://dev.aemo.com.au/developer/apis/der-business-registration-v1/operations?api-version=2022-04-01-preview
servers:
- url: https://api-prd.aemo.local/NEMWholesale/DER/registration
paths:
  /getDER:
    post:
      operationId: getDERRecordHistory
      summary: Get DER Record History
      tags:
      - DER Registration for NSPs
      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: 'Basic Authentication Header. Use URM username and password.

          Format:

          Basic {Base64 hash of user:password}'
      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
                    sustainedOverVoltageDelay: 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
        '429':
          description: Too many requests
        '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 NSPs
      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: 'Basic Authentication Header. Use URM username and password.

          Format:

          Basic {Base64 hash of user:password}'
      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
                    sustainedOverVoltageDelay: 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
        '429':
          description: Too many requests
        '500':
          description: Internal Server Error
          content:
            application/json:
              example:
                transactionId: string
                data: {}
                errors:
                  code: string
                  title: string
                  detail: string
                  source: string
  /getReceipts:
    post:
      operationId: getOfAllReceiptsAssociatedWithSingleOrMultipleDERRecords
      summary: Get of all receipts associated with single or multiple DER Records.
      tags:
      - DER Registration for NSPs
      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: 'Basic Authentication Header. Use URM username and password.

          Format:

          Basic {Base64 hash of user:password}'
      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
        '429':
          description: Too many requests
        '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 NSPs
      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: 'Basic Authentication Header. Use URM username and password.

          Format:

          Basic {Base64 hash of user:password}'
      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
        '429':
          description: Too many requests
        '500':
          description: Internal Server Error
          content:
            application/json:
              example:
                transactionId: string
                data: {}
                errors:
                  code: string
                  title: string
                  detail: string
                  source: string
  /grantJobAccess:
    post:
      operationId: grantJobAccessToAccountHolder
      summary: Grant Job Access to Account holder
      tags:
      - DER Registration for NSPs
      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: 'Basic Authentication Header. Use URM username and password.

          Format:

          Basic {Base64 hash of user:password}'
      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
        '429':
          description: Too many requests
        '500':
          description: Internal Server Error
          content:
            application/json:
              example:
                transactionId: string
                data: {}
                errors:
                  code: string
                  title: string
                  detail: string
                  source: string
  /requestJobAccess:
    post:
      operationId: requestAccessToAJob
      summary: Request access to a job
      tags:
      - DER Registration for NSPs
      description: This API is used by Account-holders to request access to a job on the DER web interface,
        using the NMI as an identifier.
      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: 'Basic Authentication Header. Use URM username and password.

          Format:

          Basic {Base64 hash of user:password}'
      requestBody:
        content:
          application/json:
            example:
              data:
                nmi: string
                jobNumber: string
        description: Grant/block job access.
      responses:
        '200':
          description: Request 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
        '429':
          description: Too many requests
        '500':
          description: Internal Server Error
          content:
            application/json:
              example:
                transactionId: string
                data: {}
                errors:
                  code: string
                  title: string
                  detail: string
                  source: string
  /submitDER:
    post:
      operationId: submitASingleDERRecord
      summary: Submit a Single DER Record
      tags:
      - DER Registration for NSPs
      description: Participants can submit a single DER Record data at any stage of the process. They
        can also use this API to Submit Connection Agreement, Update an existing DER record and Resolve
        exceptions.
      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: 'Basic Authentication Header. Use URM username and password.

          Format:

          Basic {Base64 hash of user:password}'
      requestBody:
        content:
          application/json:
            example:
              data:
                nmi: string
                jobNumber: string
                approvedCapacity: 0
                availablePhasesCount: 1
                installedPhasesCount: 1
                islandableInstallation: 'Yes'
                centralProtectionControl: 'Yes'
                exportLimitkva: 0
                underFrequencyProtection: 0
                underFrequencyProtectionDelay: 0
                overFrequencyProtection: 0
                overFrequencyProtectionDelay: 0
                underVoltageProtection: 0
                underVoltageProtectionDelay: 0
                overVoltageProtection: 0
                overVoltageProtectionDelay: 0
                sustainedOverVoltage: 0
                sustainedOverVoltageDelay: 0
                frequencyRateOfChange: 0
                voltageVectorShift: 0
                interTripScheme: string
                neutralVoltageDisplacement: 0
                installerId: string
                submitMode: Save
                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'
           

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