Common geocoding services (such as the google geocoding service or openstreetmap) are not accurate enough to geocode Colombian (and optionally Southamerican) addresses. They also are not accurate when reverse geocoding lat/lon into postal addresses.
For our gps platform, we require a software capable of geocoding addresses into lat/lon as well as reverse geocoding lat/lon into accurate addresses. Your solution has to provide a REST API (or any web service) so it can be integrated with our gps platform. We prefer the use of open source software as far as possible, but we are also open to other (GIS) options.