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

# Obtener facturas transables

> Devuelve las facturas transables (financiables) de los clientes activos de tu cartera, emitidas dentro de un rango de fechas. Por defecto el rango son los últimos 5 días. A diferencia de los demás listados, la respuesta es un arreglo JSON directo, sin paginación, ordenado por fecha de emisión descendente.

Una factura se considera transable cuando cumple todo lo siguiente:
- No fue reclamada.
- No se pagó al contado.
- Sus notas de crédito no cubren el total de su monto.
- No está cedida: o nunca se cedió, o su última cesión la devolvió al emisor.

Solo se consideran clientes activos de tu cartera. Los clientes pausados desde antes del mes en curso quedan fuera.

Con `email`, la cartera es la de ese usuario: sus clientes y los de sus subordinados. Si el usuario tiene permiso de lectura de todos los clientes, la cartera es la completa. Con `strictEmailFilter=true` se restringe a los clientes asignados directamente a ese usuario (el de `email` o, si no lo envías, el de tu API key) y se ignora el permiso de lectura total.

Como la respuesta no se pagina, acota el resultado con `startDate`, `endDate` y los filtros por RUT. Si la respuesta es demasiado grande, el endpoint responde 413.



## OpenAPI

````yaml openapi/clients.yaml GET /invoices/financiable
openapi: 3.1.0
info:
  title: API de clientes de Pruff
  version: '1'
  description: >-
    Endpoints que tus sistemas llaman para leer y operar los datos de tu empresa
    en Pruff. Todas las solicitudes van por HTTPS y se autentican con el header
    `x-api-key`. Las convenciones de formato, paginación y errores se describen
    en https://docs.pruff.com/api/introduccion.
servers:
  - url: https://api.pruff.com/api/clients
security:
  - ApiKeyAuth: []
tags:
  - name: Facturas
    description: Consulta de facturas electrónicas, facturas transables y cesiones.
  - name: Documentos
    description: Consulta y creación de documentos asociados a tus clientes.
  - name: Archivos
    description: Carga de archivos a operaciones y a los requerimientos de tus documentos.
  - name: Financiamiento
    description: >-
      Simula créditos, crea solicitudes de factoring y consulta las prórrogas de
      tu empresa.
  - name: Comité
    description: >-
      Consulta las aprobaciones de una solicitud en los comités de riesgo y de
      operaciones, y registra nuevas firmas.
  - name: Chat
    description: Exporta y envía mensajes del chat de una solicitud.
  - name: Reportes
    description: >-
      Reportes de operaciones, cartera, recaudaciones, cuentas pendientes y
      flujos de tu empresa.
  - name: Datahub
    description: >-
      Consulta de la información tributaria, financiera y de riesgo que Pruff
      tiene de tus clientes y deudores.
  - name: Mercado Público
    description: >-
      Licitaciones y órdenes de compra de Mercado Público (ChileCompra) cargadas
      en Pruff.
  - name: CRM
    description: >-
      Datos comerciales de tu CRM en Pruff: empresas con su ficha, pipeline,
      prospectos, gestiones y simulaciones.
  - name: SGR
    description: Operaciones SGR (garantías) de tu empresa.
  - name: Sincronizador
    description: >-
      Pide sincronizar a un cliente con el SII o la TGR para obtener su
      información más actualizada, y consulta el estado de esas
      sincronizaciones.
  - name: Usuarios
    description: >-
      Administra los usuarios de tu empresa en Pruff (crear, editar, eliminar,
      consultar su perfil y asignar subordinados) y consulta las cuentas
      (empresas conectadas) a las que cada usuario tiene acceso.
  - name: Contactos
    description: Crea contactos asociados a las empresas de tu cartera.
