> ## 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 api-reference/openapi-v2.json GET /webhooks/
openapi: 3.0.0
info:
  title: Tupana API — v2
  description: >-
    API v2 de Tupana: facturación electrónica, cesiones, recaudación, consultas,
    boleta de honorarios y nómina. Los identificadores de recursos son public
    IDs opacos con prefijo (docu_, ment_, cred_, doce_, empl_…).
  version: 2.0.0
servers:
  - url: https://api.tupana.ai/v2
    description: Producción (v2)
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_v2
      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: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Webhook'
                  meta:
                    type: object
                    properties:
                      page:
                        type: integer
                        nullable: true
                      page_size:
                        type: integer
                        nullable: true
                      total:
                        type: integer
                      total_pages:
                        type: integer
                        nullable: true
                  links:
                    type: object
                    properties:
                      next:
                        type: string
                        nullable: true
                      prev:
                        type: string
                        nullable: true
              example:
                data:
                  - id: dowe_2c9e5a1b7f3d0
                    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: dowe_2c9e5a1b7f3d0
                      event: document.issued
                      is_success: true
                      status_code: 200
                      sent_at: '2025-01-13T10:30:00Z'
                      document_id: docu_9f2a7c1b8e4d0
                    created_at: '2025-01-01T09:00:00Z'
                    updated_at: '2025-01-13T10:30:00Z'
                meta:
                  page: null
                  page_size: null
                  total: 1
                  total_pages: null
                links:
                  next: null
                  prev: null
        '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: string
          description: ID único del webhook
          example: dowe_2c9e5a1b7f3d0
        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.trace_updated
              - 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: string
              description: ID de la entrega
              example: wede_5f1c2a9b7d3e0
            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
        environment:
          type: string
          enum:
            - both
            - production
            - sandbox
          description: >-
            De qué ambiente recibe eventos de documentos: `both` (default),
            `production` o `sandbox`. Los eventos que no son de documento
            (credenciales, folios, cobros, programados) se entregan como
            producción.
        api_version:
          type: integer
          enum:
            - 1
            - 2
          description: >-
            Formato de los identificadores que viajan en el payload. `2`: todos
            los ids son public_id (`docu_…` documento, `ment_…` emisor/receptor,
            `scdo_…` programado, `fir_…` solicitud de folios, `dowe_…` webhook).
            `1`: ids enteros, el contrato de la API v1. Si se omite, el default
            sigue la ruta de creación: `/v2/webhooks/` crea en 2 y
            `/v1/webhooks/` crea en 1 (desde la plataforma, la versión que ya
            usa la empresa). Los webhooks creados antes de octubre 2026 quedaron
            en `1`: súbelos con PATCH o desde la plataforma.
    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)

````

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