> ## 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 libro de curse

> Devuelve el libro de curse: una fila por cada solicitud cursada de factoring, crédito o confirming, con sus montos, costos y condiciones. Eliges el producto con `type`; cada consulta devuelve un solo producto.

**Qué solicitudes incluye.** En factoring, las solicitudes activas, completadas o en mora. En crédito y confirming, las activas o completadas.

**Filtro de fechas.** `startDate` y `endDate` acotan por fecha de operación (ambos días incluidos) y puedes enviar solo uno: con `startDate` sola se devuelven las solicitudes desde ese día, y con `endDate` sola, hasta ese día. Si no envías ninguna, en factoring no se filtra por fecha y en crédito y confirming se devuelven las solicitudes de los últimos 30 días. No hay un límite de días entre `startDate` y `endDate`, pero `endDate` no puede ser anterior a `startDate`. Se recomienda consultar rangos acotados, por ejemplo un mes.

**Orden y paginación.** Los resultados se paginan (máximo 100 por página) y, en los tres productos, vienen ordenados por fecha de operación, de la más reciente a la más antigua. Si dos solicitudes tienen la misma fecha de operación, su orden es fijo. El orden es estable: al recorrer todas las páginas ninguna solicitud se repite ni se pierde.

**Alcance.** Si tu API key pertenece a un usuario sin acceso a toda la cartera, solo ves las solicitudes asignadas a ese usuario y a su equipo.



## OpenAPI

