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

# Listar webhooks

> Liste todos os webhooks de um canal

## Conceituação

Retorna todos os webhooks cadastrados em um canal. O campo `auth.configured` indica se credenciais de autenticação estão definidas, mas as credenciais em si **não são retornadas** por segurança.

O campo `secret` (assinatura HMAC) também **não é retornado** na listagem — ele só está disponível no momento da criação ou atualização com `signing: true`.

<Note>
  Este endpoint requer a role **ENTERPRISE** na sua conta.
</Note>


## OpenAPI

````yaml pt/webhooks/openapi.json GET /v1/channels/{channelId}/webhooks
openapi: 3.1.0
info:
  title: Hub Message - Webhooks API
  description: >-
    API para criar e gerenciar endpoints de webhook por canal. Requer role
    ENTERPRISE.
  version: 1.0.0
servers:
  - url: https://api.hubmessage.io
security:
  - bearerAuth: []
paths:
  /v1/channels/{channelId}/webhooks:
    get:
      tags:
        - Webhooks
      summary: Listar webhooks
      description: >-
        Retorna todos os webhooks cadastrados no canal. Credenciais de
        autenticação e o `secret` HMAC não são retornados por segurança.
      operationId: listWebhooks
      parameters:
        - name: channelId
          in: path
          required: true
          description: ID do canal
          schema:
            type: string
            example: 019E4C54B1B375A28970B605CA9B03C3
      responses:
        '200':
          description: Lista de webhooks do canal
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WebhookResponse'
              example:
                - id: A1B2C3D4E5F6789012345678901234AB
                  channelId: 019E4C54B1B375A28970B605CA9B03C3
                  instanceId: 019E4C54B1B375A28970B605CA9B03C3
                  url: https://app.suaempresa.com/webhooks/hubmessage
                  description: Webhook principal de produção
                  events:
                    - MESSAGE_RECEIVED
                    - MESSAGE_STATUS
                  status: ENABLED
                  signing: true
                  auth:
                    type: BEARER
                    configured: true
                  payloadFormat: DEFAULT
                  customAttributes: {}
                  createdAt: 2025-01-15T10:30:00.000+0000
                  updatedAt: 2025-01-15T10:30:00.000+0000
                - id: B2C3D4E5F6789012345678901234AB12
                  channelId: 019E4C54B1B375A28970B605CA9B03C3
                  instanceId: 019E4C54B1B375A28970B605CA9B03C3
                  url: https://app.suaempresa.com/webhooks/eventos-conexao
                  description: Eventos de conexão
                  events:
                    - CONNECTED
                    - DISCONNECTED
                  status: ENABLED
                  signing: false
                  auth:
                    type: NONE
                    configured: false
                  payloadFormat: DEFAULT
                  customAttributes: {}
                  createdAt: 2025-01-16T08:00:00.000+0000
                  updatedAt: 2025-01-16T08:00:00.000+0000
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          description: Regra de negócio violada — conta sem role ENTERPRISE
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: 422
                message: This action requires ENTERPRISE role
components:
  schemas:
    WebhookResponse:
      type: object
      properties:
        id:
          type: string
          description: ID único do webhook
          example: A1B2C3D4E5F6789012345678901234AB
        channelId:
          type: string
          description: ID do canal ao qual o webhook pertence
          example: 019E4C54B1B375A28970B605CA9B03C3
        instanceId:
          type: string
          deprecated: true
          description: Descontinuado — use `channelId`
          example: 019E4C54B1B375A28970B605CA9B03C3
        url:
          type: string
          description: URL de destino dos eventos
          example: https://app.suaempresa.com/webhooks/hubmessage
        description:
          type: string
          nullable: true
          description: Descrição do webhook
          example: Webhook principal de produção
        events:
          type: array
          description: Tipos de evento configurados
          items:
            type: string
          example:
            - MESSAGE_RECEIVED
            - MESSAGE_STATUS
        status:
          type: string
          enum:
            - ENABLED
            - DISABLED
          description: Status atual do webhook
          example: ENABLED
        signing:
          type: boolean
          description: Indica se a assinatura HMAC está habilitada
          example: true
        auth:
          $ref: '#/components/schemas/WebhookAuthInfo'
        payloadFormat:
          type: string
          enum:
            - DEFAULT
          description: Formato do payload entregue
          example: DEFAULT
        customAttributes:
          type: object
          additionalProperties: true
          description: Atributos extras configurados
          example: {}
        createdAt:
          type: string
          format: date-time
          description: Data de criação
          example: 2025-01-15T10:30:00.000+0000
        updatedAt:
          type: string
          format: date-time
          description: Data da última atualização
          example: 2025-01-15T10:30:00.000+0000
    Error:
      type: object
      properties:
        error:
          type: integer
        message:
          type: string
    WebhookAuthInfo:
      type: object
      description: >-
        Resumo da autenticação configurada — credenciais não são retornadas por
        segurança
      properties:
        type:
          type: string
          enum:
            - NONE
            - BEARER
            - API_KEY
            - BASIC
            - CUSTOM_HEADER
          example: BEARER
        configured:
          type: boolean
          description: '`true` quando credenciais estão configuradas'
          example: true
  responses:
    Unauthorized:
      description: Token inválido ou ausente.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: 401
            message: Unauthorized
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Secret Key gerada no painel de Segurança do Hub Message

````