magento · AsyncAPI Specification

Adobe Commerce Eventing

Version 1.0

Adobe Commerce Eventing provides an asynchronous event-driven integration framework that publishes Commerce business events to Adobe I/O Events, enabling App Builder applications and other Adobe Experience Cloud services to subscribe and react to store activity. Events are transmitted over the Adobe I/O Events pub/sub infrastructure and delivered to registered consumer applications via HTTPS webhook delivery or journal polling. Supported event types cover the full commerce lifecycle including order placement, customer registration, product updates, inventory changes, and payment processing. Events are configured by subscribing to specific Commerce observer or plugin events in the event_subscriptions.xml configuration file or via the Commerce Admin. Each event carries a structured JSON payload with the fields defined in the subscription configuration, keeping data transfer lean and targeted.

View Spec View on GitHub AsyncAPIWebhooksEvents

Channels

com.adobe.commerce.observer.sales_order_place_after
subscribe consumeOrderPlaced
Order placed event
Emitted after a new sales order is successfully placed. Published to Adobe I/O Events and routed to all subscribed App Builder applications. Use this event to trigger order processing workflows, notify fulfilment systems, or update external ERP records.
com.adobe.commerce.observer.sales_order_save_commit_after
subscribe consumeOrderSaved
Order saved event
Emitted after any committed save of an order record. Covers status changes, invoice creation, shipment creation, and admin edits. Use this event to maintain real-time order status synchronization in external systems.
com.adobe.commerce.observer.customer_register_success
subscribe consumeCustomerRegistered
Customer registered event
Emitted when a new customer successfully registers an account in the storefront. Published to Adobe I/O Events for downstream CRM, marketing automation, or loyalty program integrations.
com.adobe.commerce.observer.customer_save_after_data_object
subscribe consumeCustomerSaved
Customer saved event
Emitted after a customer account is created or updated. Covers both admin-initiated profile changes and customer self-service updates. Use this to synchronize customer data with external CRM systems.
com.adobe.commerce.observer.catalog_product_save_after
subscribe consumeProductSaved
Product saved event
Emitted after a product record is saved in the catalog. Covers new product creation and updates to existing products. Use this to propagate catalog changes to external PIM, search, or marketplace systems.
com.adobe.commerce.observer.catalog_product_delete_after_done
subscribe consumeProductDeleted
Product deleted event
Emitted after a product is permanently deleted from the catalog. Use this to remove the product from external search indexes, PIM systems, or marketplace listings.
com.adobe.commerce.observer.checkout_submit_all_after
subscribe consumeCheckoutComplete
Checkout completed event
Emitted after the checkout process completes and an order has been submitted. This event fires after the order is fully placed including payment authorization. Use for post-checkout analytics and campaign triggers.
com.adobe.commerce.observer.sales_order_creditmemo_save_after
subscribe consumeCreditMemoSaved
Credit memo created event
Emitted after a credit memo (refund) is created for an order. Use this event to trigger refund processing in accounting systems, loyalty point deductions, or customer service platforms.

Messages

OrderPlaced
Order Placed
Event published when a new Commerce order is placed.
OrderSaved
Order Saved
Event published when a Commerce order is updated.
CustomerRegistered
Customer Registered
Event published when a new customer account is created.
CustomerSaved
Customer Saved
Event published when a customer account is created or updated.
ProductSaved
Product Saved
Event published when a catalog product is created or updated.
ProductDeleted
Product Deleted
Event published when a catalog product is deleted.
CheckoutComplete
Checkout Completed
Event published when a customer completes checkout.
CreditMemoSaved
Credit Memo Created
Event published when a refund credit memo is created for an order.

Servers

https
adobeIOEvents https://eventsingress.adobe.io
Adobe I/O Events ingress endpoint. Commerce publishes events here; consumer applications receive them via registered I/O Events webhooks or the journal polling API at https://api.adobe.io/events/organizations/{org}/integrations/{cred}/journal.

AsyncAPI Specification

