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

# Mark an invoice paid

> POST /v1/invoices/{invoiceId}/mark-paid records money the business received outside Cleo, such as a check or wire.

```
POST /v1/invoices/{invoiceId}/mark-paid
```

**Scope:** `invoices:write`  ·  **Idempotency-Key:** optional, recommended

Records a payment received outside Cleo on an open invoice awaiting payment, a partly paid invoice, or one whose Cleo payment failed. When the invoice becomes fully paid, `invoice.paid` fires.

<ParamField path="invoiceId" type="string" required>The invoice.</ParamField>
<ParamField body="amountCents" type="integer">At least 1. Default: the amount still due.</ParamField>

<ParamField body="method" type="string">
  `check`, `ach`, `zelle`, `wire_transfer`, `cash`, `venmo`, `credit_card` or `other`.
</ParamField>

<ParamField body="note" type="string">How it was paid, for example a check number. Up to 500 characters.</ParamField>

```bash theme={null}
curl -X POST https://api.stg.cleo-pay.com/v1/invoices/d7e8f9a0-b1c2-4d3e-8f4a-5b6c7d8e9f0a/mark-paid \
  --header "Authorization: Bearer $CLEO_API_KEY" \
  --header "Content-Type: application/json" \
  --header "Idempotency-Key: f0e1d2c3-b4a5-4968-8776-655443322110" \
  --data '{ "method": "check", "note": "Check #10442" }'
```

## Response

`200` with the [invoice](/api-reference/invoices/get).

## Errors

| Code | When |
| - | - |
| `validation_error` | The invoice is not open and awaiting payment. |
| `payment_in_progress` | A payment on the invoice is in flight. |


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