The only way to get a business to agree to a refactor is to show them it will save them money. I dont mean just tell them, you need to be able to say we will save x days on bug type y saving us z pounds.Or in terms of savings when it comes to adding features.
It's all about the money.
Edit: I'm assuming this code is now live or late stage development. Refactoring during dev is a whole different question.