---
title: invoices.markPaidOutside | Doing Work API
description: Record that the customer paid an invoice outside Doing Work (check, cash, financing, insurance or other). Owner or office only, with their own sign-in. Clo
url: https://doingwork.work/docs/reference/invoices-markpaidoutside/
---

# invoices.markPaidOutside

Record that the customer paid an invoice outside Doing Work (check, cash, financing, insurance or other). Owner or office only, with their own sign-in. Closes the invoice, and the job too unless its checklists still block done (job_status says which; finish them and call jobs.complete). The job record says "Paid outside Doing Work", is never marked paid or verified, and no Doing Work receipt goes to the homeowner. There is no limit on jobs paid outside Doing Work and no fee on them.

|  |  |
|---|---|
| Who | A person's own sign-in only (agent tokens are refused) |
| REST | `POST /v1/invoices/paid-outside` |
| MCP tool | Not an MCP tool |
| Writes | yes, send an Idempotency-Key |
| Area | [Invoices and payments (unlimited)](https://doingwork.work/docs/reference/#invoices-and-payments-unlimited) |

## When to use it

Agents can't call this. Tell the owner or office to record a cash, check, financing or insurance payment with their own sign-in.

## What to tell the owner

Record that payment yourself in Doing Work. Pay as you go includes 3 a month; paid plans have no limit.

## Input

| Field | Type | Required |
|---|---|---|
| `invoice_id` | string | yes |
| `method` | string (one of check, cash, financing, insurance, other) | yes |
| `paid_on` | string | yes |
| `note` | string | no |

## Example

```http
POST https://doingwork.work/v1/invoices/paid-outside
content-type: application/json
Idempotency-Key: 3f1c...

{
  "invoice_id": "00000000-0000-4000-8000-000000000000",
  "method": "check",
  "paid_on": "2026-10-31"
}
```

## Output

JSON. The response shape isn't published yet; read the fields you need and ignore the rest. Errors are `{code, message, status}`.

## Errors

| Code | Status | What to do |
|---|---|---|
| `outside_pay_limit` |  |  |
| `forbidden` | 403 | This worker's role can't do this, or it needs a person's own sign-in rather than an agent token. Tell the person who can. |
| `invalid_input`, `invalid_token`, `rate_limited` |  | Can happen on any call. See [errors](https://doingwork.work/docs/errors/). |
