# Write-Offs API



<EndpointIndex
  names={[
  	'fetchWriteOff',
  	'fetchMultipleWriteOffs',
  	'writeOffInvoice',
  	'writeOff',
  	'reverseWriteOff',
  ]}
  titles={{
  	fetchWriteOff: 'Fetch a Write-Off',
  	fetchMultipleWriteOffs: 'Fetch Multiple Write-Offs',
  	writeOffInvoice: 'Write-Off an Invoice',
  	writeOff: 'Create Write-Off',
  	reverseWriteOff: 'Reverse a Write-Off',
  }}
/>

Fetch a Write-Off [#fetch-a-write-off]

<ApiEndpoint name="fetchWriteOff" title="Fetch a Write-Off" />

Fetch Multiple Write-Offs [#fetch-multiple-write-offs]

<ApiEndpoint name="fetchMultipleWriteOffs" title="Fetch Multiple Write-Offs" />

<ApiSchema name="WriteOffListResponse" />

<ApiSchema name="WriteOffResponse" />

Write-Off an Invoice [#write-off-an-invoice]

<ApiEndpoint name="writeOffInvoice" title="Write-Off an Invoice" />

Create Write-Off [#create-write-off]

<ApiEndpoint name="writeOff" title="Create Write-Off" />

<ApiSchema name="WriteOffRequest" />

<ApiSchema name="WriteOffTarget" />

Reverse a Write-Off [#reverse-a-write-off]

<ApiEndpoint name="reverseWriteOff" title="Reverse a Write-Off" />

See Also [#see-also]

* [Write-Offs Feature Guide](/features/billing/write-offs)


## API Reference

GET /billing/{tenantLocator}/writeOffs/{locator} — fetchWriteOff
Tags: write-off-controller
Permissions: read
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
Responses:
  200 WriteOffResponse — OK

GET /billing/{tenantLocator}/writeOffs/list — fetchMultipleWriteOffs
Tags: write-off-controller
Permissions: read, list
Parameters:
  tenantLocator (uuid, path, required)
  offset (integer, query)
  count (integer, query)
  accountLocator (ulid, query)
  extended (boolean, query)
Responses:
  200 WriteOffListResponse — OK

PATCH /billing/{tenantLocator}/invoices/{locator}/writeOff — writeOffInvoice
Tags: invoices-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
Responses:
  200 WriteOffResponse — OK

POST /billing/{tenantLocator}/writeOffs — writeOff
Tags: write-off-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
Request body (WriteOffRequest):
Responses:
  200 WriteOffResponse — OK

PATCH /billing/{tenantLocator}/writeOffs/{locator}/reverse — reverseWriteOff
Tags: write-off-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
Responses:
  200 WriteOffResponse — OK

WriteOffListResponse
Properties:
  listCompleted (boolean, required)
  items (WriteOffResponse[], required)

WriteOffResponse
Properties:
  locator (ulid, required)
  creditType (Enum writeOff | shortfallWriteOff, required)
  writeOffState (Enum draft | distributed | reversed, required)
  currency (string, required)
  amount (number, required)
  createdAt (datetime, required)
  createdBy (uuid, required)
  accountLocator (ulid, required)
  targets (CreditItem[], required)
  reversalReason (string)
  reversedAt (datetime)

WriteOffRequest
Properties:
  accountLocator (ulid, required)
  targets (WriteOffTarget[], required)

WriteOffTarget
Properties:
  containerLocator (ulid, required)
  containerType (Enum invoice | account | subpayment | invoiceItem, required)
  amount (number)