Optus · AsyncAPI Specification

The Optus SMS Suite Callback Surface

Version 1.0.0

Derived event description for the callbacks The Optus SMS Suite POSTs to subscriber-hosted URLs. Optus publishes NO AsyncAPI document; this file was derived by API Evangelist from two sources that are both published verbatim by the provider: 1. the `callbacks` block of the provider's own OpenAPI 3.0.3 document for SMS Gateway REST API v2 (openapi/optus-sms-suite-rest-v2-openapi.yml), which carries the real StatusCallback and ReplyCallback schemas; and 2. the callback payload shapes documented in prose on the REST v1, REST v2, REST Email and MM7 documentation pages. No field, status, or channel below was invented. Callback URLs are not supplied per request - they are configured per application in the platform's API Configuration screen, so the channel address is the subscriber's own endpoint. Operational rules the provider states for every callback: - HTTPS is recommended; the TLS certificate must match the domain name and self-signed certificates will not verify. - Credentials embedded in a callback URL must be URL-encoded. - On REST v2 a DLR callback URL is REQUIRED - without one, error codes are never seen. - MM7 callbacks require HTTP Basic authentication and must be acknowledged with a SOAP DeliverRsp / DeliveryReportRsp.

View Spec View on GitHub TelecommunicationsAustraliaMobile Network OperatorMessagingSMSMMSTwo-Factor AuthenticationNetwork APIsCAMARAOpen GatewayIoT5GBroadbandSatelliteEnterpriseAsyncAPIWebhooksEvents

Channels

dlrCallback
POSTed when the delivery status of a mobile-terminating message changes. Required on REST v2. Available on REST v1, the HTTPS API and the REST Email API.
moCallback
POSTed when an inbound message is received for the subscriber's number or short code.
mm7DeliverReq
3GPP MM7 SOAP DeliverReq sent to the subscriber's platform when an MMS is received from a handset. The subscriber must reply with a SOAP DeliverRsp.
mm7DeliveryReport
3GPP MM7 SOAP delivery report for a previously submitted MMS, acknowledged by a SOAP response.

Messages

deliveryReceipt
Delivery receipt
Status update for a mobile-terminating message.
inboundMessage
Inbound (MO) message
A message received from a handset.
mm7Deliver
MM7 DeliverReq
3GPP MM7 SOAP delivery of an inbound MMS.
mm7DeliveryReport
MM7 delivery report
3GPP MM7 SOAP delivery report for a submitted MMS.

Servers

https
subscriberCallback
The subscriber's own HTTPS endpoint, registered per application in the platform at https://sms.optus.com.au/gateway/api_config/. The gateway is the publisher; the subscriber's server is the receiver.

AsyncAPI Specification

Raw ↑
asyncapi: 3.0.0
info:
  title: The Optus SMS Suite Callback Surface
  version: 1.0.0
  description: |
    Derived event description for the callbacks The Optus SMS Suite POSTs to subscriber-hosted
    URLs. Optus publishes NO AsyncAPI document; this file was derived by API Evangelist from
    two sources that are both published verbatim by the provider:

      1. the `callbacks` block of the provider's own OpenAPI 3.0.3 document for SMS Gateway
         REST API v2 (openapi/optus-sms-suite-rest-v2-openapi.yml), which carries the real
         StatusCallback and ReplyCallback schemas; and
      2. the callback payload shapes documented in prose on the REST v1, REST v2, REST Email
         and MM7 documentation pages.

    No field, status, or channel below was invented. Callback URLs are not supplied per
    request - they are configured per application in the platform's API Configuration screen,
    so the channel address is the subscriber's own endpoint.

    Operational rules the provider states for every callback:
      - HTTPS is recommended; the TLS certificate must match the domain name and self-signed
        certificates will not verify.
      - Credentials embedded in a callback URL must be URL-encoded.
      - On REST v2 a DLR callback URL is REQUIRED - without one, error codes are never seen.
      - MM7 callbacks require HTTP Basic authentication and must be acknowledged with a SOAP
        DeliverRsp / DeliveryReportRsp.
  contact:
    name: The Optus SMS Suite API Support
    url: https://sms.optus.com.au/docs/en/developer-docs/
    email: optussd@modicagroup.com
  externalDocs:
    url: https://sms.optus.com.au/docs/en/integrations/api-documentation/rest-v2/

