A contract is discharged when both parties fully perform their contractual obligations.
If one party does not fully perform his contractual obligations, he is not discharged from his obligations and he remains bound to perform them. Refusal to perform may of course amount to a breach of the contract.
The general rule is that the party who has not fulfilled his obligations generally cannot demand performance of the other party’s obligations or payment from the other party. Exceptions to this general rule include:
Divisible contracts. For example in construction contracts where payments are made in instalments.
Contracts capable of fulfilment by substantial performance. For example where a party has substantially, but not completely, performed its part of the contract. In such a case the party that has performed the substantial part of the contract is entitled to payment by the other party but shall remain liable in damages for breach of contract.
Contracts where there has been acceptance of incomplete performance. For example a party may choose to accept partial performance and pay a reasonable amount of money for the work that has been done in respect of the same.