Method

  1. Prepare the ham and onion

    Mince 80 g of yellow onion very finely so it melts into the filling. Cut 120 g of Serrano ham into pieces no larger than a pea; large pieces can tear the croquettes while shaping. Warm 480 ml of whole milk in a saucepan over low heat until steaming but not simmering, then keep it warm.

  2. Build the savory roux

    Melt 50 g of unsalted butter with 15 ml of extra-virgin olive oil in a wide, heavy saucepan over medium-low heat. Add 80 g of yellow onion and cook for 5 to 6 minutes, stirring often, until soft and translucent without browning. Stir in 120 g of Serrano ham and cook for 1 minute. Add 90 g of all-purpose flour for filling and stir continuously for 2 minutes; the mixture should look smooth and smell lightly toasted, with no dry flour remaining.

    00:05:00
    00:01:00
    00:02:00
  3. Cook the croquette filling

    Pour in 480 ml of whole milk in four additions, whisking each addition smooth before adding the next. Stir in 0.5 g of ground nutmeg, 0.5 g of black pepper, and 1 g of kosher salt. Cook over medium-low heat for 10 to 12 minutes, switching to a sturdy spoon and scraping the bottom and corners constantly. Begin checking at 10 minutes: the filling is ready when it gathers into a soft mass, leaves a clear trail across the pan for several seconds, and pulls away cleanly from the sides.

    10:00
  4. Cool the filling until firm

    Cool the filling until firm during preparation

    Scrape the hot filling into a wide, shallow metal tray and spread it into an even layer about 2 cm (3/4 in) deep. Set the tray over a larger pan filled with ice and a little water, keeping water out of the filling. Stir once after 10 minutes, smooth the surface again, and continue cooling for 45 to 50 minutes until cold, firm, and easy to scoop.

    00:10:00
    00:45:00
  5. Shape and bread the croquettes

    Shape and bread the croquettes during preparation

    Place 30 g of all-purpose flour for coating, 2 large eggs, and 100 g of plain breadcrumbs in three separate shallow bowls. Beat 2 large eggs until completely blended. Scoop the filling into compact portions and roll each into a short log about 5 cm (2 in) long and 2.5 cm (1 in) thick. Coat each log in 30 g of all-purpose flour for coating, dip it in 2 large eggs, then press it gently into 100 g of plain breadcrumbs so no wet patches remain. Use a dedicated utensil for the egg and a clean hand for the crumbs, and place breaded croquettes on a clean plate that has not touched raw egg.

  6. Fry until crisp and fully cooked

    Pour 360 ml of neutral frying oil into a small, deep, heavy saucepan so the oil is at least 3 cm (1 1/4 in) deep. Heat it to 175°C (350°F). Fry the croquettes in small batches without crowding, turning as needed, for 2 to 3 minutes; begin checking at 2 minutes. They should be evenly deep golden and crisp. Use clean tongs to remove them. Check one croquette from the first batch with a food thermometer and make sure the center reaches 71°C/160°F so the egg coating is fully cooked. Let the oil return to 175°C (350°F) before each new batch.

    02:00
  7. Drain and serve

    Transfer the croquettes to a wire rack set over a tray so the crust stays crisp. Let them stand for 3 minutes, then serve warm as a shared tapa while the centers are creamy.

    03:00
Cook's noteSerrano ham varies in saltiness. Taste the cooked filling before adding any extra seasoning, and keep the croquettes small enough to heat through before the crust darkens.

Smart Substitutions

  • No Serrano ham? Use prosciutto or another thinly sliced dry-cured ham, and omit the added salt until the filling has been tasted.
  • No whole milk? Use 2% milk. The center will be slightly less rich but should still set properly.
  • No plain breadcrumbs? Use panko and crush it lightly between your hands so the coating seals evenly around the small logs.
  • No yellow onion? Use shallot or the pale part of a leek for a similarly gentle sweetness.

Tips and Variations

  • Cut the ham very finely; large, sharp pieces can puncture the coating and let the filling escape.
  • Cook the béchamel until a spoon drawn across the pan leaves a trail that stays open for several seconds.
  • Fry only a few croquettes at a time so the oil temperature recovers quickly and the crust stays crisp.

What Went Wrong?

  • Filling is too soft to shape Return it to the saucepan and cook over medium-low heat for 2 to 3 minutes, stirring constantly, then cool it again over the ice bath.
  • Croquettes split in the oil Repair any thin or cracked spots with a little beaten egg and breadcrumbs, and confirm the oil is at 175°C (350°F) before frying.
  • Crust browns before the center is hot Lower the oil to 175°C (350°F), make the croquettes slightly smaller, and verify the center reaches 71°C/160°F.
  • Béchamel turns lumpy Take the pan off the heat and whisk firmly until smooth before continuing with the next addition of milk.

Nutrition Estimate

Calories544
Protein22 g
Carbs43 g
Fat31 g
  • Fiber: 2 g per serving
  • Sodium: 1010 mg per serving

Nutrition disclaimer:This recipe is provided for general cooking information only. Nutrition values are estimates and may vary by ingredients, brands, preparation methods, and serving sizes. Check ingredient labels and follow appropriate food-safety practices. This content is not medical, dietary, allergy, or professional food-safety advice.

FAQ

What makes Spanish croquettes different from potato croquettes?Spanish croquetas are usually built from a thick béchamel rather than mashed potato. The result is a crisp shell with a soft, creamy center flavored here with Serrano ham.