Place the olive oil in a large pan over a low heat. Add the onion and cook gently for five minutes or so until the onion is translucent. Add the garlic, spices and tomato puree and cook for a couple more minutes, stirring regularly.
Add the tomato ketchup, tinned tomatoes, soy sauce, salt , vegetable stock and cocoa powder and bring up to a simmer. Add the kidney beans, diced sweet potatoes, peppers, sweetcorn and green beans. Simmer for about 20-30 minutes, until the sweet potato is tender.
Check the seasoning then serve with cooked white rice and tortilla chips. Top each serving with a dollop of sour cream, some grated cheddar cheese, a sprinkling of chopped coriander and some diced avocado or guacamole.