For the meatballs - In a bowl combine all the ingredients. Shape into small balls. Heat a pan over medium high heat. Add a few tablespoons of olive oil to the pan. Sear the meatballs on all sides until golden brown.
In a large soup pot or dutch oven, heat 2-3 tablespoons of olive oil. Add in the shallots, carrots, celery ribs and celery leaves. Sauté for 5-6 minutes. Add in the zucchini and garlic. Season with salt and pepper. Cook for a further 2 minutes.
Pour in the stock. Add the meatballs, along with any bits/oil from the frying pan. Bring to a low boil. Reduce heat and simmer for 15 minutes. Add in the beans, spinach and fresh herbs. Simmer for a further 10 minutes.
Serve with a sprinkle of parmigiano and some celery leaves for garnish.