Skip to main content

Async Events and Webhooks

Overview​

The EasyDMARC API supports asynchronous event notifications via webhooks. When certain events occur, such as an alert being triggered or a domain status update, a notification is sent to the webhook URL configured in your Account Console.

Configuring Your Webhook​

Webhooks can be registered via the API or the Account Console.

Via API​

POST /v1/webhooks

curl -X POST "https://api2.easydmarc.com/v1/webhooks" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Domain Events Webhook",
"ownerId": "partner_1234567890",
"url": "https://your-app.example.com/webhooks/easydmarc",
"events": ["domain.created", "domain.verified", "report.received"]
}'

The response includes an objectId and a secret for signature verification. Store both securely.

Via Account Console​

  1. Log in to your EasyDMARC account.
  2. Navigate to Webhook Settings in your account settings.
  3. Set your endpoint URL and select the events to subscribe to.
  4. Save — events will be delivered to this endpoint going forward.

Event Types​

EventDescription
domain.createdA domain was added to the organisation
domain.verifiedDomain DMARC verification succeeded or failed
report.receivedA new DMARC aggregate report was received

Each event payload includes a metadata object with eventName and ownerId, and a data object with event-specific fields.

Example Webhook Payload​

Below is an example payload:

{
"data": {
"domain": "easydmarc.us",
"reason": "RUA address not found",
"verificationStatus": "failed"
},
"metadata": {
"eventName": "domain.verified",
"ownerId": "partner_1234567890"
}
}

Verifying Webhook Events​

To ensure that the events you receive are authentic:

  • Signature Verification: Each webhook request includes a signature header. Verify the signature using the secret key provided in your Account Console.
  • Timely Response: Your endpoint should respond with a 2xx HTTP status code within a short timeframe (typically within 3 seconds). Failure to do so may result in retries.

Best Practices​

  • Secure Your Endpoint: Always use HTTPS and validate the signature on incoming webhook requests.
  • Implement Idempotency: Since webhooks may be retried, design your processing logic to handle duplicate events gracefully.

Troubleshooting​

  • Timeouts or Non-200 Responses: If your endpoint fails to respond with a 2xx status, our system will retry delivery. Review your logs to diagnose potential issues.
  • Signature Mismatch: Ensure you are using the correct secret key from the Account Console to verify incoming requests.
  • Missing Events: Verify your webhook URL configuration and check for any network or firewall issues that might block incoming requests.