---
title: "Mark invoice as unpaid"
method: POST
path: "/invoices/{id}/mark-unpaid"
tags: ["Invoices"]
---

# Mark invoice as unpaid

`POST /invoices/{id}/mark-unpaid`

## Request

- Base URL: `https://api.vocal.email/v1`
- URL: `https://api.vocal.email/v1/invoices/{id}/mark-unpaid`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer
- TypeScript: <https://skmtc.dev/vocal/apis/magic-heidi-invoicing-software-api/docs/invoices/:id/mark-unpaid/post.ts> (a function with typed inputs; its response is checked against the schema)

Reverts the invoice to unpaid status. Use `clearPayments: true` to also remove all recorded payment entries.

## Request body

- object
  - `clearPayments` boolean

## Response `200`

OK

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `500`: Internal Server Error

## Changes

- **2026-10-01** `d0319ad57804`: 1 info
  - added the new optional request property `clearPayments`

[Operation history](https://skmtc.dev/vocal/apis/magic-heidi-invoicing-software-api/changes/invoices/:id/mark-unpaid/post.md)

---

[API](https://skmtc.dev/vocal/apis/magic-heidi-invoicing-software-api.md) - [All operations](https://skmtc.dev/vocal/apis/magic-heidi-invoicing-software-api/llms.txt) - [OpenAPI document](https://skmtc.dev/vocal/apis/magic-heidi-invoicing-software-api/revisions/d0319ad57804?raw)
