AEMO B2MMessagingSync

The B2MMessagingSync API supports generateC1Report, generateC4Report, getMSATSLimits,NMIDiscovery, getNMIDetail, getParticipantSystemStatus, and getMeterData endpoints.The API participant pushes their outgoing message to the e-Hub and the e-Hub pushes the message to the API recipient.The message delivery occurs synchronously where the participant sends the message to the e-Hub and AEMO immediately AEMO's public API catalogue lists 7 operation(s) for this API, gateway-routed under the path prefix /NEMRetail/B2MMessagingSync. 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 7 operation(s) in the OpenAPI captured here were harvested from AEMO's developer-portal operations endpoints (https://dev.aemo.com.au/developer/apis/b2mmessaging-sync-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-b2mmessaging-sync-v1-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: B2MMessagingSync
  description: '## Introduction

    The B2MMessagingSync API supports generateC1Report, generateC4Report, getMSATSLimits,NMIDiscovery,
    getNMIDetail, getParticipantSystemStatus, and getMeterData endpoints.The API participant pushes their
    outgoing message to the e-Hub and the e-Hub pushes the message to the API recipient.The message delivery
    occurs synchronously where the participant sends the message to the e-Hub and AEMO immediately sends
    the response (such as MACKs,TACKs, or responses) in the same thread to the Participant''s Gateway.'
  version: '3.0'
  x-origin:
  - format: openapi
    source: AEMO API Management developer portal
    url: https://dev.aemo.com.au/developer/apis/b2mmessaging-sync-v1/operations?api-version=2022-04-01-preview
servers:
- url: https://api-prd.aemo.local/NEMRetail/B2MMessagingSync
paths:
  /generateC1Report:
    get:
      operationId: generateC1Report
      summary: generateC1Report
      tags:
      - B2MMessagingSync
      description: This resource provide C1 report for the requested table name
      parameters:
      - name: transactionId
        in: query
        required: true
        schema:
          type: string
        description: Transaction Id
      - name: tableName
        in: query
        required: true
        schema:
          type: string
        description: Table Name
      - name: fromDate
        in: query
        required: true
        schema:
          type: string
        description: "Format - yyyy-MM-dd'T'hh-mm-ss+10:00. \nFrom Date"
      - name: toDate
        in: query
        required: true
        schema:
          type: string
        description: "Format - yyyy-MM-dd'T'hh-mm-ss+10:00. \nTo Date"
      - name: lastSequenceNumber
        in: query
        required: true
        schema:
          type: number
        description: Last Sequence Number
      - name: maximumRows
        in: query
        required: true
        schema:
          type: number
        description: Maximum Rows
      - name: X-initiatingParticipantID
        in: header
        required: true
        schema:
          type: string
        description: The ID of the Initiating Participant
      - name: Accept
        in: header
        required: true
        schema:
          type: string
        description: Requird response format application/zip or text/xml; aseXML_version={"version"} for
          example "r43" or "r42"
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
        description: Basic username:password(Base64 encoding of the URM username and password)
      responses:
        '200':
          description: Success response with aseXml response payload.
        '400':
          description: Mandatory HTTP header {missing Header Name} is missing. No response payload.
        '401':
          description: Unauthorized. No response payload.
        '404':
          description: Resources for the endpoint URI not found. Endpoint URI:{requested URI path suffix}.
            No response payload.
        '405':
          description: Method Not Allowed. Input request HTTP method {requested verb} is not allowed for
            this resource. No response payload.
        '429':
          description: Too Many Requests. Number of inbound requests exceeded the throttling limits; try
            after sometime. No response payload.
        '500':
          description: Internal Server Error. Exception from backend system. No response  payload.
  /generateC4Report:
    get:
      operationId: generateC4Report
      summary: generateC4Report
      tags:
      - B2MMessagingSync
      description: This resource provide Single NMI Master (C4) report
      parameters:
      - name: transactionId
        in: query
        required: true
        schema:
          type: string
        description: Transaction Id
      - name: NMI
        in: query
        required: true
        schema:
          type: string
        description: nmi number
      - name: fromDate
        in: query
        required: true
        schema:
          type: string
        description: "Format - YYYY-MM-DD. \nFrom Date"
      - name: toDate
        in: query
        required: true
        schema:
          type: string
        description: "Format - YYYY-MM-DD. \nTo Date"
      - name: asatDate
        in: query
        required: true
        schema:
          type: string
        description: "Format - YYYY-MM-DD. \nAsat Date"
      - name: roleId
        in: query
        required: false
        schema:
          type: string
        description: Role Id
      - name: inittransid
        in: query
        required: false
        schema:
          type: string
        description: Init Trans id
      - name: Accept
        in: header
        required: true
        schema:
          type: string
        description: Requird response format
      - name: X-initiatingParticipantID
        in: header
        required: true
        schema:
          type: string
        description: The ID of the Initiating Participant
      - name: X-market
        in: header
        required: true
        schema:
          type: string
        description: The ID of the Market
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success response with aseXml response payload.
          content:
            application/xml:
              schema: {}
        '400':
          description: Mandatory HTTP header {missing Header Name} is missing. No response payload.
        '401':
          description: Unauthorized. No response payload.
        '404':
          description: Resources for the endpoint URI not found. Endpoint URI:{requested URI path suffix}.
            No response payload.
        '405':
          description: Method Not Allowed. Input request HTTP method {requested verb} is not allowed for
            this resource. No response payload.
        '429':
          description: Too Many Requests. Number of inbound requests exceeded the throttling limits; try
            after sometime. No response payload.
        '500':
          description: Internal Server Error. Exception from backend system. No response payload.
  /getMeterRead:
    get:
      operationId: getMeterRead
      summary: getMeterRead
      tags:
      - B2MMessagingSync
      description: This resource allow to search for and retrieve metering data loaded into the Enterprise
        MDM
      parameters:
      - name: NMI
        in: query
        required: true
        schema:
          type: string
      - name: startDate
        in: query
        required: true
        schema:
          type: string
        description: Format - YYYY-MM-DD. Start Date of the meter data request period (inclusive).
      - name: endDate
        in: query
        required: true
        schema:
          type: string
        description: Format - YYYY-MM-DD. End Date of the meter data request period (inclusive).
      - name: meterType
        in: query
        required: false
        schema:
          type: string
        description: "Allowed values are\t'I' - Interval , 'C' - Consumption (Basic)"
      - name: meterData
        in: query
        required: false
        schema:
          type: string
        description: "Allowed values are\t'AO' - Current readings, 'AH' - Current and historical readings"
      - name: asAtDate
        in: query
        required: false
        schema:
          type: string
        description: Format - YYYY-MM-DD hh:mi:ss:000. Provides the ability for the consumer to request
          metering data 'as at' a point in time.
      - name: intervalLength
        in: query
        required: false
        schema:
          type: string
        description: Relevant only for interval data. Defines the resolution that the meter reads should
          be returned in. Possible values are '30' or 'SD'.
      - name: activeEnergy
        in: query
        required: false
        schema:
          type: string
        description: Applicable to interval data only. Possible values are 'N' or 'Y'.
      - name: AEMOSubs
        in: query
        required: false
        schema:
          type: string
        description: Applicable to interval data only. Possible values are 'N' or 'Y'.
      - name: X-initiatingParticipantID
        in: header
        required: true
        schema:
          type: string
        description: The ID of the Initiating Participant
      - name: X-market
        in: header
        required: true
        schema:
          type: string
        description: for this interface this value must be set to 'NEM'
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success response with json response payload.
          content:
            application/json:
              schema: {}
        '400':
          description: Mandatory HTTP header {missing Header Name} is missing. No response payload.
        '401':
          description: Unauthorized. No response payload.
        '404':
          description: Resources for the endpoint URI not found. Endpoint URI:{requested URI path suffix}.
            No response payload.
        '405':
          description: Method Not Allowed. Input request HTTP method {requested verb} is not allowed for
            this resource. No response payload.
        '429':
          description: Too Many Requests. Number of inbound requests exceeded the throttling limits; try
            after sometime. No response payload.
        '500':
          description: Internal Server Error. Exception from backend system. No response payload.
  /getMSATSLimits:
    get:
      operationId: getMSATSLimits
      summary: getMSATSLimits
      tags:
      - B2MMessagingSync
      description: This resource provide the current status of MSATS Limits.If the participant is a member
        of a group then the limits are the group limits, otherwise they are the participant limits
      parameters:
      - name: transactionId
        in: query
        required: true
        schema:
          type: string
        description: Transaction Id
      - name: Accept
        in: header
        required: true
        schema:
          type: string
        description: Requird response format
      - name: X-initiatingParticipantID
        in: header
        required: true
        schema:
          type: string
        description: The ID of the Initiating Participant
      - name: X-market
        in: header
        required: true
        schema:
          type: string
        description: The ID of the Market
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success response with aseXml response payload.
          content:
            application/xml:
              schema: {}
        '400':
          description: Mandatory HTTP header {missing Header Name} is missing. No response payload.
        '401':
          description: Unauthorized. No response payload.
        '404':
          description: Resources for the endpoint URI not found. Endpoint URI:{requested URI path suffix}.
            No response payload.
        '405':
          description: Method Not Allowed. Input request HTTP method {requested verb} is not allowed for
            this resource. No response payload.
        '429':
          description: Too Many Requests. Number of inbound requests exceeded the throttling limits; try
            after sometime. No response payload.
        '500':
          description: Internal Server Error. Exception from backend system. No response payload.
  /getNMIDetail:
    get:
      operationId: getNMIDetail
      summary: getNMIDetail
      tags:
      - B2MMessagingSync
      description: This resource provide details of a specified NMI. Based on input parameters returns
        NMI Detail or Role Data
      parameters:
      - name: checksum
        in: query
        required: true
        schema:
          type: string
        description: checksum
      - name: transactionId
        in: query
        required: true
        schema:
          type: string
        description: Transaction Id
      - name: nmi
        in: query
        required: true
        schema:
          type: string
        description: nmi number
      - name: type
        in: query
        required: false
        schema:
          type: string
        description: type
      - name: reason
        in: query
        required: false
        schema:
          type: string
        description: reason
      - name: Accept
        in: header
        required: true
        schema:
          type: string
        description: Requird response format
      - name: X-initiatingParticipantID
        in: header
        required: true
        schema:
          type: string
        description: The ID of the Initiating Participant
      - name: X-market
        in: header
        required: true
        schema:
          type: string
        description: The ID of the Market
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success response with aseXml response payload.
          content:
            application/xml:
              schema: {}
        '400':
          description: Mandatory HTTP header {missing Header Name} is missing. No response payload.
        '401':
          description: Unauthorized. No response payload.
        '404':
          description: Resources for the endpoint URI not found. Endpoint URI:{requested URI path suffix}.
            No response payload.
        '405':
          description: Method Not Allowed. Input request HTTP method {requested verb} is not allowed for
            this resource. No response payload.
        '429':
          description: Too Many Requests. Number of inbound requests exceeded the throttling limits; try
            after sometime. No response payload.
        '500':
          description: Internal Server Error. Exception from backend system. No response payload.
  /getParticipantSystemStatus:
    get:
      operationId: getParticipantSystemStatus
      summary: getParticipantSystemStatus
      tags:
      - B2MMessagingSync
      description: This resource provide the current participant system status
      parameters:
      - name: transactionId
        in: query
        required: true
        schema:
          type: string
        description: Transaction Id
      - name: Accept
        in: header
        required: true
        schema:
          type: string
        description: Requird response format
      - name: X-initiatingParticipantID
        in: header
        required: true
        schema:
          type: string
        description: The ID of the Initiating Participant
      - name: X-market
        in: header
        required: true
        schema:
          type: string
        description: The ID of the Market
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success response with aseXml response payload.
          content:
            application/xml:
              schema: {}
        '400':
          description: Mandatory HTTP header {missing Header Name} is missing. No response payload.
        '401':
          description: Unauthorized. No response payload.
        '404':
          description: Resources for the endpoint URI not found. Endpoint URI:{requested URI path suffix}.
            No response payload.
        '405':
          description: Method Not Allowed. Input request HTTP method {requested verb} is not allowed for
            this resource. No response payload.
        '429':
          description: Too Many Requests. Number of inbound requests exceeded the throttling limits; try
            after sometime. No response payload.
        '500':
          description: Internal Server Error. Exception from backend system. No response payload.
  /NMIDiscovery:
    get:
      operationId: nMIDiscovery
      summary: NMIDiscovery
      tags:
      - B2MMessagingSync
      description: This resource provide a list of NMIs matching the search criteria
      parameters:
      - name: transactionId
        in: query
        required: true
        schema:
          type: string
        description: Transaction Id
      - name: jurisdictionCode
        in: query
        required: true
        schema:
          type: string
        description: Jurisdiction Code
      - name: deliveryPointIdentifier
        in: query
        required: false
        schema:
          type: string
        description: Required if searching by DPID
      - name: meterSerialNumber
        in: query
        required: false
        schema:
          type: string
        description: Required if searching by meter serial number
      - name: buildingOrPropertyName
        in: query
        required: false
        schema:
          type: string
        description: Building Or Property Name
      - name: locationDescriptor
        in: query
        required: false
        schema:
          type: string
        description: Location Descriptor
      - name: lotNumber
        in: query
        required: false
        schema:
          type: string
        description: Lot Number
      - name: flatOrUnitType
        in: query
        required: false
        schema:
          type: string
        description: Flat Or Unit Type
      - name: flatOrUnitNumber
        in: query
        required: false
        schema:
          type: string
        description: Flat Or Unit Number
      - name: floorOrLevelType
        in: query
        required: false
        schema:
          type: string
        description: Floor Or Level Type
      - name: floorOrLevelNumber
        in: query
        required: false
        schema:
          type: string
        description: Floor Or Level Number
      - name: houseNumber
        in: query
        required: false
        schema:
          type: string
        description: House Number
      - name: houseNumberSuffix
        in: query
        required: false
        schema:
          type: string
        description: House Number Suffix
      - name: streetName
        in: query
        required: false
        schema:
          type: string
        description: Street Name
      - name: streetSuffix
        in: query
        required: false
        schema:
          type: string
        description: Street Suffix
      - name: streetType
        in: query
        required: false
        schema:
          type: string
        description: Street Type
      - name: postcode
        in: query
        required: false
        schema:
          type: string
        description: postcode
      - name: stateOrTerritory
        in: query
        required: false
        schema:
          type: string
        description: Required if searching by address
      - name: suburbOrPlaceOrLocality
        in: query
        required: false
        schema:
          type: string
        description: Suburb Or Place Or Locality
      - name: Accept
        in: header
        required: true
        schema:
          type: string
        description: Requird response format
      - name: X-initiatingParticipantID
        in: header
        required: true
        schema:
          type: string
        description: The ID of the Initiating Participant
      - name: X-market
        in: header
        required: true
        schema:
          type: string
        description: The ID of the Market
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success response with aseXml response payload.
          content:
            application/xml:
              schema: {}
        '400':
          description: Mandatory HTTP header {missing Header Name} is missing. No response payload.
        '401':
          description: Unauthorized. No response payload.
        '404':
          description: Resources for the endpoint URI not found. Endpoint URI:{requested URI path suffix}.
            No response payload.
        '405':
          description: Method Not Allowed. Input request HTTP method {requested verb} is not allowed for
            this resource. No response payload.
        '429':
          description: Too Many Requests. Number of inbound requests exceeded the throttling limits; try
            after sometime. No response payload.
        '500':
          description: Internal Server Error. Exception from backend system. No response payload.
components:
  securitySchemes:
    apiKeyHeader:
      type: apiKey
      name: x-apikey
      in: header
    apiKeyQuery:
      type: apiKey
      name: subscription-key
      in: query
security:
- {}
- apiKeyHeader: []
- apiKeyQuery: []
tags:
- name: B2MMessagingSync
  description: Introduction