Dice the onions and peppers and mince the garlic. Drain and rinse all the beans.
Heat the oil in a large heavy pot over medium heat and cook the onions and peppers until soft, about 6 minutes. Add the garlic, chili powder, cumin and smoked paprika and stir for 1 minute.
Add the diced tomatoes, beans, bulgur, cocoa powder, salt and 500 ml (2 cups) of water and stir well.
Bring to a boil over high heat, then lower to low and simmer partly covered for 25 minutes, stirring every 5 minutes as bulgur sinks and can stick, until thick and the bulgur is tender.
Taste and adjust the salt. Serve with your favourite toppings; it tastes even better the next day.