根据《合同法》第20条,要约失效的原因主要有以下几种:
1、拒绝要约的通知到达要约人。拒绝要约是指受要约人没有接受要约所规定的条件。拒绝的方式有多种,既可以是明确表示拒绝要约的条件,也可以在规定的时间内不作答复而拒绝。一旦拒绝,则要约失效。不过,受要约人在拒绝要约以后,也可以撤回拒绝的通知,但必须在撤回拒绝的通知先于或同时于拒绝要约的通知到达要约人处,撤回通知才能产生效力。
2、要约人依法撤销要约。要约在受要约人发出承诺通知之前,可由要约人撤销要约,一旦撤销,要约将失效。
3、承诺期限届满,受要约人未作出承诺。凡是在要约中明确规定了承诺期限的,则承诺必须在该期限内作出,超过了该期限,则要约自动失效。
4、受要约人对要约的内容作出实质性变更。受要约人对要约的实质内容作出限制、更改或扩张从而形成反要约,既表明受要约人已拒绝了要约,同时也向要约人提出了一项反要约。如果在受要约人作出的承诺通知中,并没有更改要约的实质内容,只是对要约的非实质性内容予以变更,而要约人又没有及时表示反对,则此种承诺不应视为对要约的拒绝。但如果要约人事先声明要约的任何内容都不得改变,则受要约人更改要约的非实质性内容,也会产生拒绝要约的效果。