---
title: "Webhook Event"
method: POST
path: "your-endpoint"
tags: ["Event Notifications"]
---

# Webhook Event

`POST your-endpoint` (webhook)

All webhook events are delivered to your configured endpoint URL.

The `event` field in the payload determines which type of webhook was triggered.
Your endpoint should handle all event types or gracefully ignore unknown events.

**Event Types:**
- Entity changes: `CUSTOMER_*`, `COMPANY_*`, `CARRIER_*`, `CUSTOMER_CONTACT_*`
- Shipment events: `SHIPMENT_DELIVERED`, `SHIPMENT_BOOKED`, `SHIPMENT_DISPATCHED`, etc.
- Financial events: `CARRIER_INVOICE_CREATED`, `CUSTOMER_PAYMENT_CREATED`, etc.

**Security:** All webhook requests include an `x-api-key` header containing your webhook token configured in the MVMNT UI.

**Best Practices:**
- Return 200 OK quickly and process asynchronously
- Implement idempotency using event ID and timestamp
- Handle unknown event types gracefully for forward compatibility

## Payload

- WebhookDelivery — The top-level webhook delivery payload containing one or more events
  - `sentAt` string, date-time, required — ISO 8601 timestamp when the webhook was sent from MVMNT
  - `events` WebhookPayload[], required — Array of webhook events (typically contains a single event)
    - `event` 'CARRIER_ACTIVATED' | 'CARRIER_CONTACT_CREATED' | 'CARRIER_CONTACT_UPDATED' | 'CARRIER_CONTACT_DELETED' | 'CARRIER_CREATED' | 'CARRIER_DEACTIVATED' | 'CARRIER_DELETED' | 'CARRIER_FACTOR_CREATED' | 'CARRIER_FACTOR_UPDATED' | 'CARRIER_FACTOR_DELETED' | 'CARRIER_INVOICE_CREATED' | 'CARRIER_PAYMENT_CREATED' | 'CARRIER_PAYMENT_METHOD_CREATED' | 'CARRIER_PAYMENT_METHOD_UPDATED' | 'CARRIER_PAYMENT_METHOD_DELETED' | 'CARRIER_UPDATED' | 'COMMISSION_APPROVED' | 'COMMISSION_CREATED' | 'COMPANY_CREATED' | 'COMPANY_UPDATED' | 'COMPANY_DELETED' | 'CUSTOMER_CREATED' | 'CUSTOMER_UPDATED' | 'CUSTOMER_DELETED' | 'CUSTOMER_CONTACT_CREATED' | 'CUSTOMER_CONTACT_UPDATED' | 'CUSTOMER_CONTACT_DELETED' | 'CUSTOMER_INVOICE_CREATED' | 'CUSTOMER_PAYMENT_CREATED' | 'DOCUMENT_UPLOADED' | 'QUOTE_CREATED' | 'QUOTE_LOST' | 'QUOTE_QUOTED' | 'QUOTE_REQUESTED' | 'QUOTE_WON' | 'SHIPMENT_BOOKED' | 'SHIPMENT_CANCELED' | 'SHIPMENT_CHECK_CALL' | 'SHIPMENT_CREATED' | 'SHIPMENT_DELETED' | 'SHIPMENT_DELIVERED' | 'SHIPMENT_DISPATCHED' | 'SHIPMENT_DRAFT' | 'SHIPMENT_IN_TRANSIT' | 'SHIPMENT_LOADING' | 'SHIPMENT_NEXT_CHECK_CALL_DUE' | 'SHIPMENT_NEXT_CHECK_CALL_OVERDUE' | 'SHIPMENT_OPEN' | 'SHIPMENT_PICK_UP_NEAR_NOT_BOOKED' | 'SHIPMENT_PICK_UP_NEAR_NOT_DISPATCHED' | 'SHIPMENT_RATE_CON_EXPIRED' | 'SHIPMENT_RATE_CON_NOT_SIGNED' | 'SHIPMENT_RATE_CON_SIGNED' | 'SHIPMENT_TENDER_PENDING' | 'SHIPMENT_TENDER_REJECTED' | 'SHIPMENT_UNLOADING' | 'VENDOR_CREATED' | 'VENDOR_UPDATED' | 'VENDOR_DELETED' | 'VENDOR_CONTACT_CREATED' | 'VENDOR_CONTACT_UPDATED' | 'VENDOR_CONTACT_DELETED' | 'VENDOR_INVOICE_CREATED' | 'VENDOR_PAYMENT_CREATED' | 'VENDOR_PAYMENT_METHOD_CREATED' | 'VENDOR_PAYMENT_METHOD_UPDATED' | 'VENDOR_PAYMENT_METHOD_DELETED' | 'LOCATION_CREATED' | 'LOCATION_UPDATED' | 'LOCATION_DELETED' | 'LOCATION_CONTACT_CREATED' | 'LOCATION_CONTACT_UPDATED' | 'LOCATION_CONTACT_DELETED', required — The type of webhook event
    - `timestamp` string, date-time, required — ISO 8601 timestamp when the event occurred
    - `data` object, required — Event-specific data. Structure varies by event type.
    - `diff` DiffChange[], nullable — Array of changes made during an UPDATE operation using json-diff-ts. Only present for UPDATE events. Null for CREATE and DELETE events. Each change follows the IChange interface from json-diff-ts library.
      - `type` 'REMOVE' | 'ADD' | 'UPDATE', required — The type of diff operation from json-diff-ts
      - `key` string, required — The property name that changed
      - `embeddedKey` string — Optional key used when comparing array elements by identifier
      - `value` string — The new value being set. - For ADD: The value being added - For UPDATE: The new value replacing the old one - For REMOVE: Not present
      - `oldValue` string — The previous value (only present for UPDATE operations).
      - `changes` DiffChange[] — Nested changes for complex objects

## Acknowledgement `200`

Webhook received and processed successfully

## Other responses

- `401` — Invalid or missing x-api-key header

---

[API](https://skmtc.net/mvmnt/apis/mvmnt-api.md) · [All operations](https://skmtc.net/mvmnt/apis/mvmnt-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mvmnt/mvmnt-api/revisions/c44e5e7a4256/schema)
