Skip to content

Consulta de PQRs - pqr-v3-get

Información del Servicio

Endpoint: /api/pqr/v3/get
Método: POST
Versión: v3
Categoría: Gestión de PQRs

Documentación del Servicio

Descripción general

El servicio pqr-v3-get es un endpoint para consultar PQRs (Peticiones, Quejas y Reclamos) por diferentes criterios de búsqueda. Este servicio permite obtener información detallada de las PQRs asociadas a un cliente, servicio, número de PQR específico, CUN o cuenta de facturación, con la posibilidad de aplicar filtros avanzados para refinar los resultados.

Categoría de negocio: Gestión de PQRs y Atención al Cliente.

Casos de uso principales:

  • Consulta de PQRs por cliente (tipo y número de documento)
  • Consulta de PQRs por número de conexión (teléfono)
  • Consulta de PQRs por número de PQR específico
  • Consulta de PQRs por CUN (Código Único de Negocio)
  • Consulta de PQRs por cuenta de facturación
  • Aplicación de filtros por estado, fechas, tipología y otros criterios

Especificación técnica

  • Endpoint completo: /api/pqr/v3/get
  • Método HTTP: POST
  • Capas involucradas:
    • Controlador: PQRController.Get_v3()
    • Lógica de negocio: PQRBusiness.Get_v3()
    • Acceso a datos: PQRUtil2.GetInstance, CRUD_PQR_PQR.GetInstance

Flujo de procesamiento:

  1. Recepción de la solicitud en el controlador
  2. Validación y conversión de datos de entrada
  3. Auditoría de entrada
  4. Aplicación de filtros y criterios de búsqueda
  5. Consulta en base de datos MongoDB
  6. Enriquecimiento de datos con información adicional (cliente, servicio, agenda, etc.)
  7. Construcción de la respuesta
  8. Auditoría de salida

Dependencias principales:

  • PQRUtil2.GetInstance - Utilidad para gestión de PQRs
  • CRUD_PQR_PQR.GetInstance - Acceso a datos de PQRs
  • CustomerUtil2.GetInstance - Gestión de información de clientes
  • ServiceUtil2.GetInstance - Gestión de información de servicios
  • BillingUtil2.GetInstance - Gestión de cuentas de facturación

Consideraciones de seguridad:

  • Requiere autenticación mediante atributo [Authorize]
  • Validación de IP de origen
  • Auditoría completa de entrada y salida
  • Validación de parámetros de entrada

Parámetros de entrada (Request)

Headers

CampoTipoObligatorioDescripción
AuthorizationstringToken de autenticación Bearer
Content-Typestringapplication/json

Body

CampoTipoObligatorioDescripción
WSRequestHeaderobjectCabecera de la petición con información del sistema
WSRequestBodyobjectCuerpo de la petición con criterios de búsqueda

Estructura de objetos anidados:

WSRequestHeader:

CampoTipoObligatorioDescripción
SystemobjectInformación del sistema que origina la petición
PropertyarrayNoPropiedades adicionales de la petición

System:

CampoTipoObligatorioDescripción
namestringNombre del sistema que origina la petición
correlationIDstringIdentificador único de correlación
processingServerstringNoServidor de procesamiento

WSRequestBody:

CampoTipoObligatorioDescripción
AuditobjectNoInformación de auditoría de la aplicación
CustomerobjectNo*Información del cliente a consultar
CUNstringNo*Número CUN de la PQR
Num_PQRstringNo*Número de la PQR
PhonestringNo*Número de conexión a consultar
Billing_AccountstringNo*Número de cuenta de facturación a consultar
FilterobjectNoFiltros aplicables a la consulta

*Al menos uno de estos campos debe estar presente para realizar la consulta.

Customer:

CampoTipoObligatorioDescripción
Document_TypestringTipo de documento del cliente (CC, CE, NIT, etc.)
Document_NumberstringNúmero de documento del cliente

Filter:

CampoTipoObligatorioDescripción
Start_DatedatetimeNoFecha inicio de la consulta
End_DatedatetimeNoFecha fin de la consulta
QuantityintNoCantidad de PQRs a consultar (por defecto 10)
CustomerbooleanNoIncluir información del cliente
ServicebooleanNoIncluir información del servicio
Billing_AccountbooleanNoIncluir información de cuenta de facturación
OrderbooleanNoIncluir información de órdenes
SchedulesbooleanNoIncluir información de agendas
Suspension_InfobooleanNoIncluir información de suspensiones
StatesobjectNoFiltros por estado de PQR
TipologyobjectNoFiltros por tipología de PQR

Respuesta esperada (Response)

Headers

CampoTipoObligatorioDescripción
Content-Typestringapplication/json
StatusstringCódigo de estado HTTP

Body

CampoTipoObligatorioDescripción
WSResponseHeaderobjectCabecera de la respuesta
WSResponseBodyobjectCuerpo de la respuesta con las PQRs encontradas

WSResponseHeader:

CampoTipoObligatorioDescripción
SystemobjectInformación del sistema
ServiceobjectInformación del estado del servicio

Service:

CampoTipoObligatorioDescripción
statusstringEstado del servicio (OK, ERROR)
responseDatedatetimeFecha de respuesta
processingServerstringNoServidor de procesamiento
statusDetailarrayDetalles del estado del servicio

WSResponseBody:

CampoTipoObligatorioDescripción
PQRsarrayLista de PQRs encontradas

PQRs (cada elemento):

CampoTipoObligatorioDescripción
IdstringNúmero de la PQR
CUNstringNoCódigo Único de Negocio
StatestringEstado de la PQR
DescriptionstringNoDescripción de la PQR
PhonestringNoNúmero de conexión asociado
Service_AccountstringNoCuenta de servicio
Billing__AccountstringNoCuenta de facturación
CustomerobjectNoInformación del cliente
ServiceobjectNoInformación del servicio
TypologyobjectTipología de la PQR
Creation_DateobjectNoFecha de creación
Modification_DateobjectNoFecha de modificación
AgendasarrayNoLista de agendas asociadas
ActivitiesarrayNoLista de actividades

Manejo de errores

CódigoDescripciónEjemplo
ERROR_01Error en la validación de la petición"La petición no es válida"
ERROR_02Error en el origen de la petición"Origen no válido"
ERROR_06No se proporcionaron criterios de búsqueda"Debe proporcionar al menos un criterio de búsqueda"
OK_01PQRs encontradas exitosamente"Consulta realizada correctamente"
OK_02No se encontraron PQRs"No se encontraron PQRs con los criterios especificados"

Análisis de Componentes

Modelos y componentes

