Hi
I have dealt with something similar to this (telephone dialling codes) and my personal opinion is this: Pay for a service.
These things are a complete nightmare to build, due to the inevitable irregularities that occur in any system that tries to organise society (you have to build all kinds of exception rules for everything). They are equally a nightmare to maintain due to the fact that the data changes constantly, and the irregularities change constantly.
Pay someone else to do it and live a longer, less stressful life...