I'd make it more flexible.
Some countries do not have zip codes, or they are generally not used.
Some countries require more for location, others less (in some countries, many people don't even know the name of their own state or county).
P. O. Box needs to be separate in some cases.
In countries with other writing systems, it's sometimes necessary to have two lines for each part - because otherwise the sender's courier won't know how to get it to the courier of the recipient, or the recipient's courier can't read it.
The order of items is also different from country to country. Some have the number first and then the street name, or the opposite. Some have the zip code in front or after the city, not after the state. And so on.
There need to be fields for c/o, business name, instructions, house names (yes, some places don't have street numbers) and many more.
Banks and such usually have an easy to find address. Check the formats of the addresses for at least your most important countries.
As the number of lines is limited, make sure your form doesn't encourage people to fill something in for each option.
I'd make it like this
[ ] [ ]
[ ] [ ]
[ ] [ ]
Options to choose from would be business, name, house, P.O. Box, street1, street2, instructions (only if delivery), suburb, county, city, state, postcode, P.O. Postcode. If some turn out to be universal (Business name always on top, Name always in one of the first two lines, and so on, you can limit the choices accordingly. You can also limit them even more by letting the user choose the country first. And prefill the most likely options.
However, you probably find some address formats for which you need to add even more flexibility...