````yaml openapi/clients.yaml GET /reporting/transactionBook
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:
  /reporting/transactionBook:
    get:
      tags:
        - Reportes
      summary: Obtener libro de curse
      description: >-
        Devuelve el libro de curse: una fila por cada solicitud cursada de
        factoring, crédito o confirming, con sus montos, costos y condiciones.
        Eliges el producto con `type`; cada consulta devuelve un solo producto.


        **Qué solicitudes incluye.** En factoring, las solicitudes activas,
        completadas o en mora. En crédito y confirming, las activas o
        completadas.


        **Filtro de fechas.** `startDate` y `endDate` acotan por fecha de
        operación (ambos días incluidos) y puedes enviar solo uno: con
        `startDate` sola se devuelven las solicitudes desde ese día, y con
        `endDate` sola, hasta ese día. Si no envías ninguna, en factoring no se
        filtra por fecha y en crédito y confirming se devuelven las solicitudes
        de los últimos 30 días. No hay un límite de días entre `startDate` y
        `endDate`, pero `endDate` no puede ser anterior a `startDate`. Se
        recomienda consultar rangos acotados, por ejemplo un mes.


        **Orden y paginación.** Los resultados se paginan (máximo 100 por
        página) y, en los tres productos, vienen ordenados por fecha de
        operación, de la más reciente a la más antigua. Si dos solicitudes
        tienen la misma fecha de operación, su orden es fijo. El orden es
        estable: al recorrer todas las páginas ninguna solicitud se repite ni se
        pierde.


        **Alcance.** Si tu API key pertenece a un usuario sin acceso a toda la
        cartera, solo ves las solicitudes asignadas a ese usuario y a su equipo.
      operationId: getTransactionBook
      parameters:
        - name: type
          in: query
          required: true
          description: Producto del que quieres el libro de curse.
          schema:
            type: string
            enum:
              - factoring
              - credit
              - confirming
          example: factoring
        - name: startDate
          in: query
          required: false
          description: >-
            Fecha de operación desde la cual quieres el libro de curse
            (YYYY-MM-DD), incluida. Puedes enviarla sin `endDate`.
          schema:
            type: string
            format: date
          example: '2026-06-01'
        - name: endDate
          in: query
          required: false
          description: >-
            Fecha de operación hasta la cual quieres el libro de curse
            (YYYY-MM-DD), incluida. Puedes enviarla sin `startDate`. Si envías
            ambas, no puede ser anterior a `startDate`.
          schema:
            type: string
            format: date
          example: '2026-06-30'
        - name: businessIdentifier
          in: query
          required: false
          description: >-
            RUT del cliente de la solicitud (por ejemplo `11111111-1`). En
            confirming es el RUT del deudor que contrata el confirming. Envía un
            solo valor.
          schema:
            type: string
          example: 11111111-1
        - name: requestId
          in: query
          required: false
          description: >-
            Identificador de una solicitud específica. Debe ser un entero entre
            1 y 2147483647; otro valor responde `400`. Un valor vacío
            (`requestId=`) se ignora y no filtra.
          schema:
            type: integer
            minimum: 1
            maximum: 2147483647
          example: 160
        - name: page
          in: query
          required: false
          description: Número de página, desde 1.
          schema:
            type: integer
            minimum: 1
            default: 1
          example: 1
        - name: pageSize
          in: query
          required: false
          description: Cantidad de solicitudes por página (máximo 100).
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
          example: 20
      responses:
        '200':
          description: Libro de curse de la página pedida.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportTransactionBookResponse'
              examples:
                factoring:
                  summary: Factoring
                  value:
                    data:
                      - requestType: Factoring
                        businessIdentifier: 11111111-1
                        businessName: Cliente Ejemplo SpA
                        executiveName: Ana Pérez
                        executiveEmail: ana.perez@example.com
                        requestId: 160
                        requestDate: '2026-06-19'
                        documentType: Factura electrónica
                        amount: 1959252
                        advancedPercentage: 100
                        advancedAmount: 1959252
                        rate: 2.35
                        priceDifference: 70598
                        commissionAmount: 30000
                        commissionIVA: 5700
                        expensesCost: 30000
                        expensesIVA: 0
                        taxes: 0
                        notary: 0
                        documentsAppliedAmount: 784686
                        remainingAmount: 1038268
                        amountToDeliver: 1038267
                        arrearRate: 4.1
                        fundSellRate: 1.45
                        fundCostTotal: 43561
                        operationDaysAvg: 25
                    pagination:
                      total: 1
                      page: 1
                      pageSize: 10
                      totalPages: 1
                credit:
                  summary: Crédito
                  value:
                    data:
                      - requestType: Crédito
                        businessIdentifier: 11111111-1
                        businessName: Cliente Ejemplo SpA
                        executiveName: Ana Pérez
                        executiveEmail: ana.perez@example.com
                        requestId: 161
                        requestDate: '2026-06-19'
                        documentType: Capital de trabajo
                        amount: 2115550
                        advancedPercentage: 100
                        advancedAmount: 1959252
                        rate: 2.35
                        priceDifference: 70598
                        commissionAmount: 30000
                        commissionIVA: 5700
                        expensesCost: 30000
                        expensesIVA: 0
                        taxes: 12000
                        notary: 8000
                        documentsAppliedAmount: 0
                        remainingAmount: 1802954
                        amountToDeliver: 1802954
                        arrearRate: 3.5
                        fundSellRate: null
                        fundCostTotal: null
                        operationDaysAvg: 30
                    pagination:
                      total: 1
                      page: 1
                      pageSize: 10
                      totalPages: 1
        '400':
          description: >-
            Algún parámetro es inválido. `message` describe el problema, en
            inglés. Si el error es de `requestId`, `message` es un código (por
            ejemplo `too_small`) y el texto del problema va en `displayMessage`
            y en `data.errors`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                typeRequired:
                  summary: type query parameter is required
                  value:
                    message: type query parameter is required
                typeInvalid:
                  summary: >-
                    type query parameter must be one of the following:
                    factoring, credit, confirming
                  value:
                    message: >-
                      type query parameter must be one of the following:
                      factoring, credit, confirming
                pageRequired:
                  summary: page and pageSize query parameters are required
                  value:
                    message: page and pageSize query parameters are required
                startDateInvalid:
                  summary: startDate is not a valid date
                  value:
                    message: startDate is not a valid date
                endDateInvalid:
                  summary: endDate is not a valid date
                  value:
                    message: endDate is not a valid date
                rangeInvalid:
                  summary: startDate must be before endDate
                  value:
                    message: startDate must be before endDate
                pageNotPositive:
                  summary: page and pageSize must be greater than 0
                  value:
                    message: page and pageSize must be greater than 0
                pageSizeTooBig:
                  summary: pageSize must be less or equal to 100
                  value:
                    message: pageSize must be less or equal to 100
                businessIdentifierInvalid:
                  summary: businessIdentifier must be a string
                  value:
                    message: businessIdentifier must be a string
                requestIdInvalid:
                  summary: requestId menor a 1
                  value:
                    message: too_small
                    displayMessage: requestId must be greater than 0
                    data:
                      errors:
                        - path: requestId
                          message: requestId must be greater than 0
                          code: too_small
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
        '504':
          $ref: '#/components/responses/Timeout'
