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

# Read an act by its reference

> What a reference names: the act, the Loan it is about, and whether the fact it wrote still stands.

Every act on a Loan — a cancellation, an acceleration, a write-off, a rollover, a return, a cession, a retraction — is recorded under a `reference` of yours, and this read answers what that reference names. It is the read to make when an act's response was lost: it tells you whether the act was recorded, against which Loan and on which day, before you decide whether to send it again. A [Receipt](/api-reference/receipts/read) has always been readable the same way.

The nine acts share one namespace per Tenancy, so the path names no Loan. A reversal keeps its own namespace and is read through its Receipt.

## Path parameters

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

<ParamField path="reference" type="string" required>
  The act's reference, as you recorded it. One never recorded — or recorded by another Tenancy — is `404` `no_act`, and asking records nothing.
</ParamField>

## Response

<ResponseField name="reference" type="string" required>
  The reference, echoed.
</ResponseField>

<ResponseField name="kind" type="string" required>
  `cancelled`, `accelerated`, `written_off`, `rolled_over`, `returned`, `ceded`, `suspended`, `suspension_ended` or `retracted` — spelled as the Loan's events spell it.
</ResponseField>

<ResponseField name="loan_id" type="string" required>
  The Loan the act is about.
</ResponseField>

<ResponseField name="event_id" type="string" required>
  The fact the act wrote, as the Loan's `events` name it — or, on a retraction, the fact it withdrew.
</ResponseField>

<ResponseField name="on" type="string" required>
  The civil day the act stated.
</ResponseField>

<ResponseField name="amount" type="object">
  What went back, on a return. Absent on every other kind.
</ResponseField>

<ResponseField name="to" type="string">
  The last day a suspension stated; its first is `on`. Absent on every other kind.
</ResponseField>

<ResponseField name="suspension_id" type="string">
  The suspension an early end ended. Absent on every other kind.
</ResponseField>

<ResponseField name="actor" type="string" required>
  Who acted, as you stated it.
</ResponseField>

<ResponseField name="basis" type="string" required>
  Why, as you stated it.
</ResponseField>

<ResponseField name="context" type="object">
  Your object, as the act carried it. Absent where none was attached.
</ResponseField>

<ResponseField name="retracted" type="boolean" required>
  Whether the fact this act wrote has since been withdrawn. Always `false` on a retraction, which withdraws rather than stands.
</ResponseField>

## Refusals

| Condition | Status and code | What clears it |
| - | - | - |
| Nothing is recorded under the reference | <Badge color="orange">404</Badge> `no_act` | Nothing to clear: the act was not recorded, and sending it is safe |
| The reference breaks the grammar | <Badge color="orange">422</Badge> `invalid_identifier` | Letters, digits, `-` and `_`, at most 64 |

<RequestExample>
  ```bash Read theme={null}
  curl "https://api.capcells.com/v1/tenants/$TENANT_ID/acts/cancel-0001" \
    -H "Authorization: $(capcells_sign "$CAPCELLS_API_KEY" GET "/v1/tenants/$TENANT_ID/acts/cancel-0001")"
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "reference": "cancel-0001",
    "kind": "cancelled",
    "loan_id": "c68c7355-0598-4cf4-a69a-b6b4ea10a5c4",
    "event_id": "5b0c3f0e-2f7d-4a39-9d5b-2a7f1c0e8b11",
    "on": "2026-03-03",
    "actor": "ops-0007",
    "basis": "agreed in error: wrong client selected at the desk",
    "retracted": false
  }
  ```
</ResponseExample>


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