계약금은 법률보증의 성격을 가지고 있어 민사 행위자가 스스로 약속할 수 있지만, 약속한 금액은 계약총액의 20% 를 초과할 수 없으며, 일부 계약금이 없는 법적 효력을 초과할 수 없다. 계약금은 주계약이 이행된 후 반납할 수도 있고, 주계약가격을 상쇄하는 데도 사용할 수 있다. 계약금을 지불한 쪽이 채무를 이행하지 않거나 채무를 이행하는 것은 합의에 맞지 않아 계약 목적이 실현되지 못하고 계약금 반환을 요청할 권리가 없다. 계약금을 받는 쪽이 채무를 이행하지 않거나 채무를 이행하는 것은 약속과 맞지 않아 계약 목적을 실현할 수 없게 되면 계약금은 두 배로 돌려주어야 한다.
제 587 조는 채무자가 채무를 이행하는 경우 계약금을 저당잡히거나 회수해야 한다고 규정하고 있다. 계약금을 지불한 쪽이 채무를 이행하지 않거나 채무를 이행하는 것은 합의에 맞지 않아 계약 목적이 실현되지 못하고 계약금 반환을 요청할 권리가 없다. 계약금을 받는 쪽이 채무를 이행하지 않거나 채무를 이행하는 것은 약속과 맞지 않아 계약 목적을 실현할 수 없게 되면 계약금은 두 배로 돌려주어야 한다.
계약금은 법률 용어의 개념이 아니며 명확한 법적 성격과 법적 효력이 없다. 실제로 계약금은 보통 선불금의 성질로 나타나는데, 계약금과 동등한 징벌적 효력이 없다. 따라서 일반적으로 쌍방이 계획한 계약 목적을 달성할 수 없을 때 계약금을 환불한다. 그리고 이런 상황에서는 어느 쪽의 원인이 계약 목적의 허사로 이어지는지 고려해야 한다. 계약자는 법에 따라 위약 당사자에게 위약 책임을 요구할 권리가 있으며, 선불금을 미리 지불한 당사자는 위약 당사자에게 계약금 환불을 요구할 수 있다.