Spanish flag

Tener que vs. deber vs. haber de

In Spanish, while deber, tener que, and haber de can all be translated as must or to have to, they carry distinct nuances of obligation, necessity, and duty. Understanding their differences is key to speaking more precisely.

Tener que

A1
This is the most common and strongest way to express necessity or obligation. It implies that the obligation is imposed by external circumstances, rules, or another person, leaving little to no choice. It's the direct equivalent of the English to have to.
Tengo que trabajar este sábado.
(I have to work this Saturday.)
Si quieres viajar, tienes que comprar un billete de avión.
(If you want to travel, you have to buy a plane ticket.)
Los niños tienen que ir a la escuela.
(Children have to go to school.)
Tuvimos que llamar a un fontanero porque la tubería se rompió.
(We had to call a plumber because the pipe broke.)
¿Por qué tienes que irte tan pronto?
(Why do you have to leave so soon?)

Deber

A2
This verb expresses a moral obligation, a duty, a strong recommendation, or a logical assumption. It's often translated as should or ought to when giving advice, and as must when referring to a duty. It implies a sense of what is right or correct to do.
Debes ser honesto con tus amigos.
(You should be honest with your friends.)
Los conductores deben respetar los límites de velocidad.
(Drivers must respect the speed limits.)
Debo terminar este informe para la reunión.
(I must finish this report for the meeting.)
Si estás enfermo, deberías quedarte en casa.
(If you are sick, you should stay home.)
Él no ha llegado todavía, debe de estar atascado en el tráfico.
(He hasn't arrived yet, he must be stuck in traffic. (Note: deber de implies probability).)

Haber de

B2
This construction is less common in modern, everyday speech and often sounds more formal or literary. It expresses a mild obligation, a personal intention, or a future plan. It sits somewhere between the strong necessity of tener que and the moral duty of deber.
He de admitir que tu argumento es muy convincente.
(I must admit that your argument is very convincing.)
Has de saber que la reunión se ha cancelado.
(You should know that the meeting has been canceled.)
El tren ha de llegar en cualquier momento.
(The train is to arrive at any moment.)
Hemos de ser prudentes con nuestras decisiones.
(We must be prudent with our decisions.)
He de llamar a mis padres este fin de semana.
(I have to (am supposed to) call my parents this weekend.)

Summary

In summary: use tener que for strong, unavoidable obligations, often from external pressures. Use deber for moral duties, responsibilities, and strong recommendations (what you should do). Use haber de for a more formal, slightly weaker, or more personal sense of obligation or intention, though it is less frequent in common conversation.