> ## 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.

# Rescind a loan

> Record that the agreement was undone by a condition it named. Nothing is owed; everything received comes back.

A rescission records that the agreement was undone by a condition it named — a bill the biller refused, a purchase that did not go through. The Loan reads `rescinded`:

* From its anchor it owes **nothing**: no interest, fee, penalty or late fee, whatever the market's fee rule says of early repayment.
* Everything the receipts settled against it is **owed back** to the Client, named by the rescission and itemised by receipt in [the Client's obligations](/api-reference/clients/obligations).
* From the act's date it **takes no money**. A receipt naming it is refused `409` `undone`.

It is not a [cancellation](/api-reference/loans/cancellation), which says the disbursement never happened and is refused once money arrived.

## 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 the agreement was undone. On or after the anchor.
</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 `rescinded`, and `undoing` states the act and `owed_back`. Retry `200`.

## Refusals

| Condition | Status and code | What clears it |
| - | - | - |
| The Loan is `cancelled` | <Badge color="orange">422</Badge> `invalid_event` | Nothing — it never began |
| The Loan is ceded or written off | <Badge color="red">409</Badge> `cession_in_force`, `write_off_in_force` | Retract that fact |
| A rescission, void or withdrawal stands | <Badge color="red">409</Badge> `undone` | Retract it |
| A fact stands on or after `on` | <Badge color="orange">422</Badge> `invalid_event` | State a later day, or retract that fact |

Retracting the rescission withdraws what it owed back and restores the Loan.

<RequestExample>
  ```bash Rescind a loan theme={null}
  BODY='{
    "on": "2026-08-25",
    "reference": "rescind-0001",
    "actor": "ops-0007",
    "basis": "the biller refused the bill"
  }'

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


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