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

# Record an acceleration

> Record that the whole balance was demanded. From the day after the call, every remaining period is overdue.

An acceleration records that the whole balance was called. It is a fact, not a state: the Loan answers `201` with the `accelerated` event among its facts and reads `active` still — what changes is what stands overdue. [Calling the whole balance](/lending/delinquency) carries the conditions and the arithmetic.

The conditions are the regime's, frozen at issuance: on the site's worked configuration, three Periods must stand overdue and fifteen days of notice must precede the call. A jurisdiction may forbid the operation outright.

## 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 civil day of the call, never defaulted.
</ParamField>

<ParamField body="notice_given_on" type="string">
  The day notice was delivered — yours, because a notice period nobody can evidence is not a notice period. Required where the regime states `notice_days`.
</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. Never derived from the credential.
</ParamField>

<ParamField body="basis" type="string" required>
  Why, in your words. No vocabulary is imposed.
</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). From the day after `on`, every remaining Period is overdue — `overdue_from` carries that day on Periods that had not matured — and each accrues penalty on its own principal. The late fee is not among what acceleration adds: a Period that never missed its own due date earned none. Retry `200`; a differing body under the recorded `reference`, `409` `reference_reused`.

## Refusals

| Condition | Status and code | What clears it |
| - | - | - |
| Fewer Periods stand overdue than the regime requires — a missed Period is one unsettled, never merely one elapsed | <Badge color="orange">422</Badge> `acceleration_refused` | The sentence names both counts |
| The regime requires notice and `notice_given_on` is absent | <Badge color="orange">422</Badge> `acceleration_refused` | State the day notice was delivered |
| The call is dated before `notice_given_on` plus the regime's `notice_days` | <Badge color="orange">422</Badge> `acceleration_refused` | The sentence names the earliest day the call can take effect |
| `notice_given_on` falls after `on` | <Badge color="orange">422</Badge> `invalid_event` | Notice precedes the call |
| A fact still in force falls on or after `on` | <Badge color="orange">422</Badge> `invalid_event` | State a later day, or retract that fact |
| An acceleration already stands | <Badge color="red">409</Badge> `already_accelerated` | Retract it — the retry that answers `200` is the one under the recorded `reference` |
| The Loan is not one a call can reach — cancelled, ceded, written off | <Badge color="red">409</Badge> | The refusal names the fact in force and its cure |

<RequestExample>
  ```bash Accelerate theme={null}
  BODY='{
    "on": "2026-06-20",
    "notice_given_on": "2026-06-03",
    "reference": "accel-0001",
    "actor": "ops-0007",
    "basis": "tres periodos vencidos; aviso entregado por burofax"
  }'

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

<ResponseExample>
  ```json 201 theme={null}
  {
    "id": "4418b0ac-4525-456b-9622-f052368b4c8d",
    "state": "active",
    "events": [
      { "id": "…0001", "kind": "issued", "occurred_on": "2026-03-02", "recorded_at": "2026-08-31T10:52:56.895931Z" },
      {
        "id": "…0002",
        "kind": "accelerated",
        "occurred_on": "2026-06-20",
        "recorded_at": "2026-08-31T10:52:56.930994Z",
        "act": {
          "reference": "accel-0001",
          "actor": "ops-0007",
          "basis": "tres periodos vencidos; aviso entregado por burofax"
        }
      }
    ],
    "anomalies": [],
    …
  }
  ```

  ```json 422 Too early theme={null}
  {
    "error": "loan: acceleration refused: 2 periods stand overdue on 2026-05-10 and the regime requires 3",
    "code": "acceleration_refused"
  }
  ```
</ResponseExample>


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