API SIM Cards v1
Descripción general
Recurso de la capa de experiencia encargado de gestionar la entrega de una tarjeta SIM a petición del cliente. Registra la información del request y response, así como los datos clave necesarios para auditoría y control.
Categoría de Negocio: Movilidad
Capa de experiencia
Endpoint y método
POST [https://bot-xapi-services-qa.us-e2.cloudhub.io/v1/salesOrder/simcards](https://bot-xapi-services-qa.us-e2.cloudhub.io/v1/salesOrder/simcards)
Especificación (enlace si existe)
Estable
Descripción funcional
Permite registrar la entrega de una tarjeta SIM al cliente, validando la información y enviando la solicitud a la capa de sistema.
Capa de proceso
No aplica.
Capa de sistema
Endpoint y método
POST [https://bot-sapi-services-dev.us-e2.cloudhub.io/bot/salesOrder/encripted/v1](https://bot-sapi-services-dev.us-e2.cloudhub.io/bot/salesOrder/encripted/v1)
Especificación
Descripción funcional
Consulta directamente la API BotService para gestionar la entrega de la tarjeta SIM al cliente mediante:
[http://botdev.portallteqa.p.azurewebsites.net/api/saleorder/v1/sendsimcard](http://botdev.portallteqa.p.azurewebsites.net/api/saleorder/v1/sendsimcard)
Ejemplos de Request/Response
Solicitud (request)
json
{
"billingAddress": "",
"deliveryAddress": {
"address": "Cl. 83 Bis #23, Bogotá, Colombia",
"city": "BOGOTA D.C.",
"cityDane": "11001",
"department": "BOGOTA",
"departmentDane": "11",
"district": "Pastranita"
},
"deliveryType": "ENTREGA ESPECIALIZADA",
"deliveryInvoiceType": "Electronica",
"orderNumber": "MDM-PLTE-022940",
"order": {
"flow": "LTE"
}
}
Respuesta exitosa (200)
json
{
"responseHeader": {
"system": {
"name": "TIENDA",
"correlationID": "TIENDA-210520252124-418372791",
"processingServer": ""
},
"service": {
"status": "OK",
"responseDate": "2025-05-21T21:23:54.7267772Z",
"processingServer": "",
"statusDetail": [
{
"errorCode": "OK_01",
"errorDetailCode": "Se actualizo la información",
"errorMessage": "La solicitud TIENDA-210520252124-418372791 fue exitosa",
"errorMessageUser": ""
}
]
},
"properties": [
{
"name": "FLUJO",
"value": "LTE"
}
]
}
}
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 |
---|---|---|---|
billingAddress | String | Sí | Dirección de facturación. |
deliveryAddress.address | String | Sí | Dirección de entrega. |
deliveryAddress.city | String | No | Ciudad. |
deliveryAddress.cityDane | String | Sí | Código DANE de la ciudad. |
deliveryAddress.department | String | Sí | Departamento. |
deliveryAddress.departmentDane | String | Sí | Código DANE del departamento. |
deliveryAddress.district | String | Sí | Barrio o distrito. |
deliveryType | String | Sí | Tipo de entrega. |
deliveryInvoiceType | String | Sí | Tipo de factura. |
orderNumber | String | Sí | Número de la orden. |
order.flow | String | Sí | Flujo de la orden. |
Respuesta exitosa (200)
Campo | Tipo | Obligatorio | Descripción |
---|---|---|---|
responseHeader.system.name | String | Sí | Nombre del sistema que responde. |
responseHeader.system.correlationID | Number | Sí | ID de correlación para trazabilidad. |
responseHeader.system.processingServer | String | No | Servidor de procesamiento. |
responseHeader.service.status | String | Sí | Estado de la respuesta. |
responseHeader.service.responseDate | String | Sí | Fecha y hora de la respuesta. |
responseHeader.service.statusDetail.errorCode | String | Sí | Código del resultado. |
responseHeader.service.statusDetail.errorDetailCode | String | Sí | Detalle del código. |
responseHeader.service.statusDetail.errorMessage | String | No | Mensaje descriptivo. |
responseHeader.properties.name | Object | No | Propiedades adicionales. |
Respuesta de error (4xx/5xx)
Campo | Tipo | Obligatorio | Descripción |
---|---|---|---|
code | String | Sí | Código HTTP asociado al error. |
status | Number | Sí | Código estandarizado del error. |
message.message | String | No | Mensaje comprensible 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 técnica del error. |
Diagramas
Diagrama de flujo
Espacio reservado para el diagrama de flujo.
Diagrama de secuencia
Espacio reservado para el diagrama de secuencia.
Políticas de seguridad
Autenticación
- OAuth 2.0 Access Token Enforcement Using External Provider.
- Validación del token, su vigencia y el scope asociado al client_id.
- Respuesta de “Acceso denegado” si el token es inválido o no autorizado.
SLAs
- Puede incluir límite de 1000 req/min por cliente.
- Tiempos de respuesta sujetos a acuerdos establecidos.
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 inválido en la solicitud.
- 500 INTERNAL_SERVER_ERROR: Error interno al procesar la solicitud.
Dependencias
Recepción de peticiones desde sistemas externos.
Envío a la capa de sistema:
https://bot-sapi-services-dev.us-e2.cloudhub.io/bot/salesOrder/encripted/v1
Comunicación con BotService:
http://botdev.portallteqa.p.azurewebsites.net/api/saleorder/v1/sendsimcard
Historial de cambios
Versión | Fecha | Descripción |
---|---|---|
En desarrollo | 16/06/2025 | Creación inicial con operación SIM. |