# Request a state change

`POST /lokta-lms/api/v1/sourcing-partners/{partnerId}/state-change-requests`

Requests a change of state for a sourcing partner, with a reason.

`{"requested_state": "on_hold" | "deactivated" | "active", "reason": "…"}`. A reason is required: the checker decides on it and the trail keeps it.

One open request per partner: a second is `409 sourcing/state_change_already_pending`. Requesting `active` fails fast if the partner cannot be activated (external id, terms), and the same gate re-runs authoritatively at approval, because the world changes between request and decision.

## Parameters
- `partnerId` (path, string, required)
- `Idempotency-Key` (header, string): Per-intent key

## Request body (application/json)
- `requested_state` (string, required): The state being asked for.
- `reason` (string, required): Required. The checker decides on it and the trail keeps it.

## Responses
- `default`: default response

## Example request (cURL)
```bash
curl -X POST \
  'https://default.lokta.tech/lokta-lms/api/v1/sourcing-partners/{partnerId}/state-change-requests' \
  -u '{username}:{password}' \
  -H 'Tenant-Identifier: default' \
  -H 'Content-Type: application/json' \
  -d '{
  "requested_state": "on_hold",
  "reason": "string"
}'
```

Interactive: https://developer.lokta.ai/reference#operation/request
