---
title: "Assign a member to an allowance rule"
method: POST
path: "/members/{member_id}/rule-assignments"
tags: ["Allowance Management"]
---

# Assign a member to an allowance rule

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

Creates a new rule assignment for a member. Assignments for one allowance type form a chain, so an end date is only accepted on the day before the next assignment starts or on the member's last employment day; leave `rule_end_date` null when nothing follows. Gaps or overlaps that already existed are tolerated, but a write may not widen them. Allowance values are automatically recalculated.

## Path parameters

- `member_id` string, uuid, required

## Request body

- object
  - `rule_id` string, uuid, required
  - `allowance_type_id` string, uuid, required
  - `rule_start_date` string, required — First day the rule applies (inclusive), in YYYY-MM-DD format.
  - `rule_end_date` string, nullable — Last day the rule applies (inclusive), in YYYY-MM-DD format, or null for open-ended. To cover a member through 2026-08-31, send 2026-08-31.
  - `reason` string, required — Why this assignment is being created — stored in the rule audit log.

## Response `200`

Successful response

- object
  - `id` number, required

## Other responses

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

## Changes

- **2026-09-23** `00323426aebd` — 3 warning
  - changed the pattern of the `path` request parameter `member_id` from `^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$` to `^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$`
  - changed the pattern of the request property `allowance_type_id` from `^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$` to `^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$`
  - changed the pattern of the request property `rule_id` from `^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$` to `^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$`

[Change history](https://skmtc.dev/absentify/apis/absentify-crud-api/changes/members/:member_id/rule-assignments/post.md)

---

[API](https://skmtc.dev/absentify/apis/absentify-crud-api.md) · [All operations](https://skmtc.dev/absentify/apis/absentify-crud-api/llms.txt) · [OpenAPI document](https://skmtc.dev/absentify/apis/absentify-crud-api/revisions/0f8b476900a8?raw)
