Nomos · AsyncAPI Specification

Nomos Webhooks

Version 2026-05-27.curie

Real-time webhook events delivered by Nomos as signed HTTPS POST requests. Generated by API Evangelist from the published webhook documentation (https://docs.nomos.energy/webhooks/introduction). Delivery is at-least-once; verify the X-Nomos-Signature header and dedupe on event id.

View Spec View on GitHub CompanyEnergyElectricityUtilitiesEmbedded FinanceDynamic PricingBillingMeteringSmart MeterGermanyOAuthWebhooksAsyncAPIWebhooksEvents

Channels

ch_invoice_created
ch_invoice_paid
ch_invoice_payment_failed
ch_invoice_uncollectible
ch_invoice_voided
ch_meter_order_activated
ch_meter_order_blocked
ch_meter_order_cancelled
ch_meter_order_check_reviewed
ch_meter_order_check_submitted
ch_meter_order_created
ch_meter_order_installed
ch_meter_order_placed
ch_meter_order_scheduled
ch_subscription_activated
ch_subscription_confirmed
ch_subscription_created
ch_subscription_ended
ch_subscription_terminated

Messages

invoice_created
invoice.created
Sent when an invoice transitions to open.
invoice_paid
invoice.paid
Sent when an invoice has been paid in full.
invoice_payment_failed
invoice.payment_failed
Sent when a payment attempt for an invoice fails.
invoice_uncollectible
invoice.uncollectible
Sent when an invoice is marked as uncollectible.
invoice_voided
invoice.voided
Sent when an invoice is voided.
meter_order_activated
meter_order.activated
Sent when the smart meter is activated.
meter_order_blocked
meter_order.blocked
Sent when a smart meter order is flagged as blocked.
meter_order_cancelled
meter_order.cancelled
Sent when a smart meter order is cancelled.
meter_order_check_reviewed
meter_order.check_reviewed
Sent when the installation partner has reviewed the order.
meter_order_check_submitted
meter_order.check_submitted
Sent when the customer submits additional details for the installation partner.
meter_order_created
meter_order.created
Sent when a smart meter order is created.
meter_order_installed
meter_order.installed
Sent when the smart meter is installed.
meter_order_placed
meter_order.placed
Sent when the order has been transferred to the installation partner.
meter_order_scheduled
meter_order.scheduled
Sent when an installation appointment is scheduled.
subscription_activated
subscription.activated
Sent when a customer's supply starts.
subscription_confirmed
subscription.confirmed
Sent when a customer's supply start date is confirmed.
subscription_created
subscription.created
Sent when a customer completes signup.
subscription_ended
subscription.ended
Sent when a customer's supply ends.
subscription_terminated
subscription.terminated
Sent when a customer schedules cancellation.

Servers

https
webhook
Consumer-hosted HTTPS endpoint registered in the Nomos dashboard.

AsyncAPI Specification

Raw ↑
asyncapi: 3.0.0
info:
  title: Nomos Webhooks
  version: 2026-05-27.curie
  description: Real-time webhook events delivered by Nomos as signed HTTPS POST requests. Generated by API Evangelist from
    the published webhook documentation (https://docs.nomos.energy/webhooks/introduction). Delivery is at-least-once; verify
    the X-Nomos-Signature header and dedupe on event id.
  contact:
    name: Nomos
    url: https://docs.nomos.energy/webhooks/introduction
defaultContentType: application/json
servers:
  webhook:
    host: your-endpoint.example.com
    protocol: https
    description: Consumer-hosted HTTPS endpoint registered in the Nomos dashboard.
channels:
  ch_invoice_created:
    address: invoice.created
    messages:
      invoice_created:
        $ref: '#/components/messages/invoice_created'
  ch_invoice_paid:
    address: invoice.paid
    messages:
      invoice_paid:
        $ref: '#/components/messages/invoice_paid'
  ch_invoice_payment_failed:
    address: invoice.payment_failed
    messages:
      invoice_payment_failed:
        $ref: '#/components/messages/invoice_payment_failed'
  ch_invoice_uncollectible:
    address: invoice.uncollectible
    messages:
      invoice_uncollectible:
        $ref: '#/components/messages/invoice_uncollectible'
  ch_invoice_voided:
    address: invoice.voided
    messages:
      invoice_voided:
        $ref: '#/components/messages/invoice_voided'
  ch_meter_order_activated:
    address: meter_order.activated
    messages:
      meter_order_activated:
        $ref: '#/components/messages/meter_order_activated'
  ch_meter_order_blocked:
    address: meter_order.blocked
    messages:
      meter_order_blocked:
        $ref: '#/components/messages/meter_order_blocked'
  ch_meter_order_cancelled:
    address: meter_order.cancelled
    messages:
      meter_order_cancelled:
        $ref: '#/components/messages/meter_order_cancelled'
  ch_meter_order_check_reviewed:
    address: meter_order.check_reviewed
    messages:
      meter_order_check_reviewed:
        $ref: '#/components/messages/meter_order_check_reviewed'
  ch_meter_order_check_submitted:
    address: meter_order.check_submitted
    messages:
      meter_order_check_submitted:
        $ref: '#/components/messages/meter_order_check_submitted'
  ch_meter_order_created:
    address: meter_order.created
    messages:
      meter_order_created:
        $ref: '#/components/messages/meter_order_created'
  ch_meter_order_installed:
    address: meter_order.installed
    messages:
      meter_order_installed:
        $ref: '#/components/messages/meter_order_installed'
  ch_meter_order_placed:
    address: meter_order.placed
    messages:
      meter_order_placed:
        $ref: '#/components/messages/meter_order_placed'
  ch_meter_order_scheduled:
    address: meter_order.scheduled
    messages:
      meter_order_scheduled:
        $ref: '#/components/messages/meter_order_scheduled'
  ch_subscription_activated:
    address: subscription.activated
    messages:
      subscription_activated:
        $ref: '#/components/messages/subscription_activated'
  ch_subscription_confirmed:
    address: subscription.confirmed
    messages:
      subscription_confirmed:
        $ref: '#/components/messages/subscription_confirmed'
  ch_subscription_created:
    address: subscription.created
    messages:
      subscription_created:
        $ref: '#/components/messages/subscription_created'
  ch_subscription_ended:
    address: subscription.ended
    messages:
      subscription_ended:
        $ref: '#/components/messages/subscription_ended'
  ch_subscription_terminated:
    address: subscription.terminated
    messages:
      subscription_terminated:
        $ref: '#/components/messages/subscription_terminated'
operations:
  receive_invoice_created:
    action: receive
    channel:
      $ref: '#/channels/ch_invoice_created'
    summary: Sent when an invoice transitions to open.
    messages:
    - $ref: '#/channels/ch_invoice_created/messages/invoice_created'
  receive_invoice_paid:
    action: receive
    channel:
      $ref: '#/channels/ch_invoice_paid'
    summary: Sent when an invoice has been paid in full.
    messages:
    - $ref: '#/channels/ch_invoice_paid/messages/invoice_paid'
  receive_invoice_payment_failed:
    action: receive
    channel:
      $ref: '#/channels/ch_invoice_payment_failed'
    summary: Sent when a payment attempt for an invoice fails.
    messages:
    - $ref: '#/channels/ch_invoice_payment_failed/messages/invoice_payment_failed'
  receive_invoice_uncollectible:
    action: receive
    channel:
      $ref: '#/channels/ch_invoice_uncollectible'
    summary: Sent when an invoice is marked as uncollectible.
    messages:
    - $ref: '#/channels/ch_invoice_uncollectible/messages/invoice_uncollectible'
  receive_invoice_voided:
    action: receive
    channel:
      $ref: '#/channels/ch_invoice_voided'
    summary: Sent when an invoice is voided.
    messages:
    - $ref: '#/channels/ch_invoice_voided/messages/invoice_voided'
  receive_meter_order_activated:
    action: receive
    channel:
      $ref: '#/channels/ch_meter_order_activated'
    summary: Sent when the smart meter is activated.
    messages:
    - $ref: '#/channels/ch_meter_order_activated/messages/meter_order_activated'
  receive_meter_order_blocked:
    action: receive
    channel:
      $ref: '#/channels/ch_meter_order_blocked'
    summary: Sent when a smart meter order is flagged as blocked.
    messages:
    - $ref: '#/channels/ch_meter_order_blocked/messages/meter_order_blocked'
  receive_meter_order_cancelled:
    action: receive
    channel:
      $ref: '#/channels/ch_meter_order_cancelled'
    summary: Sent when a smart meter order is cancelled.
    messages:
    - $ref: '#/channels/ch_meter_order_cancelled/messages/meter_order_cancelled'
  receive_meter_order_check_reviewed:
    action: receive
    channel:
      $ref: '#/channels/ch_meter_order_check_reviewed'
    summary: Sent when the installation partner has reviewed the order.
    messages:
    - $ref: '#/channels/ch_meter_order_check_reviewed/messages/meter_order_check_reviewed'
  receive_meter_order_check_submitted:
    action: receive
    channel:
      $ref: '#/channels/ch_meter_order_check_submitted'
    summary: Sent when the customer submits additional details for the installation partner.
    messages:
    - $ref: '#/channels/ch_meter_order_check_submitted/messages/meter_order_check_submitted'
  receive_meter_order_created:
    action: receive
    channel:
      $ref: '#/channels/ch_meter_order_created'
    summary: Sent when a smart meter order is created.
    messages:
    - $ref: '#/channels/ch_meter_order_created/messages/meter_order_created'
  receive_meter_order_installed:
    action: receive
    channel:
      $ref: '#/channels/ch_meter_order_installed'
    summary: Sent when the smart meter is installed.
    messages:
    - $ref: '#/channels/ch_meter_order_installed/messages/meter_order_installed'
  receive_meter_order_placed:
    action: receive
    channel:
      $ref: '#/channels/ch_meter_order_placed'
    summary: Sent when the order has been transferred to the installation partner.
    messages:
    - $ref: '#/channels/ch_meter_order_placed/messages/meter_order_placed'
  receive_meter_order_scheduled:
    action: receive
    channel:
      $ref: '#/channels/ch_meter_order_scheduled'
    summary: Sent when an installation appointment is scheduled.
    messages:
    - $ref: '#/channels/ch_meter_order_scheduled/messages/meter_order_scheduled'
  receive_subscription_activated:
    action: receive
    channel:
      $ref: '#/channels/ch_subscription_activated'
    summary: Sent when a customer's supply starts.
    messages:
    - $ref: '#/channels/ch_subscription_activated/messages/subscription_activated'
  receive_subscription_confirmed:
    action: receive
    channel:
      $ref: '#/channels/ch_subscription_confirmed'
    summary: Sent when a customer's supply start date is confirmed.
    messages:
    - $ref: '#/channels/ch_subscription_confirmed/messages/subscription_confirmed'
  receive_subscription_created:
    action: receive
    channel:
      $ref: '#/channels/ch_subscription_created'
    summary: Sent when a customer completes signup.
    messages:
    - $ref: '#/channels/ch_subscription_created/messages/subscription_created'
  receive_subscription_ended:
    action: receive
    channel:
      $ref: '#/channels/ch_subscription_ended'
    summary: Sent when a customer's supply ends.
    messages:
    - $ref: '#/channels/ch_subscription_ended/messages/subscription_ended'
  receive_subscription_terminated:
    action: receive
    channel:
      $ref: '#/channels/ch_subscription_terminated'
    summary: Sent when a customer schedules cancellation.
    messages:
    - $ref: '#/channels/ch_subscription_terminated/messages/subscription_terminated'
components:
  messages:
    invoice_created:
      name: invoice.created
      title: invoice.created
      summary: Sent when an invoice transitions to open.
      payload:
        type: object
        properties:
          id:
            type: string
            description: Event id (evt_ prefixed).
            examples:
            - evt_mi4f0oda6x9m7gcsvjk0ole1
          timestamp:
            type: string
            format: date-time
          topic:
            type: string
            const: invoice.created
          context:
            type: object
            description: IDs only; fetch the resource for current state.
            properties:
              invoice:
                type: string
        required:
        - id
        - timestamp
        - topic
        - context
    invoice_paid:
      name: invoice.paid
      title: invoice.paid
      summary: Sent when an invoice has been paid in full.
      payload:
        type: object
        properties:
          id:
            type: string
            description: Event id (evt_ prefixed).
            examples:
            - evt_mi4f0oda6x9m7gcsvjk0ole1
          timestamp:
            type: string
            format: date-time
          topic:
            type: string
            const: invoice.paid
          context:
            type: object
            description: IDs only; fetch the resource for current state.
            properties:
              invoice:
                type: string
        required:
        - id
        - timestamp
        - topic
        - context
    invoice_payment_failed:
      name: invoice.payment_failed
      title: invoice.payment_failed
      summary: Sent when a payment attempt for an invoice fails.
      payload:
        type: object
        properties:
          id:
            type: string
            description: Event id (evt_ prefixed).
            examples:
            - evt_mi4f0oda6x9m7gcsvjk0ole1
          timestamp:
            type: string
            format: date-time
          topic:
            type: string
            const: invoice.payment_failed
          context:
            type: object
            description: IDs only; fetch the resource for current state.
            properties:
              invoice:
                type: string
        required:
        - id
        - timestamp
        - topic
        - context
    invoice_uncollectible:
      name: invoice.uncollectible
      title: invoice.uncollectible
      summary: Sent when an invoice is marked as uncollectible.
      payload:
        type: object
        properties:
          id:
            type: string
            description: Event id (evt_ prefixed).
            examples:
            - evt_mi4f0oda6x9m7gcsvjk0ole1
          timestamp:
            type: string
            format: date-time
          topic:
            type: string
            const: invoice.uncollectible
          context:
            type: object
            description: IDs only; fetch the resource for current state.
            properties:
              invoice:
                type: string
        required:
        - id
        - timestamp
        - topic
        - context
    invoice_voided:
      name: invoice.voided
      title: invoice.voided
      summary: Sent when an invoice is voided.
      payload:
        type: object
        properties:
          id:
            type: string
            description: Event id (evt_ prefixed).
            examples:
            - evt_mi4f0oda6x9m7gcsvjk0ole1
          timestamp:
            type: string
            format: date-time
          topic:
            type: string
            const: invoice.voided
          context:
            type: object
            description: IDs only; fetch the resource for current state.
            properties:
              invoice:
                type: string
        required:
        - id
        - timestamp
        - topic
        - context
    meter_order_activated:
      name: meter_order.activated
      title: meter_order.activated
      summary: Sent when the smart meter is activated.
      payload:
        type: object
        properties:
          id:
            type: string
            description: Event id (evt_ prefixed).
            examples:
            - evt_mi4f0oda6x9m7gcsvjk0ole1
          timestamp:
            type: string
            format: date-time
          topic:
            type: string
            const: meter_order.activated
          context:
            type: object
            description: IDs only; fetch the resource for current state.
            properties:
              meter_order:
                type: string
        required:
        - id
        - timestamp
        - topic
        - context
    meter_order_blocked:
      name: meter_order.blocked
      title: meter_order.blocked
      summary: Sent when a smart meter order is flagged as blocked.
      payload:
        type: object
        properties:
          id:
            type: string
            description: Event id (evt_ prefixed).
            examples:
            - evt_mi4f0oda6x9m7gcsvjk0ole1
          timestamp:
            type: string
            format: date-time
          topic:
            type: string
            const: meter_order.blocked
          context:
            type: object
            description: IDs only; fetch the resource for current state.
            properties:
              meter_order:
                type: string
        required:
        - id
        - timestamp
        - topic
        - context
    meter_order_cancelled:
      name: meter_order.cancelled
      title: meter_order.cancelled
      summary: Sent when a smart meter order is cancelled.
      payload:
        type: object
        properties:
          id:
            type: string
            description: Event id (evt_ prefixed).
            examples:
            - evt_mi4f0oda6x9m7gcsvjk0ole1
          timestamp:
            type: string
            format: date-time
          topic:
            type: string
            const: meter_order.cancelled
          context:
            type: object
            description: IDs only; fetch the resource for current state.
            properties:
              meter_order:
                type: string
        required:
        - id
        - timestamp
        - topic
        - context
    meter_order_check_reviewed:
      name: meter_order.check_reviewed
      title: meter_order.check_reviewed
      summary: Sent when the installation partner has reviewed the order.
      payload:
        type: object
        properties:
          id:
            type: string
            description: Event id (evt_ prefixed).
            examples:
            - evt_mi4f0oda6x9m7gcsvjk0ole1
          timestamp:
            type: string
            format: date-time
          topic:
            type: string
            const: meter_order.check_reviewed
          context:
            type: object
            description: IDs only; fetch the resource for current state.
            properties:
              meter_order:
                type: string
        required:
        - id
        - timestamp
        - topic
        - context
    meter_order_check_submitted:
      name: meter_order.check_submitted
      title: meter_order.check_submitted
      summary: Sent when the customer submits additional details for the installation partner.
      payload:
        type: object
        properties:
          id:
            type: string
            description: Event id (evt_ prefixed).
            examples:
            - evt_mi4f0oda6x9m7gcsvjk0ole1
          timestamp:
            type: string
            format: date-time
          topic:
            type: string
            const: meter_order.check_submitted
          context:
            type: object
            description: IDs only; fetch the resource for current state.
            properties:
              meter_order:
                type: string
        required:
        - id
        - timestamp
        - topic
        - context
    meter_order_created:
      name: meter_order.created
      title: meter_order.created
      summary: Sent when a smart meter order is created.
      payload:
        type: object
        properties:
          id:
            type: string
            description: Event id (evt_ prefixed).
            examples:
            - evt_mi4f0oda6x9m7gcsvjk0ole1
          timestamp:
            type: string
            format: date-time
          topic:
            type: string
            const: meter_order.created
          context:
            type: object
            description: IDs only; fetch the resource for current state.
            properties:
              meter_order:
                type: string
        required:
        - id
        - timestamp
        - topic
        - context
    meter_order_installed:
      name: meter_order.installed
      title: meter_order.installed
      summary: Sent when the smart meter is installed.
      payload:
        type: object
        properties:
          id:
            type: string
            description: Event id (evt_ prefixed).
            examples:
            - evt_mi4f0oda6x9m7gcsvjk0ole1
          timestamp:
            type: string
            format: date-time
          topic:
            type: string
            const: meter_order.installed
          context:
            type: object
            description: IDs only; fetch the resource for current state.
            properties:
              meter_order:
                type: string
        required:
        - id
        - timestamp
        - topic
        - context
    meter_order_placed:
      name: meter_order.placed
      title: meter_order.placed
      summary: Sent when the order has been transferred to the installation partner.
      payload:
        type: object
        properties:
          id:
            type: string
            description: Event id (evt_ prefixed).
            examples:
            - evt_mi4f0oda6x9m7gcsvjk0ole1
          timestamp:
            type: string
            format: date-time
          topic:
            type: string
            const: meter_order.placed
          context:
            type: object
            description: IDs only; fetch the resource for current state.
            properties:
              meter_order:
                type: string
        required:
        - id
        - timestamp
        - topic
        - context
    meter_order_scheduled:
      name: meter_order.scheduled
      title: meter_order.scheduled
      summary: Sent when an installation appointment is scheduled.
      payload:
        type: object
        properties:
          id:
            type: string
            description: Event id (evt_ prefixed).
            examples:
            - evt_mi4f0oda6x9m7gcsvjk0ole1
          timestamp:
            type: string
            format: date-time
          topic:
            type: string
            const: meter_order.scheduled
          context:
            type: object
            description: IDs only; fetch the resource for current state.
            properties:
              meter_order:
                type: string
        required:
        - id
        - timestamp
        - topic
        - context
    subscription_activated:
      name: subscription.activated
      title: subscription.activated
      summary: Sent when a customer's supply starts.
      payload:
        type: object
        properties:
          id:
            type: string
            description: Event id (evt_ prefixed).
            examples:
            - evt_mi4f0oda6x9m7gcsvjk0ole1
          timestamp:
            type: string
            format: date-time
          topic:
            type: string
            const: subscription.activated
          context:
            type: object
            description: IDs only; fetch the resource for current state.
            properties:
              subscription:
                type: string
        required:
        - id
        - timestamp
        - topic
        - context
    subscription_confirmed:
      name: subscription.confirmed
      title: subscription.confirmed
      summary: Sent when a customer's supply start date is confirmed.
      payload:
        type: object
        properties:
          id:
            type: string
            description: Event id (evt_ prefixed).
            examples:
            - evt_mi4f0oda6x9m7gcsvjk0ole1
          timestamp:
            type: string
            format: date-time
          topic:
            type: string
            const: subscription.confirmed
          context:
            type: object
            description: IDs only; fetch the resource for current state.
            properties:
              subscription:
                type: string
        required:
        - id
        - timestamp
        - topic
        - context
    subscription_created:
      name: subscription.created
      title: subscription.created
      summary: Sent when a customer completes signup.
      payload:
        type: object
        properties:
          id:
            type: string
            description: Event id (evt_ prefixed).
            examples:
            - evt_mi4f0oda6x9m7gcsvjk0ole1
          timestamp:
            type: string
            format: date-time
          topic:
            type: string
            const: subscription.created
          context:
            type: object
            description: IDs only; fetch the resource for current state.
            properties:
              subscription:
                type: string
        required:
        - id
        - timestamp
        - topic
        - context
    subscription_ended:
      name: subscription.ended
      title: subscription.ended
      summary: Sent when a customer's supply ends.
      payload:
        type: object
        properties:
          id:
            type: string
            description: Event id (evt_ prefixed).
            examples:
            - evt_mi4f0oda6x9m7gcsvjk0ole1
          timestamp:
            type: string
            format: date-time
          topic:
            type: string
            const: subscription.ended
          context:
            type: object
            description: IDs only; fetch the resource for current state.
            properties:
              subscription:
                type: string
        required:
        - id
        - timestamp
        - topic
        - context
    subscription_terminated:
      name: subscription.terminated
      title: subscription.terminated
      summary: Sent when a customer schedules cancellation.
      payload:
        type: object
        properties:
          id:
            type: string
            description: Event id (evt_ prefixed).
            examples:
            - evt_mi4f0oda6x9m7gcsvjk0ole1
          timestamp:
            type: string
            format: date-time
          topic:
            type: string
            const: subscription.terminated
          context:
            type: object
            description: IDs only; fetch the resource for current state.
            properties:
              subscription:
                type: string
        required:
        - id
        - timestamp
        - topic
        - context
  messageTraits: {}
  securitySchemes:
    signature:
      type: httpApiKey
      in: header
      name: X-Nomos-Signature
      description: HMAC signature header; verify to reject forged/replayed deliveries.
x-provenance:
  generated: '2026-07-20'
  method: generated
  source: https://docs.nomos.energy/webhooks/introduction
  spec_type: AsyncAPI
  spec_version: 3.0.0
  note: Faithful AsyncAPI generated from the documented Nomos webhook catalog (19 topics). Envelope {id,timestamp,topic,context};
    signed via X-Nomos-Signature; at-least-once delivery with exponential backoff (12 attempts / ~3 days).