合法,当事人可以约定一方违约时应当根据违约情况向对方支付一定数额的违约金,也可以约定因违约产生的损失赔偿额的计算方法,但违约金数额超过违约造成损失30%的,属于约定过高,可以要求减少。
《合同法》第一百一十四条 当事人可以约定一方违约时应当根据违约情况向对方支付一定数额的违约金,也可以约定因违约产生的损失赔偿额的计算方法。 约定的违约金低于造成的损失的,当事人可以请求人民法院或者仲裁机构予以增加;约定的违约金过分高于造成的损失的,当事人可以请求人民法院或者仲裁机构予以适当减少。 当事人就迟延履行约定违约金的,违约方支付违约金后,还应当履行债务。