Begin by placing the potatoes in a large pot. Add water and salt. Bring the salted water to a boil over a high flame, then lower the flame to medium-low, cover.
Simmer until the potatoes become tender. This should take you about 20 minutes. Drain the water and let the potatoes steam dry for about 1 to 2 minutes. Now, mash them in a bowl along with 1/2 teaspoon salt. Make sure to keep mashing until there are no lumps left. Keep aside to cool.
In the meantime, take a large skillet and add vegetable oil to it. Heat it over a medium flame. Add green pepper, onions, and garlic and cook until the onions have softened and become translucent. This should take you about 10 minutes.
Increase the heat to medium-high and add the ground beef. Keep stirring until the meat is crumbly. Add tomato paste, vinegar, cumin, 1 teaspoon salt, and pepper. Keep cooking until all of the tomato paste has dissolved. Shift the beef mixture into a bowl and let it cool.
Take a baking sheet and line it with plastic wrap or waxed paper, then set it aside. Next, take a mixing bowl and start beating eggs in it. Once done, set it aside. Transfer the bread crumbs and flour into different, shallow dishes and set aside.
Now, take a handful of mashed potatoes and divide it into 2 equal portions. Shape both the pieces into a small bowl and stuff each with the beef mixture. Keep the halves together, close the ends, and smooth to prepare a ball. Repeat this procedure with the leftover potatoes and beef mixture.
Taking one at a time, softly roll the potato balls in flour to cover, making sure to get rid of the extra. Dip into the beaten egg, then cover in bread crumbs. Now, transfer the prepared potato balls onto the prepared baking sheet and place in refrigerator for 2 to 4 hours for later use.
Take a deep fryer or a large saucepan and heat the oil in it to 350 degrees F.
In batches, fry the potato balls. Use tongs to roll the balls around till they’re evenly brown and crispy. Drain the excess oil on a paper towel-lined plate and serve!