Raw ↑
asyncapi: 2.6.0
info:
  title: Adobe Commerce Eventing
  description: >-
    Adobe Commerce Eventing provides an asynchronous event-driven integration
    framework that publishes Commerce business events to Adobe I/O Events,
    enabling App Builder applications and other Adobe Experience Cloud services
    to subscribe and react to store activity. Events are transmitted over the
    Adobe I/O Events pub/sub infrastructure and delivered to registered consumer
    applications via HTTPS webhook delivery or journal polling. Supported event
    types cover the full commerce lifecycle including order placement, customer
    registration, product updates, inventory changes, and payment processing.
    Events are configured by subscribing to specific Commerce observer or plugin
    events in the event_subscriptions.xml configuration file or via the Commerce
    Admin. Each event carries a structured JSON payload with the fields defined
    in the subscription configuration, keeping data transfer lean and targeted.
  version: '1.0'
  contact:
    name: Adobe Commerce Developer Support
    url: https://developer.adobe.com/commerce/extensibility/events/
externalDocs:
  description: Adobe I/O Events for Adobe Commerce Documentation
  url: https://developer.adobe.com/commerce/extensibility/events/
servers:
  adobeIOEvents:
    url: 'https://eventsingress.adobe.io'
    protocol: https
    description: >-
      Adobe I/O Events ingress endpoint. Commerce publishes events here;
      consumer applications receive them via registered I/O Events webhooks
      or the journal polling API at https://api.adobe.io/events/organizations/{org}/integrations/{cred}/journal.
    security:
      - imsOAuth: []
channels:
  com.adobe.commerce.observer.sales_order_place_after:
    description: >-
      Emitted after a new sales order is successfully placed. Published to
      Adobe I/O Events and routed to all subscribed App Builder applications.
      Use this event to trigger order processing workflows, notify fulfilment
      systems, or update external ERP records.
    subscribe:
      operationId: consumeOrderPlaced
      summary: Order placed event
      description: >-
        Consumed by App Builder applications subscribed to the
        com.adobe.commerce.observer.sales_order_place_after event type.
        The payload includes order metadata and the configured subset of
        order fields defined in the event subscription.
      message:
        $ref: '#/components/messages/OrderPlaced'

  com.adobe.commerce.observer.sales_order_save_commit_after:
    description: >-
      Emitted after any committed save of an order record. Covers status
      changes, invoice creation, shipment creation, and admin edits. Use
      this event to maintain real-time order status synchronization in
      external systems.
    subscribe:
      operationId: consumeOrderSaved
      summary: Order saved event
      description: >-
        Consumed by App Builder applications subscribed to order save events.
        Fires on any commit of an order record change, providing the current
        state of the order including its updated status and totals.
      message:
        $ref: '#/components/messages/OrderSaved'

  com.adobe.commerce.observer.customer_register_success:
    description: >-
      Emitted when a new customer successfully registers an account in the
      storefront. Published to Adobe I/O Events for downstream CRM, marketing
      automation, or loyalty program integrations.
    subscribe:
      operationId: consumeCustomerRegistered
      summary: Customer registered event
      description: >-
        Consumed by App Builder applications handling new customer onboarding.
        The payload includes the new customer account details as configured
        in the event subscription fields.
      message:
        $ref: '#/components/messages/CustomerRegistered'

  com.adobe.commerce.observer.customer_save_after_data_object:
    description: >-
      Emitted after a customer account is created or updated. Covers both
      admin-initiated profile changes and customer self-service updates.
      Use this to synchronize customer data with external CRM systems.
    subscribe:
      operationId: consumeCustomerSaved
      summary: Customer saved event
      description: >-
        Consumed by App Builder applications that synchronize customer profile
        data. The payload includes the customer data object with the fields
        configured in the subscription, enabling detection of which data changed.
      message:
        $ref: '#/components/messages/CustomerSaved'

  com.adobe.commerce.observer.catalog_product_save_after:
    description: >-
      Emitted after a product record is saved in the catalog. Covers new
      product creation and updates to existing products. Use this to propagate
      catalog changes to external PIM, search, or marketplace systems.
    subscribe:
      operationId: consumeProductSaved
      summary: Product saved event
      description: >-
        Consumed by App Builder applications that maintain product catalog
        synchronization with external systems. The payload includes product
        attribute data as configured in the event subscription fields.
      message:
        $ref: '#/components/messages/ProductSaved'

  com.adobe.commerce.observer.catalog_product_delete_after_done:
    description: >-
      Emitted after a product is permanently deleted from the catalog. Use this
      to remove the product from external search indexes, PIM systems, or
      marketplace listings.
    subscribe:
      operationId: consumeProductDeleted
      summary: Product deleted event
      description: >-
        Consumed by App Builder applications that need to react to catalog
        product removal. The payload includes the deleted product's entity ID
        and SKU for external record lookup and deletion.
      message:
        $ref: '#/components/messages/ProductDeleted'

  com.adobe.commerce.observer.checkout_submit_all_after:
    description: >-
      Emitted after the checkout process completes and an order has been
      submitted. This event fires after the order is fully placed including
      payment authorization. Use for post-checkout analytics and campaign
      triggers.
    subscribe:
      operationId: consumeCheckoutComplete
      summary: Checkout completed event
      description: >-
        Consumed by App Builder applications handling post-checkout workflows
        such as abandonment recovery reset, loyalty point awards, or
        personalization updates.
      message:
        $ref: '#/components/messages/CheckoutComplete'

  com.adobe.commerce.observer.sales_order_creditmemo_save_after:
    description: >-
      Emitted after a credit memo (refund) is created for an order. Use this
      event to trigger refund processing in accounting systems, loyalty point
      deductions, or customer service platforms.
    subscribe:
      operationId: consumeCreditMemoSaved
      summary: Credit memo created event
      description: >-
        Consumed by App Builder applications that handle refund and return
        workflows. The payload includes the credit memo with the refunded
        items and amounts.
      message:
        $ref: '#/components/messages/CreditMemoSaved'

