> ## Documentation Index
> Fetch the complete documentation index at: https://docs.capcells.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Confirm a held loan

> Record that a held Loan was signed. It is active from its anchor.

A Loan issued with `hold_until` is `held`: every term and period is fixed, it draws its grant, and it owes nothing. A confirmation records the signature. From it the Loan is `active` **from its anchor**, exactly as if it had been issued active — interest runs from the anchor, because that is what the borrower signed.

## Path parameters

<ParamField path="tenant_id" type="string" required>
  The Tenancy acting.
</ParamField>

<ParamField path="loan_id" type="string" required>
  The Loan. Another Tenancy's and one that never existed are both `404`.
</ParamField>

## Body

<ParamField body="on" type="string" required>
  The day of the signature: on or after the anchor, on or before `hold_until`.
</ParamField>

<ParamField body="reference" type="string" required>
  Your name for the act, in the one act namespace of the Tenancy.
</ParamField>

<ParamField body="actor" type="string" required>
  Whoever acted, your own reference.
</ParamField>

<ParamField body="basis" type="string" required>
  Why, in your words.
</ParamField>

<ParamField body="context" type="object">
  Stored, echoed beside the fact, read by nothing.
</ParamField>

## Response

`201` with [the whole Loan](/api-reference/loans/read): `state` reads `active`. Retry `200`; a differing body under the recorded `reference`, `409` `reference_reused`.

## Refusals

| Condition | Status and code | What clears it |
| - | - | - |
| `on` is after `hold_until` | <Badge color="red">409</Badge> `hold_expired` | Nothing — the Loan is `expired`; [void it](/api-reference/loans/void) |
| The Loan was issued active, or is already confirmed | <Badge color="red">409</Badge> `not_held` | Nothing to confirm |
| The Loan is voided | <Badge color="red">409</Badge> `voided` | Retract the void |
| `on` is before the anchor | <Badge color="orange">422</Badge> `invalid_event` | State the signature day |

<RequestExample>
  ```bash Confirm a held loan theme={null}
  BODY='{
    "on": "2026-08-12",
    "reference": "sign-0001",
    "actor": "ops-0007",
    "basis": "contract signed at the counter"
  }'

  curl -X POST "https://api.capcells.com/v1/tenants/$TENANT_ID/loans/$LOAN_ID/confirmation" \
    -H "Authorization: $(capcells_sign "$CAPCELLS_API_KEY" POST "/v1/tenants/$TENANT_ID/loans/$LOAN_ID/confirmation" "$BODY")" \
    -H "Content-Type: application/json" \
    -d "$BODY"
  ```
</RequestExample>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.