AEMO B2BMessagingAsync

The B2BMessagingAsync API is a B2B SMP APIs used to send and recieve B2B messages between the participants in an asynchronous fashion. AEMO's public API catalogue lists 3 operation(s) for this API, gateway-routed under the path prefix /ws/B2BMessagingAsync. 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 3 operation(s) in the OpenAPI captured here were harvested from AEMO's developer-portal operations endpoints (https://dev.aemo.com.au/developer/apis/b2bmessaging-async-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-b2bmessaging-async-v1-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: B2BMessagingAsync
  description: "## Introduction\nThe B2BMessagingAsync API is a B2B SMP APIs used to send and recieve\
    \ B2B messages between the participants in an asynchronous fashion. \n\n\nFor details on how to get\
    \ access and business rules for this API:\n\n<a href=\"/api-docs\"><img src=\"./files/ViewAPIDocsButton.png\"\
    \ alt=\"View API Docs\" /></a>"
  version: '3.0'
  x-origin:
  - format: openapi
    source: AEMO API Management developer portal
    url: https://dev.aemo.com.au/developer/apis/b2bmessaging-async-v1/operations?api-version=2022-04-01-preview
servers:
- url: https://api-prd.aemo.local/ws/B2BMessagingAsync
paths:
  /queues:
    get:
      operationId: determineWhatMessagesAreInTheEHubQueue
      summary: Determine what messages are in the e-Hub queue
      tags:
      - B2BMessagingAsync
      description: Returns meta-data of messages in e-Hub queue for the participant initiating the API
        request.
      parameters:
      - name: initiatingParticipantID
        in: query
        required: true
        schema:
          type: string
        description: ParticipantID of the Participant invoking the API
      responses:
        '200':
          description: aseXML message listing the messages & its meta data in the e-Hub queue.
          content:
            application/xml:
              schema: {}
        '400':
          description: This response is provided when the submitted payload cannot be passed successfully.
        '404':
          description: This response is provided when the resource name missing from URL or is invalid.
        '405':
          description: This response is provided when the method is not POST
        '429':
          description: This response is provided when the throttling limits are reached.
        '500':
          description: This response is provided when any unforeseen error is encountered, such as; Certificate/key
            do not match or incorrect or e-Hub/API/downstream service is not available or Malformed payload.
  /messages:
    post:
      operationId: submitAB2BMessage
      summary: Submit a B2B message
      tags:
      - B2BMessagingAsync
      description: Submit a B2B message.
      parameters:
      - name: messageContextID
        in: header
        required: true
        schema:
          type: string
        description: "Message ID defined by the Participant. \nThe messageContextID is used in the following\
          \ ways:\n1. To provide a contextID for the message exchange. The participant/e-Hub uses the\
          \ contextID of the original request when delivering its corresponding MACK(s).\n2. If the Recipient\
          \ is on FTP, the filename is set to <messageContextID>.zip.\n3. The name of the archive files\
          \ is set to <messageContextID>.zip.\n4. To provide context to the failure messages to be returned\
          \ where the incoming payload is unreadable such as, the payload is schema invalid.\n\nFormat\
          \ of is: <b> [TransactionGroup 0-9_a-z]{1,4} + [Priority h|m|l] + \"_\" + [FromParticipantID]{1,10}\
          \ + \"_\" + [0-9_a-z]{1,18} </b>"
      requestBody:
        content:
          application/xml:
            example: <ase-aseXML> <xmlns_x003A_ase>urn:aseXML:r38</xmlns_x003A_ase> <xmlns_x003A_xsi>http://www.w3.org/2001/XMLSchema-instance</xmlns_x003A_xsi>
              <xsi_x003A_schemaLocation>urn:aseXML:r38 http://www.nemmco.com.au/aseXML/schemas/r38/aseXML_r38.xsd</xsi_x003A_schemaLocation>
              <Header> <From>ENERGYCO1</From> <To>INTEGP</To> <MessageID>hsmdh_hsm_20070216123200123</MessageID>
              <MessageDate>10/14/2005 3:02:35 PM</MessageDate> <TransactionGroup>CATS</TransactionGroup>
              <TransactionPriority>High</TransactionPriority> <SecurityContext>string</SecurityContext>
              <EnergyMarket>AATELEC</EnergyMarket> </Header> <Transactions> <Transaction initiatingTransactionID="string">
              <transactionID>3453535315</transactionID> <transactionDate>10/15/2004 1:02:35 AM</transactionDate>
              <MeterDataNotification> <version>r25</version> <RecordCount>string</RecordCount> <CSVConsumptionData>string</CSVConsumptionData>
              <CSVIntervalData>string</CSVIntervalData> <MeterReadingGroup> <MeterReadingGroupType>NMI</MeterReadingGroupType>
              <MeterReadingGroupId>string</MeterReadingGroupId> </MeterReadingGroup> </MeterDataNotification>
              <ServiceOrderRequest> <version>r36</version> <ActionType>New</ActionType> <ServiceOrderHeader>
              <NMI checksum="0" /> <Address>string</Address> <ServiceOrderTypeBase /> <ServiceOrderNumber>string</ServiceOrderNumber>
              <ServiceProviderReference>string</ServiceProviderReference> </ServiceOrderHeader> <ServicePoint>
              <Address>string</Address> <AccessDetails>string</AccessDetails> <SiteHazard> <Code>string</Code>
              <Description>string</Description> </SiteHazard> <MelwayGridReference>string</MelwayGridReference>
              <GasMeterDogCode>Bluff</GasMeterDogCode> <GasMeterPosition>BA</GasMeterPosition> </ServicePoint>
              <ContactDetail> <ContactName>string</ContactName> <ContactNumber>string</ContactNumber>
              </ContactDetail> <CustomerDetail> <PersonName> <PersonNameType>LGL</PersonNameType> <NameTitle>string</NameTitle>
              <GivenName>string</GivenName> <FamilyName>string</FamilyName> <NameSuffix>string</NameSuffix>
              </PersonName> <BusinessName> <BusinessNameTypeCode>OTH</BusinessNameTypeCode> </BusinessName>
              <ContactName>string</ContactName> <PostalAddress>string</PostalAddress> <PhoneNumber>string</PhoneNumber>
              <EmailAddress>string</EmailAddress> </CustomerDetail> <Co-ordinatingContactDetail>string</Co-ordinatingContactDetail>
              <AppointmentDetail> <Reference>string</Reference> <ScheduledDate>string</ScheduledDate>
              <AppointmentDateTime> <Date>string</Date> <Time>string</Time> </AppointmentDateTime> </AppointmentDetail>
              <ServiceOrderRequestData> <SpecialInstructions>string</SpecialInstructions> <NMIStandingData>string</NMIStandingData>
              </ServiceOrderRequestData> <NotifiedParties> <PartyIdentifier description="string"> <context>ABN</context>
              </PartyIdentifier> </NotifiedParties> </ServiceOrderRequest> <ServiceOrderResponse> <version>r36</version>
              <ResponseType>Initial</ResponseType> <ServiceOrderHeader> <NMI checksum="0" /> <Address>string</Address>
              <ServiceOrderTypeBase /> <ServiceOrderNumber>string</ServiceOrderNumber> <ServiceProviderReference>string</ServiceProviderReference>
              </ServiceOrderHeader> <ContactDetail> <ContactName>string</ContactName> <ContactNumber>string</ContactNumber>
              </ContactDetail> <AppointmentDetail> <Reference>string</Reference> <ScheduledDate>string</ScheduledDate>
              <AppointmentDateTime> <Date>string</Date> <Time>string</Time> </AppointmentDateTime> </AppointmentDetail>
              <ServiceOrderNotificationData> <SpecialNotes>string</SpecialNotes> <NMIStandingData>string</NMIStandingData>
              </ServiceOrderNotificationData> <Event> <EventClass>Message</EventClass> <EventSeverity>Information</EventSeverity>
              <EventCode description="string" /> <KeyInfo>string</KeyInfo> <Context>string</Context> <Explanation>string</Explanation>
              <EventSupportedVersions> <Version>string</Version> </EventSupportedVersions> </Event> </ServiceOrderResponse>
              <CustomerDetailsRequest> <version>r32</version> <NMI checksum="0" /> <RequestReason>Returned
              Mail</RequestReason> <SpecialComments> <CommentLine>33433434</CommentLine> </SpecialComments>
              </CustomerDetailsRequest> <CustomerDetailsNotification> <version>r36</version> <CustomerData>
              <NMI checksum="0" /> <CustomerDetail> <PersonName> <PersonNameType>LGL</PersonNameType>
              <NameTitle>string</NameTitle> <GivenName>string</GivenName> <FamilyName>string</FamilyName>
              <NameSuffix>string</NameSuffix> </PersonName> <BusinessName> <BusinessNameTypeCode>OTH</BusinessNameTypeCode>
              </BusinessName> <ContactName>string</ContactName> <PostalAddress>string</PostalAddress>
              <PhoneNumber>string</PhoneNumber> <EmailAddress>string</EmailAddress> </CustomerDetail>
              <SensitiveLoadType>Life Support</SensitiveLoadType> <MovementType>Update</MovementType>
              <LastModifiedDateTime>string</LastModifiedDateTime> <ConcessionCard> <RebateType>Pension
              Card</RebateType> <Number>string</Number> <FromDate>string</FromDate> <ToDate>string</ToDate>
              </ConcessionCard> </CustomerData> </CustomerDetailsNotification> <AmendMeterRouteDetails>
              <version>r19</version> <AmendSiteAccessDetails>string</AmendSiteAccessDetails> <SiteAddressDetails>
              <NMI checksum="0" /> <Address>string</Address> <LastModifiedDateTime>string</LastModifiedDateTime>
              <CustomerType>Industrial</CustomerType> </SiteAddressDetails> <CSVAmendSiteAddressDetails>string</CSVAmendSiteAddressDetails>
              <CSVAmendScheduledReadingDay>string</CSVAmendScheduledReadingDay> </AmendMeterRouteDetails>
              <SiteAccessRequest> <version>r36</version> <NMI checksum="0" /> <Reason>string</Reason>
              <SpecialComments> <CommentLine>33433434</CommentLine> </SpecialComments> </SiteAccessRequest>
              <MeterDataVerifyRequest> <version>r9</version> <VerifyRequestData>string</VerifyRequestData>
              </MeterDataVerifyRequest> <MeterDataMissingNotification> <version>r14</version> <MissingMeterData>string</MissingMeterData>
              <CSVMissingMeterData>string</CSVMissingMeterData> </MeterDataMissingNotification> <RemoteServiceRequest>
              <version>r36</version> <RemoteServiceData> <RequestID>string</RequestID> <NMI checksum="0"
              /> <MeterSerialNumbers> <MeterSerialNumber>string</MeterSerialNumber> </MeterSerialNumbers>
              <ServiceType>string</ServiceType> <RequestCode>string</RequestCode> <ResponseFormat>string</ResponseFormat>
              <FromDateTime>string</FromDateTime> <ToDateTime>string</ToDateTime> <UserDefData> <UserDef1>string</UserDef1>
              <UserDef2>string</UserDef2> <UserDef3>string</UserDef3> <UserDef4>string</UserDef4> <UserDef5>string</UserDef5>
              <UserDef6>string</UserDef6> <UserDef7>string</UserDef7> <UserDef8>string</UserDef8> <UserDef9>string</UserDef9>
              <UserDef10>string</UserDef10> </UserDefData> </RemoteServiceData> </RemoteServiceRequest>
              <RemoteServiceResponse> <version>r36</version> <RemoteServiceData> <RequestID>string</RequestID>
              <NMI checksum="0" /> <MeterSerialNumbers> <MeterSerialNumber>string</MeterSerialNumber>
              </MeterSerialNumbers> <ServiceType>string</ServiceType> <RequestCode>string</RequestCode>
              <ResponseFormat>string</ResponseFormat> <FromDateTime>string</FromDateTime> <ToDateTime>string</ToDateTime>
              <UserDefData> <UserDef1>string</UserDef1> <UserDef2>string</UserDef2> <UserDef3>string</UserDef3>
              <UserDef4>string</UserDef4> <UserDef5>string</UserDef5> <UserDef6>string</UserDef6> <UserDef7>string</UserDef7>
              <UserDef8>string</UserDef8> <UserDef9>string</UserDef9> <UserDef10>string</UserDef10> </UserDefData>
              </RemoteServiceData> <RemoteServiceResponseData> <ResponsePayload> <RecordCount>string</RecordCount>
              <PayloadContent /> </ResponsePayload> <Event> <EventClass>Message</EventClass> <EventSeverity>Information</EventSeverity>
              <EventCode description="string" /> <KeyInfo>string</KeyInfo> <Context>string</Context> <Explanation>string</Explanation>
              <EventSupportedVersions> <Version>string</Version> </EventSupportedVersions> </Event> <Product>string</Product>
              </RemoteServiceResponseData> </RemoteServiceResponse> <OneWayNotification> <version>r25</version>
              <CSVNotificationDetail>string</CSVNotificationDetail> </OneWayNotification> <NoticeOfMeteringWorks>
              <version>r36</version> <NoticeOfWorksID>string</NoticeOfWorksID> <NMIStandingData>string</NMIStandingData>
              <GeographicCoordinate>string</GeographicCoordinate> <WorksDetail> <WorkType>string</WorkType>
              <FieldWorkCompleteDateTime>string</FieldWorkCompleteDateTime> <TotalInstalledMeters>0</TotalInstalledMeters>
              <TotalInstalledNetworkDevices>0</TotalInstalledNetworkDevices> <TotalInstalledControlEquipment>0</TotalInstalledControlEquipment>
              <TotalInstalledTransformers>0</TotalInstalledTransformers> <TotalRemovedMeters>0</TotalRemovedMeters>
              <TotalRemovedOther>0</TotalRemovedOther> <NewEquipment> <InstalledMeterEquipment>string</InstalledMeterEquipment>
              <InstalledNetworkDevices>string</InstalledNetworkDevices> <InstalledControlEquipment>string</InstalledControlEquipment>
              <InstalledTransformers>string</InstalledTransformers> </NewEquipment> <RemovedMeteringEquipments>
              <RemovedMeteringEquipment> <RemovedEquipmentType>string</RemovedEquipmentType> <MeteringEquipment>string</MeteringEquipment>
              </RemovedMeteringEquipment> </RemovedMeteringEquipments> </WorksDetail> <Notes>string</Notes>
              </NoticeOfMeteringWorks> <NotifiedParty> <version>r36</version> <ServiceOrderHeader> <NMI
              checksum="0" /> <Address>string</Address> <ServiceOrderTypeBase /> <ServiceOrderNumber>string</ServiceOrderNumber>
              <ServiceProviderReference>string</ServiceProviderReference> </ServiceOrderHeader> <ServiceRequestor>string</ServiceRequestor>
              <ServiceProvider>string</ServiceProvider> <ScheduledDate>string</ScheduledDate> <ActualDateTime>string</ActualDateTime>
              <NotificationStatus>SO Requested</NotificationStatus> <NotificationPayload> <TransactionNotified>string</TransactionNotified>
              <TransAckNotified>string</TransAckNotified> <MsgAckNotified>string</MsgAckNotified> </NotificationPayload>
              </NotifiedParty> <PlannedInterruptionNotification> <version>r36</version> <NMI checksum="0"
              /> <StartDate>string</StartDate> <StartTime>string</StartTime> <EndDate>string</EndDate>
              <Duration>string</Duration> <ReasonForInter>string</ReasonForInter> <Notes>string</Notes>
              </PlannedInterruptionNotification> <MeterFaultAndIssueNotification> <version>r36</version>
              <NMI checksum="0" /> <DateIdentified>string</DateIdentified> <StartDate>string</StartDate>
              <StartTime>string</StartTime> <EndDate>string</EndDate> <Duration>string</Duration> <SupplyOn>string</SupplyOn>
              <SupplyOff>string</SupplyOff> <MeterSerialNumbers> <MeterSerialNumber>string</MeterSerialNumber>
              </MeterSerialNumbers> <ReasonForNotice>string</ReasonForNotice> <Notes>string</Notes> </MeterFaultAndIssueNotification>
              <LifeSupportNotification> <version>r38</version> <LifeSupportData> <NMI>string</NMI> <SiteAddress>string</SiteAddress>
              <UpdateReason>Update</UpdateReason> <RegistrationOwner>string</RegistrationOwner> <LifeSupportStatus>Registered
              - No Medical Confirmation</LifeSupportStatus> <DateRequired>string</DateRequired> <LifeSupportEquipmentType>Oxygen
              Concentrator</LifeSupportEquipmentType> <CustomerDetail> <PersonName> <PersonNameType>LGL</PersonNameType>
              <NameTitle>string</NameTitle> <GivenName>string</GivenName> <FamilyName>string</FamilyName>
              <NameSuffix>string</NameSuffix> </PersonName> <BusinessName> <BusinessNameTypeCode>OTH</BusinessNameTypeCode>
              </BusinessName> <ContactName>string</ContactName> <PostalAddress>string</PostalAddress>
              <PhoneNumber>string</PhoneNumber> <EmailAddress>string</EmailAddress> </CustomerDetail>
              <ContactMethod>Postal Address</ContactMethod> <SpecialNotes>string</SpecialNotes> <LastModifiedDateTime>string</LastModifiedDateTime>
              </LifeSupportData> </LifeSupportNotification> <LifeSupportRequest> <version>r38</version>
              <NMI checksum="0" /> <LifeSupportRequestReason>Confirm Life Support</LifeSupportRequestReason>
              <SpecialComments> <CommentLine>33433434</CommentLine> </SpecialComments> </LifeSupportRequest>
              </Transaction> </Transactions> </ase-aseXML>
        description: An example of a message is given below.  For more xml payload examples; Download
          the Postman collection.
      responses:
        '200':
          description: aseXML hub Acknowledgement (status = ‘Accept’) will be sent
          content:
            application/xml:
              example: <_x0032_00APIResponseResponse-xml></_x0032_00APIResponseResponse-xml>
        '400':
          description: This response is provided when the submitted payload cannot be passed successfully.
        '404':
          description: This response is provided when the resource name missing from URL or is invalid.
        '405':
          description: This response is provided when the method is not POST
        '429':
          description: This response is provided when the throttling limits are reached.
        '500':
          description: This response is provided when any unforeseen error is encountered, such as; Certificate/key
            do not match or incorrect or e-Hub/API/downstream service is not available or Malformed payload.
  /messageAcknowledgements:
    post:
      operationId: submitMessageAcknowledgement
      summary: Submit Message Acknowledgement
      tags:
      - B2BMessagingAsync
      description: "Purpose - Acknowledge a received message. Detail - For every message, a message acknowledgment\
        \ is generated (with the exception of messages containing message acknowledgements). A BusinessReceipt\
        \ has two possible implementations -\n\n  • MessageAcknowledgement.\n  \n  • Event, errors are\
        \ reported via Event elements.\n  \n  \nIf a message is rejected, no receipt identifier is required\
        \ with the acknowledgement.\n\nThis resource will be used when Participants are required to send\
        \ Message Acknowledgement in the HTTP request. messageContextID should be set to the messageContextID\
        \ of the original message that is to be acknowledged. \n\nIn order that the sender receive timely\
        \ acknowledgement of message delivery, the receiver should respond immediately to each aseXML\
        \ message with a message acknowledgement.\n\n<b> Note: If a Participant is required to send a\
        \ transaction message or transaction acknowledgement message, ‘/messages’ resource is to be used.\
        \ If a Participant is required to send ‘message acknowledgements’ in the request payload, then\
        \ ‘/messageAcknowledgements’ resource is to be used.</b>"
      parameters:
      - name: messageContextID
        in: header
        required: true
        schema:
          type: string
        description: "Message ID defined by the Participant. \nThe messageContextID is used in the following\
          \ ways:\n1. To provide a contextID for the message exchange. The participant/e-Hub uses the\
          \ contextID of the original request when delivering its corresponding MACK(s).\n2. If the Recipient\
          \ is on FTP, the filename is set to <messageContextID>.zip.\n3. The name of the archive files\
          \ is set to <messageContextID>.zip.\n4. To provide context to the failure messages to be returned\
          \ where the incoming payload is unreadable such as, the payload is schema invalid.\n\nFormat\
          \ of is: <b> [TransactionGroup 0-9_a-z]{1,4} + [Priority h|m|l] + \"_\" + [FromParticipantID]{1,10}\
          \ + \"_\" + [0-9_a-z]{1,18} </b>"
      requestBody:
        content:
          application/xml:
            example: <MessageAcknowledgement> <initiatingMessageID>3453535315</initiatingMessageID> <receiptID>OR-REC-1234</receiptID>
              <receiptDate>10/15/2004 1:02:35 AM</receiptDate> <MessageStatus>Accept</MessageStatus> <duplicate>No</duplicate>
              <Event> <EventClass>Message</EventClass> <EventSeverity>Information</EventSeverity> <EventCode
              description="string" /> <KeyInfo>string</KeyInfo> <Context>string</Context> <Explanation>string</Explanation>
              <EventSupportedVersions> <Version>string</Version> </EventSupportedVersions> </Event> </MessageAcknowledgement>
        description: An example of a message acknowledgement is given below.  For more xml payload examples;
          Download the Postman collection.
      responses:
        '200':
          description: aseXML hub Acknowledgement (status = ‘Accept’) will be sent
          content:
            application/xml:
              example: <_x0032_00APIResponseResponse-xml></_x0032_00APIResponseResponse-xml>
        '400':
          description: This response is provided when the submitted payload cannot be passed successfully.
        '404':
          description: This response is provided when the resource name missing from URL or is invalid.
        '405':
          description: This response is provided when the method is not POST
        '429':
          description: This response is provided when the throttling limits are reached.
        '500':
          description: This response is provided when any unforeseen error is encountered, such as; Certificate/key
            do not match or incorrect or e-Hub/API/downstream service is not available or Malformed payload.
components:
  securitySchemes:
    apiKeyHeader:
      type: apiKey
      name: x-eHub-APIKey
      in: header
    apiKeyQuery:
      type: apiKey
      name: subscription-key
      in: query
security:
- {}
- apiKeyHeader: []
- apiKeyQuery: []
tags:
- name: B2BMessagingAsync
  description: Introduction