components:
  securitySchemes:
    imsOAuth:
      type: oauth2
      description: >-
        Adobe Identity Management System (IMS) OAuth 2.0. Consumer applications
        authenticate with Adobe I/O using a service account (JWT) or OAuth
        server-to-server credential to receive events from the journal or
        via registered webhook delivery.
      flows:
        clientCredentials:
          tokenUrl: https://ims-na1.adobelogin.com/ims/token
          scopes:
            aio_api_management: Manage Adobe I/O event subscriptions

  messages:
    OrderPlaced:
      name: OrderPlaced
      title: Order Placed
      summary: Event published when a new Commerce order is placed.
      contentType: application/json
      payload:
        $ref: '#/components/schemas/CommerceEventEnvelope'
      examples:
        - name: OrderPlacedExample
          payload:
            specversion: '1.0'
            type: com.adobe.commerce.observer.sales_order_place_after
            source: urn:uuid:commerceInstanceId
            id: abc123-def456
            time: '2026-03-21T10:00:00Z'
            datacontenttype: application/json
            data:
              uid: abc123-def456
              event:
                order:
                  entity_id: 1001
                  increment_id: '000001001'
                  status: pending
                  customer_email: [email protected]
                  grand_total: '99.95'

    OrderSaved:
      name: OrderSaved
      title: Order Saved
      summary: Event published when a Commerce order is updated.
      contentType: application/json
      payload:
        $ref: '#/components/schemas/CommerceEventEnvelope'

    CustomerRegistered:
      name: CustomerRegistered
      title: Customer Registered
      summary: Event published when a new customer account is created.
      contentType: application/json
      payload:
        $ref: '#/components/schemas/CommerceEventEnvelope'

    CustomerSaved:
      name: CustomerSaved
      title: Customer Saved
      summary: Event published when a customer account is created or updated.
      contentType: application/json
      payload:
        $ref: '#/components/schemas/CommerceEventEnvelope'

    ProductSaved:
      name: ProductSaved
      title: Product Saved
      summary: Event published when a catalog product is created or updated.
      contentType: application/json
      payload:
        $ref: '#/components/schemas/CommerceEventEnvelope'

    ProductDeleted:
      name: ProductDeleted
      title: Product Deleted
      summary: Event published when a catalog product is deleted.
      contentType: application/json
      payload:
        $ref: '#/components/schemas/CommerceEventEnvelope'

    CheckoutComplete:
      name: CheckoutComplete
      title: Checkout Completed
      summary: Event published when a customer completes checkout.
      contentType: application/json
      payload:
        $ref: '#/components/schemas/CommerceEventEnvelope'

    CreditMemoSaved:
      name: CreditMemoSaved
      title: Credit Memo Created
      summary: Event published when a refund credit memo is created for an order.
      contentType: application/json
      payload:
        $ref: '#/components/schemas/CommerceEventEnvelope'

  schemas:
    CommerceEventEnvelope:
      type: object
      description: >-
        CloudEvents 1.0 compliant envelope wrapping all Adobe Commerce I/O Events
        payloads. Adobe I/O Events uses the CloudEvents specification for all
        event metadata.
      required:
        - specversion
        - type
        - source
        - id
        - time
        - data
      properties:
        specversion:
          type: string
          description: CloudEvents specification version. Always "1.0".
          const: '1.0'
        type:
          type: string
          description: >-
            The fully qualified event type name. For Commerce events, follows
            the pattern com.adobe.commerce.{observer|plugin}.{event_name}.
          example: com.adobe.commerce.observer.sales_order_place_after
        source:
          type: string
          description: >-
            URN identifying the Commerce instance that produced the event.
            Format: urn:uuid:{commerce_instance_id}.
          format: uri
        id:
          type: string
          description: Unique identifier for this specific event occurrence.
          format: uuid
        time:
          type: string
          format: date-time
          description: ISO 8601 timestamp when the event was produced.
        datacontenttype:
          type: string
          description: MIME type of the data field content.
          const: application/json
        subject:
          type: string
          description: Optional subject providing additional context about the event source entity.
        data:
          $ref: '#/components/schemas/CommerceEventData'

    CommerceEventData:
      type: object
      description: >-
        The inner data object of a Commerce I/O Event. Contains event metadata
        and the nested event payload with the Commerce entity data.
      properties:
        uid:
          type: string
          description: Unique identifier for this event delivery instance.
        timestamp:
          type: string
          format: date-time
          description: ISO 8601 timestamp of the event.
        merchant_id:
          type: string
          description: Adobe Commerce merchant identifier string.
        environment_id:
          type: string
          description: Commerce environment identifier (production, staging, etc.).
        event:
          type: object
          description: >-
            The event-specific payload object. The shape of this object depends
            on which fields were configured in the Commerce event subscription.
            Common top-level keys are the entity type (e.g. order, customer, product).
          additionalProperties: true

    OrderEventData:
      type: object
      description: Order data fields commonly included in order event payloads.
      properties:
        entity_id:
          type: integer
          description: Numeric order entity ID.
        increment_id:
          type: string
          description: Human-readable order number.
        status:
          type: string
          description: Current order status code.
        state:
          type: string
          description: Internal order state.
        customer_id:
          type: integer
          description: Numeric customer entity ID.
        customer_email:
          type: string
          format: email
          description: Customer email address.
        grand_total:
          type: string
          description: Order grand total as a decimal string.
        created_at:
          type: string
          format: date-time
          description: ISO 8601 order creation timestamp.

    CustomerEventData:
      type: object
      description: Customer data fields commonly included in customer event payloads.
      properties:
        entity_id:
          type: integer
          description: Numeric customer entity ID.
        email:
          type: string
          format: email
          description: Customer email address.
        firstname:
          type: string
          description: Customer first name.
        lastname:
          type: string
          description: Customer last name.
        group_id:
          type: integer
          description: Customer group ID.
        store_id:
          type: integer
          description: Store view ID.
        website_id:
          type: integer
          description: Website ID.
        created_at:
          type: string
          format: date-time
          description: Account creation timestamp.

    ProductEventData:
      type: object
      description: Product data fields commonly included in product event payloads.
      properties:
        entity_id:
          type: integer
          description: Numeric product entity ID.
        sku:
          type: string
          description: Product SKU.
        name:
          type: string
          description: Product display name.
        type_id:
          type: string
          description: Product type.
        status:
          type: integer
          description: Product status. 1 = enabled, 2 = disabled.
          enum: [1, 2]
        price:
          type: number
          description: Product base price.
        updated_at:
          type: string
          format: date-time
          description: Last update timestamp.