> ## 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 a payoff quote

> Record the figure that discharges a Loan on a date, because you are about to relay it, and receive it with the record's identifier.

Ask for this when you tell a borrower "pay this to end the loan". The Platform derives what discharges the Loan on the date you name — exactly as [the payment options](/api-reference/clients/payment-options) do, one derivation and one number — records it with the versions of what computed it, and answers the figure with the record's `id`. The Receipt that pays it may name that `id` in [`quote_id`](/api-reference/receipts/report), and its allocation then says whether the money was the recorded figure.

The record binds nothing. No settlement cites it: a Receipt is settled against the figure derived on its value date, whatever was recorded. What the record is for is the day a later answer moves — a Receipt with an earlier value date arrives, a release changes the calendar — and you need to show what the Platform said and what said it. Every record is listed on [the Loan's payoff quotes](/api-reference/loans/payoff-quotes).

<Note>
  **The payment options record nothing.** They answer the same figure for a screen, as often as a screen is drawn. Record only what you relay: each request records again, because asking twice is two acts of saying, and the second answer may differ.
</Note>

## Path parameters

<ParamField path="tenant_id" type="string" required>
  The Tenancy the Loan belongs to.
</ParamField>

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

## Body

<ParamField body="on" type="string" required>
  The date the figure answers for, `YYYY-MM-DD` — which may be one that has not arrived, "what if I pay on Friday". Required and never defaulted. The figure itself is the Platform's to derive: a body stating one is refused.
</ParamField>

## Response

`201` with the record:

<ResponseField name="loan_id" type="string" required>
  The Loan.
</ResponseField>

<ResponseField name="id" type="string" required>
  The record's identifier — what a Receipt paying it names in `quote_id`.
</ResponseField>

<ResponseField name="quoted_for" type="string" required>
  The date the figure answers for: the `on` you named.
</ResponseField>

<ResponseField name="served_at" type="string" required>
  RFC 3339 in UTC: the moment the Platform said it.
</ResponseField>

<ResponseField name="owed" type="object" required>
  What discharges the Loan on `quoted_for`, as `minor_units` and `currency` — the payment options' `payoff.owed` total for the same date, to the minor unit.
</ResponseField>

<ResponseField name="computed_by" type="object" required>
  The three versions that produced it: `engine`, `calendar`, `country`. [What each names](/api-reference/loans/payoff-quotes#what-the-three-versions-name).
</ResponseField>

<ResponseField name="note" type="string" required>
  The sentence every listing of quotes carries: a recorded quote is evidence of what was said, never authority over what is owed.
</ResponseField>

## Refusals

| Condition | Status and code |
| - | - |
| No `on`, or a date before the Loan's anchor, or one on which it stands discharged, cancelled or sold | <Badge color="orange">422</Badge> `outside_loan` |
| The Loan is open on the date and the Platform could not derive its payoff figure | <Badge color="red">409</Badge> `undeterminable` — the reason the payment options show in the Loan's `anomalies` |
| No such Loan, or another Tenancy's | <Badge color="orange">404</Badge> `not_found` |
| A field this route does not read, `owed` among them | <Badge color="orange">400</Badge> |

A refused recording records nothing.

<RequestExample>
  ```bash Record theme={null}
  BODY='{ "on": "2026-04-13" }'
  LOAN=7771aef0-9e65-4a0a-a902-aab4e970d33f

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

<ResponseExample>
  ```json 201 theme={null}
  {
    "loan_id": "7771aef0-9e65-4a0a-a902-aab4e970d33f",
    "id": "b41e0a52-1f7c-4a1d-9d0e-0c2f6b8a4e31",
    "quoted_for": "2026-04-13",
    "served_at": "2026-04-13T16:41:07.902244Z",
    "owed": { "minor_units": 787367, "currency": "MXN" },
    "computed_by": {
      "engine": "c45dd7bb8f3901498b2e6fe8da185ff1ee950331",
      "calendar": "94364e4c694519022ac6db0274d1cb07aea422708768b81f8f75507ea1c4373f",
      "country": "36a0213c9989d83f931a5dbb010d474b05e0da9c1a6adc6d3df9735741af97f6"
    },
    "note": "a recorded quote is evidence of what was said, never authority over what is owed: what discharges the loan today is the payment-options read's answer"
  }
  ```

  ```json 422 No date theme={null}
  {
    "error": "loan: the question falls outside the loan: a payoff is quoted as of a date, and none was given -- there is no today the platform can supply",
    "code": "outside_loan"
  }
  ```
</ResponseExample>


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