defaultContentType: application/json

servers:
  subscriberCallback:
    host: '{callbackHost}'
    protocol: https
    description: >-
      The subscriber's own HTTPS endpoint, registered per application in the platform at
      https://sms.optus.com.au/gateway/api_config/. The gateway is the publisher; the
      subscriber's server is the receiver.
    variables:
      callbackHost:
        description: Host of the callback URL configured by the subscriber.
        default: callbacks.example.com
    security:
      - $ref: '#/components/securitySchemes/callbackBasicAuth'

channels:
  dlrCallback:
    address: '{dlrCallbackUrl}'
    title: Delivery receipt (DLR) callback
    description: >-
      POSTed when the delivery status of a mobile-terminating message changes. Required on
      REST v2. Available on REST v1, the HTTPS API and the REST Email API.
    parameters:
      dlrCallbackUrl:
        description: DLR callback URL configured in the application's API Configuration.
    messages:
      deliveryReceipt:
        $ref: '#/components/messages/deliveryReceipt'
  moCallback:
    address: '{moCallbackUrl}'
    title: Mobile-originated (MO) inbound message callback
    description: >-
      POSTed when an inbound message is received for the subscriber's number or short code.
    parameters:
      moCallbackUrl:
        description: MO callback URL configured in the application's API Configuration.
    messages:
      inboundMessage:
        $ref: '#/components/messages/inboundMessage'
  mm7DeliverReq:
    address: '{mm7CallbackUrl}'
    title: MM7 mobile-originated MMS delivery (DeliverReq)
    description: >-
      3GPP MM7 SOAP DeliverReq sent to the subscriber's platform when an MMS is received from
      a handset. The subscriber must reply with a SOAP DeliverRsp.
    parameters:
      mm7CallbackUrl:
        description: MM7 callback URL configured for the MMS application.
    messages:
      mm7Deliver:
        $ref: '#/components/messages/mm7Deliver'
  mm7DeliveryReport:
    address: '{mm7CallbackUrl}'
    title: MM7 delivery report
    description: >-
      3GPP MM7 SOAP delivery report for a previously submitted MMS, acknowledged by a SOAP
      response.
    parameters:
      mm7CallbackUrl:
        description: MM7 callback URL configured for the MMS application.
    messages:
      mm7DeliveryReport:
        $ref: '#/components/messages/mm7DeliveryReport'

operations:
  receiveDeliveryReceipt:
    action: receive
    channel:
      $ref: '#/channels/dlrCallback'
    summary: Receive a delivery receipt for a submitted message.
    bindings:
      http:
        method: POST
    messages:
      - $ref: '#/channels/dlrCallback/messages/deliveryReceipt'
  receiveInboundMessage:
    action: receive
    channel:
      $ref: '#/channels/moCallback'
    summary: Receive an inbound (mobile-originated) message.
    bindings:
      http:
        method: POST
    messages:
      - $ref: '#/channels/moCallback/messages/inboundMessage'
  receiveMm7Deliver:
    action: receive
    channel:
      $ref: '#/channels/mm7DeliverReq'
    summary: Receive an inbound MMS as an MM7 DeliverReq.
    bindings:
      http:
        method: POST
    messages:
      - $ref: '#/channels/mm7DeliverReq/messages/mm7Deliver'
  receiveMm7DeliveryReport:
    action: receive
    channel:
      $ref: '#/channels/mm7DeliveryReport'
    summary: Receive an MM7 delivery report.
    bindings:
      http:
        method: POST
    messages:
      - $ref: '#/channels/mm7DeliveryReport/messages/mm7DeliveryReport'

