How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Diligent Webhooks API

## How to Secure Webhook DeliveriesTo ensure that webhook payloads are securely transmitted and verified. This guide explains how to configure and validatewebhook deliveries using a shared secret.### How It WorksWhen setting up a webhook, a secret is configured on both the sender (our system) and the receiver (your endpoint). Eachwebhook payload is signed using this secret, allowing the receiver to verify its authenticity.#### Step 1: Configuring Your Webhook Secret1. When creating a webhook in our system, specify a unique secret key. This secret should be a strong, randomlygenerated string.2. Store this secret securely on your server; it should never be exposed publicly.#### Step 2: Receiving Webhook PayloadsWhen your server receives a webhook event, the request will include an `X-Signature` header containing a HMAC signatureof the payload.Example header:```X-Signature: sha256=abcdef1234567890...```#### Step 3: Validating the Webhook SignatureTo verify the webhook payload:1. Retrieve the `X-Signature` value from the request headers.2. Compute the HMAC SHA-256 signature of the request payload using your webhook secret.3. Compare the computed signature with the one in the `X-Signature` header.4. If they match, the webhook is valid.#### (Python)```pythonimport hashlibimport hmacimport jsondef verify_webhook_signature(secret, payload, signature): computed_signature = hmac.new(secret.encode(), payload.encode(), hashlib.sha256).hexdigest() expected_signature = f"sha256={computed_signature}" return hmac.compare_digest(expected_signature, signature)# Example usage:secret = "your_webhook_secret"payload = json.dumps({"event": "example"})received_signature = "sha256=abcdef1234567890..."if verify_webhook_signature(secret, payload, received_signature): print("Valid webhook received!")else: print("Invalid webhook signature!")```#### (JavaScript)```javascriptconst crypto = require('crypto');function verifyWebhookSignature (secret, payload, signature) {const computedSignature = `sha256=${crypto.createHmac('sha256', secret).update(payload).digest('hex')}`;return crypto.timingSafeEqual(Buffer.from(computedSignature), Buffer.from(signature));}// Example usage:const secret = "your_webhook_secret";const payload = JSON.stringify({ event: "example" });const receivedSignature = "sha256=abcdef1234567890...";if (verifyWebhookSignature(secret, payload, receivedSignature)) {console.log("Valid webhook received!");} else {console.log("Invalid webhook signature!");}```#### Security Considerations- Always use HTTPS to prevent interception of webhook payloads.- Reject webhook requests that fail signature validation.- Rotate secrets periodically to enhance security.By following this guide, you ensure that webhook deliveries are secure and trusted.

Diligent Webhooks API is one of 6 APIs that Diligent publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Webhook. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, an API reference, and a getting-started guide.

This API exposes 4 operations across 3 paths. It is described by OpenAPI 3.0.1, at version 1.6.0.

Requests are made against 2 base URLs: https://api.godiligent.ai, https://api.sandbox.godiligent.ai.

4 operations 3 paths 0 schemas 2 GET2 POST

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.0.1
API Version
1.6.0
Base URL
https://api.godiligent.ai
Authentication
API Key
Resource Areas
1

Authentication & Security 1

Diligent Webhooks API declares 1 security scheme for authenticating requests. An API key is passed in the header as X-API-KEY (xApiKey). By default, every request must be authenticated.

Paths & Operations 4

Across 3 paths, the API surfaces 4 operations — 2 GET, 2 POST. Each is listed below with its method, path, parameters, and response codes.

Webhooks 4

How to Secure Webhook Deliveries To ensure that webhook payloads are securely transmitted and verified. This guide explains how to configure and validate webhook deliveries using…

POST
/webhooks
Register or update webhook configuration
registerWebhook body → 200400
GET
/webhooks
List registered webhooks
listWebhooks → 200
GET
/webhooks/{webhook_id}/events
List recent webhook deliveries
listWebhookDeliveries 1 param → 200
POST
/webhooks/{webhook_id}/events/{event_id}/redeliver
Redeliver a webhook event
redeliverWebhook 2 params → 204404500

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

diligent-webhooks-api-openapi.yml Raw ↑

Other APIs Diligent publishes across the network.

Diligent CDD API
Diligent Company API
Diligent Instant Screening (experimental) API
Diligent Monitorings API
Diligent Name Screening API
Where this information came from

This is an independent, third-party profile of Diligent Webhooks API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.