是有上限的。合同违约金以当事人约定为准,法律没有具体规定合同违约金上限,合同违约金以当事人约定为主,可以约定具体数额,也可以约定计算方法,如果约定的违约金过高或者过低,当事人可以请求予以减少或增加。如果是定金合同,约定定金数额不得超过主合同标的额的20%。