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

# Exportar chat de una solicitud

> Exporta el historial de mensajes del chat de una solicitud, con el nombre, el email y el rol de quien escribió cada mensaje. Los mensajes vienen del más reciente al más antiguo. Si la solicitud no tiene mensajes, `messages` viene vacío.

Los mensajes eliminados desde Pruff no se exportan.

Si el autor de un mensaje no tiene roles o ya no existe en Pruff, el mensaje se exporta igual: `userRole` viene como `Sin rol` y, si el usuario no existe, `userName` como `Desconocido` y `userEmail` como `Sin email`.



## OpenAPI

````yaml openapi/clients.yaml GET /chat/export/{requestType}/{requestId}
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:
  /chat/export/{requestType}/{requestId}:
    get:
      tags:
        - Chat
      summary: Exportar chat de una solicitud
      description: >-
        Exporta el historial de mensajes del chat de una solicitud, con el
        nombre, el email y el rol de quien escribió cada mensaje. Los mensajes
        vienen del más reciente al más antiguo. Si la solicitud no tiene
        mensajes, `messages` viene vacío.


        Los mensajes eliminados desde Pruff no se exportan.


        Si el autor de un mensaje no tiene roles o ya no existe en Pruff, el
        mensaje se exporta igual: `userRole` viene como `Sin rol` y, si el
        usuario no existe, `userName` como `Desconocido` y `userEmail` como `Sin
        email`.
      operationId: exportRequestChat
      parameters:
        - $ref: '#/components/parameters/ChatRequestTypeParam'
        - name: requestId
          in: path
          required: true
          description: >-
            Id numérico de la solicitud del tipo indicado en `requestType`, un
            entero entre 1 y 2147483647.
          schema:
            type: integer
            minimum: 1
            maximum: 2147483647
          example: 1
      responses:
        '200':
          description: Mensajes del chat.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatExportResponse'
              example:
                messages:
                  - timestamp: 1752852433242
                    userId: 1
                    text: Texto ejemplo
                    userName: Ana Pérez
                    userEmail: ana.perez@example.com
                    userRole: Administrador
                  - timestamp: 1752852430526
                    userId: 2
                    text: Respuesta ejemplo
                    userName: Carlos Soto
                    userEmail: carlos.soto@example.com
                    userRole: Gerente Operaciones
        '400':
          description: >-
            `requestType` o `requestId` inválidos. La respuesta trae solo
            `message`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                invalidRequestType:
                  summary: requestType inválido
                  value:
                    message: >-
                      Invalid params: Expected request type creditLine,
                      factoring, sgr, confirming, creditRequest, verification,
                      resellNominee, externalFactoringQuote, leasing
                invalidRequestId:
                  summary: requestId no numérico, cero o mayor a 2147483647
                  value:
                    message: 'Invalid params: Request id must be a number'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
        '504':
          $ref: '#/components/responses/Timeout'
components:
  parameters:
    ChatRequestTypeParam:
      name: requestType
      in: path
      required: true
      description: |-
        Tipo de solicitud a la que pertenece el chat.

        - `creditLine`: línea de crédito.
        - `factoring`: factoring.
        - `sgr`: garantía SGR.
        - `confirming`: confirming.
        - `creditRequest`: crédito.
        - `verification`: verificación.
        - `resellNominee`: nómina de venta a fondo.
        - `externalFactoringQuote`: cotización externa de factoring.
        - `leasing`: leasing.
      schema:
        $ref: '#/components/schemas/ChatRequestType'
      example: factoring
  schemas:
    ChatExportResponse:
      type: object
      required:
        - messages
      properties:
        messages:
          type: array
          description: Mensajes del chat, del más reciente al más antiguo.
          items:
            $ref: '#/components/schemas/ChatExportMessage'
    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.
    ChatRequestType:
      type: string
      enum:
        - creditLine
        - factoring
        - sgr
        - confirming
        - creditRequest
        - verification
        - resellNominee
        - externalFactoringQuote
        - leasing
      description: Tipo de solicitud a la que pertenece el chat.
    ChatExportMessage:
      type: object
      required:
        - timestamp
        - userId
        - text
        - userName
        - userEmail
        - userRole
      properties:
        timestamp:
          type: integer
          format: int64
          description: >-
            Momento en que se envió el mensaje, en milisegundos desde el 1 de
            enero de 1970 UTC.
        userId:
          type: integer
          description: Id del usuario que escribió el mensaje.
        text:
          type: string
          description: Texto del mensaje, con las menciones en formato `@[Nombre](id)`.
        userName:
          type: string
          description: >-
            Nombre del usuario. Es `Desconocido` si no tiene nombre o si el
            usuario ya no existe en Pruff.
        userEmail:
          type: string
          description: >-
            Email del usuario. Es `Sin email` si no tiene o si el usuario ya no
            existe en Pruff.
        userRole:
          type: string
          description: >-
            Primer rol del usuario en Pruff. Es `Sin rol` si no tiene roles o si
            el usuario ya no existe en Pruff.
        attachments:
          type: array
          description: >-
            Archivos adjuntos del mensaje. Solo está presente si el mensaje
            tiene adjuntos.
          items:
            type: object
            required:
              - key
              - name
              - mimeType
            properties:
              key:
                type: string
                description: Identificador del archivo en Pruff.
              name:
                type: string
                description: Nombre original del archivo.
              mimeType:
                type: string
                description: Tipo de contenido del archivo, por ejemplo `application/pdf`.
        mentions:
          type: array
          description: >-
            Ids de los usuarios mencionados. Solo está presente si el mensaje
            menciona usuarios.
          items:
            type: integer
  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.