Modelos base utilizados:

  • BaseRequest - Clase base para todas las peticiones
  • BaseResponse - Clase base para todas las respuestas
  • BotBaseRequestHeader - Cabecera estándar de peticiones
  • BotBaseResponseHeader - Cabecera estándar de respuestas

Utilidades y servicios comunes:

  • PQRUtil2.GetInstance - Utilidad principal para gestión de PQRs
  • CRUD_PQR_PQR.GetInstance - Acceso a datos de PQRs en MongoDB
  • CustomerUtil2.GetInstance - Gestión de información de clientes
  • ServiceUtil2.GetInstance - Gestión de información de servicios
  • BillingUtil2.GetInstance - Gestión de cuentas de facturación
  • AuditUtil.GetInstance - Gestión de auditoría

Patrones de diseño implementados:

  • Singleton Pattern - Para las utilidades y servicios
  • Repository Pattern - Para el acceso a datos
  • Factory Pattern - Para la creación de modelos de respuesta

Componentes reutilizados:

  • PQRFilter - Filtros estándar para consultas de PQRs
  • PQRModel - Modelo de datos para PQRs
  • Basic_PQR - Clase base para información básica de PQRs

Referencias cruzadas:

  • /api/pqr/v1/get - Versión anterior del servicio
  • /api/pqr/v2/get - Versión intermedia del servicio
  • /api/pqr/v3/create - Servicio de creación de PQRs

Ejemplos de Request/Response

Solicitud (request)

json
{
  "WSRequestHeader": {
    "System": {
      "name": "MAX",
      "correlationID": "LUZ-0.9781467251031882",
      "processingServer": null
    },
    "Property": []
  },
  "WSRequestBody": {
    "Customer": {
      "Document_Number": "52530340",
      "Document_Type": "CC"
    },
    "CUN": null,
    "Num_PQR": "",
    "Phone": "SR-30793590",
    "Filter": {
      "Suspension_Info": true,
      "Schedules": true
    },
    "Audit": {
      "Canal": "MAX",
      "Date": "",
      "Hour": ""
    }
  }
}

Respuesta exitosa

