It's good practice to mark endpoints that should not take money as non payable so people won't accidentally send money to the contract, [mars example](https://github.com/mars-protocol/red-bank/blob/master/contracts/red-bank/src/contract.rs#L55)