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
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).