This post may feature affiliate links. Please read our disclosure policy.
This sopa de frijoles (bean soup) is inspired by the bold flavors of Northern Mexico and Southern Texas. Creamy pinto beans are seasoned with cumin, Mexican oregano, and chipotle peppers, creating a spicy, smoky, and earthy dish.

Table of Contents
📖 About
This pinto bean soup is a healthy, simple, and inexpensive recipe that’s great for a busy household. It’s made in under 30 minutes and uses easy-to-find pantry staples, making it the perfect weeknight dinner!
Soup is a favorite in our household because of how great the leftovers store in the fridge or freezer (check out our storage section for more info).
Although this isn’t necessarily a traditional Mexican, it’s inspired by recipes like frijoles charros or frijoles de olla.
While both usually contain various types of meat, the seasonings are earthy, creamy, smoky, and spicy. That combination never gets old!
History
There are many types of sopa de frijoles in Mexican cuisine — from sopa de frijol negro and sopa de habas to carne en su jugo or lentejas.
Beans are an extremely nutritious crop that has been feeding the Mexican population for thousands of years. In fact, they’ve been a staple of this region long before it was even called Mexico.
Beans are grown mainly in the western and northwestern regions of Mexico (Durango, Zacatecas, Chihuahua, Sinaloa, Sonora, and Nayarit), but they are a large part of most Latin American cuisine.
While black beans are more popular around the Southern regions (like Yucatan and Chiapas), pinto beans are commonly found in Northern Mexican and Tex-Mex dishes.
🌱 Is it vegan?
Of course, this sopa de frijoles is completely plant-based. But, there are a few things to watch out for when making your own recipe:
- Beans: If you aren’t making beans from scratch, many canned varieities include pork lard or meat in their ingredient list. Always check the labels!
- Cheese: While it’s common to use cotija or queso fresco as a garnish, you can easily replace them with a dairy-free almond cotija.
- Crema fresca: Another common topping for bean soup is Mexican crema, which is similar to sour cream. Instead of a dairy-based crema, try cashew crema.
- Broth: A lot of Latin American sopas de frijoles make use of meat-based broths, so just swap in vegetable broth or water instead.

🍲 Ingredients & substitutions
For complete ingredient measurements and instructions, see our recipe card.
- Pinto beans: To add a creamy and sweet element. You can also use bayo, black, red kidney beans, or white kidney beans instead.
- Chipotles: For a spicy and smoky taste. Try rehydrated guajillo, pasilla, or ancho chiles to switch up the flavors.
- Tomatoes: Canned diced tomatoes give this dish more of a Tex-Mex vibe, but you can use fresh Roma tomatoes in their place.
- Vegetable broth: Rounds out the soup. Use equal amounts water if you don’t have vegetable broth on hand.
- Mexican oregano, cumin: Commonly used in Northern Mexican dishes, but you can omit them or use spices like paprika, coriander, cayenne, or ancho chile powder.
- Onion, garlic: These savory ingredients really enhance the dish. Use more or less depending on your preferences.
- Lime: Adds acidity and tanginess. Lemon or vinegar also work in a pinch.
🔪 Instructions
If you have questions about this sopa de frijoles recipe, check out our FAQs or leave a comment.
Step 1: Heat the olive oil in a stockpot over medium, then sauté the onions until they’re translucent.

Step 2: Add in the garlic, cumin, and Mexican oregano next, and continue cooking until they’re fragrant.

Step 3: Stir in the diced tomatoes, cooked pinto beans, and vegetable broth. Bring the soup to a boil, then reduce the heat to simmer gently for about 15-20 minutes.

Step 4: Transfer roughly ⅓ of the soup to a blender with the 2 chipotles in adobo and mix until smooth.

Step 5: Add it back to the pot to simmer for a few more minutes. Squeeze in some fresh lime juice, and add salt and pepper to taste.

Step 6: Serve your sopa de frijoles while it’s warm with a dollop of vegan crema fresca, radishes, vegan cotija, cilantro, and lime wedges. Happy eating!
🥗 Serving suggestions
Soup and sandwiches go together like peanut butter and jelly! Try your sopa de frijoles with some of these popular Mexican tortas:
- Pambazo: Bread rolls brushed with guajillo sauce and filled with soyrizo, potatoes, crema, and cotija.
- Torta cubana: A heavily meat-based sandwich made plant-based with an oyster mushroom milanesa.
- Tortas ahogadas: Jackfruit carnitas and pickled red onions served in a salsa-dunked torta.
- Cemita poblana: Crispy oyster mushroom milanesa, smoky chipotles, papalo, and plant-based cheese all served on a cemita.
Soup garnish ideas: Diced white onions, cilantro, radishes, almond cotija, cashew crema, lime wedges, avocado, and tortilla chips.
🌡️ Storage
Pinto bean soup stores extremely well, which is why we recommend doubling or tripling the recipe for quick dinners during busy weeks.
- Fridge: Keep it in an airtight container for up to 4-5 days.
- Freezer: Let the soup cool completely, then transfer it to a freezer-safe bag or container and freeze for up to 3-4 months.
- Reheat: Thaw your sopa de frijoles in the fridge overnight, then heat it in a pot on medium-low until warmed all the way through.
Note: Store all of your garnishes separately from the soup itself.

