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

# Set device webhook configuration

> Set a custom webhook configuration for a specific device. When set, webhook events for this device
will be sent to this URL instead of the global webhook URL. Device-level `webhook_secret`,
`webhook_events`, and `webhook_insecure_skip_verify` override the global webhook settings for this device.

Set to empty string to clear and use the global webhook.




## OpenAPI

````yaml /openapi.yml patch /devices/{device_id}/webhook
openapi: 3.0.0
info:
  title: WhatsApp API MultiDevice
  version: 9.7.0
  description: |
    This API is used for sending whatsapp via API.

    The web dashboard is a separate project (gowa-ui); the server downloads its
    latest release asset and serves it at `/` (or returns a JSON banner when
    APP_UI_ENABLED=false).

    Device scoping:
    - Send `X-Device-Id` on all device-scoped REST calls.
    - WebSocket: connect to `/ws?device_id=<id>`.
    - WebSocket auth (when basic auth is enabled): browsers cannot set an
      Authorization header on WebSocket connections, so also pass
      `&authorization=<base64(user:pass)>` in the query string. Use TLS in
      production since the credential is visible in the URL.
servers:
  - url: http://localhost:3000
security:
  - basicAuth: []
tags:
  - name: app
    description: Initial Connection to Whatsapp server
  - name: device
    description: Device management for multi-device support
  - name: user
    description: Getting information
  - name: send
    description: Send Message (Text/Image/File/Video).
  - name: message
    description: Message manipulation (revoke/react/update).
  - name: call
    description: Call management (reject incoming calls)
  - name: chat
    description: Chat conversations and messaging
  - name: group
    description: Group setting
  - name: newsletter
    description: newsletter setting
  - name: chatwoot
    description: Chatwoot integration for customer support
paths:
  /devices/{device_id}/webhook:
    patch:
      tags:
        - device
      summary: Set device webhook configuration
      description: >
        Set a custom webhook configuration for a specific device. When set,
        webhook events for this device

        will be sent to this URL instead of the global webhook URL. Device-level
        `webhook_secret`,

        `webhook_events`, and `webhook_insecure_skip_verify` override the global
        webhook settings for this device.


        Set to empty string to clear and use the global webhook.
      operationId: updateDeviceWebhook
      parameters:
        - name: device_id
          in: path
          required: true
          schema:
            type: string
          description: Device ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                webhook_url:
                  type: string
                  description: >-
                    Custom webhook URL to use for this device. Set to empty
                    string to clear.
                  example: https://example.com/webhook
                webhook_secret:
                  type: string
                  description: >-
                    Optional secret used to sign payloads for this device
                    webhook.
                  example: super-secret-key
                webhook_events:
                  type: string
                  description: >-
                    Optional comma-separated event whitelist for this device
                    webhook. Empty means all events.
                  example: message,message.ack
                webhook_insecure_skip_verify:
                  type: boolean
                  description: >-
                    Optional. Skip TLS certificate verification for this device
                    webhook.
                  example: false
              required:
                - webhook_url
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    example: 200
                  code:
                    type: string
                    example: SUCCESS
                  message:
                    type: string
                    example: Device webhook updated
                  results:
                    type: object
                    properties:
                      device_id:
                        type: string
                        description: The device ID
                        example: my-device
                      webhook_url:
                        type: string
                        description: The configured webhook URL
                        example: https://example.com/webhook
                      webhook_secret:
                        type: string
                        description: Secret used to sign payloads for this device webhook
                        example: super-secret-key
                      webhook_events:
                        type: string
                        description: >-
                          Comma-separated event whitelist for this device
                          webhook
                        example: message,message.ack
                      webhook_insecure_skip_verify:
                        type: boolean
                        description: >-
                          Whether TLS verification is skipped for this device
                          webhook
                        example: false
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBadRequest'
        '404':
          description: Device not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorNotFound'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInternalServer'
components:
  schemas:
    ErrorBadRequest:
      type: object
      properties:
        code:
          type: string
          example: 400
          description: HTTP Status Code
        message:
          type: string
          example: field cannot be blank
          description: Detail error message
        results:
          type: object
          example: null
          description: additional data
    ErrorNotFound:
      type: object
      properties:
        code:
          type: string
          example: 404
          description: HTTP Status Code
        message:
          type: string
          example: Chat not found
          description: Detail error message
        results:
          type: object
          example: null
          description: additional data
    ErrorInternalServer:
      type: object
      properties:
        code:
          type: string
          example: INTERNAL_SERVER_ERROR
          description: SYSTEM_CODE_ERROR
        message:
          type: string
          example: you are not loggin
          description: Detail error message
        results:
          type: object
          example: null
          description: additional data
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.