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

# Create Webhook

> Create a webhook destination. Webhooks are available on paid subscriptions only.

<Note>
  Webhooks are available on paid subscriptions only.
</Note>


## OpenAPI

````yaml post /webhooks
openapi: 3.1.0
info:
  title: thanks.io API
  description: >-
    Use the thanks.io API to send postcards, letters, notecards, windowless
    letters, and gift cards.
  contact:
    url: https://www.thanks.io
    email: support@thanks.io
  version: 1.0.0
servers:
  - url: https://api.thanks.io/api/v2
    description: The main API server for thanks.io
security:
  - bearerAuth: []
tags:
  - name: Recipients
  - name: Mailing Lists
  - name: Send Mailer
  - name: Orders
  - name: Message Templates
  - name: Image Templates
  - name: Handwriting Styles
  - name: Giftcards
  - name: Dynamic Images
    description: ''
  - name: Image Builder
  - name: Sub Accounts
externalDocs:
  description: Learn more about thanks.io
  url: https://docs.thanks.io
paths:
  /webhooks:
    post:
      tags:
        - Webhooks
      summary: Create Webhook
      description: >-
        Create a webhook destination. Webhooks are available on paid
        subscriptions only.
      operationId: createWebhook
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                url:
                  type: string
                  format: uri
                  example: https://example.com/webhooks/thanksio
                type:
                  $ref: '#/components/schemas/webhook-type'
                description:
                  type:
                    - string
                    - 'null'
                  example: Order status updates
                verb:
                  type: string
                  example: post
                mailing_list_id:
                  type:
                    - integer
                    - 'null'
                  example: null
              required:
                - url
                - type
                - verb
            example:
              url: https://example.com/webhooks/thanksio
              type: order.status_update
              description: Order status updates
              verb: post
              mailing_list_id: null
      responses:
        '201':
          description: Created
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    $ref: '#/components/schemas/webhook-type'
                  url:
                    type: string
                    format: uri
                    example: https://example.com/webhooks/thanksio
                  description:
                    type:
                      - string
                      - 'null'
                    example: Order status updates
                  verb:
                    type: string
                    example: post
                  mailing_list_id:
                    type:
                      - integer
                      - 'null'
                    example: null
                  user_id:
                    type: integer
                    example: 2
                  invoke_count:
                    type: integer
                    example: 0
                  updated_at:
                    type: string
                    format: date-time
                    example: '2026-03-10T18:59:24.000000Z'
                  created_at:
                    type: string
                    format: date-time
                    example: '2026-03-10T18:59:24.000000Z'
                  id:
                    type: integer
                    example: 13
              example:
                type: order.status_update
                url: https://example.com/webhooks/thanksio
                description: Order status updates
                verb: post
                mailing_list_id: null
                user_id: 2
                invoke_count: 0
                updated_at: '2026-03-10T18:59:24.000000Z'
                created_at: '2026-03-10T18:59:24.000000Z'
                id: 13
        '403':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    webhook-type:
      type: string
      enum:
        - order_item.status_update
        - order.status_update
        - order_item.delivered
        - scans.scan_update
      example: order_item.status_update
  responses:
    Unauthorized:
      description: Access token is missing or invalid
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                example: Unauthorized
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer token authentication using your thanks.io API key

````