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
- Controlador:
Flujo de procesamiento:
- Recepción de la solicitud en el controlador
- Validación y conversión de datos de entrada
- Auditoría de entrada
- Aplicación de filtros y criterios de búsqueda
- Consulta en base de datos MongoDB
- Enriquecimiento de datos con información adicional (cliente, servicio, agenda, etc.)
- Construcción de la respuesta
- Auditoría de salida
Dependencias principales:
PQRUtil2.GetInstance- Utilidad para gestión de PQRsCRUD_PQR_PQR.GetInstance- Acceso a datos de PQRsCustomerUtil2.GetInstance- Gestión de información de clientesServiceUtil2.GetInstance- Gestión de información de serviciosBillingUtil2.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
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Authorization | string | Sí | Token de autenticación Bearer |
| Content-Type | string | Sí | application/json |
Body
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| WSRequestHeader | object | Sí | Cabecera de la petición con información del sistema |
| WSRequestBody | object | Sí | Cuerpo de la petición con criterios de búsqueda |
Estructura de objetos anidados:
WSRequestHeader:
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| System | object | Sí | Información del sistema que origina la petición |
| Property | array | No | Propiedades adicionales de la petición |
System:
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| name | string | Sí | Nombre del sistema que origina la petición |
| correlationID | string | Sí | Identificador único de correlación |
| processingServer | string | No | Servidor de procesamiento |
WSRequestBody:
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Audit | object | No | Información de auditoría de la aplicación |
| Customer | object | No* | Información del cliente a consultar |
| CUN | string | No* | Número CUN de la PQR |
| Num_PQR | string | No* | Número de la PQR |
| Phone | string | No* | Número de conexión a consultar |
| Billing_Account | string | No* | Número de cuenta de facturación a consultar |
| Filter | object | No | Filtros aplicables a la consulta |
*Al menos uno de estos campos debe estar presente para realizar la consulta.
Customer:
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Document_Type | string | Sí | Tipo de documento del cliente (CC, CE, NIT, etc.) |
| Document_Number | string | Sí | Número de documento del cliente |
Filter:
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Start_Date | datetime | No | Fecha inicio de la consulta |
| End_Date | datetime | No | Fecha fin de la consulta |
| Quantity | int | No | Cantidad de PQRs a consultar (por defecto 10) |
| Customer | boolean | No | Incluir información del cliente |
| Service | boolean | No | Incluir información del servicio |
| Billing_Account | boolean | No | Incluir información de cuenta de facturación |
| Order | boolean | No | Incluir información de órdenes |
| Schedules | boolean | No | Incluir información de agendas |
| Suspension_Info | boolean | No | Incluir información de suspensiones |
| States | object | No | Filtros por estado de PQR |
| Tipology | object | No | Filtros por tipología de PQR |
Respuesta esperada (Response)
Headers
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Content-Type | string | Sí | application/json |
| Status | string | Sí | Código de estado HTTP |
Body
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| WSResponseHeader | object | Sí | Cabecera de la respuesta |
| WSResponseBody | object | Sí | Cuerpo de la respuesta con las PQRs encontradas |
WSResponseHeader:
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| System | object | Sí | Información del sistema |
| Service | object | Sí | Información del estado del servicio |
Service:
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| status | string | Sí | Estado del servicio (OK, ERROR) |
| responseDate | datetime | Sí | Fecha de respuesta |
| processingServer | string | No | Servidor de procesamiento |
| statusDetail | array | Sí | Detalles del estado del servicio |
WSResponseBody:
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| PQRs | array | Sí | Lista de PQRs encontradas |
PQRs (cada elemento):
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Id | string | Sí | Número de la PQR |
| CUN | string | No | Código Único de Negocio |
| State | string | Sí | Estado de la PQR |
| Description | string | No | Descripción de la PQR |
| Phone | string | No | Número de conexión asociado |
| Service_Account | string | No | Cuenta de servicio |
| Billing__Account | string | No | Cuenta de facturación |
| Customer | object | No | Información del cliente |
| Service | object | No | Información del servicio |
| Typology | object | Sí | Tipología de la PQR |
| Creation_Date | object | No | Fecha de creación |
| Modification_Date | object | No | Fecha de modificación |
| Agendas | array | No | Lista de agendas asociadas |
| Activities | array | No | Lista de actividades |
Manejo de errores
| Código | Descripción | Ejemplo |
|---|---|---|
| ERROR_01 | Error en la validación de la petición | "La petición no es válida" |
| ERROR_02 | Error en el origen de la petición | "Origen no válido" |
| ERROR_06 | No se proporcionaron criterios de búsqueda | "Debe proporcionar al menos un criterio de búsqueda" |
| OK_01 | PQRs encontradas exitosamente | "Consulta realizada correctamente" |
| OK_02 | No 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 peticionesBaseResponse- Clase base para todas las respuestasBotBaseRequestHeader- Cabecera estándar de peticionesBotBaseResponseHeader- Cabecera estándar de respuestas
Utilidades y servicios comunes:
PQRUtil2.GetInstance- Utilidad principal para gestión de PQRsCRUD_PQR_PQR.GetInstance- Acceso a datos de PQRs en MongoDBCustomerUtil2.GetInstance- Gestión de información de clientesServiceUtil2.GetInstance- Gestión de información de serviciosBillingUtil2.GetInstance- Gestión de cuentas de facturaciónAuditUtil.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 PQRsPQRModel- Modelo de datos para PQRsBasic_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)
{
"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
{
"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
{
"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
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
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_PQR3.3 Secuencia de ejecución
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 JSONPolí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:
- Implementar paginación para grandes volúmenes de datos
- Agregar índices optimizados en MongoDB para consultas frecuentes
- Implementar cache distribuido para consultas repetitivas
Optimizaciones posibles:
- Paralelización de consultas de enriquecimiento de datos
- Implementación de consultas compuestas en MongoDB
- Uso de proyecciones para reducir el tamaño de respuesta
Consideraciones de mantenimiento importantes:
- Monitoreo de performance de consultas MongoDB
- Mantenimiento de índices de base de datos
- Actualización regular de filtros y tipologías
Sugerencias de seguridad aplicables:
- Implementar rate limiting más granular
- Agregar logging de auditoría más detallado
- Validación adicional de permisos por tipo de PQR
- Implementar encriptación de datos sensibles en tránsito