Webhooks

Webhooks allow your application to be notified of changes in a transaction's state rather than requesting the state from the API directly.

❗️

Webhooks Version Migration

Version 1 of our webhooks system will be deprecated by May 2023. Please refrain from using this system for new development and refer to our Webhooks V2 page for new implementation and migration details.

The POST request sent from Notarize contains a JSON body that describes the event and data relevant to the event.

There are three types of events that Notarize will return: transaction_status_update, user_failed_transaction, and notary. user_failed_transaction is only passed back when a signer has failed to pass the knowledge based authentication (KBA) questions.

Note that webhooks are shared between Business and Real Estate APIs. This means that if you have a Business account and a Real Estate account, you can set one webhook URL and you will receive status updates for transactions and notaries in both accounts.

Request Body

name

description

example

event
(string)

Specifies the type of webhook event. Three events exist today: transaction_status_update, user_failed_transaction, and notary

"event": "transaction_status_update"

data
(object)

Data for this event type. Returns transaction ID and either status or details.

{
  "event": "transaction_status_update",
  "data": {
    "transaction_id": "ot_wd3y67d",
    "status": "received"
  }
}

Examples:

Status Update

{
  "event": "transaction_status_update",
  "data": {
    "transaction_id": "ot_wd3y67d",
    "status": "received"
  }
}

Failed Transaction

{
  "event": "user_failed_transaction",
  "data": {
    "transaction_id": "ot_ny695pd",
    "details": "User Exceeded Authentication Attempts"
  }
}

Notary Update
{
  "event": "notary",
  "data": {
    "id": "us_1234567",
    "status": "created"
  }
}

Transaction Statuses

Notarize will pass back any of the following statuses, as it relates to the status of the transaction.

Webhook Status

Description

created

Draft transaction is created in Notarize

sent

Transaction has been sent to the signer

received

Signer has opened transaction in Notarize

completed

Signer has completed signing and/or notarizing all documents

completed_with_rejections

The notary rejected one or more documents during the meeting; one or more documents are successfully signed

completed_pending_charge

Signer has completed signing but has not yet paid

esign_completed

(For hybrid transactions only - no notary meeting) Signer has completed esigning documents. Copies of "wet-sign" documnts (documents that will be signed on paper) have not yet been uploaded

wet_sign_documents_updated

(For hybrid transactions only - no notary meeting) Copies of "wet-sign" documents have been uploaded

recalled

(Real Estate API only) The transactions was recalled from a later state back into draft state

sent_to_title_agency

(Real Estate API only) A copy of the transaction has been placed in the Title Agency account; the title agent was notified that the transaction is ready for their document upload

sent_to_closing_ops

(Real Estate API only) The transaction has been sent to the Notarize Closing Concierge team.

paid

The signer has paid for the transaction.

deleted

The transaction has been deleted; it is no longer viewable in the Notarize UI.

expired

The signing window passed before the transaction was completed

Notary Statuses

Notarize will pass back any of the following notary statuses, as it relates to the status of notaries connected to your account.

Webhook Status

Description

created

A BYOT notary has been added as a team member of the account

needs_review

The notary has completed their onboarding materials and is under review by the Notarize compliance team.

compliant

The notary has been successfully onboarded and approved as fully compliant.

non_compliant

The notary was not approved as compliant.

Errors and Retries

The webhook expects the receiver to respond with a 200 response code. If for some reason Notarize cannot reach the webhook URL or your application responds with any response code other than 200, Notarize will retry to make the request with an exponential backoff.

Exponential Back Off

We recommend an idempotent webhook implementation. Our webhooks have a 30 second timeout - should we not receive a response in 30 seconds, we will retry the response. Requests that are retried for any reason use an exponential back-off algorithm that will make up to 9 attempts. This means we will attempt to request your webhook URL up to 9 times across roughly one day.

Note that webhooks can be sent more than once and delivery is not guaranteed to be in order. The expected behavior is for your application to manage the state and skip to the latest status.

Security

Webhook messages are signed so your application can verify that the sender is Notarize. Webhook requests contain an X-Notarize-Signature header with a hexadecimal HMAC signature of the request body, using your API key as the key and SHA256 as the hash function.

You can verify the authenticity of the webhook by computing the signature with your API key and request body, and comparing it to the value in the X-Notarize-Signature header.

Setting/Updating/Retrieving Your Webhook URL

Business API

Set/update your URL
Retrieve your URL

Real Estate API

Set/update your URL
Retrieve your URL

As mentioned above, if you have a Business account and a Real Estate account, you only need to set up the webhook once and to receive status updates on transactions in both accounts.