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

# Listar webhooks

> Obtiene la lista de webhooks configurados para las entidades accesibles del usuario autenticado. Si se proporciona master_entity_id, filtra solo los webhooks de esa entidad.

Este endpoint permite obtener la lista de webhooks configurados para las entidades accesibles del usuario autenticado. Si se proporciona `master_entity_id`, filtra solo los webhooks de esa entidad específica.

## ¿Para qué se usa?

Permite obtener la lista de webhooks configurados para las entidades accesibles del usuario. Útil para:

* Ver todos los webhooks configurados
* Verificar la configuración de notificaciones
* Revisar el estado y métricas de entrega de webhooks

## Qué hace

* Retorna todos los webhooks de las entidades accesibles del usuario
* Si se proporciona `master_entity_id`, filtra solo los webhooks de esa entidad específica
* Incluye información de eventos configurados, URLs de callback, estado activo/inactivo y métricas de entrega
* Solo retorna webhooks de entidades a las que el usuario tiene acceso

## Ejemplos de uso

* **Listar todos los webhooks:** Consultar todos los webhooks configurados para todas las entidades accesibles
* **Filtrar por entidad:** Obtener solo los webhooks de una entidad específica usando `master_entity_id`
* **Monitorear estado:** Revisar el estado de entrega y tasas de éxito de los webhooks configurados

## Consideraciones Importantes

### Acceso a Entidades

Solo se pueden consultar webhooks de entidades a las que el usuario tiene acceso. Si el usuario no tiene entidades accesibles, se retorna una lista vacía.

### Métricas de Entrega

Cada webhook incluye métricas de entrega como tasa de éxito, último código de estado HTTP, fecha del último envío e información de la última entrega. Esto permite monitorear la salud y confiabilidad de tus webhooks.


## OpenAPI

````yaml GET /webhooks
openapi: 3.0.0
info:
  title: Tupana API
  description: API para integración con el sistema Tupana - Facturación Electrónica
  version: 1.0.0
servers:
  - url: https://api.tupana.ai/v1
    description: Servidor de producción
security:
  - apiKeyAuth: []
paths:
  /webhooks:
    get:
      tags:
        - Webhooks
      summary: Listar webhooks
      description: >-
        Obtiene la lista de webhooks configurados para las entidades accesibles
        del usuario autenticado. Si se proporciona master_entity_id, filtra solo
        los webhooks de esa entidad.
      operationId: listWebhooks
      parameters:
        - name: master_entity_id
          in: query
          description: >-
            ID de la entidad maestra para filtrar webhooks. Opcional. Si no se
            proporciona, retorna webhooks de todas las entidades accesibles del
            usuario autenticado.
          required: false
          schema:
            type: integer
          example: 123
      responses:
        '200':
          description: Lista de webhooks obtenida exitosamente
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Webhook'
              example:
                - id: 1
                  url: https://mi-sistema.com/webhook
                  events:
                    - document.issued
                    - document.delivered
                  events_display:
                    - Emitido
                    - Entregado
                  secret: mi-clave-secreta
                  is_active: true
                  last_status_code: 200
                  last_sent_at: '2025-01-13T10:30:00Z'
                  success_rate: 95.5
                  last_delivery:
                    id: 123
                    event: document.issued
                    is_success: true
                    status_code: 200
                    sent_at: '2025-01-13T10:30:00Z'
                    document_id: 456
                  created_at: '2025-01-01T09:00:00Z'
                  updated_at: '2025-01-13T10:30:00Z'
        '401':
          description: Usuario no autenticado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Usuario sin acceso a entidades
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - apiKeyAuth: []
components:
  schemas:
    Webhook:
      type: object
      properties:
        id:
          type: integer
          description: ID único del webhook
        url:
          type: string
          format: uri
          description: URL del endpoint que recibe las notificaciones
        events:
          type: array
          description: Lista de eventos configurados
          items:
            type: string
            enum:
              - document.issued
              - document.delivered
              - document.rejected
              - document.paid
              - document.unpaid
              - document.cancelled
        events_display:
          type: array
          description: Nombres legibles de los eventos
          items:
            type: string
          example:
            - Emitido
            - Entregado
            - Rechazado SII
        secret:
          type: string
          description: Clave secreta para verificar notificaciones
          nullable: true
        is_active:
          type: boolean
          description: Si el webhook está activo
        last_status_code:
          type: integer
          description: Último código HTTP de respuesta
          nullable: true
        last_sent_at:
          type: string
          format: date-time
          description: Fecha de último envío
          nullable: true
        success_rate:
          type: number
          format: float
          description: Tasa de éxito de entregas (0-100)
          minimum: 0
          maximum: 100
        last_delivery:
          type: object
          description: Información de la última entrega
          nullable: true
          properties:
            id:
              type: integer
              description: ID de la entrega
            event:
              type: string
              description: Evento de la entrega
            is_success:
              type: boolean
              description: Si la entrega fue exitosa
            status_code:
              type: integer
              description: Código HTTP de respuesta
            sent_at:
              type: string
              format: date-time
              description: Fecha y hora del envío
            document_id:
              type: integer
              description: ID del documento
        created_at:
          type: string
          format: date-time
          description: Fecha de creación
        updated_at:
          type: string
          format: date-time
          description: Fecha de última actualización
    Error:
      required:
        - error
        - message
      type: object
      properties:
        error:
          type: string
          description: Código de error
          example: VALIDATION_ERROR
          enum:
            - VALIDATION_ERROR
            - AUTHENTICATION_ERROR
            - AUTHORIZATION_ERROR
            - NOT_FOUND
            - SII_ERROR
            - INTERNAL_ERROR
        message:
          type: string
          description: Mensaje de error
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        API Key para autenticación. Debe proporcionarse en el header
        Authorization con el formato: 'Api-Key YOUR-API-KEY' (incluye el prefijo
        'Api-Key ' seguido de tu API key)

````