Negotiation is often described as the process by which agents come to a mutually acceptable agreement about some subject. This definition is quite broad, as this process can be viewed from many different angles. Here we consider negotiation from the perspective of contracts. We present a general model of contract-based negotiation and propose a logic programming-based argumentation framework to capture and formalise this model.