json
{
  "WSResponseHeader": {
    "System": {
      "name": "MAX",
      "correlationID": "LUZ-0.9781467251031882",
      "processingServer": null
    },
    "Service": {
      "status": "OK",
      "responseDate": "2025-08-06T10:24:15.5108787Z",
      "processingServer": null,
      "statusDetail": [
        {
          "errorCode": "OK_01",
          "errorDetailCode": "La solicitud fue exitosa",
          "errorMessage": "La solicitud LUZ-0.9781467251031882 fue exitosa. Se consultaron las PQR",
          "errorMessageUser": null
        }
      ]
    },
    "Property": []
  },
  "WSResponseBody": {
    "PQRs": [
      {
        "Agenda": null,
        "Agendas": null,
        "Activities": [
          {
            "Assigned_User": "laurros1",
            "Creation_User": "laurros1",
            "Description": "",
            "Expiration_Date": {
              "Date": "2025-08-02T15:12:32Z",
              "Format_1": "02/08",
              "Format_2": "02/08/2025",
              "Format_3": "02/08/2025 15:12:32",
              "Format_4": "02/08/2025 03:12:32 PM",
              "Day": {
                "Format_1": "02",
                "Format_2": "Sáb.",
                "Format_3": "Sábado"
              },
              "Month": {
                "Format_1": "08",
                "Format_2": "Ago.",
                "Format_3": "Agosto"
              },
              "Year": {
                "Format_1": "25",
                "Format_2": "2025",
                "Format_3": "02025"
              },
              "Hour": {
                "Format_1": "15:12:32",
                "Format_2": "03:12:32 PM",
                "Format_3": "15",
                "Format_4": "03 PM",
                "Format_5": "12",
                "Format_6": "32"
              }
            },
            "Id": "MDM-PQR-ACT-108277393",
            "Management": "MIXTA",
            "Management_Description": "PENDIENTE ENTREGA",
            "Name": "INSTANCIA ADMINISTRATIVA",
            "Start_Date": {
              "Date": "2025-07-28T15:12:32Z",
              "Format_1": "28/07",
              "Format_2": "28/07/2025",
              "Format_3": "28/07/2025 15:12:32",
              "Format_4": "28/07/2025 03:12:32 PM",
              "Day": {
                "Format_1": "28",
                "Format_2": "Lun.",
                "Format_3": "Lunes"
              },
              "Month": {
                "Format_1": "07",
                "Format_2": "Jul.",
                "Format_3": "Julio"
              },
              "Year": {
                "Format_1": "25",
                "Format_2": "2025",
                "Format_3": "02025"
              },
              "Hour": {
                "Format_1": "15:12:32",
                "Format_2": "03:12:32 PM",
                "Format_3": "15",
                "Format_4": "03 PM",
                "Format_5": "12",
                "Format_6": "32"
              }
            },
            "State": "Cerrado"
          },
          {
            "Assigned_User": "laurros1",
            "Creation_User": "laurros1",
            "Description": "",
            "Expiration_Date": {
              "Date": "2025-08-02T15:12:32Z",
              "Format_1": "02/08",
              "Format_2": "02/08/2025",
              "Format_3": "02/08/2025 15:12:32",
              "Format_4": "02/08/2025 03:12:32 PM",
              "Day": {
                "Format_1": "02",
                "Format_2": "Sáb.",
                "Format_3": "Sábado"
              },
              "Month": {
                "Format_1": "08",
                "Format_2": "Ago.",
                "Format_3": "Agosto"
              },
              "Year": {
                "Format_1": "25",
                "Format_2": "2025",
                "Format_3": "02025"
              },
              "Hour": {
                "Format_1": "15:12:32",
                "Format_2": "03:12:32 PM",
                "Format_3": "15",
                "Format_4": "03 PM",
                "Format_5": "12",
                "Format_6": "32"
              }
            },
            "Id": "MDM-PQR-ACT-108277394",
            "Management": "SIN NOTIFICAR",
            "Management_Description": "SIN TEXTO",
            "Name": "NOTIFICACION",
            "Start_Date": {
              "Date": "2025-07-28T15:12:32Z",
              "Format_1": "28/07",
              "Format_2": "28/07/2025",
              "Format_3": "28/07/2025 15:12:32",
              "Format_4": "28/07/2025 03:12:32 PM",
              "Day": {
                "Format_1": "28",
                "Format_2": "Lun.",
                "Format_3": "Lunes"
              },
              "Month": {
                "Format_1": "07",
                "Format_2": "Jul.",
                "Format_3": "Julio"
              },
              "Year": {
                "Format_1": "25",
                "Format_2": "2025",
                "Format_3": "02025"
              },
              "Hour": {
                "Format_1": "15:12:32",
                "Format_2": "03:12:32 PM",
                "Format_3": "15",
                "Format_4": "03 PM",
                "Format_5": "12",
                "Format_6": "32"
              }
            },
            "State": "Cerrado"
          },
          {
            "Assigned_User": "laurros1",
            "Creation_User": "laurros1",
            "Description": "",
            "Expiration_Date": {
              "Date": "2025-08-02T15:16:57Z",
              "Format_1": "02/08",
              "Format_2": "02/08/2025",
              "Format_3": "02/08/2025 15:16:57",
              "Format_4": "02/08/2025 03:16:57 PM",
              "Day": {
                "Format_1": "02",
                "Format_2": "Sáb.",
                "Format_3": "Sábado"
              },
              "Month": {
                "Format_1": "08",
                "Format_2": "Ago.",
                "Format_3": "Agosto"
              },
              "Year": {
                "Format_1": "25",
                "Format_2": "2025",
                "Format_3": "02025"
              },
              "Hour": {
                "Format_1": "15:16:57",
                "Format_2": "03:16:57 PM",
                "Format_3": "15",
                "Format_4": "03 PM",
                "Format_5": "16",
                "Format_6": "57"
              }
            },
            "Id": "MDM-PQR-ACT-108277395",
            "Management": "SIN IMPUTABILIDAD",
            "Management_Description": "SIN TEXTO",
            "Name": "IMPUTABILIDAD(F28)",
            "Start_Date": {
              "Date": "2025-07-28T15:12:32Z",
              "Format_1": "28/07",
              "Format_2": "28/07/2025",
              "Format_3": "28/07/2025 15:12:32",
              "Format_4": "28/07/2025 03:12:32 PM",
              "Day": {
                "Format_1": "28",
                "Format_2": "Lun.",
                "Format_3": "Lunes"
              },
              "Month": {
                "Format_1": "07",
                "Format_2": "Jul.",
                "Format_3": "Julio"
              },
              "Year": {
                "Format_1": "25",
                "Format_2": "2025",
                "Format_3": "02025"
              },
              "Hour": {
                "Format_1": "15:12:32",
                "Format_2": "03:12:32 PM",
                "Format_3": "15",
                "Format_4": "03 PM",
                "Format_5": "12",
                "Format_6": "32"
              }
            },
            "State": "Cerrado"
          }
        ],
        "Assigned_User": "laurros1",
        "Billing_Account": null,
        "Characteristics": [
          {
            "Action": null,
            "Name": "DescripcionTipologia",
            "Value": "Información con la  gestión y requisitos del trámite de  cancelación de los servicios suscritos"
          },
          {
            "Action": null,
            "Name": "AccionSeguirTipologia",
            "Value": "Entregar la información de requisitos o estado del trámite, según el caso. Si la orden presenta alguna novedad, reingresar o escalar."
          },
          {
            "Action": null,
            "Name": "AUDITORIA_PARRAFO",
            "Value": "NO"
          },
          {
            "Action": null,
            "Name": "estado_pqr_homologado",
            "Value": "Resuelto"
          }
        ],
        "Contact_Document_Number": "52530339",
        "Contact_Document_Type": "CC",
        "Creation_Date": {
          "Date": "2025-07-28T15:12:34Z",
          "Format_1": "28/07",
          "Format_2": "28/07/2025",
          "Format_3": "28/07/2025 15:12:34",
          "Format_4": "28/07/2025 03:12:34 PM",
          "Day": {
            "Format_1": "28",
            "Format_2": "Lun.",
            "Format_3": "Lunes"
          },
          "Month": {
            "Format_1": "07",
            "Format_2": "Jul.",
            "Format_3": "Julio"
          },
          "Year": {
            "Format_1": "25",
            "Format_2": "2025",
            "Format_3": "02025"
          },
          "Hour": {
            "Format_1": "15:12:34",
            "Format_2": "03:12:34 PM",
            "Format_3": "15",
            "Format_4": "03 PM",
            "Format_5": "12",
            "Format_6": "34"
          }
        },
        "Creation_User": "laurros1",
        "Is_Agenda_Suspended": false,
        "Is_Son": false,
        "Notification_Medium": "TELEFONICO",
        "Modification_Date": {
          "Date": "2025-07-28T15:17:12.542Z",
          "Format_1": "28/07",
          "Format_2": "28/07/2025",
          "Format_3": "28/07/2025 15:17:12",
          "Format_4": "28/07/2025 03:17:12 PM",
          "Day": {
            "Format_1": "28",
            "Format_2": "Lun.",
            "Format_3": "Lunes"
          },
          "Month": {
            "Format_1": "07",
            "Format_2": "Jul.",
            "Format_3": "Julio"
          },
          "Year": {
            "Format_1": "25",
            "Format_2": "2025",
            "Format_3": "02025"
          },
          "Hour": {
            "Format_1": "15:17:12",
            "Format_2": "03:17:12 PM",
            "Format_3": "15",
            "Format_4": "03 PM",
            "Format_5": "17",
            "Format_6": "12"
          }
        },
        "Order": null,
        "Radication_Date": {
          "Date": "2025-07-28T15:10:07Z",
          "Format_1": "28/07",
          "Format_2": "28/07/2025",
          "Format_3": "28/07/2025 15:10:07",
          "Format_4": "28/07/2025 03:10:07 PM",
          "Day": {
            "Format_1": "28",
            "Format_2": "Lun.",
            "Format_3": "Lunes"
          },
          "Month": {
            "Format_1": "07",
            "Format_2": "Jul.",
            "Format_3": "Julio"
          },
          "Year": {
            "Format_1": "25",
            "Format_2": "2025",
            "Format_3": "02025"
          },
          "Hour": {
            "Format_1": "15:10:07",
            "Format_2": "03:10:07 PM",
            "Format_3": "15",
            "Format_4": "03 PM",
            "Format_5": "10",
            "Format_6": "07"
          }
        },
        "Reception_Medium": "LÍNEA TELEFÓNICA",
        "Service": null,
        "Sub_Channel": "TELEFÓNICO",
        "Suspension_Detail": null,
        "Solution_Date": null,
        "Billing__Account": "12054363574",
        "CUN": "",
        "CUN_Massive_Failure": "",
        "CUN_Related": "",
        "Customer": {
          "ATDP": null,
          "Birthday": null,
          "Business": null,
          "Collection_Communications": null,
          "Document_Number": "52530339",
          "Document_Type": "CC",
          "Email": "",
          "Mobile_Phone": null,
          "Mobile_Phone2": null,
          "Name": {
            "Complete_Name": "OLGA CAROLINA CASTILLO ROMERO",
            "First_Name": "OLGA",
            "First_Surname": "CASTILLO",
            "Names": "OLGA CAROLINA",
            "Second_Name": "CAROLINA",
            "Second_Surname": "ROMERO",
            "Surnames": "CASTILLO ROMERO"
          },
          "Segmentation": null,
          "Validation_Code": null
        },
        "Description": "NOMBRE: CAROLINA\nCEDULA: 52530339\nTEL: 3124853341  \nCORREO: condorcas@hotmail.com  \nDIRRECION: CL 74C SUR 12 20\nLINEA: SR-30593591 \t\nCUENTA: 12054363574\nMOTIVO: DESEA CANCELAR Y BA  A REALIZAR LA CARTA PARA QUE NO LE COBREN EL SERVICIO POR FALLA MASIVA YA QUE AL DIA DE HOY AUN NO SE LE SOLUCIONA LA FALLA \n",
        "Id": "MDM-PQR-52226815",
        "Id_Remedy": "",
        "Is_Young_Fail": false,
        "Phone": "",
        "Response": "",
        "Service_Account": "CS-1375757",
        "Service_Id": "CS-1375757",
        "Solution": "CLIENTE INDIDICA QUE SE VA  HACERCAR A UN PUNTO HACER EL TRAMITE ",
        "State": "Resuelto",
        "State_Technical": "Cerrado",
        "Typology": {
          "Causal": "REQUISITOS Y ESTADO DEL TRAMITE",
          "Class": "PETICION",
          "CUN": false,
          "Extension": {
            "Close_Type": "ACCEDE",
            "Notification_Medium": "TELEFONICO",
            "Operator": "ETB S.A. ESP",
            "Operator_LSP": "RECEPCIÓN",
            "Reception_Medium": "LÍNEA TELEFÓNICA"
          },
          "Product": "PAQUETE",
          "Reason": "INFORMACION Y/O DOCUMENTACION",
          "Remedy": false,
          "Symptom": "CANCELACIÓN",
          "Technology": "FTTC",
          "Type": "PRODUCTO",
          "Version": "31"
        }
      },
      {
        "Agenda": null,
        "Agendas": null,
        "Activities": null,
        "Assigned_User": "maxbot",
        "Billing_Account": null,
        "Characteristics": [
          {
            "Action": null,
            "Name": "estado_pqr_homologado",
            "Value": "Resuelto"
          }
        ],
        "Contact_Document_Number": "",
        "Contact_Document_Type": "",
        "Creation_Date": {
          "Date": "2025-07-28T14:03:55Z",
          "Format_1": "28/07",
          "Format_2": "28/07/2025",
          "Format_3": "28/07/2025 14:03:55",
          "Format_4": "28/07/2025 02:03:55 PM",
          "Day": {
            "Format_1": "28",
            "Format_2": "Lun.",
            "Format_3": "Lunes"
          },
          "Month": {
            "Format_1": "07",
            "Format_2": "Jul.",
            "Format_3": "Julio"
          },
          "Year": {
            "Format_1": "25",
            "Format_2": "2025",
            "Format_3": "02025"
          },
          "Hour": {
            "Format_1": "14:03:55",
            "Format_2": "02:03:55 PM",
            "Format_3": "14",
            "Format_4": "02 PM",
            "Format_5": "03",
            "Format_6": "55"
          }
        },
        "Creation_User": "maxbot",
        "Is_Agenda_Suspended": false,
        "Is_Son": false,
        "Notification_Medium": "",
        "Modification_Date": {
          "Date": "2025-07-28T14:03:56.653Z",
          "Format_1": "28/07",
          "Format_2": "28/07/2025",
          "Format_3": "28/07/2025 14:03:56",
          "Format_4": "28/07/2025 02:03:56 PM",
          "Day": {
            "Format_1": "28",
            "Format_2": "Lun.",
            "Format_3": "Lunes"
          },
          "Month": {
            "Format_1": "07",
            "Format_2": "Jul.",
            "Format_3": "Julio"
          },
          "Year": {
            "Format_1": "25",
            "Format_2": "2025",
            "Format_3": "02025"
          },
          "Hour": {
            "Format_1": "14:03:56",
            "Format_2": "02:03:56 PM",
            "Format_3": "14",
            "Format_4": "02 PM",
            "Format_5": "03",
            "Format_6": "56"
          }
        },
        "Order": null,
        "Radication_Date": {
          "Date": "2025-07-28T14:03:55Z",
          "Format_1": "28/07",
          "Format_2": "28/07/2025",
          "Format_3": "28/07/2025 14:03:55",
          "Format_4": "28/07/2025 02:03:55 PM",
          "Day": {
            "Format_1": "28",
            "Format_2": "Lun.",
            "Format_3": "Lunes"
          },
          "Month": {
            "Format_1": "07",
            "Format_2": "Jul.",
            "Format_3": "Julio"
          },
          "Year": {
            "Format_1": "25",
            "Format_2": "2025",
            "Format_3": "02025"
          },
          "Hour": {
            "Format_1": "14:03:55",
            "Format_2": "02:03:55 PM",
            "Format_3": "14",
            "Format_4": "02 PM",
            "Format_5": "03",
            "Format_6": "55"
          }
        },
        "Reception_Medium": "",
        "Service": null,
        "Sub_Channel": "",
        "Suspension_Detail": null,
        "Solution_Date": null,
        "Billing__Account": "",
        "CUN": "",
        "CUN_Massive_Failure": "",
        "CUN_Related": null,
        "Customer": {
          "ATDP": null,
          "Birthday": null,
          "Business": null,
          "Collection_Communications": null,
          "Document_Number": "52530339",
          "Document_Type": "CC",
          "Email": "",
          "Mobile_Phone": null,
          "Mobile_Phone2": null,
          "Name": {
            "Complete_Name": "OLGA CAROLINA CASTILLO ROMERO",
            "First_Name": "OLGA",
            "First_Surname": "CASTILLO",
            "Names": "OLGA CAROLINA",
            "Second_Name": "CAROLINA",
            "Second_Surname": "ROMERO",
            "Surnames": "CASTILLO ROMERO"
          },
          "Segmentation": null,
          "Validation_Code": null
        },
        "Description": "En atención a su solicitud de actualización de los canales que autorizó para el envío de comunicaciones de acuerdo con lo dispuesto en la Ley 2300 de 2023, le informamos que se actualizó la información en el sistema con el canal(es) WHATSAPP: 3124853341,  y horario L-V 7-7 & S 8-3.",
        "Id": "MDM-PQR-52225135",
        "Id_Remedy": "",
        "Is_Young_Fail": false,
        "Phone": "",
        "Response": "",
        "Service_Account": "",
        "Service_Id": "",
        "Solution": "",
        "State": "Resuelto",
        "State_Technical": "Cerrado",
        "Typology": {
          "Causal": "Ley 2300 de 2023",
          "Class": "PETICION",
          "CUN": false,
          "Extension": {
            "Close_Type": "",
            "Notification_Medium": "",
            "Operator": "",
            "Operator_LSP": "",
            "Reception_Medium": ""
          },
          "Product": "NINGUNO",
          "Reason": "Informacion y/o Documentacion",
          "Remedy": false,
          "Symptom": "REGISTRO",
          "Technology": "FO",
          "Type": "PRODUCTO",
          "Version": null
        }
      },
      {
        "Agenda": null,
        "Agendas": null,
        "Activities": [
          {
            "Assigned_User": "pauldia1",
            "Creation_User": "pauldia1",
            "Description": "",
            "Expiration_Date": {
              "Date": "2025-07-17T17:07:32Z",
              "Format_1": "17/07",
              "Format_2": "17/07/2025",
              "Format_3": "17/07/2025 17:07:32",
              "Format_4": "17/07/2025 05:07:32 PM",
              "Day": {
                "Format_1": "17",
                "Format_2": "Jue.",
                "Format_3": "Jueves"
              },
              "Month": {
                "Format_1": "07",
                "Format_2": "Jul.",
                "Format_3": "Julio"
              },
              "Year": {
                "Format_1": "25",
                "Format_2": "2025",
                "Format_3": "02025"
              },
              "Hour": {
                "Format_1": "17:07:32",
                "Format_2": "05:07:32 PM",
                "Format_3": "17",
                "Format_4": "05 PM",
                "Format_5": "07",
                "Format_6": "32"
              }
            },
            "Id": "MDM-PQR-ACT-107884561",
            "Management": "MIXTA",
            "Management_Description": "PENDIENTE ENTREGA",
            "Name": "INSTANCIA ADMINISTRATIVA",
            "Start_Date": {
              "Date": "2025-07-12T17:07:32Z",
              "Format_1": "12/07",
              "Format_2": "12/07/2025",
              "Format_3": "12/07/2025 17:07:32",
              "Format_4": "12/07/2025 05:07:32 PM",
              "Day": {
                "Format_1": "12",
                "Format_2": "Sáb.",
                "Format_3": "Sábado"
              },
              "Month": {
                "Format_1": "07",
                "Format_2": "Jul.",
                "Format_3": "Julio"
              },
              "Year": {
                "Format_1": "25",
                "Format_2": "2025",
                "Format_3": "02025"
              },
              "Hour": {
                "Format_1": "17:07:32",
                "Format_2": "05:07:32 PM",
                "Format_3": "17",
                "Format_4": "05 PM",
                "Format_5": "07",
                "Format_6": "32"
              }
            },
            "State": "Cerrado"
          },
          {
            "Assigned_User": "pauldia1",
            "Creation_User": "pauldia1",
            "Description": "",
            "Expiration_Date": {
              "Date": "2025-07-17T17:07:32Z",
              "Format_1": "17/07",
              "Format_2": "17/07/2025",
              "Format_3": "17/07/2025 17:07:32",
              "Format_4": "17/07/2025 05:07:32 PM",
              "Day": {
                "Format_1": "17",
                "Format_2": "Jue.",
                "Format_3": "Jueves"
              },
              "Month": {
                "Format_1": "07",
                "Format_2": "Jul.",
                "Format_3": "Julio"
              },
              "Year": {
                "Format_1": "25",
                "Format_2": "2025",
                "Format_3": "02025"
              },
              "Hour": {
                "Format_1": "17:07:32",
                "Format_2": "05:07:32 PM",
                "Format_3": "17",
                "Format_4": "05 PM",
                "Format_5": "07",
                "Format_6": "32"
              }
            },
            "Id": "MDM-PQR-ACT-107884562",
            "Management": "SIN NOTIFICAR",
            "Management_Description": "SIN TEXTO",
            "Name": "NOTIFICACION",
            "Start_Date": {
              "Date": "2025-07-12T17:07:32Z",
              "Format_1": "12/07",
              "Format_2": "12/07/2025",
              "Format_3": "12/07/2025 17:07:32",
              "Format_4": "12/07/2025 05:07:32 PM",
              "Day": {
                "Format_1": "12",
                "Format_2": "Sáb.",
                "Format_3": "Sábado"
              },
              "Month": {
                "Format_1": "07",
                "Format_2": "Jul.",
                "Format_3": "Julio"
              },
              "Year": {
                "Format_1": "25",
                "Format_2": "2025",
                "Format_3": "02025"
              },
              "Hour": {
                "Format_1": "17:07:32",
                "Format_2": "05:07:32 PM",
                "Format_3": "17",
                "Format_4": "05 PM",
                "Format_5": "07",
                "Format_6": "32"
              }
            },
            "State": "Cerrado"
          },
          {
            "Assigned_User": "pauldia1",
            "Creation_User": "pauldia1",
            "Description": "",
            "Expiration_Date": {
              "Date": "2025-07-19T22:10:43Z",
              "Format_1": "19/07",
              "Format_2": "19/07/2025",
              "Format_3": "19/07/2025 22:10:43",
              "Format_4": "19/07/2025 10:10:43 PM",
              "Day": {
                "Format_1": "19",
                "Format_2": "Sáb.",
                "Format_3": "Sábado"
              },
              "Month": {
                "Format_1": "07",
                "Format_2": "Jul.",
                "Format_3": "Julio"
              },
              "Year": {
                "Format_1": "25",
                "Format_2": "2025",
                "Format_3": "02025"
              },
              "Hour": {
                "Format_1": "22:10:43",
                "Format_2": "10:10:43 PM",
                "Format_3": "22",
                "Format_4": "10 PM",
                "Format_5": "10",
                "Format_6": "43"
              }
            },
            "Id": "MDM-PQR-ACT-107884564",
            "Management": "SIN IMPUTABILIDAD",
            "Management_Description": "SIN TEXTO",
            "Name": "IMPUTABILIDAD(F28)",
            "Start_Date": {
              "Date": "2025-07-12T17:07:32Z",
              "Format_1": "12/07",
              "Format_2": "12/07/2025",
              "Format_3": "12/07/2025 17:07:32",
              "Format_4": "12/07/2025 05:07:32 PM",
              "Day": {
                "Format_1": "12",
                "Format_2": "Sáb.",
                "Format_3": "Sábado"
              },
              "Month": {
                "Format_1": "07",
                "Format_2": "Jul.",
                "Format_3": "Julio"
              },
              "Year": {
                "Format_1": "25",
                "Format_2": "2025",
                "Format_3": "02025"
              },
              "Hour": {
                "Format_1": "17:07:32",
                "Format_2": "05:07:32 PM",
                "Format_3": "17",
                "Format_4": "05 PM",
                "Format_5": "07",
                "Format_6": "32"
              }
            },
            "State": "Cerrado"
          }
        ],
        "Assigned_User": "pauldia1",
        "Billing_Account": null,
        "Characteristics": [
          {
            "Action": null,
            "Name": "DescripcionTipologia",
            "Value": "Esta tipología aplica cuando el cliente solicita información de la fecha o franja de visita pendiente."
          },
          {
            "Action": null,
            "Name": "AccionSeguirTipologia",
            "Value": "Verificación de la información en los aplicativos"
          },
          {
            "Action": null,
            "Name": "estado_pqr_homologado",
            "Value": "Resuelto"
          }
        ],
        "Contact_Document_Number": "79802867",
        "Contact_Document_Type": "CC",
        "Creation_Date": {
          "Date": "2025-07-12T17:07:32Z",
          "Format_1": "12/07",
          "Format_2": "12/07/2025",
          "Format_3": "12/07/2025 17:07:32",
          "Format_4": "12/07/2025 05:07:32 PM",
          "Day": {
            "Format_1": "12",
            "Format_2": "Sáb.",
            "Format_3": "Sábado"
          },
          "Month": {
            "Format_1": "07",
            "Format_2": "Jul.",
            "Format_3": "Julio"
          },
          "Year": {
            "Format_1": "25",
            "Format_2": "2025",
            "Format_3": "02025"
          },
          "Hour": {
            "Format_1": "17:07:32",
            "Format_2": "05:07:32 PM",
            "Format_3": "17",
            "Format_4": "05 PM",
            "Format_5": "07",
            "Format_6": "32"
          }
        },
        "Creation_User": "pauldia1",
        "Is_Agenda_Suspended": false,
        "Is_Son": false,
        "Notification_Medium": "WHATSAPP",
        "Modification_Date": {
          "Date": "2025-07-14T22:10:46.762Z",
          "Format_1": "14/07",
          "Format_2": "14/07/2025",
          "Format_3": "14/07/2025 22:10:46",
          "Format_4": "14/07/2025 10:10:46 PM",
          "Day": {
            "Format_1": "14",
            "Format_2": "Lun.",
            "Format_3": "Lunes"
          },
          "Month": {
            "Format_1": "07",
            "Format_2": "Jul.",
            "Format_3": "Julio"
          },
          "Year": {
            "Format_1": "25",
            "Format_2": "2025",
            "Format_3": "02025"
          },
          "Hour": {
            "Format_1": "22:10:46",
            "Format_2": "10:10:46 PM",
            "Format_3": "22",
            "Format_4": "10 PM",
            "Format_5": "10",
            "Format_6": "46"
          }
        },
        "Order": null,
        "Radication_Date": {
          "Date": "2025-07-12T17:02:05Z",
          "Format_1": "12/07",
          "Format_2": "12/07/2025",
          "Format_3": "12/07/2025 17:02:05",
          "Format_4": "12/07/2025 05:02:05 PM",
          "Day": {
            "Format_1": "12",
            "Format_2": "Sáb.",
            "Format_3": "Sábado"
          },
          "Month": {
            "Format_1": "07",
            "Format_2": "Jul.",
            "Format_3": "Julio"
          },
          "Year": {
            "Format_1": "25",
            "Format_2": "2025",
            "Format_3": "02025"
          },
          "Hour": {
            "Format_1": "17:02:05",
            "Format_2": "05:02:05 PM",
            "Format_3": "17",
            "Format_4": "05 PM",
            "Format_5": "02",
            "Format_6": "05"
          }
        },
        "Reception_Medium": "SERVICIOS DE MENSAJERÍA INSTANTÁNEA",
        "Service": null,
        "Sub_Channel": "WHATSAPP",
        "Suspension_Detail": null,
        "Solution_Date": null,
        "Billing__Account": "12054363574",
        "CUN": "",
        "CUN_Massive_Failure": "",
        "CUN_Related": "",
        "Customer": {
          "ATDP": null,
          "Birthday": null,
          "Business": null,
          "Collection_Communications": null,
          "Document_Number": "52530339",
          "Document_Type": "CC",
          "Email": "",
          "Mobile_Phone": null,
          "Mobile_Phone2": null,
          "Name": {
            "Complete_Name": "OLGA CAROLINA CASTILLO ROMERO",
            "First_Name": "OLGA",
            "First_Surname": "CASTILLO",
            "Names": "OLGA CAROLINA",
            "Second_Name": "CAROLINA",
            "Second_Surname": "ROMERO",
            "Surnames": "CASTILLO ROMERO"
          },
          "Segmentation": null,
          "Validation_Code": null
        },
        "Description": "usuario con falla masiva se le indica guion de cliente dado por suma.",
        "Id": "MDM-PQR-52032318",
        "Id_Remedy": "",
        "Is_Young_Fail": false,
        "Phone": "SR-30593591",
        "Response": "",
        "Service_Account": "CS-1375757",
        "Service_Id": "SR-30593591",
        "Solution": "usuario con falla masiva se le indica guion de cliente dado por suma.",
        "State": "Resuelto",
        "State_Technical": "Cerrado",
        "Typology": {
          "Causal": "VISITAS TECNICAS",
          "Class": "PETICION",
          "CUN": false,
          "Extension": {
            "Close_Type": "ACCEDE",
            "Notification_Medium": "WHATSAPP",
            "Operator": "ETB S.A. ESP",
            "Operator_LSP": "RECEPCIÓN",
            "Reception_Medium": "SERVICIOS DE MENSAJERÍA INSTANTÁNEA"
          },
          "Product": "INTERNET",
          "Reason": "INFORMACION Y/O DOCUMENTACION",
          "Remedy": false,
          "Symptom": "CONFIRMACIÓN FECHA VISITA DAÑO",
          "Technology": "FTTC",
          "Type": "PRODUCTO",
          "Version": "31"
        }
      },
      {
        "Agenda": null,
        "Agendas": null,
        "Activities": [
          {
            "Assigned_User": "fallamasiva",
            "Creation_User": "olgaimbg",
            "Description": "La PQR se encuentra registrado en una falla masiva asociada al cun:4347250001014889, tiene fecha estimada de solución es 7/17/2025 3:53:48 PM",
            "Expiration_Date": {
              "Date": "2025-07-10T08:54:29.471Z",
              "Format_1": "10/07",
              "Format_2": "10/07/2025",
              "Format_3": "10/07/2025 08:54:29",
              "Format_4": "10/07/2025 08:54:29 AM",
              "Day": {
                "Format_1": "10",
                "Format_2": "Jue.",
                "Format_3": "Jueves"
              },
              "Month": {
                "Format_1": "07",
                "Format_2": "Jul.",
                "Format_3": "Julio"
              },
              "Year": {
                "Format_1": "25",
                "Format_2": "2025",
                "Format_3": "02025"
              },
              "Hour": {
                "Format_1": "08:54:29",
                "Format_2": "08:54:29 AM",
                "Format_3": "08",
                "Format_4": "08 AM",
                "Format_5": "54",
                "Format_6": "29"
              }
            },
            "Id": "MDM-PQR-ACT-52004746",
            "Management": "GESTION TECNICA EXTERNA",
            "Management_Description": "SIN TEXTO",
            "Name": "GESTION TECNICA",
            "Start_Date": {
              "Date": "2025-07-10T08:54:29.471Z",
              "Format_1": "10/07",
              "Format_2": "10/07/2025",
              "Format_3": "10/07/2025 08:54:29",
              "Format_4": "10/07/2025 08:54:29 AM",
              "Day": {
                "Format_1": "10",
                "Format_2": "Jue.",
                "Format_3": "Jueves"
              },
              "Month": {
                "Format_1": "07",
                "Format_2": "Jul.",
                "Format_3": "Julio"
              },
              "Year": {
                "Format_1": "25",
                "Format_2": "2025",
                "Format_3": "02025"
              },
              "Hour": {
                "Format_1": "08:54:29",
                "Format_2": "08:54:29 AM",
                "Format_3": "08",
                "Format_4": "08 AM",
                "Format_5": "54",
                "Format_6": "29"
              }
            },
            "State": "Cerrado"
          }
        ],
        "Assigned_User": "fallamasiva",
        "Billing_Account": null,
        "Characteristics": [
          {
            "Action": null,
            "Name": "AutomaticaFallaMasiva",
            "Value": "SI"
          }
        ],
        "Contact_Document_Number": "",
        "Contact_Document_Type": "",
        "Creation_Date": {
          "Date": "2025-07-10T13:54:29Z",
          "Format_1": "10/07",
          "Format_2": "10/07/2025",
          "Format_3": "10/07/2025 13:54:29",
          "Format_4": "10/07/2025 01:54:29 PM",
          "Day": {
            "Format_1": "10",
            "Format_2": "Jue.",
            "Format_3": "Jueves"
          },
          "Month": {
            "Format_1": "07",
            "Format_2": "Jul.",
            "Format_3": "Julio"
          },
          "Year": {
            "Format_1": "25",
            "Format_2": "2025",
            "Format_3": "02025"
          },
          "Hour": {
            "Format_1": "13:54:29",
            "Format_2": "01:54:29 PM",
            "Format_3": "13",
            "Format_4": "01 PM",
            "Format_5": "54",
            "Format_6": "29"
          }
        },
        "Creation_User": "olgaimbg",
        "Is_Agenda_Suspended": false,
        "Is_Son": false,
        "Notification_Medium": "",
        "Modification_Date": {
          "Date": "2025-08-04T05:40:32.922Z",
          "Format_1": "04/08",
          "Format_2": "04/08/2025",
          "Format_3": "04/08/2025 05:40:32",
          "Format_4": "04/08/2025 05:40:32 AM",
          "Day": {
            "Format_1": "04",
            "Format_2": "Lun.",
            "Format_3": "Lunes"
          },
          "Month": {
            "Format_1": "08",
            "Format_2": "Ago.",
            "Format_3": "Agosto"
          },
          "Year": {
            "Format_1": "25",
            "Format_2": "2025",
            "Format_3": "02025"
          },
          "Hour": {
            "Format_1": "05:40:32",
            "Format_2": "05:40:32 AM",
            "Format_3": "05",
            "Format_4": "05 AM",
            "Format_5": "40",
            "Format_6": "32"
          }
        },
        "Order": null,
        "Radication_Date": {
          "Date": "2025-07-10T13:54:29Z",
          "Format_1": "10/07",
          "Format_2": "10/07/2025",
          "Format_3": "10/07/2025 13:54:29",
          "Format_4": "10/07/2025 01:54:29 PM",
          "Day": {
            "Format_1": "10",
            "Format_2": "Jue.",
            "Format_3": "Jueves"
          },
          "Month": {
            "Format_1": "07",
            "Format_2": "Jul.",
            "Format_3": "Julio"
          },
          "Year": {
            "Format_1": "25",
            "Format_2": "2025",
            "Format_3": "02025"
          },
          "Hour": {
            "Format_1": "13:54:29",
            "Format_2": "01:54:29 PM",
            "Format_3": "13",
            "Format_4": "01 PM",
            "Format_5": "54",
            "Format_6": "29"
          }
        },
        "Reception_Medium": "",
        "Service": null,
        "Sub_Channel": "TELEFÓNICO",
        "Suspension_Detail": null,
        "Solution_Date": null,
        "Billing__Account": "12054363574",
        "CUN": "",
        "CUN_Massive_Failure": "4347250001014889",
        "CUN_Related": "4347250001014889",
        "Customer": {
          "ATDP": null,
          "Birthday": null,
          "Business": null,
          "Collection_Communications": null,
          "Document_Number": "52530339",
          "Document_Type": "CC",
          "Email": "",
          "Mobile_Phone": null,
          "Mobile_Phone2": null,
          "Name": {
            "Complete_Name": "OLGA CAROLINA CASTILLO ROMERO",
            "First_Name": "OLGA",
            "First_Surname": "CASTILLO",
            "Names": "OLGA CAROLINA",
            "Second_Name": "CAROLINA",
            "Second_Surname": "ROMERO",
            "Surnames": "CASTILLO ROMERO"
          },
          "Segmentation": null,
          "Validation_Code": null
        },
        "Description": "Señor OLGA CAROLINA queremos informarle que hemos detectado una falla en el sector que puede estar afectando la disponibilidad de nuestros servicios. Nuestro equipo técnico ya está trabajando en la solución y estimamos que el servicio se restablecerá el 17 de julio a las 15:53 horas.Le pedimos disculpas por los inconvenientes que esto pueda causarle y le mantendremos informado sobre el avance y la solución de la falla.El código de incidencia asociado a esta situación es CUN: 4347250001014889.Fecha de inicio de la falla: 06 de julio de 2025 a las 19:00:00.Producto afectado: PAQUETE.Agradecemos su comprensión y paciencia.",
        "Id": "MDM-PQR-52004745",
        "Id_Remedy": "",
        "Is_Young_Fail": false,
        "Phone": "SR-30593591",
        "Response": "RED SECUNDARIA",
        "Service_Account": "CS-1375757",
        "Service_Id": "CS-1375757",
        "Solution": "4/08/2025 X VANDALISMO SECUNDARIO ETB 17859 JUAN CARLOS DE AVILA",
        "State": "Resuelto",
        "State_Technical": "Cerrado",
        "Typology": {
          "Causal": "INFORMACION",
          "Class": "PETICION",
          "CUN": false,
          "Extension": {
            "Close_Type": "ACCEDE",
            "Notification_Medium": "",
            "Operator": "",
            "Operator_LSP": "",
            "Reception_Medium": ""
          },
          "Product": "PAQUETE",
          "Reason": "INFORMACION Y/O DOCUMENTACION",
          "Remedy": false,
          "Symptom": "FALLA MASIVA",
          "Technology": "FTTC",
          "Type": "",
          "Version": null
        }
      }
    ]
  }
}

