Clevergy · AsyncAPI Specification

Clevergy Webhooks

Version

View Spec View on GitHub CompanyClimate TechEnergyEnergy ManagementUtilitiesSmart MeterSolarHome EnergyBattery StorageElectric Vehicle ChargingSmart HomeSustainabilitySpainWhite LabelEmbedded ComponentsWebhookAsyncAPIWebhooksEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-17'
method: searched
source: https://docs.clever.gy/webhooks/clevergy-webhooks
spec_type: none
spec_type_note: >-
  Clevergy publishes NO AsyncAPI document. The event surface is documented as an OpenAPI-style
  callback reference on the docs site (docs.clever.gy/webhooks/*) with its own "Clevergy
  Webhooks" version 1.0.0 heading, rendered by the same Docusaurus OpenAPI plugin as the Connect
  API reference. The underlying source document was not reachable at any probed path on
  assets.clever.gy, so this artifact is the webhook CATALOG captured from the published
  reference, not a harvested spec. type: Webhooks is claimed; type: AsyncAPI is not.
description: >-
  Clevergy's outbound event surface. Webhooks are HTTP POST callbacks triggered by lifecycle
  events on three entities. The design is deliberately notification-only: the payload identifies
  what changed and the integrator must then read the full object back from the Connect API.

transport:
  protocol: https
  method: POST
  direction: outbound (Clevergy calls the integrator's endpoint)
  endpoint_owner: integrator
  registration: >-
    Endpoint URLs are configured by Clevergy — the docs direct integrators to write to
    soporte.clientes@clever.gy to request access. There is no self-service webhook management
    operation in the Connect API.
  authentication:
    mechanism: query parameter on the integrator's own callback URL
    documented_example: https://mywebhook.com/endpoint?auth_token=abcd1234
    statement: >-
      "Authentication can be provided through a query parameter if required by your webhook
      endpoint."
    note: >-
      There is no HMAC request signature, no shared-secret signature header, and no mTLS option
      documented. Verification of authenticity is left to a bearer-style token the integrator
      embeds in its own URL, which is transmitted in the request line rather than a header.
  retries:
    documented: false
    note: No retry, backoff, ordering or at-least-once/at-most-once semantics are published.
  delivery_ordering:
    documented: false

design_rule:
  statement: >-
    "Webhooks are event notifications only. Sales opportunity data must always be retrieved via
    the Connect API." The same sentence appears for tickets.
  consequence: >-
    An integrator cannot treat the webhook body as the source of truth. Every handler is a
    two-step: receive the notification, then GET the entity by the identifier in the payload.

events:
- name: User
  channel: user
  docs: https://docs.clever.gy/webhooks/user
  trigger: Notifies with a POST to the given URL when a user is modified.
  event_types: []
  event_types_note: >-
    The user webhook reference does not enumerate discrete event types the way the sales
    opportunity and ticket references do.
  follow_up_operations: [getUser, getUsers]
- name: SalesOpportunity
  channel: sales-opportunity
  docs: https://docs.clever.gy/webhooks/sales-opportunity
  trigger: Notifies with a POST to the given URL when a SalesOpportunity is modified.
  event_types:
  - type: CREATE
    meaning: A new sales opportunity is generated (e.g. a user starts a contracting flow from the app).
  - type: UPDATE
    meaning: A sales opportunity is updated (status change).
  - type: DELETE
    meaning: A sales opportunity is deleted.
  payload_identifier: id
  follow_up_operations: [getSalesOpportunities, getContractSalesOpportunity]
  domain_enums:
    product:
      supported: [CONTRACT]
      reserved: [SOLAR, HEATPUMP, BATTERY, DEVICES, EV, OTHER]
      note: >-
        The docs state only CONTRACT product opportunities are currently supported; the other
        values are reserved for future use.
    status:
    - value: STARTED
      meaning: >-
        The user has initiated the opportunity by showing interest in a product (e.g. via a
        recommender or banner in the app).
    - value: POTENTIAL
      meaning: >-
        The opportunity was proactively suggested by Clevergy based on energy data and user
        behavior, without direct user interaction.
    - value: FORMALIZED
      meaning: The user has accepted a contract or proposal.
    - value: CONVERTED
      meaning: >-
        The payment has been received and the product or service is being delivered (e.g. the
        contract has been signed).
    - value: REJECTED
      meaning: The opportunity was lost, either because the user declined or stopped responding.
  guide: https://docs.clever.gy/developer/how-to-set-up/sales-opportunities
- name: Ticket
  channel: ticket
  docs: https://docs.clever.gy/webhooks/ticket
  trigger: Notifies with a POST to the given URL when a Ticket is modified.
  event_types:
  - type: CREATE
    meaning: A new support ticket is created by a user from the app.
  - type: UPDATE
    meaning: A ticket changes (including reopening — status returns to PENDING).
  payload_identifier: ticketId
  follow_up_operations: [getTicketDetails, updateTicket, addCommentToTicket]
  guide: https://docs.clever.gy/developer/how-to-set-up/ticket-integration

coverage:
  events: 3
  event_types_enumerated: 5
  asyncapi_document: false
  signature_verification: false
  self_service_registration: false

probe_record:
  note: >-
    Paths probed for a machine-readable source document behind the webhooks reference, all 404:
  attempts:
  - url: https://assets.clever.gy/swagger/webhooks.yaml
    status: 404
  - url: https://assets.clever.gy/swagger/webhook.yaml
    status: 404
  - url: https://assets.clever.gy/swagger/clevergy-webhooks.yaml
    status: 404
  - url: https://assets.clever.gy/swagger/webhooks-api.yaml
    status: 404
  - url: https://assets.clever.gy/swagger/connect-webhooks.yaml
    status: 404
  checked: '2026-08-17'
  contrast: >-
    The Connect API's source document IS publicly reachable, at
    https://assets.clever.gy/swagger/connect-api.yaml (200, application/yaml) — it is referenced
    by the rendered reference page. The webhooks reference page carries no equivalent link.