> ## 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 cuentas pendientes

> Devuelve las cuentas pendientes de Tesorería: cuentas por cobrar o cuentas por pagar, según el parámetro `type`. Cada consulta devuelve un solo tipo; para obtener ambos, consulta una vez con cada valor de `type`.

**Filtros por tipo.** `stakeholderIdentifier`, `stakeholderName` e `inLegalCollection` son exclusivos de `type=receivable`; `businessIdentifier`, `businessName` y `executiveName` son exclusivos de `type=payable`. Enviarlos con el otro `type` responde un error 400. Lo mismo ocurre con cualquier parámetro que no esté documentado aquí.

**Orden y paginación.** El servicio está paginado y soporta un tamaño máximo de página de 100. Los registros se paginan desde la cuenta pendiente creada más recientemente.

Todos los campos vienen siempre en cada registro: cuando no hay valor llegan en `null`, en lugar de omitirse. En las cuentas "Traspasos (CxC)" y "Traspasos (CxP)" el documento de origen es la cuenta del par. Las cuentas "Traspaso pago recibido (CxC)" y "Traspaso pago recibido (CxP)" no tienen documento de origen: el pago recibido que las generó se indica en `observation` y, en la cuenta por cobrar, el RUT del cliente viene en `stakeholderIdentifier`.



## OpenAPI

