Saltar al contenido principal

WSGetServicios

Consulta de tareas (servicios) con filtros. Reproduce byte a byte el contrato GeneXus wsgetservicios de DespachoCloudV2 sirviéndolo desde las tablas modernas de GeoTareas.


Obtener servicios

POST/apidev/legacy/WSGetServicios
AuthWSAutorizacion (body)
FormatoJSON
RespuestaHTTP 200 + Error
EstadoDisponible
Protocolo legacy

Todos los servicios legacy son POST a /apidev/legacy/<WSName> y no usan headers Authorization, X-API-Key ni tenant. La autenticación viaja en el cuerpo como objeto WSAutorizacion, donde Guid es la API key de la compañía. El servicio siempre responde HTTP 200: cualquier error viaja en el campo WSSDTDatosServicios.Error del envelope, nunca como código 4xx/5xx.

Este WS es un puente: valida únicamente Guid (→ ciaid) y la URL de origen (no valida usuario/contraseña). La respuesta del backend pasa por un saneo null"", por lo que en este payload nunca aparece null — los valores vacíos son "", 0 o false.

Cuerpo de la solicitud

CampoTipoRequeridoDescripción
WSAutorizacionobjectCredenciales legacy { Guid, Usuario, Password }
WSAutorizacion.GuidstringAPI key de la compañía (resuelve ciaid)
WSAutorizacion.UsuariostringUsuario
WSAutorizacion.PasswordstringContraseña (no validada en este WS puente)
WSSDTFiltroServicioobjectSDT de filtros; todos sus campos son opcionales

WSSDTFiltroServicio (campos)

Todos opcionales. Los campos no enviados se asumen "" / 0 / false. Las claves respetan el casing exacto de GeneXus (atención a ciaid, usuid, soloenproceso en minúsculas y SerFchLLamadaFin con doble L).

CampoTipoNotas
Idstring (int18)Id de servicio
SuperiorIdstring (int18)
NroServiciostring (int10)Número de servicio
NroAsistenciastring (int10)Número de asistencia
IdExternostringId externo
EstadostringEstado
FechaLlamadaInicialstringFecha libre (texto)
FechaLlamadaFinalstringFecha libre (texto)
SerFchLlamadaInistring (datetime)REST datetime YYYY-MM-DDTHH:MM:SS
SerFchLLamadaFinstring (datetime)Casing: doble L LLamada
Procedenciastring
Prestadorstring
Movilstring
Operadorstring
Telefonistastring
Prestacionstring
Causastring
SubCausastring
Motivostring
Paisstring
Departamentostring
Ciudadstring
Zonastring
ColTareastringLista de ids estilo coma (string crudo)
ColIdstring
ColExternostring
NroTrackingstring
FechaFinalizadoInicialstring
FechaFinalizadoFinalstring
SerFchFinInistring (datetime)
SerFchFinFinstring (datetime)
FechaProgramadoInicialstring
FechaProgramadoFinalstring
SerProgramadoInistring (datetime)
SerProgramadoFinstring (datetime)
ciaidstring (int18)Clave en minúsculas
usuidstring (int18)Clave en minúsculas
SerPaiIdstring (int18)
SerPaiDepLinstring (int10)
SerPaiDepCiuLinstring (int10)
SerPaiDepCiuZonLinstring (int10)
SerPrestaIdstring (int18)
SerCauIdstring (int18)
SerCauSubCauLinstring (int10)
SerPreIdstring (int18)
SerProIdstring (int18)
SerEststring (int18)
SerMovVehIdstring (int18)
SerOpeUsuIdstring (int18)
SerTelUsuIdstring (int18)
SerMotIdstring (int18)
soloenprocesobooleanClave en minúsculas
OrigenCercanumber (short)

Respuesta

El objeto raíz es WSSDTDatosServicios: contiene el envelope de error (Error) y el arreglo de datos (SDTDatosServicios).

