---
title: "Mark a customer invoice as paid"
method: PUT
path: "/api/external/v2/customer_invoices/{id}/mark_as_paid"
tags: ["Customer Invoices"]
---

# Mark a customer invoice as paid

`PUT /api/external/v2/customer_invoices/{id}/mark_as_paid`

## Request

- Base URL: `https://app.pennylane.com`
- URL: `https://app.pennylane.com/api/external/v2/customer_invoices/{id}/mark_as_paid`
- Auth: OAuth 2
  - Authorization code: `https://app.pennylane.com/oauth/authorize`
  - Token URL: `https://app.pennylane.com/oauth/oauth/token` scopes: `customer_invoices:all`

Mark a customer invoice as paid. No automatic reconciliation will
be done once the invoice is marked as paid


> ℹ️
> This endpoint requires the following scope: `customer_invoices:all`

## Path parameters

- `id` integer, required

## Headers

- `X-Company-Id` string

## Response `204`

Customer invoice marked as paid

## Other responses

- `400`: Bad request
- `401`: Access token is missing or invalid
- `403`: Access to this resource forbidden
- `404`: The resource was not found
- `422`: Unprocessable content

## Changes

- **2026-11-03** `871f863307e5`: 1 info
  - added the new optional `header` request parameter `X-Company-Id`

[Operation history](https://skmtc.dev/pennylane/apis/company-v2/changes/api/external/v2/customer_invoices/:id/mark_as_paid/put.md)

---

[API](https://skmtc.dev/pennylane/apis/company-v2.md) - [All operations](https://skmtc.dev/pennylane/apis/company-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/pennylane/apis/company-v2/revisions/871f863307e5?raw)