````yaml openapi/clients.yaml GET /reporting/pendingAccounts
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/pendingAccounts:
    get:
      tags:
        - Reportes
      summary: Obtener cuentas pendientes
      description: >-
        Devuelve las cuentas pendientes de Tesorería: cuentas por cobrar o
        cuentas por pagar, según el parámetro `type`. Cada consulta devuelve un
        solo tipo; para obtener ambos, consulta una vez con cada valor de
        `type`.


        **Filtros por tipo.** `stakeholderIdentifier`, `stakeholderName` e
        `inLegalCollection` son exclusivos de `type=receivable`;
        `businessIdentifier`, `businessName` y `executiveName` son exclusivos de
        `type=payable`. Enviarlos con el otro `type` responde un error 400. Lo
        mismo ocurre con cualquier parámetro que no esté documentado aquí.


        **Orden y paginación.** El servicio está paginado y soporta un tamaño
        máximo de página de 100. Los registros se paginan desde la cuenta
        pendiente creada más recientemente.


        Todos los campos vienen siempre en cada registro: cuando no hay valor
        llegan en `null`, en lugar de omitirse. En las cuentas "Traspasos (CxC)"
        y "Traspasos (CxP)" el documento de origen es la cuenta del par. Las
        cuentas "Traspaso pago recibido (CxC)" y "Traspaso pago recibido (CxP)"
        no tienen documento de origen: el pago recibido que las generó se indica
        en `observation` y, en la cuenta por cobrar, el RUT del cliente viene en
        `stakeholderIdentifier`.
      operationId: getPendingAccounts
      parameters:
        - name: type
          in: query
          required: true
          description: >-
            Tipo de cuenta pendiente: `receivable` (por cobrar) o `payable` (por
            pagar).
          schema:
            type: string
            enum:
              - receivable
              - payable
          example: receivable
        - name: paid
          in: query
          required: false
          description: >-
            `true` retorna solo las cuentas pagadas y `false` solo las
            pendientes de pago. Sin este filtro se retornan ambas.
          schema:
            type: string
            enum:
              - 'true'
              - 'false'
          example: 'false'
        - name: category
          in: query
          required: false
          description: Nombre de la categoría de la cuenta pendiente (búsqueda parcial).
          schema:
            type: string
          example: Gasto notarial
        - name: categoryId
          in: query
          required: false
          description: >-
            Identificador de la categoría de la cuenta pendiente. Si se envía,
            tiene prioridad sobre `category`.
          schema:
            type: integer
          example: 1
        - name: id
          in: query
          required: false
          description: Identificador de la cuenta pendiente.
          schema:
            type: integer
            minimum: 1
          example: 1532
        - name: startDate
          in: query
          required: false
          description: >-
            Fecha de creación de la cuenta pendiente desde la cual quieres el
            reporte (YYYY-MM-DD).
          schema:
            type: string
            format: date
          example: '2026-09-01'
        - name: endDate
          in: query
          required: false
          description: >-
            Fecha de creación de la cuenta pendiente hasta la cual quieres el
            reporte (YYYY-MM-DD). Incluye el día completo.
          schema:
            type: string
            format: date
          example: '2026-09-30'
        - name: stakeholderIdentifier
          in: query
          required: false
          description: RUT del deudor. Solo para `type=receivable`.
          schema:
            type: string
          example: 76111111-6
        - name: stakeholderName
          in: query
          required: false
          description: Nombre del deudor (búsqueda parcial). Solo para `type=receivable`.
          schema:
            type: string
          example: Deudor Ejemplo
        - name: inLegalCollection
          in: query
          required: false
          description: >-
            `true` retorna solo las cuentas en cobranza judicial y `false` las
            que no lo están. Solo para `type=receivable`.
          schema:
            type: string
            enum:
              - 'true'
              - 'false'
          example: 'false'
        - name: businessIdentifier
          in: query
          required: false
          description: RUT del acreedor. Solo para `type=payable`.
          schema:
            type: string
          example: 96111111-0
        - name: businessName
          in: query
          required: false
          description: Nombre del acreedor (búsqueda parcial). Solo para `type=payable`.
          schema:
            type: string
          example: Proveedor Ejemplo
        - name: executiveName
          in: query
          required: false
          description: >-
            Nombre del ejecutivo comercial que tiene al acreedor en su cartera
            (búsqueda parcial). Solo para `type=payable`.
          schema:
            type: string
          example: Ana
        - 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 cuentas por página (máximo 100).
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
          example: 20
      responses:
        '200':
          description: Cuentas pendientes de la página pedida.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportPendingAccountsResponse'
              example:
                data:
                  - id: 1532
                    folio: '4821'
                    type: receivable
                    category: Gasto notarial
                    observation: Gasto notarial operación 5634
                    businessIdentifier: 77222222-K
                    businessName: Factoring Ejemplo SpA
                    stakeholderIdentifier: 76111111-6
                    stakeholderName: Deudor Ejemplo Ltda.
                    executiveName: Ana Pérez
                    currency: CLP
                    amount: 150000
                    amountConciliated: 50000
                    amountPending: 100000
                    paidAt: null
                    issuedDate: '2026-09-01'
                    createdAt: '2026-09-01'
                    operationDate: '2026-09-01'
                    lastConciliationDate: '2026-09-15'
                    documentRelatedFolio: '10234'
                    documentRelatedClientIdentifier: 11111111-1
                pagination:
                  total: 1
                  page: 1
                  pageSize: 10
                  totalPages: 1
        '400':
          description: Algún parámetro es inválido.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
              examples:
                typeInvalid:
                  summary: type inválido o ausente
                  value:
                    message: invalid_union
                    displayMessage: type query parameter must be either receivable or payable
                    data:
                      errors:
                        - path: type
                          message: >-
                            type query parameter must be either receivable or
                            payable
                          code: invalid_union
                pageSizeTooBig:
                  summary: pageSize mayor al máximo
                  value:
                    message: too_big
                    displayMessage: pageSize must be less or equal to 100
                    data:
                      errors:
                        - path: pageSize
                          message: pageSize must be less or equal to 100
                          code: too_big
                unrecognizedKeys:
                  summary: Parámetro no permitido para el tipo
                  value:
                    message: unrecognized_keys
                    displayMessage: 'Unrecognized key: "stakeholderIdentifier"'
                    data:
                      errors:
                        - path: (root)
                          message: 'Unrecognized key: "stakeholderIdentifier"'
                          code: unrecognized_keys
                dateFormat:
                  summary: Formato de fecha inválido
                  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
                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
                paidInvalid:
                  summary: paid inválido
                  value:
                    message: invalid_value
                    displayMessage: paid must be "true" or "false"
                    data:
                      errors:
                        - path: paid
                          message: paid must be "true" or "false"
                          code: invalid_value
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
        '504':
          $ref: '#/components/responses/Timeout'
