> ## 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 cobros

> Retorna todas las sesiones de cobro creadas por el cliente API autenticado, ordenadas por fecha de creación descendente. Soporta filtro por estado.

## ¿Para qué se usa?

Obtiene todas las sesiones de cobro creadas por tu integración, ordenadas por fecha de creación descendente.

## Qué hace

* Retorna todas las sesiones de cobro del cliente API autenticado.
* Soporta filtro por `status`.
* Incluye los mismos campos que el endpoint de detalle.

## Ejemplos de uso

* **Cobros pendientes**: Filtrar por `?status=pending` para hacer seguimiento de sesiones sin pagar.
* **Cobros pagados**: Filtrar por `?status=paid` para procesar liquidaciones.
* **Historial completo**: Sin filtros para obtener todas las sesiones.


## OpenAPI

````yaml api-reference/openapi-payment-requests.json GET /payment-requests/
openapi: 3.0.0
info:
  title: Tupana API - Recaudación
  description: >-
    API de Cobros — Crea sesiones de pago, procesa cobros y emite DTE
    automáticamente.
  version: 1.0.0
servers:
  - url: https://api.tupana.ai/v1
    description: Servidor de producción
security:
  - apiKeyAuth: []
paths:
  /payment-requests/:
    get:
      tags:
        - Cobros
      summary: Listar cobros
      description: >-
        Retorna todas las sesiones de cobro creadas por el cliente API
        autenticado, ordenadas por fecha de creación descendente. Soporta filtro
        por estado.
      operationId: listPaymentRequests
      parameters:
        - name: status
          in: query
          description: Filtrar por estado de la sesión.
          required: false
          schema:
            type: string
            enum:
              - pending
              - paid
              - issued
              - failed
              - expired
              - refunded
      responses:
        '200':
          description: Lista de cobros obtenida exitosamente
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentRequestListResponse'
              example:
                results:
                  - payment_request_id: 1042
                    status: issued
                    payment_url: https://www.tupana.ai/pagos/tok_xyz
                    expires_at: '2026-04-06T12:30:00Z'
                    created_at: '2026-04-06T12:00:00Z'
                    amount: 50000
                    target_dte_type: '39'
                    auto_issue: true
                    external_id: booking_abc123
                    metadata: {}
                    issued_document_id: 9871
                    document_ids: []
        '401':
          description: API key inválida o no proporcionada
      security:
        - apiKeyAuth: []
components:
  schemas:
    PaymentRequestListResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/PaymentRequestResponse'
    PaymentRequestResponse:
      type: object
      properties:
        payment_request_id:
          type: integer
          description: ID único de la sesión de cobro.
          example: 1042
        status:
          type: string
          enum:
            - pending
            - paid
            - issued
            - failed
            - expired
            - refunded
          example: pending
        payment_url:
          type: string
          format: uri
          description: URL a la que debes redirigir al usuario para que complete el pago.
          example: https://www.tupana.ai/pagos/tok_xyz
        expires_at:
          type: string
          format: date-time
          description: Fecha y hora en que vence la sesión (UTC).
          example: '2026-04-06T12:30:00Z'
        created_at:
          type: string
          format: date-time
          description: Fecha y hora de creación de la sesión (UTC).
          example: '2026-04-06T12:00:00Z'
        amount:
          type: number
          description: Monto del cobro en CLP.
          example: 50000
        target_dte_type:
          type: string
          nullable: true
          description: >-
            Tipo de DTE que se emitirá al pagarse. `null` en modo cobro directo
            (no hay DTE a emitir).
          example: '39'
        auto_issue:
          type: boolean
          nullable: true
          description: >-
            Si el DTE se emite automáticamente al confirmarse el pago. `null` en
            modo cobro directo.
          example: true
        external_id:
          type: string
          nullable: true
          description: Tu ID propio para esta sesión.
          example: booking_abc123
        metadata:
          type: object
          additionalProperties: true
          description: Datos adicionales que enviaste al crear la sesión.
        issued_document_id:
          type: integer
          nullable: true
          description: >-
            ID del DTE emitido. `null` mientras la sesión no haya emitido el
            DTE. Siempre `null` en modo cobro directo.
          example: 9871
        document_ids:
          type: array
          items:
            type: integer
          description: >-
            IDs de los documentos que esta sesión cobra. Lista vacía en modo
            emisión (donde el DTE se emite al pagarse).
          example:
            - 9871
            - 9872
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: 'API Key para autenticación. Formato: `Api-Key YOUR-API-KEY`'

````