Skip to main content
All requests in this guide assume you have a valid access token attached in your request headers. See our authentication guide for more information.
Some objects are now deleted with a POST to /delete on the object’s path, instead of a DELETE request. The new route works the same way as the old one, and it lets you send a reason for the delete. Campfire saves that reason on the audit log entry for the delete.
The DELETE routes below are deprecated and will be removed on {{REMOVAL_DATE}}. We’ll email you at least a week before they’re removed. Move your integration to the POST routes before then.

Which endpoints changed

In every case the new route is the object’s path with /delete added to the end.

Settings

Accounts and accounting records

Bills, invoices and memos

Revenue and contracts

Payees

A payee delete returns 202 Accepted and finishes in the background, the same as the DELETE route. Other delete endpoints don’t change yet. When more of them move to POST /delete, we’ll announce them in the changelog with the same notice. The new routes need the same permissions as the DELETE routes they replace.

Updating your requests

1

Change the method and path

Send POST instead of DELETE, and add /delete to the end of the object’s path.
Query parameters carry over unchanged: new_account, new_department, new_tag, new_product and new_vendor work on the POST routes just as they did on the DELETE routes. For example, to reassign a department’s records to department 7 before deleting it:
2

Add a reason (optional)

To record why the object is being deleted, send a JSON body with a reason. The body is optional: leave it out, or send an empty reason, to delete without one.
A reason longer than 500 characters, or one containing NUL characters, returns 400 Bad Request, and nothing is deleted.
3

Handle the response

The responses are the same as for the DELETE routes:Payee deletes are the exception: they always return 202 Accepted with {"detail": "Vendor deletion in progress"}, and Campfire deletes the payee in the background.

Approving a pending delete

When a delete returns 202, approve it the same way as before: send the request again with ?draft_queue_id=<id>, this time to the POST route. <id> is the id of the pending draft in the 202 response.

Where the reason shows up

Campfire saves the reason on the audit log entry for the delete. The Audit Log CSV export includes it in a Reason column.
Need help? Contact your Campfire support team and we’re happy to help you build your best Campfire workflow!