Skip to main content

WSGeocoding

Geocodificación interna contra los procedimientos almacenados locales (no Nominatim). Resuelve tres modos de entrada: calle + esquina, calle + número y ruta + km, devolviendo un arreglo de coincidencias con su coordenada.


Geocode

POST/apidev/legacy/WSGeocoding
AuthWSAutorizacion (body)
FormatoJSON
RespuestaHTTP 200 + Error
EstadoAvailable

La autenticación viaja en el cuerpo, dentro del objeto WSAutorizacion. No se usan encabezados Authorization, X-API-Key ni tenant. El servicio responde siempre HTTP 200: los errores de negocio viajan en el campo Error del envelope, nunca como código 4xx.

Request Body

CampoTipoRequeridoDescripción
WSAutorizacionobjectBloque de autenticación. Ver subcampos abajo.
WSAutorizacion.GuidstringGUID de la compañía (API key). Se resuelve a CiaId. Si es inválido → Error = "GUID Inválido".
WSAutorizacion.UsuariostringEmail del usuario. Se normaliza (minúsculas + recortado).
WSAutorizacion.PasswordstringContraseña del usuario, validada por el servicio.
WSSDTFiltroGeocodingobjectFiltro de búsqueda. Ver subcampos abajo.
WSSDTFiltroGeocoding.PaisstringCondicionalPaís. Se convierte a mayúsculas. Requerido salvo la excepción de ruta (ver Notas).
WSSDTFiltroGeocoding.DepartamentostringCondicionalDepartamento / estado. Se convierte a mayúsculas. Misma excepción que Pais.
WSSDTFiltroGeocoding.CallestringSí (uno de los modos)Nombre de la calle. Se convierte a mayúsculas. Si contiene "RUTA" activa el modo ruta.
WSSDTFiltroGeocoding.EsquinastringModo ACalle de la esquina (intersección). Se convierte a mayúsculas.
WSSDTFiltroGeocoding.NumeroPuertastringModo B / CNúmero de puerta (modo B) o kilómetro (modo C). Se interpreta como entero.

Modos de entrada (mutuamente excluyentes por prioridad):

  • Modo A — calle + esquina: Calle y Esquina no vacíos → busca la intersección.
  • Modo B — calle + número: NumeroPuerta > 0, Calle no vacía y Calle NO contiene "RUTA" → busca por número de puerta.
  • Modo C — ruta + km: NumeroPuerta > 0, Calle no vacía y Calle contiene "RUTA" → busca por kilómetro sobre la ruta (NumeroPuerta es el km).

Response

Raíz del envelope: WSSDTDatosGeocoding.

CampoTipoDescripción
ErrorstringMensaje de error del envelope. Vacío en caso de éxito.
SDTDatosGeocodingarrayArreglo de coincidencias (SDTDatosGeocodingItem). El orden final es inverso al orden de lectura.
SDTDatosGeocoding[].CallestringNombre de la calle.
SDTDatosGeocoding[].EsquinastringCalle de la esquina. En coincidencias por número / ruta la semántica difiere.
SDTDatosGeocoding[].DesdestringInicio del rango de numeración. 0 para coincidencias por esquina o por número.
SDTDatosGeocoding[].HastastringFin del rango de numeración. 0 para coincidencias por esquina o por número.
SDTDatosGeocoding[].ZonastringNombre de la zona.
SDTDatosGeocoding[].GeolocationstringCoordenada emitida por el procedimiento almacenado (formato "lat,lon"), sin reformatear.

Code Examples

curl -s -X POST "https://$TENANT/apidev/legacy/WSGeocoding" \
-H "Content-Type: application/json" \
-d '{
"WSAutorizacion": {
"Guid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"Usuario": "usuario@empresa.com",
"Password": "contraseña"
},
"WSSDTFiltroGeocoding": {
"Pais": "URUGUAY",
"Departamento": "MONTEVIDEO",
"Calle": "18 DE JULIO",
"Esquina": "EJIDO",
"NumeroPuerta": ""
}
}'

Example Response

{
"WSSDTDatosGeocoding": {
"Error": "",
"SDTDatosGeocoding": [
{
"Calle": "18 DE JULIO",
"Esquina": "EJIDO",
"Desde": 0,
"Hasta": 0,
"Zona": "CENTRO",
"Geolocation": "-34.9058,-56.1882"
}
]
}
}

Errors

Todos los errores de negocio se devuelven con HTTP 200 en el campo Error del envelope WSSDTDatosGeocoding. El código 500 solo aparece ante una excepción no controlada del servicio.

Mensaje (Error)Causa
GUID InválidoEl GUID enviado no resuelve a ninguna compañía.
Compañía inválida.Compañía no válida durante la validación.
URL InválidaLa URL de la API no es válida para la compañía (salvo el usuario admincloud@logicsat.com).
Servicio no contratado.La compañía no tiene contratado el servicio de geocodificación.
Sin Saldo. Servicio no disponible. Servicio contratado [N] - Cantidad de solicitudes [N] - Saldo [N]Se agotó el saldo de geocodificaciones.
Debe ingresar el País y el Departamento.Falta Pais o Departamento (no aplica la excepción de ruta).
Debe ingresar Calle y Esquina o Calle y NºNo se cumple ninguno de los modos de entrada válidos.
No se ha encontrado calles con ese nombre, inténtelo poniendo parte del nombre.La búsqueda no arrojó coincidencias.

Notas

  • Excepción de ruta: si Pais == "URUGUAY" y Calle contiene "RUTA", se omite la validación obligatoria de Pais + Departamento.
  • Consumo de cupo: cada respuesta con resultados consume un crédito de geocodificación; las respuestas vacías no descuentan saldo.
  • Orden del arreglo: los ítems se insertan al frente, por lo que el orden final es inverso al de lectura del origen.