Moisten your hands lightly with water and form the matzo mixture into 24 walnut-sized balls. Carefully drop the matzo balls into the water or broth. Reduce the heat to medium and partially cover. Simmer gently until the matzo balls are cooked through, about 40 minutes. Using a skimmer or slotted spoon, transfer the matzo balls to a large bowl of cold water.
Meanwhile, make the soup. Bring the chicken pieces and stock to a boil in a large pot over medium-high heat, skimming off the foam that rises to the surface. Reduce the heat to medium-low. Simmer, partially covered, until the chicken is tender, about 25 to 30 minutes. Remove the chicken from the soup. Remove and discard the skin, shred the meat into bite-sized pieces, and reserve the meat until service. Return the remaining bones back to the broth and simmer for 15 to 20 minutes more to further develop the soup's flavor.
While the soup is simmering, heat the oil in a medium skillet over medium heat. Add the onion, tomatoes, red and green peppers, cilantro, garlic and saffron. Cook, stirring occasionally, until the vegetables in the sofrito are tender, but not browned, about 8 minutes. Add the hot sauce, if using. Set the sofrito aside.
When ready to serve, strain the soup and discard the bones. Return the soup to the pot and stir in the sofrito and chicken pieces. Add the matzo balls and simmer until the matzo balls are heated through, about 5 minutes. (The soup and matzo balls can be prepared up to 2 days ahead, cooled, covered, and refrigerated. Reheat before serving.)