---
title: "Decide on approval request"
url: https://hexelstudio.com/docs/api/ciam-iam/approvals/decide-on-approval-request
---

# Decide on approval request

**POST** `/approvals/requests/{request_id}/decisions`

Needs iam:approval:manage. The approver is the caller, who must not be the requester, must be listed when the workflow sets approver_user_ids, and must hold approver_role in the organization when the workflow sets it (a membership level or higher, or a permission set assigned organization-wide).

## Path parameters

- `request_id: string`

  Request ID

## Headers

- `Authorization: string`

  `Bearer <token>`.

## Body parameters

- `approver_user_id: optional string`

- `comment: optional string`

- `decided_at: optional string`

- `decision: optional string`

- `id: optional string`

- `request_id: optional string`

## Returns

`201` Created (`ApprovalDecision`)

- `approver_user_id: optional string`

- `comment: optional string`

- `decided_at: optional string`

- `decision: optional string`

- `id: optional string`

- `request_id: optional string`

## Errors

- `400` Bad Request
- `403` Forbidden
- `404` Not Found
- `409` Conflict

## Example

```bash
curl --request POST \
  --url 'https://api.hexelstudio.com/v1/approvals/requests/{request_id}/decisions' \
  --header "Authorization: Bearer $ACCESS_TOKEN" \
  --header 'Content-Type: application/json' \
  --data '{
  "approver_user_id": "string",
  "comment": "string",
  "decided_at": "2026-01-01T00:00:00Z",
  "decision": "string",
  "id": "string",
  "request_id": "string"
}'
```

### Response (201)

```json
{
  "approver_user_id": "string",
  "comment": "string",
  "decided_at": "2026-01-01T00:00:00Z",
  "decision": "string",
  "id": "string",
  "request_id": "string"
}
```

### Response (400)

```json
{
  "key": "string"
}
```

### Response (403)

```json
{
  "key": "string"
}
```

### Response (404)

```json
{
  "key": "string"
}
```

### Response (409)

```json
{
  "key": "string"
}
```
