Webhooks

Our webhooks functionality allows clients to automatically receive updates on a deal's investor data.

The type of data that the webhooks include:

  • Investor Name
  • Date created 
  • Email
  • Phone
  • Allocation
  • Attachments
  • Accredited investor status
  • Accredited investor category
  • Status (Draft, Invited, Accepted, Waiting)

Via webhooks clients can subscribe to the following events as they happen on Dealmaker:

  • Investor is created
  • Investor details are updated (any of the investor details above change or are updated)
  • Investor is deleted

A URL supplied by the client will receive all the events with the information as part of the payload. Clients are able to add and update the URL within DealMaker.

Configuration

For a comprehensive guide on how to configure Webhooks please visit our support article: Configuring Webhooks on DealMaker – DealMaker Support. 

As a developer user on DealMaker, you are able to configure webhooks by following the steps below:

  1. Sign into Dealmaker
  2. Go to “Your profile” in the top right corner
  3. Access an “Integrations” configuration via the left menu
  4. The developer configures webhooks by including:
    1.  The HTTPS URL where the request will be sent
    2. Optionally, a security token that we would use to build a SHA1 hash that would be included in the request headers. The name of the header is X-DealMaker-Signature. If the secret is not specified, the hash won’t be included in the headers.
    3. An email address that will be used to notify about errors.
  5. The developers can disable webhooks temporarily if needed

Specification

Events

The initial set of events will be related to the investor. The events are:

  1. investor.created
    1. Triggers every time a new investor is added to a deal
  2. investor.updated
    1. Triggers on updates to any of the following fields:
      1. Status
      2. Name
      3. Email - (this is a user field so we trigger event for all investors with webhook subscription)
      4. Allocated Amount
      5. Investment Amount
      6. Accredited investor fields
      7. Adding or removing attachments
    2. When the investor status is signed, the payload also includes a link to the signed document; the link expires after 30  minutes
  3. investor.deleted
    1. Triggers when the investor is removed from the deal
    2. The investor key of the payload only includes investor ID
    3. The deal is not included in the payload. Due to our implementation it’s impossible to retrieve the deal the investor was part of

Requests

  • The request is a POST
  • The payload’s content-type is application/json
  • Only 2XX responses are considered successful. In the event of a different response, we consider it failed and queue the event for retry
  • We retry the request five times, after the initial attempt. Doubling the waiting time between intervals with each try. The first retry happens after 30 seconds, then 60 seconds, 2 mins, 4 minutes, and 8 minutes. This timing scheme gives the receiver about 1 hour if all the requests fail
  • If an event fails all the attempts to be delivered, we send an email to the address that the user configured

Payload

Common Properties

There will be some properties that are common to all the events on the system. 

Key

Type

Description

event

String

The event that triggered the call

event_id

String

A unique identifier for the event

deal*

Object

The deal in which the event occurred. It includes id, title, created_at and updated_at

* This field is not included when deleting a resource

Common Properties (investor scope)

Every event on this scope must contain an investor object, here are some properties that are common to this object on all events in the investor scope:

Key

Type

Description

id

Integer

Dealmaker’s ID

name

String

Investor’s Name

status

String

Current status of the investor

email

String

 

 

phone_number

String

 

 

investment_amount

Double

 

 

allocated_amount

Double

 

 

accredited_investor

Object

See format in respective ticket 

attachments

Array of Objects

List of supporting documents uploaded to the investor, including URL (expire after 30 minutes) and title (caption)

funding_state

String

Investor’s current funding state (unfunded, underfunded, funded, overfunded)

funds_pending

Boolean

True if there are pending transactions, False otherwise

created_at

Date

 

 

updated_at

Date

 

 

 

investor.status >= signed Specific Properties 

Key

Type

Description

subscription_agreement

object

id, url (expiring URL)

Investor Status

Here is a brief description of each investor state:

  • Invited: the investor was added to the platform but hasn’t completed the questionnaire 
  • Signed: the investor signed the document (needs approval from Lawyer before countersignature)
  • Waiting: the investor was approved for countersignature by any of the Lawyers in the deal
  • Accepted: the investor was countersigned

Update Delay

Given the high number of updates our platform performs on any investor, we’ve added a cool down period on update events that allows us to “group” updates and trigger only one every minute. In consequence, update events will be delivered 1 minute after the initial request was made and will include the latest version of the investor data at delivery time.