Operar en Lote Enlaces de Paradas
Descripción
Ejecuta operaciones en lote para asociar/desasociar/reemplazar/limpiar sesiones de pago (session_id) visibles en una o varias Paradas (stop_id) en una sola llamada.
Operaciones soportadas:
- add: Agrega 1..N
session_idcomo activos (si ya estaban, es no-op y se reportan enalready_present) - remove: Desasocia 1..N
session_idactivos (si no estaban activos, se reportan ennot_activeonot_found) - replace: Sustituye atómicamente el conjunto activo por
session_ids. Con lista vacía ⇒clear - clear: Elimina todos los activos (la Parada puede quedar en estado Empty)
Características:
- Idempotente mediante encabezado
Idempotency-Key(TTL: 24 horas) - Cada ítem se procesa de forma independiente
- El resultado se devuelve por Parada
- Rate limit: 100 requests/minuto por comercio
Notas importantes:
- Solo sesiones
pendingpueden activarse (add/replace). Las sesionespaid/expiredpasan a histórico automáticamente replacecon lista vacía equivale aclear(limpieza atómica)- Usa siempre
Idempotency-Keyen operaciones en lote - Máximo 100 items por batch
Endpoint
POST/api/v1/ext/payment-stops/payment-sessions/batch
Autenticación Requerida
Bearer / Token: BearerAuth
Requiere el uso de el token obtenido en /auth/login
Esquema: bearer (JWT)
Request
Ejemplos de Body (JSON)
Operaciones mixtas en múltiples paradas
{
"continue_on_error": true,
"items": [
{
"stop_id": "stp_111",
"op": "add",
"session_ids": [
"sess_A",
"sess_B"
]
},
{
"stop_id": "stp_222",
"op": "remove",
"session_ids": [
"sess_C"
]
},
{
"stop_id": "stp_333",
"op": "replace",
"session_ids": [
"sess_D"
]
},
{
"stop_id": "stp_444",
"op": "clear"
}
]
}
Responses
- 201
- 207
- 400
- 401
- 409
- 422
- 429
- 500
Batch procesado exitosamente - todas las operaciones completadas
Multi-Status - Batch procesado con resultados mixtos (algunos éxitos, algunos fallos)
Bad Request - Payload inválido, campos requeridos faltantes, formato incorrecto
Unauthorized - Token de autorización faltante o inválido
Conflict - Conflicto de idempotencia, clave ya utilizada con payload diferente
Unprocessable Entity - Reglas de negocio violadas, sesiones no válidas, paradas no autorizadas
Too Many Requests - Rate limit excedido
Response Headers
Segundos hasta que se puede reintentar
Límite de requests por ventana
Requests restantes en la ventana actual
Timestamp Unix cuando se resetea el límite
Internal Server Error - Error interno del servidor, problemas de conectividad