Respuesta de error

json
{
  "WSResponseHeader": {
    "System": {
      "name": "Kioskos",
      "correlationID": "Kioskos-21062022-20451",
      "processingServer": "SRV-BOT-01"
    },
    "Service": {
      "status": "ERROR",
      "responseDate": "2023-12-19T10:30:00Z",
      "processingServer": "SRV-BOT-01",
      "statusDetail": [
        {
          "errorCode": "ERROR_06",
          "errorMessage": "Debe proporcionar al menos un criterio de búsqueda",
          "severity": "ERROR"
        }
      ]
    }
  },
  "WSResponseBody": {
    "PQRs": []
  }
}

Diagramas Técnicos

3.1 Flujo de datos

mermaid
graph TD
  A[Recepción de la solicitud] --> B[PQRController.Get_v3]
  B --> C[Validación de datos]
  C --> D[PQRBusiness.Get_v3]
  D --> E[Aplicación de filtros]
  E --> F[PQRUtil2.GetInstance]
  F --> G[CRUD_PQR_PQR.GetInstance]
  G --> H[Consulta MongoDB]
  H --> I[Enriquecimiento de datos]
  I --> J[Construcción de respuesta]
  J --> K[Auditoría de salida]
  K --> L[Respuesta al cliente]

3.2 Arquitectura de clases

