---
title: "Mark Invoice as Paid"
method: POST
path: "/coa/api/v1/invoice/{invoice_id}/pay/"
tags: ["Accounts Receivable"]
---

# Mark Invoice as Paid

`POST /coa/api/v1/invoice/{invoice_id}/pay/`

Mark an invoice as paid, allowing partial payments.

        This endpoint supports multiple payment methods:
        - Apply existing transactions as payments
        - Apply credit memos to reduce the invoice balance
        - Create manual payments without a transaction

        The request body should contain at least one of:
        - transactions: List of transaction payments to apply
        - credit_memos: List of credit memos to apply
        - empty_transactions: List of manual payments without transactions

## Path parameters

- `invoice_id` integer, required

## Request body

- MarkPaid
  - `transaction_match_id` integer, nullable
  - `transactions` MarkPaidTransaction[], nullable
    - `transaction_match_id` integer, nullable
    - `transaction_id` integer, nullable
    - `transaction_ids` integer[], nullable
    - `account_id` integer, nullable
    - `amount` number, double, required
    - `amount_payable` number, double, nullable
    - `credit_account_id` integer, nullable
    - `writeoff_account_id` integer, nullable
    - `withholding_amount` number, double, nullable
    - `withholding_tax_rate_id` integer, nullable
  - `credit_memos` MarkPaidCreditMemo[], nullable
    - `credit_memo_id` integer, required
    - `amount` number, double, required
    - `posted_at` string, date, required
  - `debit_memos` MarkPaidDebitMemo[], nullable
    - `debit_memo_id` integer, required
    - `amount` number, double, required
    - `posted_at` string, date, required
  - `empty_transactions` MarkPaidEmptyTransaction[], nullable
    - `account_id` integer, required
    - `account_name` string, required
    - `amount` number, double, required
    - `payment_date` string, date, required
    - `department_id` integer, nullable
    - `tag_ids` integer[]
    - `memo` string, nullable
    - `external_id` string, nullable
    - `currency` string, nullable
    - `amount_in_invoice_currency` number, double, nullable
    - `amount_in_bill_currency` number, double, nullable
    - `withholding_amount` number, double, nullable
    - `withholding_tax_rate_id` integer, nullable

## Response `200`

- MarkInvoicePaidResponse — 200 payload for the mark-invoice-paid endpoint. The endpoint returns ids of the records it created rather than the invoice itself. ``auto_created_credit_memos`` is only present when an overpayment produced one.
  - `journal_entry_ids` integer[], required
  - `payment_ids` integer[], required
  - `auto_created_credit_memos` MarkInvoicePaidAutoCreatedCreditMemo[]
    - `id` integer, required
    - `credit_memo_number` string, required

---

[API](https://skmtc.net/campfire/apis/campfire-developer-apis.md) · [All operations](https://skmtc.net/campfire/apis/campfire-developer-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/campfire/campfire-developer-apis/versions/6945ebc3180e/schema)
