---
title: Configuring Webhooks
description: Webhooks can be set up and configured by users with developer permissions on a per-deal basis. Users can see which the deals for which they have developer permissions on their Dashboard. Please contac
---

[Skip to content](https://help.dealmaker.tech/configuring-webhooks-on-dealmaker#main-content)

English

Show submenu for translations

[![DealMaker Logo](https://help.dealmaker.tech/hubfs/DealMakerLogo2025.svg)](https://dealmaker.tech/)

Open main navigation

Close main navigation

- English
  
  Show submenu for translations
- [Go to DealMaker](https://dealmaker.tech/)

[Go to DealMaker](https://dealmaker.tech/)

 How can we help you?

- There are no suggestions because the search field is empty.

1. [Knowledge Center](https://help.dealmaker.tech/?hsLang=en)
2. [Step 1: Getting Set up on DealMaker](https://help.dealmaker.tech/step-1-getting-set-up-on-dealmaker?hsLang=en)
3. [Integrating with DealMaker](https://help.dealmaker.tech/step-1-getting-set-up-on-dealmaker?hsLang=en#integrating-with-dealmaker)

# Configuring Webhooks

### Permissions

Webhooks can be set up and configured by users with **developer permissions** on a per-deal basis. Users can see which the deals for which they have developer permissions on their Dashboard.

![](https://help.dealmaker.tech/hubfs/Knowledge%20Base%20Import/f.hubspotusercontent10.nethubfs7493765Screen%20Shot%202020-09-11%20at%202-10-19%20PM-png.png)

Please contact the DealMaker team to set up developer permissions for each of your deals.

### Configuring Webhooks

To configure your webhooks, click on the dropdown menu in the top right corner and select "Integrations".

![](https://help.dealmaker.tech/hubfs/Screen%20Shot%202022-11-23%20at%202-23-26%20PM-png.png)

Here, you can configure DealMaker to send webhooks to a URL on your server. Below, we'll discuss the available controls here, and how they relate to configuring your server to receive webhook payloads from DealMaker.

![](https://help.dealmaker.tech/hubfs/Developer%20_%20DealMaker%20(5)-jpg.jpeg)

 

 

<iframe data-hsv-src="https://play.hubspotvideo.com/v/7493765/id/92841621890" referrerpolicy="origin" sandbox="allow-forms allow-scripts allow-same-origin allow-popups" allow="autoplay; fullscreen;" style="position: absolute !important; width: 100% !important; height: 100% !important; left: 0; top: 0; border: 0 none; pointer-events: initial" title="HubSpot Video" loading="lazy" data-hsv-id="92841621890" data-hsv-style="" data-hsv-width="688" data-hsv-height="382" data-hsv-autoplay="false" data-hsv-loop="false" data-hsv-muted="false" data-hsv-hidden-controls="false" data-hsv-full-width="false"></iframe>

#### Enable Webhooks

Toggle this switch to enable the delivery of webhooks to the provided Payload URL. In the event of recurring delivery failures, webhook delivery will be automatically disabled after 6 failed attempts.

#### Payload URL

HTTP **POST** requests will be sent to this URL from DealMaker. Ensure that your server is configured to receive webhook payloads at this URL. Ensure that your server is able to receive payloads at this URL, and respond with appropriate HTTP status codes.

Any HTTP status other than **200 OK** returned from your server will be considered a delivery failure.

We strongly recommend using HTTPS endpoints on your server to avoid the security vulnerabilities associated with unencrypted web traffic. 

#### Secret

Setting a webhook secret allows you to ensure that **POST** requests sent to the payload URL are from DealMaker. When you set a secret, you'll receive the **X-DealMaker-Signature** header in the webhook **POST** request. You can generate a new secret, clear the secret, and copy the secret to your clipboard.

You can set up an environment variable for your server containing the secret, which you can use to verify the webhook payload in your server-side code:

See [Payload Verification with DealMaker](https://help.dealmaker.tech/configuring-webhooks-on-dealmaker#verifying-payloads-from-dealmaker) for more details on request verification using the secret. 

Leaving the **Secret** field blank will result in the **X-DealMaker-Signature** header not being included with webhook payloads sent to your server. We strongly recommend against leaving this field blank as other methods of verifying payload authenticity are considerably less reliable.

#### Alerts Email

This email will be used to deliver error notifications in case of a delivery failure. The field is populated with the signed in user's email by default, but any valid email address can be used.

#### Add Deals

Search and select deals to add them to the endpoint you are setting up. You may select from any of the deals on which you are a team member. Because you may create any number of endpoints, you may choose to direct different deals to different endpoints, in whichever combination suits your usage. Here you may remove deals from the endpoint as well.

#### Saving your Configuration

Once you are satisfied with your webhook configuration, click **Save Changes** to ensure it is applied. You can return to **Integrations** to change this configuration, or disable webhooks altogether, at any time.

### Multiple Endpoints

It is now possible to set up multiple endpoints. This means you may divert different deals to different destinations, or direct all deals to one endpoint, or any combination thereof. 

<iframe data-hsv-src="https://play.hubspotvideo.com/v/7493765/id/92841897571" referrerpolicy="origin" sandbox="allow-forms allow-scripts allow-same-origin allow-popups" allow="autoplay; fullscreen;" style="position: absolute !important; width: 100% !important; height: 100% !important; left: 0; top: 0; border: 0 none; pointer-events: initial" title="HubSpot Video" loading="lazy" data-hsv-id="92841897571" data-hsv-style="" data-hsv-width="688" data-hsv-height="382" data-hsv-autoplay="false" data-hsv-loop="false" data-hsv-muted="false" data-hsv-hidden-controls="false" data-hsv-full-width="false"></iframe>

### Edit Endpoint

You may edit your endpoints at any time by clicking "edit endpoint" and editing the fields, then clicking "Save Changes to Endpoint"

<iframe data-hsv-src="https://play.hubspotvideo.com/v/7493765/id/92844530478" referrerpolicy="origin" sandbox="allow-forms allow-scripts allow-same-origin allow-popups" allow="autoplay; fullscreen;" style="position: absolute !important; width: 100% !important; height: 100% !important; left: 0; top: 0; border: 0 none; pointer-events: initial" title="HubSpot Video" loading="lazy" data-hsv-id="92844530478" data-hsv-style="" data-hsv-width="688" data-hsv-height="382" data-hsv-autoplay="false" data-hsv-loop="false" data-hsv-muted="false" data-hsv-hidden-controls="false" data-hsv-full-width="false"></iframe>

 

### **Payload Verification with DealMaker**

For enhanced security, your server's endpoint should only accept requests that originate from DealMaker. DealMaker sends a unique hash signature with every payload to ensure the request's authenticity. This signature is found in the `X-DealMaker-Signature` header.  
The signature is created by using the **SHA1** algorithm to calculate an HMAC hex digest of the payload's body, with the secret token you defined serving as the key. The final header value is formed by prepending the resulting hash with the string `sha1=`.

To verify the payload on your end, you must:

1. Access the **raw body** of the incoming request.
2. Retrieve the `X-DealMaker-Signature` from the request header.
3. Calculate your own HMAC hex digest using **SHA1** with your **secret token** and the **raw payload body**.
4. Prepend the string `sha1=` to your calculated hash value.
5. Compare your prefixed, calculated hash with the signature received in the header.

It is critical that you use a secure comparison method (e.g., `hash_equals` in PHP, `secure_compare` in Ruby) to prevent timing attacks. If the hashes match, you can be confident the request is from DealMaker and process the data. If they don't, your server should return an HTTP error code.

### Consistency Across Languages

While specific code implementations might differ, the basic approach to verifying signatures remains largely consistent across various programming languages and frameworks.

### Example Header

The `X-DealMaker-Signature` header will contain a value that is a combination of the `sha1=` prefix and the calculated hash. The following is an example of how the complete header would appear:

X-DealMaker-Signature: sha1=f95709971933b91a27e7d32c589a17409f582312

In this example, `f95709971933b91a27e7d32c589a17409f582312` is the 40-character SHA1 HMAC hex digest of the payload body. Your verification logic should calculate the same hash and then add the `sha1=` prefix before performing the comparison.

### Documentation <https://docs.dealmaker.tech/#section/Webhooks>

Please refer to our [Developer Documentation](https://docs.dealmaker.tech/#section/Webhooks) for the latest guidelines on using Webhooks. You'll find detailed instructions on how to seamlessly integrate them with your portal and other platforms!

- [Step 1: Getting Set up on DealMaker](https://help.dealmaker.tech/step-1-getting-set-up-on-dealmaker?hsLang=en#main-content)

    - [Agreements](https://help.dealmaker.tech/step-1-getting-set-up-on-dealmaker?hsLang=en#agreements)
    - [Payments](https://help.dealmaker.tech/step-1-getting-set-up-on-dealmaker?hsLang=en#payments)
    - [Self-Serve](https://help.dealmaker.tech/step-1-getting-set-up-on-dealmaker?hsLang=en#self-serve)
    - [Integrating with DealMaker](https://help.dealmaker.tech/step-1-getting-set-up-on-dealmaker?hsLang=en#integrating-with-dealmaker)
    - [FAQ](https://help.dealmaker.tech/step-1-getting-set-up-on-dealmaker?hsLang=en#faq)
- [Step 2: Launching A Deal](https://help.dealmaker.tech/step-2-launching-a-deal?hsLang=en#main-content)

    - [Issuer and Investor](https://help.dealmaker.tech/step-2-launching-a-deal?hsLang=en#issuer-and-investor)
    - [FAQ](https://help.dealmaker.tech/step-2-launching-a-deal?hsLang=en#faq)
- [Step 3: Deal In Progress](https://help.dealmaker.tech/step-3-deal-in-progress?hsLang=en#main-content)

    - [Investor Management](https://help.dealmaker.tech/step-3-deal-in-progress?hsLang=en#investor-management)
    - [Managing Transactions](https://help.dealmaker.tech/step-3-deal-in-progress?hsLang=en#managing-transactions)
    - [Payouts/Reporting](https://help.dealmaker.tech/step-3-deal-in-progress?hsLang=en#payouts-reporting)
    - [Regulatory/Compliance/Legal](https://help.dealmaker.tech/step-3-deal-in-progress?hsLang=en#regulatory-compliance-legal)
    - [Brokers/Agents/Finders](https://help.dealmaker.tech/step-3-deal-in-progress?hsLang=en#brokers-agents-finders)
    - [Managing Your Raise](https://help.dealmaker.tech/step-3-deal-in-progress?hsLang=en#managing-your-raise)
- [Step 4: Closing A Deal](https://help.dealmaker.tech/step-4-closing-a-deal?hsLang=en#main-content)

    - [Closing FAQs](https://help.dealmaker.tech/step-4-closing-a-deal?hsLang=en#closing-faqs)
- [Regulation CF](https://help.dealmaker.tech/regulation-cf?hsLang=en#main-content)

    - [FAQs](https://help.dealmaker.tech/regulation-cf?hsLang=en#faqs)
- [Regulation D 506(c)](https://help.dealmaker.tech/regulation-d-506c?hsLang=en#main-content)

    - [FAQs](https://help.dealmaker.tech/regulation-d-506c?hsLang=en#faqs)
- [Developers](https://help.dealmaker.tech/developers?hsLang=en#main-content)

    - [Developer](https://help.dealmaker.tech/developers?hsLang=en#developer)
- [Regulation A+](https://help.dealmaker.tech/regulation-a?hsLang=en#main-content)

    - [FAQs](https://help.dealmaker.tech/regulation-a?hsLang=en#faqs)
- [Investor FAQ](https://help.dealmaker.tech/investor-faq?hsLang=en#main-content)

    - [Investor FAQ](https://help.dealmaker.tech/investor-faq?hsLang=en#investor-faq)
- [DealMaker Engage](https://help.dealmaker.tech/dealmaker-engage?hsLang=en#main-content)

    - [Setup](https://help.dealmaker.tech/dealmaker-engage?hsLang=en#setup)
    - [Community Building](https://help.dealmaker.tech/dealmaker-engage?hsLang=en#community-building)
    - [Transfer Agent Actions](https://help.dealmaker.tech/dealmaker-engage?hsLang=en#transfer-agent-actions)
    - [Member Views](https://help.dealmaker.tech/dealmaker-engage?hsLang=en#member-views)
- [DealMaker Shareholder Services](https://help.dealmaker.tech/dealmaker-shareholder-services?hsLang=en#main-content)

    - [DealMaker Transfer Agent FAQ](https://help.dealmaker.tech/dealmaker-shareholder-services?hsLang=en#dealmaker-transfer-agent-faq)
    - [General Transfer Agent FAQ](https://help.dealmaker.tech/dealmaker-shareholder-services?hsLang=en#general-transfer-agent-faq)
- [Canadian Private Placements](https://help.dealmaker.tech/canadian-private-placements?hsLang=en)
- [Enterprise](https://help.dealmaker.tech/enterprise?hsLang=en#main-content)

    - [Developer](https://help.dealmaker.tech/enterprise?hsLang=en#developer)
    - [DealMaker Engage](https://help.dealmaker.tech/enterprise?hsLang=en#dealmaker-engage)
    - [Deal Setup](https://help.dealmaker.tech/enterprise?hsLang=en#deal-setup)
    - [Payments](https://help.dealmaker.tech/enterprise?hsLang=en#payments)
- [Reservations](https://help.dealmaker.tech/reservations?hsLang=en)
- [Regulatory & Compliance](https://help.dealmaker.tech/regulatory-compliance?hsLang=en#main-content)

    - [Onboarding](https://help.dealmaker.tech/regulatory-compliance?hsLang=en#onboarding)

[![Chill listening crop-3](https://help.dealmaker.tech/hubfs/DealMakerLogo2025.svg "Chill listening crop-3")](https://www.dealmaker.tech/)

Copyright © 2026, DealMaker

```json
{
  "@context" : "https://schema.org",
  "@type" : "VideoObject",
  "contentUrl" : "https://7493765.fs1.hubspotusercontent-na1.net/hubfs/7493765/Screen%20Recording%202022-11-23%20at%202.35.48%20PM.mov",
  "dateModified" : "2022-11-23T19:42:41.310Z",
  "duration" : "PT20S",
  "height" : 1552,
  "name" : "Screen Recording 2022-11-23 at 2.35.48 PM",
  "thumbnailUrl" : "https://7493765.fs1.hubspotusercontent-na1.net/hubfs/7493765/Screen%20Recording%202022-11-23%20at%202.35.48%20PM.mov/medium.jpg",
  "uploadDate" : "2022-11-23T19:42:21.293Z",
  "width" : 2798
}
```

```json
{
  "@context" : "https://schema.org",
  "@type" : "VideoObject",
  "contentUrl" : "https://7493765.fs1.hubspotusercontent-na1.net/hubfs/7493765/Screen%20Recording%202022-11-23%20at%202.37.00%20PM.mov",
  "dateModified" : "2022-11-23T19:55:57.208Z",
  "duration" : "PT16S",
  "height" : 1552,
  "name" : "Screen Recording 2022-11-23 at 2.37.00 PM",
  "thumbnailUrl" : "https://7493765.fs1.hubspotusercontent-na1.net/hubfs/7493765/Screen%20Recording%202022-11-23%20at%202.37.00%20PM.mov/medium.jpg",
  "uploadDate" : "2022-11-23T19:55:16.919Z",
  "width" : 2798
}
```

```json
{
  "@context" : "https://schema.org",
  "@type" : "VideoObject",
  "contentUrl" : "https://7493765.fs1.hubspotusercontent-na1.net/hubfs/7493765/Screen%20Recording%202022-11-23%20at%202.34.10%20PM.mov",
  "dateModified" : "2022-11-23T19:53:06.670Z",
  "duration" : "PT34S",
  "height" : 1552,
  "name" : "Screen Recording 2022-11-23 at 2.34.10 PM",
  "thumbnailUrl" : "https://7493765.fs1.hubspotusercontent-na1.net/hubfs/7493765/Screen%20Recording%202022-11-23%20at%202.34.10%20PM.mov/medium.jpg",
  "uploadDate" : "2022-11-23T19:52:48.208Z",
  "width" : 2798
}
```