> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getomni.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhooks

# Webhooks

Webhooks allow you to receive real-time notifications about events in your AI Lending workspace. This enables you to integrate Monumint with your existing systems, CRMs, or custom applications.

## Overview

Webhooks are HTTP callbacks that send event data to a URL you specify whenever certain events occur in your workspace. This allows you to:

* **Sync data** with your CRM or other systems
* **Trigger workflows** in external applications
* **Monitor activity** in real-time
* **Create custom integrations** with your existing tools

## Setting Up Webhooks

### 1. Create a Webhook Endpoint

First, set up an endpoint in your application that can receive HTTP POST requests. This endpoint should:

* Accept POST requests
* Return a 200 status code on success
* Handle webhook payloads securely

### 2. Configure Webhook in Monumint

1. Go to your [webhook settings](https://platform.getomni.ai/settings/webhook)
2. Click "Create Webhook"
3. Enter your webhook URL
4. Select the events you want to subscribe to

### 3. Test Your Webhook

Use the test functionality to verify your webhook is receiving events correctly.

## Webhook Events

Monumint supports the following webhook events:

### Action Log Events

* **`action_log.completed`**: Triggered when an action log completes successfully
* **`action_log.failed`**: Triggered when an action log fails

### Document Events

* **`document.received`**: Triggered when a document is received
* **`document.extracted`**: Triggered when document extraction completes

### Lead Events

* **`lead.created`**: Triggered when a lead is created
* **`lead.updated`**: Triggered when a lead is updated
* **`lead.completed`**: Triggered when a lead application is completed

### Spread Events

* **`spread.started`**: Triggered when a financial spreading run starts, from the API or the Monumint app
* **`spread.completed`**: Triggered when a spreading run completes and its report and spreadsheet artifacts are ready
* **`spread.failed`**: Triggered when a spreading run fails

See the [Webhook Events API Reference](/api-reference/webhooks/webhook-events) for detailed payload structures.

## Webhook Security

Deliveries are not signed. To authenticate them, set custom `headers` on the
subscription — for example a shared-secret header — and reject requests to your
endpoint that don't carry it.

### Best Practices

* Use HTTPS endpoints only
* Reject deliveries that don't carry your secret header
* Implement idempotency to handle duplicate events
* Set up retry logic for failed webhook deliveries
* Monitor webhook delivery status

## Webhook Payloads

Each webhook event includes:

* **Event type**: The type of event that occurred
* **Event data**: The relevant data for the event
* **Timestamp**: When the event occurred
* **Workspace ID**: The workspace where the event occurred

## Handling Webhooks

### Response Requirements

Your webhook endpoint should:

* Return a `200 OK` status code within 5 seconds
* Handle the request asynchronously if processing takes longer
* Return appropriate error codes if the request is invalid

### Retry Logic

If your endpoint doesn't respond with a 2xx status code within 5 seconds, Monumint will retry the webhook delivery:

* Initial retry: After 1 minute
* Subsequent retries: Backoff of roughly 2, 5, 10, then 20 minutes
* Maximum: 6 total attempts

## Related Guides

<CardGroup cols={2}>
  <Card title="Webhook API Reference" href="/api-reference/webhooks/list-webhooks">
    Manage webhooks via API
  </Card>

  <Card title="Webhook Events" href="/api-reference/webhooks/webhook-events">
    View all available events and payloads
  </Card>

  <Card title="Lead Imports" href="/leads/imports">
    Use webhooks to import leads
  </Card>
</CardGroup>