components:
  securitySchemes:
    callbackBasicAuth:
      type: http
      scheme: basic
      description: >-
        Optional for the REST callbacks (credentials may be embedded in the configured callback
        URL and must be URL-encoded); REQUIRED for MM7 callbacks.
  messages:
    deliveryReceipt:
      name: deliveryReceipt
      title: Delivery receipt
      summary: Status update for a mobile-terminating message.
      contentType: application/json
      payload:
        $ref: '#/components/schemas/DeliveryReceipt'
      externalDocs:
        url: https://sms.optus.com.au/docs/en/integrations/api-documentation/rest-v2/
    inboundMessage:
      name: inboundMessage
      title: Inbound (MO) message
      summary: A message received from a handset.
      contentType: application/json
      payload:
        $ref: '#/components/schemas/InboundMessage'
      externalDocs:
        url: https://sms.optus.com.au/docs/en/integrations/api-documentation/rest-v2/
    mm7Deliver:
      name: mm7Deliver
      title: MM7 DeliverReq
      summary: 3GPP MM7 SOAP delivery of an inbound MMS.
      contentType: application/xml
      payload:
        $ref: '#/components/schemas/Mm7Envelope'
      externalDocs:
        url: https://sms.optus.com.au/docs/en/integrations/messaging-apis/mm7/
    mm7DeliveryReport:
      name: mm7DeliveryReport
      title: MM7 delivery report
      summary: 3GPP MM7 SOAP delivery report for a submitted MMS.
      contentType: application/xml
      payload:
        $ref: '#/components/schemas/Mm7Envelope'
      externalDocs:
        url: https://sms.optus.com.au/docs/en/integrations/messaging-apis/mm7/
  schemas:
    DeliveryReceipt:
      type: object
      description: >-
        REST v2 DLR payload. On REST v1, the HTTPS API and REST Email the same callback is sent
        with a 64-bit integer message id instead of a UUID.
      required: [message_id, status]
      properties:
        message_id:
          type: string
          format: uuid
          description: Identifier of the message this receipt belongs to.
        status:
          type: string
          description: Delivery outcome.
          enum: [sent, received, rejected, expired]
        detail:
          type: string
          description: Free-text detail supplied by the carrier transport.
        reference:
          type: string
          description: Present only when the submitted message carried a reference attribute.
    InboundMessage:
      type: object
      description: REST v2 MO callback payload.
      required: [id, source, destination, content]
      properties:
        id:
          type: string
          format: uuid
        source:
          type: string
          description: Sending handset in international format.
        destination:
          type: string
          description: The short code or number the message was sent to.
        content:
          type: string
        operator:
          type: string
          description: Carrier the message originated on.
        reply_to:
          type: string
          description: >-
            Present only when a number sequence is used and this MO is a reply to a previous MT
            message; carries the original message id.
        reference:
          type: string
          description: Present only when reply_to is present and the original MT carried a reference.
        encoding:
          type: string
          description: >-
            Present only for binary content. The value "base64" indicates the content field is
            base64-encoded and must be decoded. Not supplied for GSM 7-bit or Unicode messages.
          enum: [base64]
    Mm7Envelope:
      type: object
      description: >-
        3GPP MM7 5.3.0 SOAP envelope. The full element set is defined by the 3GPP MM7
        specification rather than by Optus; the provider documents the transport, the
        authentication requirement, and the acknowledgement contract but does not publish an
        element-level schema. Status values are carried as MM7 StatusCode/StatusText, with
        classes 1xxx success, 2xxx client errors, 3xxx server errors, 4xxx service errors.
      additionalProperties: true

x-apievangelist:
  generated: '2026-07-25'
  method: derived
  derived_from:
  - openapi/optus-sms-suite-rest-v2-openapi.yml (callbacks.status, callbacks.reply)
  - https://sms.optus.com.au/docs/en/integrations/api-documentation/rest-v2/
  - https://sms.optus.com.au/docs/en/integrations/messaging-apis/sms-apis/rest-v1/
  - https://sms.optus.com.au/docs/en/integrations/api-documentation/rest-email/
  - https://sms.optus.com.au/docs/en/integrations/messaging-apis/mm7/
  provider_published_asyncapi: false
  note: >-
    Not a provider artifact. Optus/Modica publish no AsyncAPI and no event schema registry;
    this is an API Evangelist derivation of a genuinely documented callback surface.