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

# Create webhook subscription

> Creates a webhook subscription for the provided application ID



## OpenAPI

````yaml /openapi/integration-openapi.json post /api/v1/webhooks/subscriptions
openapi: 3.0.0
info:
  title: Monument Integration API
  description: Monument Integration API
  version: '1.0'
  contact: {}
servers:
  - url: https://public-api.prd.monument.io
    description: Production
  - url: https://public-api.stg.monument.io
    description: Staging
security: []
tags:
  - name: Portfolios
    description: List portfolios accessible to the API key
  - name: Facilities
    description: Facility retrieval and coverage-option configuration
  - name: Units
    description: Unit listing and MORA execution
  - name: Unit Groups
    description: Unit group listing, rate management, and unit assignment
  - name: Rental Records
    description: Rental record listing, coverage, fees, autopay, and payment links
  - name: Ledger Entries
    description: Ledger entry retrieval at facility and rental-record level
  - name: Leads
    description: Lead listing and lease sending
  - name: Tasks
    description: Task creation and listing for integrations
  - name: Tenants
    description: Tenant listing and person updates
  - name: People
    description: Person listing
  - name: Notes
    description: Note listing and creation for tenants and leads
  - name: Auctions
    description: Auction listing
  - name: Coverage
    description: Portfolio-level coverage CRUD and coverage history
  - name: Summary
    description: Portfolio-level aggregate summaries (insurance enrollment/occupancy)
  - name: Promotions
    description: Promotion listing
  - name: ECRI
    description: Effective Current Rent Increase scheduling
  - name: Item Types
    description: Item type listing per facility
  - name: Delinquencies
    description: Delinquency listing per facility
  - name: Physical Locks
    description: Physical lock assignment and unassignment
  - name: Lead Source Options
    description: Lead source option listing
  - name: Webhooks
    description: Webhook subscription management
  - name: Payments
    description: Payment profile creation
paths:
  /api/v1/webhooks/subscriptions:
    post:
      tags:
        - Webhooks
      summary: Create webhook subscription
      description: Creates a webhook subscription for the provided application ID
      operationId: PrivateWebhooksController_createSubscription
      parameters:
        - in: path
          required: true
          name: portfolio
          schema:
            example: abc_selfstorage
        - in: header
          required: true
          name: x-api-key
          schema:
            example: monument-2230012-2312321
            description: >-
              Api key required to authenticate your request. Please reach out to
              monument for a key.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSubscriptionDto'
      responses:
        '200':
          description: Successfully created webhook subscription
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateSubscriptionResponseDto'
        '400':
          description: >-
            Bad request - invalid body, event types, URL, or subscription
            already exists
        '404':
          description: Application ID not found or not owned
        '502':
          description: Service error
        '503':
          description: Secret retrieval failure
components:
  schemas:
    CreateSubscriptionDto:
      type: object
      properties:
        targetUrl:
          type: string
          example: https://vendor.example.com/webhooks/monument
          description: >-
            Target webhook URL (HTTPS only; no localhost, loopback, or private
            IPs). A query string is allowed and can be used to disambiguate the
            same base URL across multiple portfolios — Svix treats distinct
            query strings as distinct endpoints.
        eventTypes:
          example:
            - moved-in
            - moved_out
          description: Array of event types to subscribe to
          type: array
          items:
            type: string
        description:
          type: string
          example: webhook
          description: Description of the webhook subscription
        facilityUuids:
          example: []
          description: Facility UUIDs
          type: array
          items:
            type: string
        amenityUuids:
          example: []
          description: Amenity UUIDs
          type: array
          items:
            type: string
        unitTypes:
          example: []
          description: Unit type UUIDs
          type: array
          items:
            type: string
        portfolio:
          type: string
          example: ''
          description: Database prefix (portfolio)
      required:
        - targetUrl
        - eventTypes
        - description
        - portfolio
    CreateSubscriptionResponseDto:
      type: object
      properties:
        applicationId:
          type: string
          example: app_1234567890
          description: Svix application ID
        url:
          type: string
          example: https://vendor.example.com/webhooks/monument
          description: Webhook URL
        subscribedEventTypes:
          example:
            - move_in
            - move_out
          description: Subscribed event types
          type: array
          items:
            type: string
        facilityUuids:
          example: []
          description: Facility UUIDs
          type: array
          items:
            type: string
        amenityUuids:
          example: []
          description: Amenity UUIDs
          type: array
          items:
            type: string
        unitTypes:
          example: []
          description: Unit type UUIDs
          type: array
          items:
            type: string
        databasePrefix:
          type: string
          example: ''
          description: Database prefix
        secret:
          type: string
          example: '****'
          description: Endpoint secret
      required:
        - applicationId
        - url
        - subscribedEventTypes
        - facilityUuids
        - amenityUuids
        - unitTypes
        - databasePrefix
        - secret

````