# Correct an attribution

`POST /lokta-lms/api/v1/loan-attributions/{id}/corrections`

Moves a loan to a different partner, or back to Direct.

Move a loan to a different partner, or, with `partner_id: null`, back to **Direct**.

One verb for both, because they are one event: the loan's introducer changed. Two verbs would give one fact two audit trails, and the trail is the entire reason corrections are allowed at all.

`reason` is mandatory (`422 sourcing/correction_reason_required`). This changes who is paid for a loan, so a correction with no stated cause is indistinguishable from fraud when someone reads it back. A correction that leaves the attribution unchanged is refused rather than recorded; a reason logged against an event that never happened is worse than no record, because a later reader cannot tell it from a real change.

## Parameters
- `id` (path, string, required): Opaque attribution id, spa_…
- `Idempotency-Key` (header, string): Per-intent key

## Request body (application/json)
- `reason` (string, required): Required. A correction with no stated cause is refused.
- `partner_id` (string): The partner the loan moves to. Null moves it back to Direct.

## Responses
- `default`: default response

## Example request (cURL)
```bash
curl -X POST \
  'https://default.lokta.tech/lokta-lms/api/v1/loan-attributions/{id}/corrections' \
  -u '{username}:{password}' \
  -H 'Tenant-Identifier: default' \
  -H 'Content-Type: application/json' \
  -d '{
  "reason": "string",
  "partner_id": "string"
}'
```

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