Score the top and bottom of each tomato. Place in a large bowl or saucepan and pour over freshly boiled water from the kettle. Let sit for several minutes, then drain. Peel the tomatoes and cut out the core. Finally, pass the tomatoes through a fine sieve.
Heat the oil in a large saucepan over medium heat. Add the grated onion and cook until softened and the liquid has evaporated. Add the tomatoes along with all of the remaining ingredients. Mix well and cook gently, uncovered, for 2 to 3 hours over low heat.
Fill sterilized jars with the hot ketchup, leaving 5mm head space. Seal with sterilized lids.
Transfer jars to a large saucepan lined with a tea towel. Pour in water to just below the lids. Cover and bring to the boil. Boil for 10 minutes.
Remove from heat and allow to cool in the water bath before removing to a work surface to cool overnight. Any jars that have not sealed properly should be refrigerated and used within 2 weeks. All sealed jars can be kept in a cool, dark place until opened.