Skip to content

Update Todo

Partially updates an existing todo. Only the fields included in the request body are modified.

Endpoint

PUT /todo-service/v1/todos/{id}

Path Parameters

Parameter Type Required Description
id string Yes Unique identifier of the todo

Request Body

All fields are optional. Only provided fields are updated.

Parameter Type Required Description
todo_status string No New status: ACTIVE, COMPLETED, or CANCELLED
priority string No Priority: HIGH, MEDIUM, or LOW
due_date string (date-time) No Updated due date in RFC3339 format
threshold_count integer No Updated target count
current_count integer No Updated current count
assigned_to_user_id string No User ID to assign
assigned_to_role string No Role to assign: PROVIDER, FRONT_OFFICE, or BILLER
context_data object No Replaces the entire context_data object

Request

curl --location --request PUT '{base_url}/todo-service/v1/todos/td-9f3a1bc2-4e5d-4f6a-8b7c-123456789abc' \
  --header 'Authorization: Bearer JWT_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
    "todo_status": "COMPLETED",
    "priority": "MEDIUM"
  }'

Response

Success Response

Code: 200 OK

Returns the updated todo object.

{
  "id": "td-9f3a1bc2-4e5d-4f6a-8b7c-123456789abc",
  "todo_type": "POC_EXPIRY",
  "patient_id": 12345,
  "case_id": null,
  "clinic_id": 1001,
  "organisation_id": 2001,
  "todo_status": "COMPLETED",
  "priority": "MEDIUM",
  "due_date": "2025-02-15T10:00:00Z",
  "days_until_due": 14,
  "is_overdue": false,
  "threshold_count": null,
  "current_count": null,
  "remaining_count": null,
  "assigned_to_user_id": null,
  "assigned_to_role": "PROVIDER",
  "entity_id": "poc-abc-123",
  "entity_type": "PLAN_OF_CARE",
  "context_data": {
    "plan_of_care_id": "poc-abc-123"
  },
  "actions": [],
  "polling_url": "/todo-service/v1/todos/td-9f3a1bc2-4e5d-4f6a-8b7c-123456789abc/status",
  "created_at": "2025-01-31T08:00:00Z",
  "updated_at": "2025-01-31T09:30:00Z",
  "version": 2,
  "deleted": false,
  "deleted_at": null
}

Error Response

Code: 404 Not Found

{
  "error": "Todo not found: td-9f3a1bc2-4e5d-4f6a-8b7c-123456789abc"
}