@Witton, you can determine the permissions based on Roles, so you can have a Role that can delete and another can’t, a good approach for you case, I believe is a Workflow or a Custom Field where the user Mark to Removal, if you choice a Custom Field, creating a field named Disabled in the document it dont will be showed in the list by default!
Many thanks for your advice. Can we make use of cancel only for all document we don’t want instead of delete? Not sure this apply to ERPNext all the documents? example : Delivery Note, PO, PR, Account Journal, etc…
@Witton, Cancel, will be applied only for Transactions since it is submittable! Can be a alternative use-case for you, but keep in mind, that it is restricted to some documents.