Skip to main content
POST
Manually write off an invoice as uncollectible
Writes off an invoice by hand. The invoice’s status becomes uncollectible, any scheduled retry is cleared, and the write-off reversal is posted to the ledger so AR no longer overstates what is owed. It is the manual counterpart of the write-off the dunning engine performs automatically. The reversal credits Accounts Receivable for the full invoice total, split by what has already happened to the revenue:
  • Still-deferred portion (a subscription invoice’s pre-tax amount not yet recognized): debit Deferred Revenue, credit AR. Under the cash model this is the whole pre-tax amount.
  • Already-recognized portion (accrual-model revenue recognized before payment, or all of a one-off invoice’s pre-tax amount): recognized revenue cannot be un-deferred, so it is expensed — debit Bad Debt Expense, credit AR.
  • Tax: debit Tax Payable, credit AR, since tax on money that will never be collected is not owed.
A partially-recognized invoice therefore shows all three legs in Invoice Journal Entries. Only an open or past_due invoice can be written off — the call cannot resurrect a paid, voided or already-uncollectible invoice, so it is safe to repeat: a second call returns 404. The invoice stays on the collections queue with status: uncollectible while a balance is still owing, and counts toward the uncollectible bucket of the collections funnel. To see the posted legs, use Invoice Journal Entries.

Path Parameters

No request body.

Example Request

Response

Fields

Errors

The status change is committed before the ledger reversal is posted. If the posting fails the invoice stays uncollectible, the failure is logged, and the un-reversed write-off remains visible in the tie-out’s unscheduled bucket until it is reconciled — the write-off is never silently lost.
Errors use the standard envelope — see Errors.

Authorizations

Authorization
string
header
required

Tenant API key obtained from POST /auth/register or POST /v1/developer/keys.

Path Parameters

id
string<uuid>
required

Response

Invoice marked uncollectible.

data
object