---
title: "Move a member to another rule"
method: POST
path: "/members/{member_id}/rule-change"
tags: ["Allowance Management"]
---

# Move a member to another rule

`POST /members/{member_id}/rule-change`

Ends the member's current assignment on `valid_from` and starts the new rule on the same day, in one transaction. Prefer this over deleting and recreating assignments: it leaves neither a gap nor an overlap, and records the move as a single audit entry.

## Path parameters

- `member_id` string, uuid, required

## Request body

- object
  - `current_assignment_id` integer, required — The assignment being replaced, from GET /members/{member_id}/rule-assignments.
  - `rule_id` string, uuid, required — The rule to move the member to.
  - `allowance_type_id` string, uuid, required
  - `valid_from` string, required — First day the new rule applies (inclusive), in YYYY-MM-DD format. Must be after the current assignment's start date.
  - `valid_until` string, nullable — Last day the new rule applies (inclusive), in YYYY-MM-DD format, or null for open-ended. To cover the member through 2026-08-31, send 2026-08-31.
  - `reason` string, required — Why the member is being moved — stored in the rule audit log.

## Response `200`

Successful response

- object
  - `success` boolean, required

## Other responses

- `400` — Invalid input data
- `401` — Authorization not provided
- `403` — Insufficient access
- `500` — Internal server error

---

[API](https://skmtc.net/absentify/apis/absentify-crud-api.md) · [All operations](https://skmtc.net/absentify/apis/absentify-crud-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/absentify/absentify-crud-api/revisions/ef777d51e6f2/schema)