CampoTipoNotas
WSSDTDatosServicios.ErrorstringEnvelope de error. "" en éxito; "GUID Inválido" / "URL Inválida" en fallo de auth; o el mensaje del backend
WSSDTDatosServicios.SDTDatosServiciosarray<object>Un elemento por servicio

SDTDatosServicios[] (ítem)

Claves en orden de declaración. Atención a TiempoLLegada (doble L) y a etiqueta/valor (minúsculas) dentro de CamposDinamicos.

CampoTipoNotas
Idstring (int18)Id de servicio
IdExternostring
NroServiciostring (int10)
NroAsistenciastring (int10)
Estadostring
Clientestring
Cuentastring
CuentaCodigoExternostring
CuentaDocumentostring
Contactostring
Telefonostring
Celularstring
Detallestring
Procedenciastring
Productostring
Prestacionstring
Motivostring
Origenstring
OrigenCausastring
OrigenSubCausastring
OrigenPaisstring
OrigenDepartamentostring
OrigenCiudadstring
OrigenZonastring
Destinostring
DestinoPaisstring
DestinoDepartamentostring
DestinoCiudadstring
DestinoZonastring
Programadostring (datetime)
ProgramadoHastastring (datetime)
Computaboolean
Movilstring
Personalstring
PersonalCodigoExternostring
MovilReservadostring
ConductorReservadostring
PrestadorReservadostring
UsuarioReservadostring
Prestadorstring
OrigenLatitudstring (dec18,14)
OrigenLongitudstring (dec18,14)
DestinoLatitudstring (dec18,14)
DestinoLongitudstring (dec18,14)
FechaLlamadastring (datetime)
FechaCortastring (datetime)
FechaAsignacionstring (datetime)
FechaTomadostring (datetime)
FechaLlegadastring (datetime)
FechaTerminadostring (datetime)
MedioComunicacionstring
TiempoLLegadastringClave con doble L TiempoLLegada
TiempoTrabajostring
CodigoFinstring
NroTrackingstring
Marcastring
Modelostring
Matriculastring
Anionumber (short)
Telefonistastring
Operadorstring
OrigenCercaarray<string>Lista de cercas
DestinoCercaarray<string>Lista de cercas
Pausasarray<object>Ver abajo
CamposDinamicosarray<object>Ver abajo
Eventosarray<object>Ver abajo
Formularioarray<object>Ver abajo
Archivosarray<object>Ver abajo
Pausas[]
CampoTipo
FechaIniciostring (datetime)
FechaFinstring (datetime)
Usuariostring
Conductorstring
Vehiculostring
Motivostring
Notasstring
CamposDinamicos[] (claves en minúsculas)
CampoTipo
etiquetastring
valorstring
Eventos[]
CampoTipo
Idstring (int)
EstadoFechaHorastring (datetime)
Estadostring
EstadoEventostring
EstadoLatitudstring (dec)
EstadoLongitudstring (dec)
EstadoUsuariostring
EstadoMovilstring
EstadoPersonalstring
EstadoPersonalCodExtstring
EstadoPrestadorstring
EstadoOdometrostring / number
EstadoAddressstring
EventoParametrosarray<object>

EventoParametros[]: Parametro (string), Valor (string), Formulario (array<object>). EventoParametros.Formulario[]: Nombre (string), Valor (string).

Formulario[]
CampoTipo
Formulariostring
Conductorstring
Movilstring
FormularioFechastring (datetime)
FormTabarray<object>
Archivosarray<object>

Formulario.FormTab[]: Seccion (string), SeccionOrden (string / number), FormularioTabParametro (array<object>). Formulario.FormTab.FormularioTabParametro[]: Parametro (string), ParametroOrden (string / number), ParametroValor (string). Formulario.Archivos[]: Nombre (string), Tipo (string), Size (string / number), Fecha (string (datetime)), Notas (string).

Archivos[] (nivel superior)
CampoTipo
Nombrestring
Tipostring
Sizestring / number
Fechastring (datetime)
Notasstring

Ejemplos de código

