Skip to main content

WSAltaServicio

El endpoint más complejo del Legacy Despacho. Soporta crear, modificar y cancelar servicios/tareas, con resolución de geocoding, cuentas y catálogos embebida en la misma operación.

Target route

POST /apidev/legacy/WSAltaServicio

Status

New implementation required — Endpoint de mayor riesgo funcional. Coordina múltiples dominios: ciclo de vida de servicios, cuentas/clientes, catálogos, geocoding interno.

Mayor riesgo del grupo

Este endpoint es el candidato con más probabilidad de regresión funcional. Debe tratarse como un workstream de migración dedicado con fixtures de regresión antes de cualquier release.


Authentication

{
"WSAutorizacion": {
"Guid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"Usuario": "usuario@empresa.com",
"Password": "contraseña"
}
}

Comportamientos

El campo CancelarTarea controla el modo de operación:

ModoCondiciónDescripción
CrearCancelarTarea = "NO" y no existe tarea previaCrea un nuevo servicio
ModificarCancelarTarea = "NO" y la tarea ya existeActualiza datos del servicio
CancelarCancelarTarea = "SI"Cancela la tarea existente

Request body

Campos principales

CampoTipoObligatorioDescripción
WSAutorizacionobjectCredenciales de autenticación legacy
CancelarTareastringNo"SI" o "NO" (default: "NO")
NroServiciostringCondicionalPara modificar/cancelar existente
IdExternostringCondicionalID externo para localizar tarea
PrestacionstringNoNombre o ID de la prestación
CausastringNoNombre o ID de la causa
SubCausastringNoNombre o ID de la subcausa
MotivoCancelacionstringCondicionalRequerido si CancelarTarea = "SI"
PrioridadstringNoNombre o ID de prioridad
NotasstringNoObservaciones del servicio

Origen (con geocoding embebido)

CampoTipoDescripción
Origen.DireccionstringDirección de texto libre
Origen.LatitudnumberLatitud (si ya se conoce)
Origen.LongitudnumberLongitud (si ya se conoce)
Origen.DepartamentostringDepartamento

Si Origen.Latitud y Origen.Longitud no se informan, el sistema hace geocoding interno usando getinternalgeocoding para resolver la dirección.

Destino

Misma estructura que Origen.

Cuenta (creación en línea)

CampoTipoDescripción
Cuenta.IdExternostringID externo de la cuenta
Cuenta.NombrestringNombre (se crea si no existe)
Cuenta.TelefonostringTeléfono
Cuenta.PatentestringPatente del vehículo

Si la cuenta no existe, se crea en línea usando crearcuentacliente.


Ejemplo — Crear servicio

{
"WSAutorizacion": { "Guid": "...", "Usuario": "...", "Password": "..." },
"CancelarTarea": "NO",
"IdExterno": "EXT-20260403-001",
"Prestacion": "Asistencia Vial",
"Causa": "Batería descargada",
"Prioridad": "Normal",
"Notas": "Cliente aguarda en el vehículo",
"Origen": {
"Direccion": "18 de Julio 1234",
"Departamento": "Montevideo"
},
"Destino": {
"Latitud": -34.8833,
"Longitud": -56.1670
},
"Cuenta": {
"IdExterno": "CLI-001",
"Nombre": "Juan Pérez",
"Telefono": "099123456",
"Patente": "ABC 1234"
}
}

Ejemplo — Cancelar servicio

{
"WSAutorizacion": { "Guid": "...", "Usuario": "...", "Password": "..." },
"CancelarTarea": "SI",
"NroServicio": "103878",
"MotivoCancelacion": "Cliente no encontrado"
}

Response body

CampoTipoDescripción
Resultadostring"OK" o código de error
MensajestringDescripción del resultado
IdstringID interno de la tarea en GeoTareas
NroAsistenciastringNúmero de asistencia generado
NroServiciostringNúmero de servicio
NotasstringObservaciones del sistema
{
"Resultado": "OK",
"Mensaje": "",
"Id": "7234567890123456789",
"NroAsistencia": "103490",
"NroServicio": "103878",
"Notas": ""
}

Dependencias funcionales

DominioMódulo GeoTareasUso
Ciclo de vida de serviciosservicio / tareaCrear, modificar, cancelar
Cuentas/Clientescuenta.service.ts, cliente.service.tsCrear cuenta en línea
Geocodingapi/geocoding/internal/*Resolver dirección → coordenadas
CatálogosPrestaciones, causas, subcausas, prioridades, medios, zonasResolver nombres → IDs

Migration note

Workstream dedicado. No es un endpoint de migración menor.

Orden recomendado de implementación:

  1. Implementar y validar el modo Cancelar (menor complejidad)
  2. Implementar y validar el modo Crear (sin geocoding) con fixtures
  3. Agregar geocoding embebido al modo Crear
  4. Implementar el modo Modificar
  5. Agregar creación de cuenta en línea
  6. Test de regresión end-to-end con fixtures de los casos GeneXus originales