iContact · AsyncAPI Specification

Icontact Webhooks

Version

View Spec View on GitHub Email MarketingMarketing AutomationCampaignsContactsListSegmentsWebhookEmail DeliverabilitySMBAsyncAPIWebhooksEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-13'
method: searched
source: https://help.icontact.com/customers/s/article/Web-Hooks-iContact-API
docs: https://help.icontact.com/customers/s/article/Web-Hooks-iContact-API
name: iContact webhook catalog
api: icontact:rest-api
surface: webhooks
transport: HTTP POST callback
payload_format: application/json
payload_note: >-
  "All web hooks are called in JSON format" — the webhook surface is JSON only,
  unlike the REST API which also serves XML.
summary: >-
  iContact publishes a real, managed webhook surface: subscriptions are created
  and deleted through a first-class REST resource, and four contact-lifecycle
  events are documented with their callback payload shapes. It is a narrow
  catalog — nothing about messages, sends, bounces or campaigns is available as
  an event — and it has no delivery guarantees, no signature and no retry
  policy.
management_api:
  collection:
    uri: 'https://app.icontact.com/icp/a/{accountId}/c/{clientFolderId}/webhooks'
    methods:
      GET: Returns set containing all web hooks in the client folder
      POST: Create new web hook(s)
      PUT: Not supported
      DELETE: Not supported
  member:
    uri: 'https://app.icontact.com/icp/a/{accountId}/c/{clientFolderId}/webhooks/{webhookId}'
    methods:
      GET: Returns data for one web hook
      DELETE: Unsubscribe from a web hook
      POST: Not supported
      PUT: Not supported
  fields:
    - name: webhookId
      type: integer
      role: primary key
      description: Uniquely identifies a web hook within the system.
      example: 5
      note: Must not be supplied on a creation POST.
    - name: eventId
      type: string
      role: required
      description: The event which will notify the url.
      example: contact_updated
    - name: url
      type: string
      role: required
      description: The url that will be notified when the event happens.
  access_note: >-
    "If you have an Agency account, you must be the admin on an iContact Agency
    account to use this resource."
event_count: 4
events:
  - id: contact_updated
    description: When an existing contact is modified.
    payload_shape: '[{"contact": {contact_data}}]'
    entities: [contact]
  - id: contact_created
    description: When a new contact is created.
    payload_shape: '[{"contact": {contact_data}}]'
    entities: [contact]
  - id: contact_subscribed
    description: When a contact is subscribed to a list.
    payload_shape: '[{"contact": {contact_data}, "list": {list_data}}]'
    entities: [contact, list]
  - id: contact_unsubscribed
    description: When a contact is unsubscribed from a list.
    payload_shape: '[{"contact": {contact_data}, "list": {list_data}}]'
    entities: [contact, list]
payload_contract:
  note: >-
    "The data format will be the same as the data format for the object on the
    public API for cohesiveness." Event bodies therefore reuse the contact and
    list field tables from the REST reference — see
    data-model/icontact-data-model.yml.
  contact_fields_source: https://help.icontact.com/customers/s/article/Contacts-iContact-API
  list_fields_source: https://help.icontact.com/customers/s/article/Lists-iContact-API
documented_limitations:
  - >-
    "NOTICE: You can only see 'unsubscribe' events. There is not a way to
    monitor for 'Do Not Contact' events." A contact moving to donotcontact
    status is invisible to webhook consumers — a material compliance gap for
    anyone syncing suppression state into another system.
gaps:
  signature_verification: false
  signature_note: >-
    No HMAC signature, no shared secret, no signing header is documented. A
    receiver cannot verify a callback came from iContact.
  retry_policy: false
  retry_note: No retry, backoff or dead-letter behaviour is documented.
  delivery_guarantee: null
  ordering_guarantee: null
  replay: false
  expected_response: null
  expected_response_note: >-
    The docs do not say what status code a receiver must return, or what
    happens if it returns an error.
  ip_allowlist: false
  event_id_or_timestamp_in_payload: false
  asyncapi_published: false
  asyncapi_note: >-
    iContact publishes no AsyncAPI, CloudEvents or event-schema document.
    asyncapi/icontact-webhooks-asyncapi.yml in this repo is API Evangelist's
    derivation of this catalog, not a provider artifact.
  message_level_events: false
  message_level_note: >-
    There are no send, delivery, bounce, open, click or complaint events. All
    message engagement data is poll-only, via the statistics, opens, clicks,
    bounces and unsubscribes sub-resources.