Cancelar Actividad
Cancelar una actividad en estado READY o RETRYING.
PATCH /api/activities/:id/cancel
Cancela una actividad. La transición a Actividad fue cancelada explícitamente desde un estado no-terminal (READY o RETRYING) porque la razón de negocio que la motivó dejó de aplicar antes del envío (por ejemplo, el cliente ya hizo la acción objetivo por otro canal, decidió no recibirla, o el destinatario dejó de ser válido). La cancelación es terminal: no se produce resultado ni ocurre dispatch. está disponible desde Actividad está completamente resuelta y lista para accionar. Si el cliente tiene configurado un proveedor para hacer dispatch de las actividades, la próxima acción del sistema intenta despachar, de lo contrario la actividad permanece READY y podrá ser accionada desde la plataforma interna por algún operador. y Ha fallado al menos un intento de dispatch; el sistema reintentará automáticamente. Cada reintento mantiene la actividad en este estado. Pasa a DISPATCHED cuando un intento tiene éxito, o a FAILED cuando se agotan los reintentos disponibles. (ver Activity States para el state machine completo).
Auth: Requerida — permiso activity:cancel
Parámetros de Ruta
| Parámetro | Tipo | Descripción |
|---|---|---|
id | UUID | ID de la actividad |
Ejemplo
curl -X PATCH https://api.reten.ai/api/activities/ee0e8400-e29b-41d4-a716-446655440000/cancel \
-H "Authorization: Bearer <token>" \
-H "x-tenant-id: <tenant-id>" \
-H "x-project-id: <project-id>"const activityId = "ee0e8400-e29b-41d4-a716-446655440000";
const response = await fetch(`https://api.reten.ai/api/activities/${activityId}/cancel`, {
method: "PATCH",
headers: {
"Authorization": "Bearer <token>",
"x-tenant-id": "<tenant-id>",
"x-project-id": "<project-id>",
},
});
const data = await response.json();import requests
activity_id = "ee0e8400-e29b-41d4-a716-446655440000"
response = requests.patch(
f"https://api.reten.ai/api/activities/{activity_id}/cancel",
headers={
"Authorization": "Bearer <token>",
"x-tenant-id": "<tenant-id>",
"x-project-id": "<project-id>",
},
)
data = response.json()Respuesta 200 OK
Devuelve la actividad completa después de la cancelación, incluidos su commerceAssignment y sus statusEvents. El ejemplo de abajo está abreviado.
{
"id": "ee0e8400-e29b-41d4-a716-446655440000",
"projectId": "3f6c2b1a-8d4e-4f7a-9b2c-5e1d0a7f6c34",
"status": "CANCELED"
}Respuestas de Error
| Estado | Descripción |
|---|---|
400 | La actividad no está en READY ni en RETRYING — Cannot cancel activity in status "<STATUS>". Activity can only be canceled from non-terminal states (READY, RETRYING). |
404 | No existe una actividad con ese id en el proyecto activo (incluida una actividad de otro proyecto) — Actividad no encontrada |