API Pagos v1
Descripción general
Recurso de la capa de experiencia encargado de gestionar solicitudes de pago. Registra la información del request y response, así como los datos clave 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/payments](https://bot-xapi-services-qa.us-e2.cloudhub.io/v1/salesOrder/payments)
Especificación (enlace si existe)
Estable
Descripción funcional
Permite gestionar las solicitudes de pago, integrándose con BotService y registrando auditoría de consumo.
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 el servicio BotService para gestionar la solicitud de pago, usando la ruta interna:
[http://botdev.portallteqa.p.azurewebsites.net/api/saleorder/v1/pay](http://botdev.portallteqa.p.azurewebsites.net/api/saleorder/v1/pay)
Ejemplos de Request/Response
Solicitud (request)
json
{
"orderNumber": "MDM-PLTE-022940",
"attributes": [
{
"attribute": "usuarioId",
"value": "6707"
}
]
}
Respuesta exitosa (200)
json
{
"responseHeader": {
"system": {
"name": "TIENDA",
"correlationID": "TIENDA-210520252127-4108091958",
"processingServer": ""
},
"service": {
"status": "OK",
"responseDate": "2025-03-09T11:12:53.8492443-05:00",
"processingServer": "",
"statusDetail": [
{
"errorCode": "OK_01",
"errorDetailCode": "Se genero el intento de pago exitosamente",
"errorMessage": "La solicitud TIENDA-210520252127-4108091958 fue exitosa",
"errorMessageUser": ""
}
]
},
"properties": [
{
"name": "propiedad_1",
"value": "valor_propiedad_1"
}
]
},
"responseBody": {
"totalValue": 167800,
"totalValueStr": "167,800"
}
}
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 |
---|---|---|---|
orderNumber | String | Sí | Número de orden para el pago. |
attributes.attribute | String | Sí | Nombre del atributo. |
attributes.value | String | No | Valor del atributo. |
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. |
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 | Propiedad adicional del header. |
responseHeader.properties.value | String | No | Valor de la propiedad adicional. |
responseBody.totalValue | Number | Sí | Valor total del pago. |
responseBody.totalValueStr | String | Sí | Valor total en formato string. |
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/pay
Historial de cambios
Versión | Fecha | Descripción |
---|---|---|
En desarrollo | 16/06/2025 | Creación inicial con operación pagos |