components:
  schemas:
    ReportPendingAccountsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ReportPendingAccountItem'
          description: Cuentas pendientes de la página pedida.
        pagination:
          $ref: '#/components/schemas/Pagination'
      required:
        - data
        - pagination
    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.
    ReportPendingAccountItem:
      type: object
      description: >-
        Una cuenta pendiente. Todos los campos llegan siempre en cada registro;
        cuando no hay valor llegan en `null`.
      properties:
        id:
          description: Identificador de la cuenta pendiente.
          type: integer
          example: 1532
        folio:
          type: string
          description: Folio de la cuenta pendiente.
          example: '4821'
        type:
          type: string
          description: >-
            Tipo de cuenta pendiente: `receivable` (por cobrar) o `payable` (por
            pagar). Es el mismo valor que enviaste en `type`.
          enum:
            - receivable
            - payable
          example: receivable
        category:
          type: string
          description: Nombre de la categoría de la cuenta pendiente.
          example: Gasto notarial
        observation:
          type: string
          description: Observación de la cuenta pendiente.
          example: Gasto notarial operación 5634
        businessIdentifier:
          type: string
          description: RUT del acreedor. En cuentas por cobrar es la propia empresa.
          example: 77222222-K
        businessName:
          type: string
          description: Nombre del acreedor.
          example: Factoring Ejemplo SpA
        stakeholderIdentifier:
          type: string
          description: RUT del deudor. En cuentas por pagar es la propia empresa.
          example: 76111111-6
        stakeholderName:
          type: string
          description: Nombre del deudor.
          example: Deudor Ejemplo Ltda.
        executiveName:
          type:
            - string
            - 'null'
          description: >-
            Nombre del ejecutivo comercial que tiene a la contraparte (deudor en
            cuentas por cobrar, acreedor en cuentas por pagar) en su cartera.
            `null` si no tiene.
          example: Ana Pérez
        currency:
          type: string
          description: 'Divisa de los montos: `CLP`, `USD` o `UF`.'
          example: CLP
        amount:
          type: number
          description: Monto de la cuenta pendiente, en la divisa indicada en `currency`.
          example: 150000
        amountConciliated:
          type: number
          description: >-
            Monto ya conciliado. En cuentas por cobrar, la suma de las
            conciliaciones registradas; en cuentas por pagar, la suma de los
            pagos ejecutados.
          example: 50000
        amountPending:
          type: number
          description: 'Saldo pendiente: `amount` menos `amountConciliated`.'
          example: 100000
        paidAt:
          type:
            - string
            - 'null'
          description: >-
            Fecha en que la cuenta quedó pagada (YYYY-MM-DD). `null` si aún no
            está pagada.
          format: date
          example: null
        issuedDate:
          type: string
          description: Fecha de emisión (YYYY-MM-DD).
          format: date
          example: '2026-09-01'
        createdAt:
          type: string
          description: Fecha de creación de la cuenta pendiente (YYYY-MM-DD).
          format: date
          example: '2026-09-01'
        operationDate:
          type: string
          description: Fecha de operación de la cuenta pendiente (YYYY-MM-DD).
          format: date
          example: '2026-09-01'
        lastConciliationDate:
          type:
            - string
            - 'null'
          description: >-
            Fecha de la última conciliación (cuentas por cobrar) o del último
            pago (cuentas por pagar) (YYYY-MM-DD). `null` si no tiene.
          format: date
          example: '2026-09-15'
        documentRelatedFolio:
          type:
            - string
            - 'null'
          description: >-
            Folio del documento de origen de la cuenta pendiente (por ejemplo,
            la factura que generó un excedente o una mora). `null` si la cuenta
            no tiene documento de origen.
          example: '10234'
        documentRelatedClientIdentifier:
          type:
            - string
            - 'null'
          description: >-
            RUT del cliente del documento de origen. `null` si la cuenta no
            tiene documento de origen o si ese documento no tiene cliente
            asociado.
          example: 11111111-1
      required:
        - id
        - folio
        - type
        - category
        - observation
        - businessIdentifier
        - businessName
        - stakeholderIdentifier
        - stakeholderName
        - executiveName
        - currency
        - amount
        - amountConciliated
        - amountPending
        - paidAt
        - issuedDate
        - createdAt
        - operationDate
        - lastConciliationDate
        - documentRelatedFolio
        - documentRelatedClientIdentifier
    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.
    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.