♻️ Variations
- Smooth: Try fully blending your soup for a smoother, creamier texture.
- Chunky: Keep the beans whole for a more rustic and hearty version.
- “Meat”: Use chorizo, carnitas, or tempeh bacon to add different textures and flavors to your soup.
- Potatoes: Mix in regular or sweet potatoes for another variation in flavor.
- Other vegetables: Add hearty vegetables like carrots, celery, or corn in addition to or instead of the tomatoes.
🧑🍳 Top tips
- Cook beans from dry. This really enhances the flavor and texture in a way that canned beans just cannot match.
- Add lime juice at the end. To preserve the fresh, vibrant flavor, we suggest stirring in lime juice at the end of the cooking process.
- Use fresh spices. The flavors are more intense when your spices are freshly ground or at least stored in airtight jars.
💬 FAQ
Yes, this sopa de frijoles recipe is gluten-free.
Yes, add all of the soup ingredients to a slow cooker. Set the time for 8 hours, then blend the soup as directed in the recipe card.
You can absolutely use an immersion blender to make this soup. The only thing to remember is the chipotle chiles will need to be chopped or blended separately.

Sopa de Frijoles
Equipment
- Large stockpot
- Chef knife & cutting board
- Blender
- Ladle
Ingredients
Soup
- 1 tablespoon olive oil ($0.11)
- 1 medium white or yellow onion, diced ($0.24)
- 4 garlic cloves, minced ($0.16)
- 1 tablespoon cumin ($0.03)
- 1 teaspoon Mexican oregano ($0.03)
- 28 ounces canned diced tomatoes ($0.76)
- 4 cups cooked pinto beans, drained & rinsed ($0.64)
- 2 cups vegetable broth or water ($0.10)
- 2 chipotles in adobo ($0.08)
- 2 tablespoons lime juice ($0.18)
- Salt & pepper to taste ($0.02)
Garnishes optional
- Vegan Mexican crema
- Sliced radishes
- Diced white onions
- Chopped cilantro
- Lime wedges
- Tortilla strips
- Avocado
Instructions
- Heat olive oil in a stockpot over medium, then add diced onion and cook for 3-4 minutes, or until translucent. Add in garlic, cumin, and Mexican oregano, and cook for 1-2 minutes longer.
- Stir in the diced tomatoes, pinto beans, and vegetable broth or water. Bring the soup to a boil, then reduce the heat to simmer gently for about 15-20 minutes.
- Use an immersion blender, or transfer roughly ⅓ of the soup to a blender with the 2 chipotles in adobo and mix until smooth. Add it back to the pot to simmer for a few more minutes. Squeeze in lime juice, and add salt and pepper to taste.
- Serve while warm with a garnish of vegan crema, sliced radishes, cotija cheese, cilantro, extra lime wedges, etc. Happy eating!
Video

Notes
- Cook beans from dry. This really enhances the flavor and texture in a way that canned beans just cannot match.
- Add lime juice at the end. To preserve the fresh, vibrant flavor, we suggest stirring in lime juice at the end of the cooking process.
- Use fresh spices. The flavors are more intense when your spices are freshly ground or at least stored in airtight jars.
- Optional ingredients are not reflected in the price or calories of our recipes.
- We calculate nutritional information for our recipes with Cronometer.
- Recipe cost calculations are based on ingredients local to us and may vary from recipe to recipe. All prices are in USD.
Nutrition
🍴 Similar recipes
If you want to try more Mexican soups, be sure to check out some of our other popular recipes:
- Mexican black bean soup: Hearty black beans and vegetables topped with fresh garnishes.
- Sopa de habas: An easy soup recipe with tender fava beans, savory vegetables, and tasty herbs and spices.
- Carne en su jugo: Crispy jackfruit, shiitake mushrooms, and beans served in a tangy tomatillo broth.
- Caldo de albóndigas: Black bean meatballs, potatoes, and squash bathed in a tomato-infused broth.
- Vegan chili: Healthy and comforting chili topped with crispy tofu crumbles.
Made this for dinner tonight & wow! I followed the recipe exactly, and it’s definitely spicy, but in the most flavorful, perfect way. I served with plain coconut yogurt (my favorite vegan alternative to sour cream), a ton of cilantro, & a side of cilantro lime cauliflower rice. Thank you for this recipe!
Hi Christin!
Wow, that sounds like an incredibly delicious way to serve this soup! We’re definitely going to try serving it with cilantro lime cauliflower rice the next time we make it! We’re happy to know you enjoyed it 🙂