ADP · AsyncAPI Specification

Adp Event Notifications Webhooks

Version

View Spec View on GitHub BenefitsHCMHuman ResourcesPayrollWorkforceEmployee BenefitsAsyncAPIEvents

AsyncAPI Specification

Raw ↑
generated: '2026-09-14'
method: searched
source: https://developers.adp.com/getting-started/key-concepts/adp-event-apis-and-event-notification-guide
spec_type: Webhooks
asyncapi_published: false
note: >-
  ADP publishes no AsyncAPI document. It does publish a substantial, first-party event surface with
  two delivery mechanisms, a signed webhook envelope and a documented retry contract; that is what is
  captured here. The event *catalogue* itself is per-product and lives in each ADP product's data
  dictionary rather than in one machine-readable list.
surface:
  name: ADP Event Notifications
  whats_new: 'October 2025 — ADP added webhook delivery alongside the original polling model.'
  delivery_modes:
    - mode: polling
      description: >-
        ADP pushes each event notification into the subscriber's own message queue, FIFO. The
        consumer retrieves one message at a time and must delete it before the next is served.
      operations:
        - {method: GET, path: /core/v1/event-notification-messages, description: 'Retrieve the next event notification. 200 with a body, or 204 when the queue is empty.'}
        - {method: DELETE, path: '/core/v1/event-notification-messages/{adp-msg-msgid}', description: 'Delete the message just processed. The id comes from the adp-msg-msgid response header of the GET.'}
      message_id_header: adp-msg-msgid
      responses:
        - {status: 200, meaning: message returned}
        - {status: 204, meaning: queue empty}
        - {status: 403, meaning: 'notification not in the application scope — ADP support must add it'}
        - {status: 404, meaning: 'message already deleted, or an invalid adp-msg-msgid'}
    - mode: webhook
      description: >-
        ADP monitors the queue itself and POSTs each event to an endpoint the partner hosts, moments
        after it lands in the queue. No polling required.
      endpoint_requirements:
        - The receiving endpoint must be publicly reachable and hosted in the United States.
        - The endpoint must be secured with one of the three supported authentication models.
      supported_authentication: [api-key-bearer, http-basic, oauth2-client-credentials]
      acknowledgement:
        required_status: [200, 201, 202]
        required_body: '{"status": "success", "timestamp": "YYYY-MM-DDTHH:MM:SSZ"}'
        on_failure: 'A missing or non-2xx acknowledgement marks the attempt failed and starts ADP''s retry mechanism.'
      signature:
        header: adpx-messageauthentication
        algorithm: HMAC-SHA256
        message: the data-connector client ID
        key: the data-connector client secret
        credential_location: 'Project Details > Credentials in API Central or Partner Self-Service'
      envelope:
        description: >-
          Webhook deliveries wrap the polling event in additional metadata, so a consumer written for
          polling cannot be pointed at a webhook body unchanged.
        fields:
          - {path: /meta/messageId, description: 'the message-queue id, unique per event'}
          - {path: /events/data/eventContext/worker/associateOID, description: 'the worker record that changed — in most cases the eventContext object is the worker'}
          - {path: /events/eventNameCode/codeValue, description: 'the event that fired; the value an application should switch on'}
          - {path: /events/transform/, description: "the object's new value; product- and event-dependent"}
      testing:
        description: 'A webhook configuration can be tested before it is enabled — save the configuration, select Test webhook, and API Central or Partner Self-Service reports success or failure.'
      configuration_path:
        marketplace_partners: 'Partner Self Service > Projects > View Project > Development APIs / Production APIs > Events > Notification Method > Webhook'
        api_central_clients: 'Projects > View Project > APIs > Events'
subscription:
  model: 'Events must be explicitly subscribed per application; an unsubscribed event is never delivered and returns 403 on the polling endpoint.'
  api_central_clients: 'Projects > Select a Project > APIs > Events > Add Events'
  marketplace_partners: 'through the Marketplace Technical Advisor'
semantics:
  freshness_warning: >-
    ADP's own guidance is to treat a notification as a trigger, not as the source of truth: there is
    always lag between generation and retrieval, so an application should re-read the resource
    (GET /hr/v2/workers/{aoid}) rather than trust the payload.
  effective_dating: >-
    Unless stated otherwise, a notification is generated when the change is issued, not on its
    effective date. Consumers must read the effective date out of the payload.
event_naming:
  convention: '<object>.<facet>.<verb>, e.g. worker.personal-communication.email.add / .change / .remove'
  examples:
    - worker.hire
    - worker.rehire
    - worker.personalCommunication.email.add
    - worker.personal-communication.email.remove
    - worker.leave.cancel
    - worker.work-assignment.terminate
    - worker.photo.remove
    - associate.ksaoc.certification.remove
    - us-tax-profile.local-income-tax-instruction.remove
    - work-schedule-day.remove
  in_contract: >-
    The event vocabulary is also visible in the harvested OpenAPI: 168 of the 362 Workforce Now
    operations are event posts or their /meta descriptors under /events/{domain}/v1/{eventName}, and
    a further set of notification shapes appear under /event-notifications/{domain}/v1/{eventName}.
  catalogue_source: "per-product ADP data dictionary — ADP does not publish one consolidated machine-readable event list"

Work with this as data

Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/adp-event-notifications-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.