components:
  schemas:
    ReportTransactionBookResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ReportTransactionBookItem'
          description: Solicitudes de la página pedida.
        pagination:
          $ref: '#/components/schemas/Pagination'
      required:
        - data
        - pagination
    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.
    ReportTransactionBookItem:
      type: object
      description: Una solicitud cursada en el libro de curse.
      properties:
        requestType:
          type: string
          description: Producto de la solicitud.
          enum:
            - Factoring
            - Crédito
            - Confirming
          example: Factoring
        businessIdentifier:
          type: string
          description: >-
            RUT del cliente de la solicitud. En confirming es el RUT del deudor
            que contrata el confirming.
          example: 11111111-1
        businessName:
          type: string
          description: Nombre del cliente de la solicitud.
          example: Cliente Ejemplo SpA
        executiveName:
          type: string
          description: >-
            Nombre del ejecutivo comercial de la solicitud. Vacío si no tiene
            ejecutivo; en créditos llega `Sin ejecutivo` en ese caso.
          example: Ana Pérez
        executiveEmail:
          type: string
          description: >-
            Email del ejecutivo comercial de la solicitud. Vacío si no tiene
            ejecutivo.
          example: ana.perez@example.com
        requestId:
          type: integer
          description: >-
            Identificador de la solicitud. Es el valor que recibes como
            `requestId` en los demás reportes y que puedes usar en `GET
            /reporting/request/{requestType}/{requestId}`.
          example: 160
        requestDate:
          type: string
          description: Fecha de operación de la solicitud (YYYY-MM-DD).
          format: date
          example: '2026-06-19'
        documentType:
          type: string
          description: >-
            Tipo de documento de la solicitud (por ejemplo `Factura
            electrónica`). En créditos es el tipo de crédito: `Consumo` o
            `Capital de trabajo`. Puede venir ausente si la solicitud no tiene
            un tipo asociado.
          example: Factura electrónica
        amount:
          type: number
          description: >-
            Monto de la operación. En factoring y confirming es el monto de la
            solicitud. En créditos es el total a pagar: capital más interés,
            comisión con IVA, notaría, impuestos y otros gastos (sin su IVA).
            Puede traer decimales.
          example: 1959252
        advancedPercentage:
          type: number
          description: Porcentaje de anticipo de la solicitud (%).
          example: 100
        advancedAmount:
          type: number
          description: >-
            Monto anticipado, redondeado al entero más cercano. En créditos es
            el capital (monto del crédito).
          example: 1959252
        rate:
          type:
            - number
            - 'null'
          description: Tasa negociada de la solicitud (%), con 2 decimales.
          example: 2.35
        priceDifference:
          type: number
          description: >-
            Diferencia de precio (interés) de la solicitud, redondeada al entero
            más cercano. En créditos es el interés total de las cuotas.
          example: 70598
        commissionAmount:
          type: number
          description: Comisión de la solicitud, sin IVA, redondeada al entero más cercano.
          example: 30000
        commissionIVA:
          type: number
          description: IVA de la comisión, redondeado al entero más cercano.
          example: 5700
        expensesCost:
          type: number
          description: >-
            Otros gastos de la solicitud, sin IVA, redondeados al entero más
            cercano.
          example: 30000
        expensesIVA:
          type: number
          description: IVA de los otros gastos, redondeado al entero más cercano.
          example: 0
        taxes:
          type: number
          description: >-
            Impuestos de la solicitud. Solo tiene valor en créditos; en el resto
            es 0.
          example: 0
        notary:
          type: number
          description: >-
            Gastos notariales de la solicitud. Solo tiene valor en créditos; en
            el resto es 0.
          example: 0
        documentsAppliedAmount:
          type:
            - number
            - 'null'
          description: >-
            Monto de documentos aplicados al pago de la solicitud (por ejemplo,
            documentos que se descuentan del giro). En crédito y confirming es
            un campo reservado, no lo uses. En factoring puede ser `null` si no
            hay aplicación.
          example: 784686
        remainingAmount:
          type: number
          description: >-
            Monto restante de la operación. En factoring: monto anticipado menos
            diferencia de precio, comisión con IVA, gastos con IVA y documentos
            aplicados. En confirming es igual a `advancedAmount`. En créditos:
            capital menos interés, comisión con IVA, notaría, impuestos y otros
            gastos (sin su IVA). Puede ser negativo si el cliente debe pagar la
            diferencia.
          example: 1038268
        amountToDeliver:
          type: number
          description: 'Total girado: suma de los giros registrados para la solicitud.'
          example: 1038267
        arrearRate:
          type:
            - number
            - 'null'
          description: Tasa de mora de la solicitud (%), con 2 decimales.
          example: 4.1
        fundSellRate:
          type:
            - number
            - 'null'
          description: >-
            Tasa de venta a fondo (%), con 2 decimales. `null` si la solicitud
            no tiene venta a fondo (siempre `null` en créditos).
          example: 1.45
        fundCostTotal:
          type:
            - number
            - 'null'
          description: >-
            Costo total de la venta a fondo, redondeado al entero más cercano.
            `null` si no hay venta a fondo.
          example: 43561
        operationDaysAvg:
          type:
            - number
            - 'null'
          description: >-
            Plazo promedio, en días, entre la fecha de operación y el
            vencimiento de los documentos de la solicitud. En créditos es el
            largo promedio, en días, del período de cada cuota. `null` si no se
            puede calcular.
          example: 25
      required:
        - requestType
        - businessIdentifier
        - businessName
        - executiveName
        - executiveEmail
        - requestId
        - requestDate
        - amount
        - advancedPercentage
        - advancedAmount
        - rate
        - priceDifference
        - commissionAmount
        - commissionIVA
        - expensesCost
        - expensesIVA
        - taxes
        - notary
        - documentsAppliedAmount
        - remainingAmount
        - amountToDeliver
        - arrearRate
        - fundSellRate
        - fundCostTotal
        - operationDaysAvg
    Pagination:
      type: object
      required:
        - total
        - page
        - pageSize
        - totalPages
      properties:
        total:
          type: integer
          description: Cantidad total de elementos que cumplen los filtros.
        page:
          type: integer
          description: Página devuelta, desde 1.
        pageSize:
          type: integer
          description: Cantidad de elementos por página.
        totalPages:
          type: integer
          description: Cantidad total de páginas.
  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.