curl -s -X POST "https://$TENANT/apidev/legacy/WSGetServicios" \
-H "Content-Type: application/json" \
-d '{
"WSAutorizacion": {
"Guid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"Usuario": "usuario@empresa.com",
"Password": "contrasena"
},
"WSSDTFiltroServicio": {
"Estado": "FIN",
"SerFchLlamadaIni": "2026-04-01T00:00:00",
"SerFchLLamadaFin": "2026-04-03T23:59:59",
"soloenproceso": false
}
}'

Ejemplo de respuesta

{
"WSSDTDatosServicios": {
"Error": "",
"SDTDatosServicios": [
{
"Id": "103878",
"IdExterno": "EXT-001",
"NroServicio": "103878",
"NroAsistencia": "103490",
"Estado": "FINALIZADO",
"Cliente": "Regional Distributors",
"Cuenta": "Juan Perez",
"CuentaCodigoExterno": "CTA-001",
"CuentaDocumento": "12345678",
"Contacto": "Juan Perez",
"Telefono": "+59821234567",
"Celular": "+59899123456",
"Detalle": "Asistencia mecanica",
"Procedencia": "Seguros",
"Producto": "Asistencia Vehicular",
"Prestacion": "Remolque",
"Motivo": "",
"Origen": "Av. 18 de Julio 1234",
"OrigenCausa": "Averia",
"OrigenSubCausa": "Motor",
"OrigenPais": "Uruguay",
"OrigenDepartamento": "Montevideo",
"OrigenCiudad": "Montevideo",
"OrigenZona": "Centro",
"Destino": "Gral. Rivera 2200",
"DestinoPais": "Uruguay",
"DestinoDepartamento": "Montevideo",
"DestinoCiudad": "Montevideo",
"DestinoZona": "Pocitos",
"Programado": "",
"ProgramadoHasta": "",
"Computa": true,
"Movil": "ABC-1234",
"Personal": "Carlos Gomez",
"PersonalCodigoExterno": "P-001",
"MovilReservado": "",
"ConductorReservado": "",
"PrestadorReservado": "",
"UsuarioReservado": "",
"Prestador": "Taller Sanca",
"OrigenLatitud": "-34.90110000000000",
"OrigenLongitud": "-56.16450000000000",
"DestinoLatitud": "-34.88330000000000",
"DestinoLongitud": "-56.16700000000000",
"FechaLlamada": "2026-04-03T10:30:00",
"FechaCorta": "2026-04-03T10:30:00",
"FechaAsignacion": "2026-04-03T10:35:00",
"FechaTomado": "2026-04-03T10:40:00",
"FechaLlegada": "2026-04-03T11:05:00",
"FechaTerminado": "2026-04-03T11:50:00",
"MedioComunicacion": "Telefono",
"TiempoLLegada": "25",
"TiempoTrabajo": "45",
"CodigoFin": "OK",
"NroTracking": "TRK-103878",
"Marca": "Toyota",
"Modelo": "Hilux",
"Matricula": "ABC-1234",
"Anio": 2021,
"Telefonista": "Maria Lopez",
"Operador": "Pedro Diaz",
"OrigenCerca": [],
"DestinoCerca": [],
"Pausas": [],
"CamposDinamicos": [
{ "etiqueta": "Poliza", "valor": "POL-9981" }
],
"Eventos": [],
"Formulario": [],
"Archivos": []
}
]
}
}

Errores

El servicio responde siempre con HTTP 200. El error viaja como string en el campo WSSDTDatosServicios.Error del envelope ("" cuando no hay error).

Valor de ErrorCausa
GUID InválidoEl Guid no resuelve a una compañía (ciaid == 0).
URL InválidaLa URL de origen no está habilitada (no aplica para admincloud@logicsat.com).
(mensaje del backend)Cualquier otro error devuelto por el backend al procesar el filtro.
precaución

No esperes códigos 4xx/5xx para errores de negocio: el código HTTP es 200 y el detalle está en Error. Recuerda además que el payload está saneado null"", por lo que los campos vacíos llegan como "", 0 o false, nunca como null.