Form: haber + participle
The present perfect joins the present of haber with a past participle. It is the Spanish equivalent of English "have done".
| Person | haber | + participle |
|---|---|---|
| yo | he | hablado |
| tú | has | comido |
| él / ella / usted | ha | vivido |
| nosotros/-as | hemos | trabajado |
| vosotros/-as (Spain) | habéis | bebido |
| ellos / ellas / ustedes | han | salido |
Participles are built with -ado for -ar verbs and -ido for -er and -ir verbs. When the stem ends in a strong vowel, the í takes an accent: leer → leído, oír → oído, traer → traído, creer → creído.
Irregular participles
| Infinitive | Participle | Infinitive | Participle |
|---|---|---|---|
| hacer | hecho | poner | puesto |
| decir | dicho | volver | vuelto |
| ver | visto | abrir | abierto |
| escribir | escrito | romper | roto |
| morir | muerto | cubrir | cubierto |
Compounds inherit the same form: describir → descrito, devolver → devuelto, deshacer → deshecho.
Nothing comes between haber and the participle
The two words are welded together. Negatives, pronouns and adverbs all go before haber.
- No he terminado. — I haven't finished.
- Lo he visto esta mañana. — I saw it this morning.
- Siempre he querido ir a Perú. — I have always wanted to go to Peru.
The participle never agrees when it follows haber: Las cartas, las he escrito hoy (not escritas).
When it is used
With time that is still open: hoy, esta mañana, esta semana, este año, últimamente, and with ya, todavía no, nunca, alguna vez.
- Hoy he dormido mal. — I have slept badly today.
- ¿Has estado alguna vez en México? — Have you ever been to Mexico?
- Todavía no hemos comido. — We haven't eaten yet.
In Spain this tense is used constantly. In most of Latin America the preterite covers the same ground: ¿Ya comiste? where a Spaniard says ¿Ya has comido? Both are correct in their own region.
Watch out as an English speaker
- Don't split the verb. ✗ He no visto la película. / ✓ No he visto la película. ✗ He siempre querido. / ✓ Siempre he querido.
- Irregular participles are not optional. ✗ He escribido, he hacido, he ponido / ✓ He escrito, he hecho, he puesto.
- "For three years" with something still going on. He vivido aquí tres años exists, but the everyday way is the present with desde hace or llevar, and por is wrong here. ✗ Vivo aquí por tres años. / ✓ Vivo aquí desde hace tres años. (or Llevo tres años aquí.)
- "Have got" is not haber. Possession is tener. ✗ He un coche nuevo. / ✓ Tengo un coche nuevo.
Example dialogue
¿Has visto a Luis hoy? — Have you seen Luis today?
No, todavía no ha llegado. — No, he hasn't arrived yet.
Qué raro. Le he escrito dos mensajes esta mañana. — How odd. I've written him two messages this morning.
Esta semana ha tenido mucho trabajo. — He's had a lot of work this week.
Ya lo he entendido. Lo llamo mañana. — I get it now. I'll call him tomorrow.