paths:
  /invoices/financiable:
    get:
      tags:
        - Facturas
      summary: Obtener facturas transables
      description: >-
        Devuelve las facturas transables (financiables) de los clientes activos
        de tu cartera, emitidas dentro de un rango de fechas. Por defecto el
        rango son los últimos 5 días. A diferencia de los demás listados, la
        respuesta es un arreglo JSON directo, sin paginación, ordenado por fecha
        de emisión descendente.


        Una factura se considera transable cuando cumple todo lo siguiente:

        - No fue reclamada.

        - No se pagó al contado.

        - Sus notas de crédito no cubren el total de su monto.

        - No está cedida: o nunca se cedió, o su última cesión la devolvió al
        emisor.


        Solo se consideran clientes activos de tu cartera. Los clientes pausados
        desde antes del mes en curso quedan fuera.


        Con `email`, la cartera es la de ese usuario: sus clientes y los de sus
        subordinados. Si el usuario tiene permiso de lectura de todos los
        clientes, la cartera es la completa. Con `strictEmailFilter=true` se
        restringe a los clientes asignados directamente a ese usuario (el de
        `email` o, si no lo envías, el de tu API key) y se ignora el permiso de
        lectura total.


        Como la respuesta no se pagina, acota el resultado con `startDate`,
        `endDate` y los filtros por RUT. Si la respuesta es demasiado grande, el
        endpoint responde 413.
      operationId: getFinanciableInvoices
      parameters:
        - name: email
          in: query
          required: false
          description: >-
            Email de un usuario de tu empresa. Filtra por las facturas de los
            clientes en la cartera de ese usuario.
          schema:
            type: string
            format: email
          example: ejecutivo@example.com
        - name: startDate
          in: query
          required: false
          description: >-
            Fecha de emisión desde la cual quieres facturas (inclusive), en
            formato `YYYY-MM-DD`. Por defecto son 5 días antes de `endDate`.
          schema:
            type: string
            format: date
          example: '2026-05-01'
        - name: endDate
          in: query
          required: false
          description: >-
            Fecha de emisión hasta la cual quieres facturas (inclusive), en
            formato `YYYY-MM-DD`. Se compara contra las 00:00 UTC de ese día.
            Por defecto es el momento de la consulta.
          schema:
            type: string
            format: date
          example: '2026-05-30'
        - name: businessIdentifiers
          in: query
          required: false
          description: >-
            RUTs de los emisores, sin puntos y con guion. Separa varios con
            comas.
          schema:
            type: string
          example: 11111111-1,22222222-2
        - name: stakeholderIdentifiers
          in: query
          required: false
          description: >-
            RUTs de los deudores, sin puntos y con guion. Separa varios con
            comas.
          schema:
            type: string
          example: 33333333-3
        - name: code
          in: query
          required: false
          description: >-
            Tipo de DTE de la factura. `33` es factura afecta, `34` es factura
            exenta y `46` es factura de compra.
          schema:
            type: string
            enum:
              - '33'
              - '34'
              - '46'
          example: '33'
        - name: strictEmailFilter
          in: query
          required: false
          description: >-
            Con `true`, restringe el resultado a los clientes asignados
            directamente al usuario (el de `email` o, si no lo envías, el de tu
            API key), sin los de sus subordinados, e ignora su permiso de
            lectura total.
          schema:
            type: string
            enum:
              - 'true'
              - 'false'
            default: 'false'
          example: 'true'
      responses:
        '200':
          description: >-
            Arreglo de facturas transables. Es un arreglo vacío si ninguna
            cumple los filtros.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FinanciableInvoice'
              example:
                - id: dc5a0090-5458-477f-8934-d86c6679bea5
                  folio: '101'
                  code: '33'
                  businessIdentifier: 11111111-1
                  businessName: Cliente Ejemplo SpA
                  amount: 10000000
                  confirmDate: null
                  issuedDate: '2026-05-14T00:00:00.000Z'
                  receiptDate: '2026-05-15T00:00:00.000Z'
                  cancelDate: null
                  status: Transable
                  cessionaryName: '--'
                  stakeholderIdentifier: 33333333-3
                  stakeholderSalesSegment: 6
                  stakeholderName: Deudor Ejemplo SpA
                  executiveName: Ana Pérez
                  paymentType: null
                  enforceableTitle: false
        '400':
          description: >-
            Algún query param no cumple el formato esperado. `displayMessage`
            describe el primer error y `data.errors` los lista todos.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
              examples:
                invalidCode:
                  summary: Tipo de DTE no permitido
                  value:
                    message: invalid_value
                    displayMessage: code must be one of 33, 34, 46
                    data:
                      errors:
                        - path: code
                          message: code must be one of 33, 34, 46
                          code: invalid_value
                invalidDate:
                  summary: Fecha con formato incorrecto
                  value:
                    message: invalid_format
                    displayMessage: Date must be formatted as YYYY-MM-DD
                    data:
                      errors:
                        - path: startDate
                          message: Date must be formatted as YYYY-MM-DD
                          code: invalid_format
                invalidRange:
                  summary: startDate posterior a endDate
                  value:
                    message: custom
                    displayMessage: startDueDate must be before or equal to endDueDate
                    data:
                      errors:
                        - path: endDueDate
                          message: startDueDate must be before or equal to endDueDate
                          code: custom
                invalidEmail:
                  summary: Email con formato incorrecto
                  value:
                    message: invalid_format
                    displayMessage: Invalid email address
                    data:
                      errors:
                        - path: email
                          message: Invalid email address
                          code: invalid_format
                invalidStrictEmailFilter:
                  summary: strictEmailFilter distinto de true o false
                  value:
                    message: invalid_value
                    displayMessage: Value must be "true" or "false"
                    data:
                      errors:
                        - path: strictEmailFilter
                          message: Value must be "true" or "false"
                          code: invalid_value
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: >-
            No existe un usuario con el `email` indicado. Esta validación se
            hace antes que la de los demás parámetros.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                message: User ejecutivo@example.com not found
        '413':
          description: >-
            La respuesta es demasiado grande. Reduce el rango de fechas o agrega
            filtros. `message` es `RESPONSE_PAYLOAD_OVER_LIMIT` o
            `RESPONSE_PAYLOAD_EXCEEDS_SERIALIZATION_LIMIT`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                message: RESPONSE_PAYLOAD_OVER_LIMIT
                displayMessage: >-
                  La respuesta es demasiado grande para procesarse. Reduce el
                  rango de fechas o los filtros.
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
        '504':
          $ref: '#/components/responses/Timeout'
