openapi: 3.0.1
info:
title: MeterExemption
description: The Meter Exemptions API enables registered Metering Coordinators (MCs) to create and manage
metering exemptions within MSATS.
version: '1.0'
x-origin:
- format: openapi
version: '3.0'
source: AEMO API Management developer portal
url: https://dev.aemo.com.au/developer/apis/meterexemption-external-v1/operations?api-version=2022-04-01-preview
servers:
- url: https://api-prd.aemo.local/NEMRetail/v1/meterExemption
paths:
/exemptionDetails:
get:
operationId: exemptionDetails
summary: Exemption Details
tags:
- MeterExemption
description: "Get meter exemption details for a specified meter exemption, including:
\n- Participant\
\ contact details \n- Meter exemption details \n- Meter exemption history \n- Meter exemption\
\ NMI list. \n If the NMI is not specified:\n - In the csv file, it returns the whole NMI list.\n\
\ - In json format, it returns up to 1000 NMIs."
parameters:
- name: meterExemptionId
in: query
required: true
schema:
type: string
description: The meter exemption ID
- name: NMI
in: query
required: false
schema:
type: string
description: The NMI to retrieve. The NMI must be part of the Meter Exemption
- name: Accept
in: header
required: false
schema:
type: string
enum:
- application/json
- text/csv
default: application/json
description: Identifies content types accepted by the client. application/json (default) or text/csv
- name: X-initiatingParticipantID
in: header
required: true
schema:
type: string
description: The ID of the initiating Participant. Example value = P01
- name: X-market
in: header
required: true
schema:
type: string
description: Identifies the market. Set to NEM
- name: Authorization
in: header
required: true
schema:
type: string
description: base64 encoded Participant User username and password
- name: X-transactionID
in: header
required: false
schema:
type: string
description: Unique identifier for each request
responses:
'200':
description: Request processed successfully.
content:
application/json:
example:
transactionId: 12345-abcd-27
data:
participantContact:
contactName: John Smith
phoneNumber: 0123456789
email: john.smith@company.com
meterExemption:
meterExemptionId: '123456789012345'
participantId: NEMMCO
startDate: '2023-07-25'
endDate: '2024-02-29'
status: REVIEW
statusDate: '2023-07-25'
exemptionDate: '2023-07-01'
exemptionCategory: MALFUNCTION
exemptionType: DEFECTIVE
exemptionNature: ACCESS
actionTaken: Actions that were taken..
actionReason: Reason for raising exemption and other relevant information....
docProvided: Y
extendCount: '0'
meterExemptionHistory:
- status: REVIEW
statusDate: '2023-07-25'
meterExemptionNMIs:
- NMI: '1234567890'
status: NEW
planDate: '2023-12-22'
substitutionReq: Y
substitutionMethod: 45
- NMI: '1234567891'
status: NEW
planDate: '2023-12-22'
substitutionReq: Y
substitutionMethod: 45
- NMI: '1234567892'
status: NEW
planDate: '2023-12-22'
substitutionReq: Y
substitutionMethod: 45
text/csv:
example: ''
'400':
description: Mandatory HTTP header {missing Header Name} is missing. No response payload.
content:
application/json:
example: {}
'401':
description: Unauthorized. No response payload.
content:
application/json:
example: {}
'404':
description: Resources for the endpoint URI not found. Endpoint URI:{requested URI path suffix}.
No response payload.
content:
application/json:
example: {}
'405':
description: Method Not Allowed. Input request HTTP method {requested verb} is not allowed for
this resource. No response payload.
content:
application/json:
example: {}
'429':
description: Too Many Requests. Number of inbound requests exceeded the throttling limits; try
after sometime. No response payload.
content:
application/json:
example: {}
'500':
description: Internal Server Error. Exception from backend system. No response payload.
content:
application/json:
example: {}
/exemptionList:
get:
operationId: exemptionList
summary: Exemption List
tags:
- MeterExemption
description: Returns a list of meter exemptions based on the query parameters.The response format
is defined in the Accept header.
When the content type is:
- application/json, up to 1000
meter exemptions records are returned
- text/csv, up to 75,000 meter exemption records are
returned
parameters:
- name: status
in: query
required: false
schema:
type: string
description: Retrieves a list of meter exemptions for a given status. There are two status values,
one for exemptions and one for NMIs. Must be one of ACTIVE, CANCELLED, EXPIRED, MOREINFO, REJECTED,
RESOLVED, REVIEW
- name: meterExemptionId
in: query
required: false
schema:
type: string
description: The meter exemption for the given ID
- name: meterExemptionFromDate
in: query
required: false
schema:
type: string
description: The meter exemptions list from a given date. Format YYYY-MM-DD
- name: meterExemptionToDate
in: query
required: false
schema:
type: string
description: The meter exemptions list to a given date. Format YYYY-MM-DD
- name: NMI
in: query
required: false
schema:
type: string
description: Returns meter exemptions for the given NMI
- name: Accept
in: header
required: false
schema:
type: string
enum:
- application/json
- text/csv
default: application/json
description: Identifies content types accepted by the client. application/json (default) or text/csv
- name: X-initiatingParticipantID
in: header
required: true
schema:
type: string
description: The ID of the initiating Participant. Example value = P01
- name: X-market
in: header
required: true
schema:
type: string
description: Identifies the market. Set to NEM
- name: Authorization
in: header
required: true
schema:
type: string
description: base64 encoded Participant User username and password
- name: X-transactionID
in: header
required: false
schema:
type: string
description: Unique identifier for each request
responses:
'200':
description: Request processed successfully
content:
application/json:
example:
transactionId: adb4g8ed0-bdf5-5574-ad41-a20d8f1b2503
data:
meterExemptions:
- meterExemptionId: '123456789012345'
exemptionDate: '2023-09-04'
createDate: '2023-10-16'
age: '0'
endDate: '2026-08-11'
status: REJECTED
nmiQuantity: '3'
participantId: MYMC
text/csv:
example: ''
'400':
description: Mandatory HTTP header {missing Header Name} is missing. No response payload.
content:
application/json:
example: {}
'401':
description: Unauthorized. No response payload.
content:
application/json:
example: {}
'404':
description: Resources for the endpoint URI not found. Endpoint URI:{requested URI path suffix}.
No response payload.
content:
application/json:
example: {}
'405':
description: Method Not Allowed. Input request HTTP method {requested verb} is not allowed for
this resource. No response payload.
content:
application/json:
example: {}
'429':
description: Too Many Requests. Number of inbound requests exceeded the throttling limits; try
after sometime. No response payload.
content:
application/json:
example: {}
'500':
description: Internal Server Error. Exception from backend system. No response payload.
content:
application/json:
example: {}
/submitExemption:
post:
operationId: submitExemption
summary: submitExemption
tags:
- MeterExemption
description: 'Submits or updates a meter exemption.
A submission consists of two parts:
1. Meter exemption details - JSON payload.
2. NMI list – csv or JSON payload.'
parameters:
- name: action
in: query
required: true
schema:
type: string
description: Action values can be NEW, UPDATE, CANCEL, REMOVE, or RESOLVE
- name: meterExemptionId
in: query
required: false
schema:
type: string
description: The meter exemption ID to update
- name: X-initiatingParticipantID
in: header
required: true
schema:
type: string
description: The ID of the initiating Participant. Example value = P01
- name: X-market
in: header
required: true
schema:
type: string
description: Identifies the market. Set to NEM
- name: Authorization
in: header
required: true
schema:
type: string
description: base64 encoded Participant User username and password
- name: X-transactionID
in: header
required: false
schema:
type: string
description: Unique identifier for each request
requestBody:
content:
multipart/form-data:
schema: {}
application/json example:
example:
me_Key_Name:
meterExemption:
exemptionDate: '2025-07-01'
endDate: '2025-07-31'
exemptionCategory: MALFUNCTION
exemptionType: FAMILY
exemptionNature: WC_METER
actionTaken: a
actionReason: ''
docProvided: N
nmi_Key_Name:
meterExemptionNMIs:
- action: NEW
NMI: '6001120305'
planDate: '2025-07-30'
substitutionReq: Y
substitutionMethod: '56'
description: Multipart/form-data request
responses:
'200':
description: Request processed successfully.
content:
application/json:
example:
transactionId: string
data:
meterExemptionId: '123456789012345'
meterExemptionStatus: REVIEW
payloadResponseStatus: Accept
payloadResponseMessage: 'NMIs submitted: 3 Total NMIs in the exemption: 3 Live NMIs
in the exemption: 0'
'400':
description: Mandatory HTTP header {missing Header Name} is missing. No response payload.
content:
application/json:
example: {}
'401':
description: Unauthorized. No response payload.
content:
application/json:
example: {}
'404':
description: Resources for the endpoint URI not found. Endpoint URI:{requested URI path suffix}.
No response payload.
content:
application/json:
example: {}
'405':
description: Method Not Allowed. Input request HTTP method {requested verb} is not allowed for
this resource. No response payload.
content:
application/json:
example: {}
'429':
description: Too Many Requests. Number of inbound requests exceeded the throttling limits; try
after sometime. No response payload.
content:
application/json:
example: {}
'500':
description: Internal Server Error. Exception from backend system. No response payload.
content:
application/json:
example: {}
components:
securitySchemes:
apiKeyHeader:
type: apiKey
name: Ocp-Apim-Subscription-Key
in: header
apiKeyQuery:
type: apiKey
name: subscription-key
in: query
security:
- {}
- apiKeyHeader: []
- apiKeyQuery: []
tags:
- name: MeterExemption
description: The Meter Exemptions API enables registered Metering Coordinators (MCs) to create and manage
metering exemptions within MSATS.