API Catálogo de Ofertas v2
Descripción general
Recurso de la capa de experiencia encargado de recuperar información del catálogo de ofertas para el usuario. Registra la información del request y response, y datos clave para auditoría y control de llamados realizados.
Categoría de Negocio: Movilidad
Capa de experiencia
Endpoint y método
GET [https://bot-xapi-services-qa.us-e2.cloudhub.io/v2/salesOrder/catalog](https://bot-xapi-services-qa.us-e2.cloudhub.io/v2/salesOrder/catalog)
Especificación
Estable
Descripción funcional
Recupera el catálogo de ofertas disponible para el usuario, incluyendo planes, características técnicas, promociones y precios.
Capa de proceso
No aplica.
Capa de sistema
Endpoint y método
POST [https://bot-sapi-services-dev.us-e2.cloudhub.io/bot/salesOrder/encrypted/v1](https://bot-sapi-services-dev.us-e2.cloudhub.io/bot/salesOrder/encrypted/v1)
Especificación
Ver especificación en Anypoint Exchange
Descripción funcional
Consulta el servicio BotService para recuperar la información del catálogo comercial de ofertas. Usa cifrado para la transmisión de datos sensibles hacia:
[http://botdev.portallteqa.p.azurewebsites.net/api/saleorder/v1/commercialcatalog/get](http://botdev.portallteqa.p.azurewebsites.net/api/saleorder/v1/commercialcatalog/get)
Ejemplos de Request/Response
Solicitud (request)
json
{
"Channel": "EDGEN-AI",
"CorrelationID": "EDGEN-AI",
"WSRequestHeader": {
"System": {
"Name": "MIETB",
"CorrelationID": "{{correlationID}}",
"ProcessingServer": null
},
"Property": [
{
"Name": "MIETB",
"Value": "value"
}
]
},
"WSRequestBody": "TURNLVBMVEUtMDIyOTQw"
}
Respuesta exitosa (200)
json
{
"WSResponseHeader": {
"System": {
"name": "EDGEN-AI",
"correlationID": "EDGEN-AI-001",
"processingServer": null
},
"Service": {
"status": "OK",
"responseDate": "2025-03-31T16:38:16.6336118Z",
"processingServer": null,
"statusDetail": [
{
"errorCode": "OK_01",
"errorDetailCode": "La solicitud fue exitosa, el cliente fue consultado",
"errorMessage": "La solicitud EDGEN-AI-001 fue exitosa. El cliente fue consultado.",
"errorMessageUser": null
}
]
},
"Property": []
},
"WSResponseBody": "mZrWkd+77wePpyp9yG..."
}
Respuesta de error (4xx/5xx)
json
{
"status": 409,
"code": "INVALID_FIELD",
"message": {
"message": ""
},
"messageServer": "ERROR at Row:1:Column:212 No such column 'Segmento' on entity 'Account'.",
"cause": [
{
"origin": "bot-xapi-services",
"message": "org.mule.extension.http.api.request.validator.ResponseValidatorTypedException"
}
]
}
json
{
"status": 500,
"code": "INTERNAL_SERVER_ERROR",
"message": {
"message": "HTTP GET on resource 'http://0.0.0.0:8080/XXXXX/services/xxxxxx' failed: internal server error (500)."
},
"messageServer": "Descripcion del error. Detalle de porque fallo.",
"cause": [
{
"origin": "bot-xapi-services",
"message": "org.mule.extension.http.api.request.validator.ResponseValidatorTypedException"
}
]
}
Esquemas de datos
Solicitud
Campo | Tipo | Obligatorio | Descripción |
---|---|---|---|
Channel | String | Sí | Canal de origen de la solicitud. |
CorrelationID | Number | Sí | Identificador único de correlación. |
WSRequestHeader.System.Name | String | No | Nombre del sistema. |
WSRequestHeader.System.CorrelationID | String | Sí | Identificador de correlación en el header. |
WSRequestHeader.System.ProcessingServer | String | Sí | Servidor de procesamiento. |
WSRequestHeader.Property.Name | String | Sí | Nombre de la propiedad adicional. |
WSRequestHeader.Property.Value | String | Sí | Valor de la propiedad adicional. |
WSRequestBody | String | Sí | Cuerpo cifrado de la solicitud. |
Respuesta exitosa (200)
Campo | Tipo | Obligatorio | Descripción |
---|---|---|---|
WSResponseHeader.System.name | String | Sí | Nombre del sistema que responde. |
WSResponseHeader.System.correlationID | Number | Sí | ID de correlación de la respuesta. |
WSResponseHeader.System.processingServer | String | No | Servidor de procesamiento. |
WSResponseHeader.Service.status | String | Sí | Estado de la respuesta. |
WSResponseHeader.Service.responseDate | String | Sí | Fecha y hora de la respuesta. |
WSResponseHeader.Service.statusDetail.errorCode | String | Sí | Código de error en caso de fallos. |
WSResponseHeader.Service.statusDetail.errorDetailCode | String | Sí | Detalle del código de error. |
WSResponseHeader.Service.statusDetail.errorMessage | String | No | Mensaje descriptivo del error. |
WSResponseHeader.Property | Object | No | Propiedades adicionales de la respuesta. |
WSResponseBody | String | Sí | Cuerpo cifrado de la respuesta. |
Respuesta de error (4xx/5xx)
Campo | Tipo | Obligatorio | Descripción |
---|---|---|---|
code | String | Sí | Descripción textual del código HTTP asociado al error. Ej: "Bad Request", "Internal Server Error". |
status | Number | Sí | Código estandarizado del error. Ej: 409, 500. |
message.message | String | No | Mensaje detallado para humanos. |
messageServer | String | Sí | Descripción técnica del error. |
cause.origin | String | Sí | Nombre de la API o capa generadora del error. |
cause.message | String | Sí | Descripción de la estructura de error. |
Diagramas
mermaid
flowchart TD
A[Cliente] -->|Request GET| B[API Experiencia]
B -->|Request Interno (POST)| C[API Sistema]
C -->|Request| D[BotService]
D -->|Response| C
C -->|Response| B
B -->|Response| A
Políticas de seguridad
Autenticación
- OAuth 2.0 Access Token Enforcement Using External Provider.
- Validación de token, vigencia y scope asociado al client_id.
- Respuesta de “Acceso denegado” si el token es inválido o no autoriza.
SLAs
- Puede incluir límites de 1000 req/min por cliente.
- Tiempo de respuesta esperado sujeto a acuerdos.
Rate Limits
Anypoint Security:
- Longitud máxima de ruta: 4096 bytes.
- Longitud máxima de encabezado: 16384 bytes.
CloudHub 2.0:
- Tamaño máximo de URI: 4 KB.
- Longitud máxima del encabezado HTTP: 32 KB.
Errores comunes
- 409 INVALID_FIELD: Campo no válido en el request.
- 500 INTERNAL_SERVER_ERROR: Error interno al procesar la solicitud.
Dependencias
Peticiones recibidas desde sistemas externos.
Llamada a la capa de sistema:
https://bot-sapi-services-dev.us-e2.cloudhub.io/bot/salesOrder/encrypted/v1
Comunicación con BotService en:
http://botdev.portallteqa.p.azurewebsites.net/api/saleorder/v1/commercialcatalog/get
Historial de cambios
Versión | Fecha | Descripción |
---|---|---|
En desarrollo | 16/06/2025 | Creación inicial |