Encharge · AsyncAPI Specification

Encharge Webhooks

Version

View Spec View on GitHub Email MarketingMarketing AutomationTransactional EmailSoftware-as-a-ServiceBehavioral EmailCustomer EngagementCustomer DataWebhookAsyncAPIWebhooksEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-13'
method: searched
source: >-
  openapi/_original/encharge-openapi.yml (Webhooks tag description +
  /event-subscriptions operations), https://docs.encharge.io/advanced/activity-stream
spec_type: none
asyncapi_published: false
note: >-
  Encharge publishes no AsyncAPI document. It does ship a real, self-service
  event surface: an event-subscription (webhook) API on the REST host with a
  documented event-name catalog, plus a paid "Activity Stream" firehose add-on.
  This artifact captures that surface; `type: Webhooks` is wired, `AsyncAPI`
  is not.
subscription_api:
  create:
    operation: CreateWebhook
    method: POST
    path: /event-subscriptions
    spec: openapi/encharge-webhooks-api-openapi.yml
    scope: account:write
    request:
      eventType: {required: true, description: Event to trigger on}
      url: {required: true, description: URL to post the webhook to}
      eventName: {required: false, nullable: true}
      handlerData: {required: false}
      service: {required: false}
      operation: {required: false}
    response: {status: 201, body: '{ subscription: { id } }'}
  delete:
    operation: DeleteWebhook
    method: DELETE
    path: /event-subscriptions/{id}
    spec: openapi/encharge-webhooks-api-openapi.yml
    scope: account:write
    response: {status: 204}
  transport: https-post
  security: 'no signing secret, no signature header and no replay protection documented'
events:
  - name: newUser
    description: An enduser (person) is created in Encharge.
  - name: updatedUser
    description: >-
      An enduser (person) is updated. `changedFields` in `properties` carries
      the previous and new values.
  - name: unsubscribedUser
    description: A person unsubscribed from receiving emails.
  - name: added-tag-{tag}
    description: >-
      A person was tagged. Subscribe to the literal event name, e.g.
      `added-tag-signed-up`.
    templated: true
  - name: removed-tag-{tag}
    description: A person was untagged, e.g. `removed-tag-demo`.
    templated: true
  - name: native-form-submitted-{formId}
    description: An Encharge native form was submitted, e.g. `native-form-submitted-123`.
    templated: true
  - name: newObject-{objectType}
    description: >-
      A custom object or company was created, e.g. `newObject-company`.
    templated: true
  - name: updatedObject-{objectType}
    description: >-
      A custom object or company was updated, e.g. `updatedObject-invoice`.
    templated: true
activity_stream:
  docs: https://docs.encharge.io/advanced/activity-stream
  availability: paid add-on — contact the account manager or support@encharge.io
  delivery: HTTP POST to a customer-supplied endpoint
  requirement: the receiving endpoint must return 2xx within 2 seconds
  alternative_sink: 'a Segment.com HTTP Tracking API source may be supplied instead of your own endpoint'
  timestamp: UNIX time in milliseconds on every event
  event_types:
    - {name: updatedUser, type: updatedUser}
    - {name: newUser, type: newUser}
    - {name: unsubscribedUser, type: unsubscribedUser}
    - {name: 'added-tag-{tag}', type: tag}
    - {name: 'removed-tag-{tag}', type: tag}
    - {name: page-visited, type: page, note: requires Site Tracking}
    - {name: form-submitted, note: requires Site Tracking; form data in `form` property}
    - {name: sms-sent, type: sms}
  note: >-
    The published list continues beyond the entries captured here (email
    open/click/send activity); only entries read verbatim from the docs page are
    recorded.
inbound_events:
  note: >-
    The Ingest API (POST https://ingest.encharge.io/v1/) is the INBOUND half of
    the event surface — arbitrary named events plus the special `alias` and
    `group` event types. It is documented at
    https://docs.encharge.io/getting-started/connecting-your-app-to-encharge/ingest-api
    but has no OpenAPI of its own.
gaps:
  - No AsyncAPI document.
  - No webhook payload schemas in the OpenAPI (only the subscription request/response).
  - No signature/HMAC verification, retry policy or delivery-log documentation.