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

> Devuelve las recaudaciones (abonos) aplicadas a documentos: monto, tipo, quién pagó, cuánto se aplicó al documento y cuánto a la mora, junto con los datos del documento, la solicitud, el cliente y el deudor. Un documento con varias recaudaciones en el período aparece en varias filas.

**Período.** Por defecto devuelve el último mes. Si envías solo `startDate`, el período termina hoy; si envías solo `endDate`, empieza un mes antes de hoy. Si envías ambos, el rango no puede superar 1 año. El período se aplica sobre `payInDate` (día UTC).

**Filtros.** `folio`, `businessIdentifier` y `stakeholderIdentifier` buscan coincidencia exacta y se pueden combinar.

**Orden.** Las filas vienen ordenadas por `conciliationDate`, de la más reciente a la más antigua. Este servicio no está paginado: acota el período para limitar el tamaño de la respuesta.

**Disponibilidad.** Si esperabas recaudaciones y `data` viene vacío, reintenta más tarde.



## OpenAPI

````yaml openapi/clients.yaml GET /reporting/collection
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/collection:
    get:
      tags:
        - Reportes
      summary: Obtener recaudaciones
      description: >-
        Devuelve las recaudaciones (abonos) aplicadas a documentos: monto, tipo,
        quién pagó, cuánto se aplicó al documento y cuánto a la mora, junto con
        los datos del documento, la solicitud, el cliente y el deudor. Un
        documento con varias recaudaciones en el período aparece en varias
        filas.


        **Período.** Por defecto devuelve el último mes. Si envías solo
        `startDate`, el período termina hoy; si envías solo `endDate`, empieza
        un mes antes de hoy. Si envías ambos, el rango no puede superar 1 año.
        El período se aplica sobre `payInDate` (día UTC).


        **Filtros.** `folio`, `businessIdentifier` y `stakeholderIdentifier`
        buscan coincidencia exacta y se pueden combinar.


        **Orden.** Las filas vienen ordenadas por `conciliationDate`, de la más
        reciente a la más antigua. Este servicio no está paginado: acota el
        período para limitar el tamaño de la respuesta.


        **Disponibilidad.** Si esperabas recaudaciones y `data` viene vacío,
        reintenta más tarde.
      operationId: getCollectionReport
      parameters:
        - name: folio
          in: query
          required: false
          description: Folio del documento recaudado.
          schema:
            type: string
          example: '4022'
        - name: businessIdentifier
          in: query
          required: false
          description: RUT del cliente del documento recaudado.
          schema:
            type: string
          example: 11111111-1
        - name: stakeholderIdentifier
          in: query
          required: false
          description: RUT del deudor del documento recaudado.
          schema:
            type: string
          example: 76111111-6
        - name: startDate
          in: query
          required: false
          description: >-
            Fecha del pago recibido (`payInDate`) desde la cual quieres el
            reporte (YYYY-MM-DD).
          schema:
            type: string
            format: date
          example: '2026-10-01'
        - name: endDate
          in: query
          required: false
          description: >-
            Fecha del pago recibido (`payInDate`) hasta la cual quieres el
            reporte (YYYY-MM-DD), incluida. El rango entre `startDate` y
            `endDate` no puede superar 1 año.
          schema:
            type: string
            format: date
          example: '2026-10-31'
      responses:
        '200':
          description: Recaudaciones del período.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportCollectionResponse'
              example:
                data:
                  - amount: 1115014
                    type: Pago recibido
                    typeId: 1234
                    requestId: 111
                    requestOperationDate: '2026-02-01'
                    requestType: Factoring
                    docType: Factura electrónica
                    payInDate: '2026-10-30T00:00:00.000Z'
                    conciliationDate: '2026-10-30T14:22:10.000Z'
                    date: '2026-10-30'
                    paidBy: Deudor
                    fundName: Fondo Ejemplo SpA
                    fundIdentifier: 96111111-0
                    conciliationDocumentAmount: 1115014
                    conciliationArrearAmount: 0
                    paymentDate: '2026-11-06'
                    documentId: 00123456-dd49-43ae-8429-f5ef123456a3
                    documentAmount: 12716935
                    currency: CLP
                    documentAdvanceAmount: 12335426
                    folio: '4022'
                    businessName: Cliente Ejemplo SpA
                    businessIdentifier: 11111111-1
                    stakeholderName: Deudor Ejemplo Ltda.
                    stakeholderIdentifier: 76111111-6
                    clientName: ''
                    clientIdentifier: ''
                    executiveName: Ana Pérez
                    collectorName: Roberto Díaz
        '400':
          description: >-
            Algún parámetro es inválido, incluida una fecha que no existe en el
            calendario, como `2026-02-30`. `message` trae el código del error,
            `displayMessage` el detalle del primer problema y `data.errors`
            todos los problemas.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                dateFormat:
                  summary: Formato de fecha inválido
                  value:
                    message: invalid_format
                    displayMessage: startDate must be formatted as YYYY-MM-DD
                    data:
                      errors:
                        - path: startDate
                          message: startDate must be formatted as YYYY-MM-DD
                          code: invalid_format
                rangeInvalid:
                  summary: Rango invertido
                  value:
                    message: custom
                    displayMessage: startDate must be before or equal to endDate
                    data:
                      errors:
                        - path: endDate
                          message: startDate must be before or equal to endDate
                          code: custom
                rangeTooLong:
                  summary: Rango mayor a un año
                  value:
                    message: custom
                    displayMessage: >-
                      The date range between startDate and endDate must not
                      exceed 1 year
                    data:
                      errors:
                        - path: endDate
                          message: >-
                            The date range between startDate and endDate must
                            not exceed 1 year
                          code: custom
                impossibleDate:
                  summary: Fecha que no existe en el calendario
                  value:
                    message: custom
                    displayMessage: startDate must be formatted as YYYY-MM-DD
                    data:
                      errors:
                        - path: startDate
                          message: startDate must be formatted as YYYY-MM-DD
                          code: custom
        '401':
          $ref: '#/components/responses/Unauthorized'
        '413':
          description: >-
            La respuesta es demasiado grande para procesarse. Reduce el rango de
            fechas o agrega filtros. Identifica este error por el status 413, no
            por el texto de `message`.
          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:
    ReportCollectionResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ReportCollectionItem'
          description: >-
            Recaudaciones del período, de la más reciente a la más antigua. No
            hay paginación.
      required:
        - data
    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.
    ReportCollectionItem:
      type: object
      description: Una recaudación aplicada a un documento.
      properties:
        amount:
          type: number
          description: Monto de la recaudación.
          example: 1115014
        type:
          type: string
          description: >-
            Tipo de recaudación en español (por ejemplo `Pago recibido` o
            `Devolución excedentes`).
          example: Pago recibido
        typeId:
          description: Identificador de la recaudación según su tipo.
          type:
            - integer
            - string
          example: 1234
        requestId:
          type:
            - integer
            - 'null'
          description: >-
            Identificador de la solicitud del documento recaudado. `null` si el
            documento no pertenece a una solicitud.
          example: 111
        requestOperationDate:
          type:
            - string
            - 'null'
          description: >-
            Fecha de operación de la solicitud del documento recaudado
            (YYYY-MM-DD). `null` si no tiene.
          format: date
          example: '2026-02-01'
        requestType:
          type:
            - string
            - 'null'
          description: >-
            Tipo de solicitud del documento recaudado (por ejemplo `Factoring`,
            `Crédito`, `Confirming`, `Prórroga` u `Otro`). `null` si no aplica.
          example: Factoring
        docType:
          type: string
          description: Tipo del documento recaudado en español.
          example: Factura electrónica
        payInDate:
          description: >-
            Fecha del pago recibido (ISO 8601). El período consultado
            (`startDate` y `endDate`) se aplica sobre este campo.
          type: string
          example: '2026-10-30T00:00:00.000Z'
        conciliationDate:
          description: >-
            Fecha y hora en que se registró la recaudación (ISO 8601). Los
            resultados vienen ordenados por este campo, de más reciente a más
            antiguo.
          type: string
          example: '2026-10-30T14:22:10.000Z'
        date:
          type: string
          description: >-
            Día en que se registró la recaudación (YYYY-MM-DD), derivado de
            `conciliationDate`. Puede quedar fuera del rango pedido, porque el
            período se aplica sobre `payInDate`.
          format: date
          example: '2026-10-30'
        paidBy:
          type: string
          description: >-
            Rol de quien pagó: `Deudor`, `Emisor`, `Cliente`, `Factoring` o `-`
            (origen no identificado).
          example: Deudor
        fundName:
          type: string
          description: >-
            Nombre del primer fondo que registró pagos sobre el documento
            recaudado. Vacío si ningún fondo ha registrado pagos.
          example: ''
        fundIdentifier:
          description: >-
            RUT del primer fondo que registró pagos sobre el documento
            recaudado. Vacío si ningún fondo ha registrado pagos.
          type:
            - string
            - integer
          example: ''
        fundSaleStatus:
          type: string
          description: >-
            Estado de la venta a fondo del documento a la fecha de la
            recaudación. Solo se informa si tu empresa tiene activado este dato.
          enum:
            - En posesión
            - Vendido
            - Recomprado
        arrearReceivableChargeAmount:
          type: number
          description: >-
            Parte de la mora de esta recaudación que corresponde cobrar como
            cuenta por cobrar cuando el documento estaba vendido a fondo. Solo
            se informa junto con `fundSaleStatus`.
        conciliationDocumentAmount:
          type: number
          description: >-
            Parte de la recaudación aplicada al documento, sin considerar la
            mora.
          example: 1115014
        conciliationArrearAmount:
          type: number
          description: Parte de la recaudación aplicada a la mora.
          example: 0
        paymentDate:
          type:
            - string
            - 'null'
          description: >-
            Fecha de vencimiento del documento recaudado (YYYY-MM-DD). `null` si
            no tiene.
          format: date
          example: '2026-11-06'
        documentId:
          type: string
          description: >-
            Identificador del documento recaudado. Úsalo en `GET
            /reporting/document/{documentId}`.
          format: uuid
          example: 00123456-dd49-43ae-8429-f5ef123456a3
        documentAmount:
          type: number
          description: Monto del documento recaudado, en la divisa indicada en `currency`.
          example: 12716935
        currency:
          type: string
          description: 'Divisa del documento recaudado: `CLP`, `USD` o `UF`.'
          example: CLP
        documentAdvanceAmount:
          type: number
          description: Monto anticipado (neto) del documento recaudado.
          example: 12335426
        folio:
          type: string
          description: Folio del documento recaudado.
          example: '4022'
        businessName:
          type: string
          description: Nombre del cliente o acreedor del documento recaudado.
          example: Cliente Ejemplo SpA
        businessIdentifier:
          type: string
          description: RUT del cliente o acreedor del documento recaudado.
          example: 11111111-1
        stakeholderName:
          type: string
          description: Nombre del deudor del documento recaudado. Vacío si no tiene.
          example: Deudor Ejemplo Ltda.
        stakeholderIdentifier:
          type: string
          description: RUT del deudor del documento recaudado. Vacío si no tiene.
          example: 76111111-6
        clientName:
          type: string
          description: >-
            Nombre del cliente de la operación. Vacío si la operación no tiene
            un cliente distinto del emisor.
          example: ''
        clientIdentifier:
          type: string
          description: >-
            RUT del cliente de la operación. Vacío si la operación no tiene un
            cliente distinto del emisor.
          example: ''
        executiveName:
          type: string
          description: >-
            Nombre del ejecutivo comercial de la solicitud. `Sin ejecutivo` si
            no tiene.
          example: Ana Pérez
        collectorName:
          type: string
          description: >-
            Nombre del ejecutivo de cobranza (varios nombres separados por
            coma). `Sin ejecutivo de cobranza` si no tiene.
          example: Roberto Díaz
      required:
        - amount
        - type
        - typeId
        - requestId
        - requestOperationDate
        - requestType
        - docType
        - payInDate
        - conciliationDate
        - date
        - paidBy
        - fundName
        - fundIdentifier
        - conciliationDocumentAmount
        - conciliationArrearAmount
        - paymentDate
        - documentId
        - documentAmount
        - currency
        - documentAdvanceAmount
        - folio
        - businessName
        - businessIdentifier
        - stakeholderName
        - stakeholderIdentifier
        - clientName
        - clientIdentifier
        - executiveName
        - collectorName
  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.