Webhooks V2
Webhooks allow your application to be notified of changes in a transaction's state rather than requesting the state from the API directly.
Notarize Webhooks allow your application to be notified of changes in a transaction's status. The POST request sent from Notarize contains a JSON body that describes the event and data relevant to the event.
Webhook Setup
To set up and modify your Notarize webhooks, you can call our Webhook API endpoints from the command line, or tools like Postman.
What's New with Webhooks V2?
Webhooks V2 supports a number of enhancements from V1:
- Subscribe to individual webhook events
- Create multiple subscriptions
- Delete a webhook subscription
- List all events that've been sent for a given webhook subscription
- List all webhook subscriptions for your account
- List all webhook events that are available to subscribe to
Migrating to Webhooks V2
It is simple to move to Webhooks V2:
- Audit the specific events you would like to subscribe to
- Make a DELETE call to
/webhooks
to remove the V1 subscription - Make a POST call to
/v2/webhooks
to subscribe to V2 webhooks (see format here) - Edit any firewall restrictions on your network that may restrict our ability to send you webhook calls
Please note: a small number of events that were available in Webhooks V1 will no longer be available in Webhooks V2:
transaction.title_added
Webhook Subscriptions
Subscription | Description | Webhook Body |
---|---|---|
notary.* | This specific subscription string will subscribe the organization to all notary sub-events. | See individual notary event bodies below. |
notary.compliant | This event is triggered when a notary's profile is reviewed and marked compliant by our compliance team. | { event: 'notary.compliant' data: { notary_id: ID of notary status: status of event } } |
notary.created | This event is triggered when a new notary is created in your organization. | { event: 'notary.created' data: { notary_id: ID of notary status: status of event } } |
notary.needs_review | This event is triggered when a Notary has finished onboarding and needs to be reviewed by our compliance team. | { event: 'notary.needs_review' data: { notary_id: ID of notary status: status of event } } |
notary.non_compliant | This event is triggered when a Notary is marked non-compliant after review by our compliance team. | { event: 'notary.non_compliant' data: { notary_id: ID of notary status: status of event } } |
notary.signer_ready | This event is triggered when a notary has been assigned to a transaction and signer has requested a meeting | { event: 'notary.signer_ready' data: { notary_id: ID of notary transaction_access_link: link to transaction } } |
transaction.* | This specific subscription string will subscribe the organization to all transaction sub-events. | See individual transaction event bodies below. |
transaction.created | This event triggers whenever a transaction is created. | { event: 'transaction.created' data: { transaction_id: ID of transaction status: status of event } } |
transaction.deleted | This event triggers whenever a transaction is deleted. | { event: 'transaction.deleted' data: { transaction_id: ID of transaction status: status of event } } |
transaction.expired | This event triggers whenever a transaction has passed a set expiration date. | { event: 'transaction.expired' data: { transaction_id: ID of transaction status: status of event } } |
transaction.updated | This event triggers whenever a transaction is updated. | { event: 'transaction.updated' data: { transaction_id: ID of transaction status: status of event } } |
transaction.recalled | This event triggers whenever a transaction is recalled. | { event: 'transaction.recalled' data: { transaction_id: ID of transaction status: status of event } } |
transaction.document.upload | This event triggers whenever a document bundle is uploaded to a transaction. | { event: 'transaction.document.upload' data: { transaction_id: ID of transaction organization_name: name of calling org document: { id: name: } date_occurred: ISO8601 timestamp with timezone } } |
transaction.reviewed (Lender only) | This event triggers whenever a title agency has finished reviewing a document in a collaborative transaction | { event: 'transaction.document.reviewed' data: { transaction_id: ID of transaction organization_name: name of org document: { id: name: } date_occurred: ISO8601 timestamp with timezone } } |
transaction.meeting.created | This event triggers anytime signer(s) join a meeting. This event can occur when a notary picks up a meeting, or when concurrent signers join an ongoing meeting. | { event: 'transaction.meeting.created', data: { transaction_id: "transaction ID", date_occurred: "ISO8601 timestamp with timezone", signers: [ { first_name: "first name", middle_name: "middle name", last_name: "last name", external_id: "signer external ID", signer_id: "signer ID" } ], meeting: { meeting_id: "meeting ID" } } } |
transaction.meeting.failed | This event triggers when a notary terminates a meeting with failure, or when a meeting is terminated after inactivity from participants (e.g. participants lost connection). | { event: 'transaction.meeting.failed', data: { transaction_id: "transaction ID", date_occurred: "ISO8601 timestamp with timezone", meeting: { meeting_id: "meeting ID" } } } |
transaction.meeting.requested | This event triggers anytime signer(s) request a meeting. It can include multiple signers if they are collocated. | { event: 'transaction.meeting.requested', data: { transaction_id: "transaction ID", date_occurred: "ISO8601 timestamp with timezone", signers: [ { first_name: "first name", middle_name: "middle name", last_name: "last name", external_id: "signer external ID", signer_id: "signer ID" } ] } } |
transaction.meeting.video.processed | This event triggers once the notary meeting has finished and the recording has finished processing. You can use this event to trigger a call to Retrieve Notarization Record to fetch the meeting video. | { event: 'transaction.meeting.video.processed' data: { date_occurred: ISO8601 timestamp with timezone, meeting: { meeting_id: meeting id api_url: "https://api.notarize.com/v1/notarization_records/meeting_id" }, transaction_id: ID of transaction, }, event: "transaction.meeting.video.processing.complete" } |
transaction.notary.assigned | This event triggers anytime a notary is assigned to a transaction. | { event: 'transaction.notary.assigned' data: { transaction_id: ID of transaction organization_name: name of calling org date_occurred: ISO8601 timestamp with timezone } } |
transaction.sent_to_closing_ops | This event triggers whenever a transaction is sent to the Notarize closing ops team. | { event: 'transaction.sent_to_closing_ops' data: { transaction_id: ID of transaction organization_name: name of calling org date_occurred: ISO8601 timestamp with timezone } } |
transaction.sent_to_signer | This event triggers whenever a transaction is sent to a signer. | { event: 'transaction.sent_to_signer' data: { transaction_id: ID of transaction organization_name: name of calling org date_occurred: ISO8601 timestamp with timezone } } |
transaction.signer.kba_failed | This event triggers when a signer failed KBA and is locked out due to too many failed attempts. | { event: 'transaction.signer.kba_failed', data: { transaction_id: "transaction ID", date_occurred: "ISO8601 timestamp with timezone", signer: { first_name: "first name", middle_name: "middle name", last_name: "last name", external_id: "signer external ID", signer_id: "signer ID" } } } |
transaction.signer.kba_passed | This event triggers when a signer passed KBA for the transaction. | { event: 'transaction.signer.kba_passed', data: { transaction_id: "transaction ID", date_occurred: "ISO8601 timestamp with timezone", signer: { first_name: "first name", middle_name: "middle name", last_name: "last name", external_id: "signer external ID", signer_id: "signer ID" } } } |
transaction.underwriter.not_available | This event triggers whenever an underwriter is not available for a transaction. | { event: 'transaction.underwriter.not_available' data: { id: ID of transaction } } |
transaction.completed | This event triggers whenever a transaction moves into the completed state, following successful termination of the notary meeting/document signing. | { event: "transaction.completed", data: { transaction_id: ID of transaction, status: null } } |
transaction.completed_with_rejections | This event triggers when a transaction is completed but a subset of documents have been rejected for notarization by the notary. | { event: "transaction.completed_with_rejections", data: { transaction_id: ID of transaction } } |
Updated about 1 month ago