components:
  schemas:
    FinanciableInvoice:
      type: object
      description: Factura transable de un cliente de tu cartera.
      required:
        - id
        - folio
        - code
        - businessIdentifier
        - businessName
        - amount
        - confirmDate
        - issuedDate
        - receiptDate
        - cancelDate
        - status
        - cessionaryName
        - stakeholderIdentifier
        - stakeholderName
        - stakeholderSalesSegment
        - paymentType
        - enforceableTitle
      properties:
        id:
          type: string
          format: uuid
          description: Identificador único de la factura.
          example: dc5a0090-5458-477f-8934-d86c6679bea5
        folio:
          type: string
          description: Folio de la factura.
          example: '101'
        code:
          type: string
          description: >-
            Tipo de DTE de la factura, por ejemplo `33` (afecta), `34` (exenta)
            o `46` (de compra).
          example: '33'
        businessIdentifier:
          type: string
          description: RUT del emisor de la factura.
          example: 11111111-1
        businessName:
          type: string
          description: Nombre del emisor de la factura.
          example: Cliente Ejemplo SpA
        amount:
          type: integer
          description: Monto total de la factura, en CLP.
          example: 10000000
        confirmDate:
          type:
            - string
            - 'null'
          format: date-time
          description: Fecha del acuse de recibo. Es null si no se ha confirmado.
          example: null
        issuedDate:
          type: string
          format: date-time
          description: Fecha de emisión de la factura, en formato ISO 8601 (UTC).
          example: '2026-05-14T00:00:00.000Z'
        receiptDate:
          type: string
          format: date-time
          description: >-
            Fecha de recepción de la factura. Si Pruff no la conoce, es igual a
            `issuedDate`.
          example: '2026-05-15T00:00:00.000Z'
        cancelDate:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Fecha de cancelación de la factura. Como las facturas reclamadas no
            son transables, siempre es null.
          example: null
        status:
          type: string
          description: Estado de la factura. Siempre `Transable`.
          example: Transable
        cessionaryName:
          type: string
          description: >-
            Nombre del cesionario de la primera cesión de la factura. Es `--` si
            la factura nunca se cedió.
          example: '--'
        stakeholderIdentifier:
          type: string
          description: RUT del deudor de la factura.
          example: 33333333-3
        stakeholderSalesSegment:
          type:
            - integer
            - 'null'
          description: >-
            Segmento de ventas del deudor, según su información tributaria más
            reciente. Es null si no está disponible.
          example: 6
        stakeholderName:
          type: string
          description: Nombre del deudor.
          example: Deudor Ejemplo SpA
        executiveName:
          type: string
          description: >-
            Nombre del usuario ejecutivo asignado al emisor. Se omite si el
            emisor no tiene ejecutivo en tu cartera. Es cadena vacía si el
            ejecutivo no tiene nombre registrado. Si el emisor tiene varios
            ejecutivos, se devuelve el de mayor identificador de usuario.
          example: Ana Pérez
        paymentType:
          type:
            - string
            - 'null'
          description: >-
            Forma de pago informada en la factura. Los valores conocidos son `P`
            (pago al contado), `C` y `A`. Las facturas pagadas al contado (`P`)
            no son transables, por lo que en este endpoint es `C`, `A` o null.
          example: null
        enforceableTitle:
          type: boolean
          description: >-
            Indica si la factura tiene mérito ejecutivo. Es `true` si tiene
            acuse de recibo o si pasaron al menos 9 días desde su fecha de
            recepción; en cualquier otro caso es `false`.
          example: false
    ValidationError:
      type: object
      required:
        - message
        - displayMessage
        - data
      description: Error de validación del body, de los query params o de los path params.
      properties:
        message:
          type: string
          description: >-
            Código del primer error de validación (por ejemplo `custom`,
            `invalid_type`, `invalid_format`, `invalid_value`, `invalid_union`).
        displayMessage:
          type: string
          description: >-
            Mensaje del primer error de validación, pensado para mostrarlo a una
            persona. Normalmente en español; algunos mensajes de validación
            vienen en inglés.
        data:
          type: object
          required:
            - errors
          properties:
            errors:
              type: array
              description: Todos los errores de validación encontrados.
              items:
                type: object
                required:
                  - path
                  - message
                  - code
                properties:
                  path:
                    type: string
                    description: >-
                      Campo con el error. Para listas incluye la posición, por
                      ejemplo `types.0`. `(root)` si el error es del body
                      completo.
                  message:
                    type: string
                    description: Descripción del error en español.
                  code:
                    type: string
                    description: Código del tipo de error.
    Error:
      type: object
      required:
        - message
      properties:
        message:
          type: string
          description: >-
            Identifica el error. En algunos casos es un texto en inglés con
            valores variables. Para tu lógica, usa el código HTTP y, cuando
            exista, `data.code`.
        displayMessage:
          type: string
          description: >-
            Mensaje pensado para mostrarlo a una persona. Normalmente en
            español; algunos mensajes de validación vienen en inglés.
        data:
          description: Detalle adicional del error, cuando existe.
  responses:
    Unauthorized:
      description: >-
        Falta el header `x-api-key`, su valor no es válido o la cuenta de API de
        tu empresa no está habilitada.
      content:
        application/json:
          schema:
            type: object
            required:
              - message
            properties:
              message:
                type: string
          example:
            message: 'Unauthorized: Invalid API Key'
    TooManyRequests:
      description: >-
        Tu empresa superó el límite de solicitudes. Todas las API keys de tu
        empresa comparten el mismo límite. Espera los segundos que indica el
        header `Retry-After` (o `data.retryAfterSeconds`) antes de reintentar.
      headers:
        Retry-After:
          description: Segundos que debes esperar antes de reintentar.
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: >-
              Rate limit exceeded: 501 requests in the current 60s window, limit
              is 500. Retry in 12s.
            displayMessage: >-
              Superaste el límite de 500 solicitudes cada 60 segundos. Vuelve a
              intentarlo en 12 segundos.
            data:
              code: RATE_LIMIT_EXCEEDED
              scope: All API keys of your company share this budget.
              limit: 500
              used: 501
              windowSeconds: 60
              retryAfterSeconds: 12
              resetAt: '2026-11-04T15:00:12.000Z'
              hint: >-
                Wait until resetAt (or honor the Retry-After header) before
                retrying. Avoid repeating identical requests: reuse responses
                you already fetched, use filters and larger pageSize values
                instead of one request per item, and cap your client
                concurrency.
    InternalError:
      description: >-
        Error inesperado en Pruff. El texto de `message` puede variar (por
        ejemplo en mayúsculas); no dependas de él.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: Internal server error
    Timeout:
      description: >-
        La solicitud superó el tiempo máximo de 55 segundos. La operación puede
        haberse completado igual: antes de reintentar una solicitud que crea o
        modifica datos, verifica su estado.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: request_timeout
            displayMessage: La solicitud excedió el tiempo máximo permitido
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key que Pruff entrega a tu empresa.

````

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