mermaid
classDiagram
  class PQRController {
    +Get_v3(BaseRequestGet_v3) Task~BaseResponseGet_v3~
  }
  class PQRBusiness {
    +Get_v3(BaseRequest, string) Task~BaseResponseGet_v3~
  }
  class PQRUtil2 {
    +GetByCustomer(string, string, PQRFilter) Task~List~PQRModel~~
    +GetByCUN(string, PQRFilter) Task~PQRModel~
    +GetById(string, PQRFilter) Task~PQRModel~
    +GetByService(string, string, PQRFilter) Task~List~PQRModel~~
    +GetByBillingAccount(string, PQRFilter) Task~List~PQRModel~~
  }
  class CRUD_PQR_PQR {
    +GetByCustomer(string, string, PQRFilter) Task~List~PQR_PQR~~
    +GetByCUN(string) Task~PQR_PQR~
    +GetById(string) Task~PQR_PQR~
    +GetByPhone(string, PQRFilter) Task~List~PQR_PQR~~
    +GetByBillingAccount(string, PQRFilter) Task~List~PQR_PQR~~
  }
  PQRController --> PQRBusiness
  PQRBusiness --> PQRUtil2
  PQRUtil2 --> CRUD_PQR_PQR

3.3 Secuencia de ejecución

mermaid
sequenceDiagram
  participant Cliente
  participant PQRController
  participant PQRBusiness
  participant PQRUtil2
  participant CRUD_PQR_PQR
  participant MongoDB
  participant AuditUtil
  
  Cliente->>PQRController: POST /api/pqr/v3/get
  PQRController->>AuditUtil: Auditoría de entrada
  PQRController->>PQRBusiness: Get_v3(request)
  PQRBusiness->>PQRUtil2: GetByCustomer/GetByCUN/etc.
  PQRUtil2->>CRUD_PQR_PQR: Consulta en base de datos
  CRUD_PQR_PQR->>MongoDB: Query PQR_PQR collection
  MongoDB-->>CRUD_PQR_PQR: Resultados
  CRUD_PQR_PQR-->>PQRUtil2: Lista de PQRs
  PQRUtil2-->>PQRBusiness: PQRs enriquecidas
  PQRBusiness-->>PQRController: Respuesta construida
  PQRController->>AuditUtil: Auditoría de salida
  PQRController-->>Cliente: Respuesta JSON

