AEMO · AsyncAPI Specification

Aemo Ehub Events

Version

View Spec View on GitHub EnergyAustraliaElectricityGasEnergy MarketsGridMarket OperatorSystem OperatorOpen Energy DataConsumer Data RightCDRSmart MeteringDistributed Energy ResourcesRenewablesUtilitiesAsyncAPIWebhooksEvents

AsyncAPI Specification

Raw ↑
generated: '2026-07-27'
method: derived
source: >-
  https://dev.aemo.com.au/developer/apis?api-version=2022-04-01-preview (API descriptions) and the
  harvested operations in openapi/aemo-b2bmessaging-*, openapi/aemo-b2mmessaging-*,
  openapi/aemo-p2pmessaging-sync-v1-openapi.yml, openapi/aemo-hubmsgmgt-*
spec_type: none
description: >-
  AEMO publishes NO AsyncAPI document. It does operate a real asynchronous, server-to-participant
  message-delivery surface: the e-Hub. AEMO's own API descriptions call the async APIs "push-push"
  — the participant pushes an outgoing message to the e-Hub and the e-Hub pushes the message on to
  the participant's own Gateway endpoint, asynchronously, with acknowledgements flowing back. A
  polling variant ("push-pull") is offered for lower-volume participants who would rather poll
  their hub queue. This artifact captures that delivery surface as it is documented; no AsyncAPI
  channels, schemas or bindings have been invented.

delivery_models:
  - id: push-push
    name: Asynchronous push to the participant gateway
    apis:
      - openapi/aemo-b2bmessaging-async-v1-openapi.yml
      - openapi/aemo-b2mmessaging-async-v1-openapi.yml
    description: >-
      Participants push their outgoing message to the e-Hub and the e-Hub pushes the message to the
      participant's Gateway. Delivery is asynchronous — the initiator does not wait for the business
      response. Suits high-volume message exchange.
    participant_hosted_endpoint: true
    transport: HTTPS
    payload: aseXML business documents
  - id: push-pull
    name: Participant polls its hub queue
    apis:
      - openapi/aemo-b2bmessaging-pull-v1-openapi.yml
      - openapi/aemo-b2mmessaging-pull-v1-openapi.yml
    description: >-
      Participants implement their own polling logic against their Participant Hub Queue to retrieve
      new messages, similar to a batch program. Suits low-volume exchange.
    participant_hosted_endpoint: false
    transport: HTTPS
    payload: aseXML business documents
  - id: sync
    name: Synchronous exchange through the e-Hub
    apis:
      - openapi/aemo-b2bmessaging-sync-v1-openapi.yml
      - openapi/aemo-b2mmessaging-sync-v1-openapi.yml
      - openapi/aemo-p2pmessaging-sync-v1-openapi.yml
    description: >-
      The participant pushes the message to the e-Hub and the e-Hub pushes it to the recipient
      synchronously; the business response returns on the same call.
    transport: HTTPS
    payload: aseXML business documents

operations:
  - operation: openapi/aemo-b2bmessaging-async-v1-openapi.yml#determineWhatMessagesAreInTheEHubQueue
    path: GET /queues
    role: queue-inspection
    description: Returns metadata of messages in the e-Hub queue for the initiating participant.
  - operation: openapi/aemo-b2bmessaging-async-v1-openapi.yml#submitAB2BMessage
    path: POST /messages
    role: publish
    description: Submit a B2B message for asynchronous delivery.
  - operation: openapi/aemo-b2bmessaging-async-v1-openapi.yml#submitMessageAcknowledgement
    path: POST /messageAcknowledgements
    role: acknowledge
    description: >-
      Acknowledge a received message. Every message generates a message acknowledgement, with
      documented exceptions.
  - operation: openapi/aemo-b2mmessaging-async-v1-openapi.yml#getQueueMetaData
    path: GET /getQueueMetaData
    role: queue-inspection
    description: Retrieve details of messages queued in the Participant Hub Queue.
  - operation: openapi/aemo-b2mmessaging-async-v1-openapi.yml#submitMessages
    path: POST /submitMessages
    role: publish
    description: Submit messages and transaction acknowledgements to AEMO's market systems.
  - operation: openapi/aemo-b2mmessaging-async-v1-openapi.yml#submitMessageAcknowledgements
    path: POST /submitMessageAcknowledgements
    role: acknowledge
    description: Submit message acknowledgements to AEMO's market systems.
  - operation: openapi/aemo-p2pmessaging-sync-v1-openapi.yml#usedToExchangeFreeFormDataAndOrAttachments
    path: POST /messages
    role: publish
    description: Participant-to-participant exchange of free-form data and/or attachments.
  - operation: openapi/aemo-hubmsgmgt-v2-openapi.yml#getAlerts
    path: GET /getAlerts
    role: alert-retrieval
    description: Receive B2B and B2M stop-file alerts.

alerts:
  - name: B2B / B2M stop file alerts
    api: openapi/aemo-hubmsgmgt-v2-openapi.yml
    retrieval: pull (GET /getAlerts)
    description: >-
      Current list of B2B and B2M stop files — the e-Hub's operational signal that message flow to
      or from a participant has been halted.

gaps:
  - No AsyncAPI (or any machine-readable event) document is published for the e-Hub.
  - >-
    The participant-hosted gateway endpoint that receives pushed messages is specified in the e-Hub
    connection procedures rather than in a callback definition in the OpenAPI documents, so no
    OpenAPI `callbacks` object exists to derive from.
  - No event/message catalogue with per-message schemas is published; payload structure is defined
    by the aseXML schemas maintained outside the API documentation.

cross_references:
  conventions: conventions/aemo-conventions.yml
  authentication: authentication/aemo-authentication.yml