> ## Documentation Index
> Fetch the complete documentation index at: https://ahasend.pro/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Domain DNS Error Webhook

> &nbsp;

AhaSend automatically checks your domain's DNS configuration every 15 to 30 minutes and sends this webhook if any severer issues are detected that will prevent the system from sending emails on your domain's behalf.

Triggered when DNS configuration issues are detected for any domain in your account.

**Common DNS issues**:
- Missing or invalid SPF record
- Missing or invalid DKIM record
- Missing or invalid DMARC record
- DNS propagation delays

**Impact**: After this event, email sending will be rejected until DNS configuration is fixed.

**Resolution**: Check your domain's DNS settings in the AhaSend dashboard and update your DNS records as needed.

**When it's sent**: When AhaSend's automated DNS checker detects configuration problems.




## OpenAPI

````yaml webhooks.yaml webhook domain.dns_error
openapi: 3.1.0
info:
  title: AhaSend Webhooks
  description: >
    AhaSend webhook events documentation. This specification describes all
    webhook events that AhaSend sends to your configured webhook URLs.


    ## Overview


    Webhooks are HTTP callbacks that AhaSend sends to your configured URLs when
    specific events occur. They provide real-time notifications about:


    - **Message Events**: Email delivery status (sent, delivered, bounced,
    opened, etc.)

    - **Suppression Events**: When email addresses are automatically suppressed

    - **Domain Events**: DNS configuration issues

    - **Route Events**: Inbound email processing


    ## Standard Webhooks Compatibility


    AhaSend webhook deliveries use the Standard Webhooks header names,
    signed-content format, HMAC-SHA256 algorithm, and signature format. Secret
    handling is intentionally different from the encoded-secret convention
    assumed by some Standard Webhooks libraries, so compatibility with stock
    libraries is not unconditional.


    ### Security Headers


    All webhooks include these security headers for verification:


    - `webhook-id`: Unique identifier for the webhook event (used as idempotency
    key)

    - `webhook-timestamp`: Unix timestamp when the webhook was sent

    - `webhook-signature`: HMAC-SHA256 signature of the payload using the
    resource secret


    ### Verification


    The HMAC key is the literal UTF-8 bytes of the `secret` returned when the
    webhook or route resource is created. Use the complete returned string,
    including any prefix. Do not Base64-decode it and do not strip a prefix.


    Use the AhaSend SDK verifier, or a verifier that explicitly accepts raw key
    bytes. A stock Standard Webhooks library is compatible only if it has a
    raw-secret/raw-key mode that preserves these literal UTF-8 bytes.
    Constructors that decode an encoded Standard Webhooks secret will derive a
    different key and reject valid AhaSend deliveries.


    The signed content is the unmodified `webhook-id`, `webhook-timestamp`, and
    raw request body joined with periods. See the [Standard Webhooks
    verification
    algorithm](https://github.com/standard-webhooks/standard-webhooks/blob/main/spec/standard-webhooks.md#verifying-webhook-authenticity)
    for the shared protocol details, subject to the AhaSend secret-handling
    boundary above.


    ### Retry Policy


    - Failed webhooks are retried **6 times** over **16+ minutes**

    - Only HTTP status codes **200-299** are considered successful

    - After **100 consecutive failures**, the webhook is automatically disabled

    - You'll receive an email notification when a webhook is disabled


    ### Payload Format


    All webhooks follow the Standard Webhooks payload structure:


    ```json

    {
      "type": "event.type",
      "timestamp": "2024-05-06T09:49:16.687031577Z",
      "data": {
        // Event-specific data
      }
    }

    ```


    ## Getting Started


    1. **Configure a webhook** in your AhaSend dashboard

    2. **Choose which events** you want to receive

    3. **Verify webhook signatures** using the literal resource secret as
    described above

    4. **Handle the events** in your application


    For more information, visit the [AhaSend webhook
    documentation](https://ahasend.pro/help/integrations/webhooks).
  version: 2.0.0
  contact:
    email: support@ahasend.pro
  license:
    name: Proprietary
servers:
  - url: https://your-webhook-endpoint.com
    description: Your webhook endpoint URL (configured in AhaSend dashboard)
security: []
tags:
  - name: Message Events
    description: >
      Webhooks for outbound email delivery tracking.


      These events track the lifecycle of emails you send through AhaSend, from
      initial reception through final delivery or failure.
  - name: Suppression Events
    description: >
      Webhooks for email suppression list changes.


      These events notify you when email addresses are automatically added to
      your suppression list due to delivery issues.
  - name: Domain Events
    description: >
      Webhooks for domain configuration issues.


      These events alert you to DNS configuration problems that could prevent
      email delivery.
  - name: Route Events
    description: >
      Webhooks for inbound email processing.


      These events deliver inbound emails to your application for processing
      (e.g., support tickets, replies).
paths: {}

````