---
title: "Cancel expense"
method: POST
path: "/expenses-api/expenses/{id}/cancel"
tags: ["Expenses (only available for accounting add-on users)"]
---

# Cancel expense

`POST /expenses-api/expenses/{id}/cancel`

Cancels an expense by its ID.

Sets the expense status to CANCELED, deletes all associated Journal Entries.

Supports cancellation of expenses in SCHEDULED, SUBMITTED, or INSUFFICIENT_FUNDS status.
Rejects cancellation for PAID or already CANCELED expenses.
Rejects cancellation when any associated Journal Entry is locked, reconciled, or disbursed.

## Path parameters

- `id` string, required

## Response `200`

Expense successfully canceled

## Other responses

- `401` — Authentication required - invalid or missing token
- `403` — You do not have sufficient permissions to access this resource
- `404` — Expense not found
- `409` — Expense cannot be canceled - already processed, canceled, or has locked charges
- `500` — Unhandled exception. Something went wrong on server

---

[API](https://skmtc.net/guesty/apis/guesty-open-api.md) · [All operations](https://skmtc.net/guesty/apis/guesty-open-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/guesty/guesty-open-api/versions/7c62644070f2/schema)