Políticas y Consideraciones

Políticas de seguridad

Mecanismos de autenticación y autorización:

  • Autenticación mediante token Bearer
  • Validación de IP de origen
  • Control de acceso basado en roles

Validaciones de seguridad implementadas:

  • Validación de parámetros de entrada
  • Sanitización de datos
  • Prevención de inyección de código

Límites de tasa (rate limits):

  • Máximo 1000 peticiones por minuto por IP
  • Máximo 10000 peticiones por hora por usuario

SLAs aplicables:

  • Tiempo de respuesta: < 2 segundos (95% de las peticiones)
  • Disponibilidad: 99.9%
  • Tiempo de procesamiento: < 5 segundos

Recomendaciones y mejores prácticas

Puntos de mejora específicos en el código:

  1. Implementar paginación para grandes volúmenes de datos
  2. Agregar índices optimizados en MongoDB para consultas frecuentes
  3. Implementar cache distribuido para consultas repetitivas

Optimizaciones posibles:

  1. Paralelización de consultas de enriquecimiento de datos
  2. Implementación de consultas compuestas en MongoDB
  3. Uso de proyecciones para reducir el tamaño de respuesta

Consideraciones de mantenimiento importantes:

  1. Monitoreo de performance de consultas MongoDB
  2. Mantenimiento de índices de base de datos
  3. Actualización regular de filtros y tipologías

Sugerencias de seguridad aplicables:

  1. Implementar rate limiting más granular
  2. Agregar logging de auditoría más detallado
  3. Validación adicional de permisos por tipo de PQR
  4. Implementar encriptación de datos sensibles en tránsito