Llamadas de servicio: programación, check-in y finalización
Conduce el ciclo de vida de la visita con la Supplier API: programa y reprograma técnicos, haz check-in y check-out, establece estados de finalización y lee registros de trabajo.Una llamada de servicio es una visita de un técnico contra una orden de trabajo. La Supplier API conduce todo el ciclo de vida de la visita a través de cinco endpoints de actualización de estado más expansiones de lectura. Es la parte más matizada de la API; los detalles a continuación vale la pena leerlos antes de escribir código. Todos los ejemplos asumen:
Cómo funcionan los endpoints de actualización de estado
Los cinco comparten una misma forma de solicitud (un payload de llamada de servicio) y un comportamiento crucial: Campos compartidos de la solicitud:workOrderId y numberOfTechs siempre son requeridos. id apunta a una llamada de servicio existente (omítelo en la primera creación y luego reutilízalo para cada actualización posterior de la misma visita). leadTechnicianEmail, additionalTechnicianEmails, serviceScheduledAt, los grupos checkIn*/checkOut*, partsWithQuantity, stockLocationIds y equipmentPerStockLocationIds se van completando a medida que avanza la visita.
supplierFacilityId es requerido para claves de equipo interno de servicio; para claves de proveedor tercero se sobrescribe con el id de tu propia instalación sin importar lo que envíes.
Todas las rutas están bajo
/v1/supplier/work_order/. No hay equivalentes del lado del comprador: el check-in y el check-out no pueden dirigirse desde la Buyer API.
1. Programar la visita
serviceScheduledAt debe ser una fecha-hora ISO 8601 con separador T y un offset explícito (por ejemplo 2026-08-22T09:00:00.000-07:00, o ...Z para UTC). Un valor separado por espacio como 2026-08-22 09:00:00+00:00 se rechaza como entrada inválida. Consulta Formatos de fecha.
leadTechnicianEmail es el correo del técnico en la visita y está tipado como una cadena simple en el esquema. Si una solicitud tech_scheduled falla con una excepción no controlada genérica, primero confirma que la orden de trabajo esté más allá de la aceptación y que serviceScheduledAt tenga el formato ISO 8601 anterior; ambas son causas comunes de un fallo poco descriptivo de tech_scheduled.
Para mover la cita más tarde, llama a tech_rescheduled con el id de la llamada de servicio y el nuevo serviceScheduledAt.
2. Check-in
checkInTime toma por defecto la hora actual del servidor cuando estableces un checkInStatus sin hora, así que las integraciones en vivo pueden omitirlo; los backfills deberían pasarlo explícitamente. checkInImages toma referencias de foto, y las coordenadas geográficas dan al comprador la prueba en sitio.
3. Check-out y establecer el resultado
El check-out es donde se decide el próximo estado de la orden de trabajo.checkOutStatus es requerido y debe ser un nombre de estado de orden de trabajo válido; se convierte en el nuevo estado de la orden de trabajo.
checkOutStatus:
WaitingForReview: trabajo terminado, entregar al comprador para revisión.TechScheduledoPartsRequestedy similares: la visita terminó pero el trabajo continúa (visita de seguimiento, esperando partes).
partsWithQuantity, stockLocationIds y equipmentPerStockLocationIds en el mismo payload; los ids vienen de tu catálogo de inventario.
En este punto se disparan dos comportamientos de automatización:
- Auto-aprobación. Para proveedores terceros cuya empresa compradora tenga
autoApproveWorkOrdersCompletedByThirdPartyhabilitado, un resultadoWaitingForReviewse promueve automáticamente aWorkReviewedAndCompleted. - Auto-publicación de facturas. Cuando el estado resultante sea
WorkReviewedAndCompleted, las reglas de auto-publicación de facturas pueden ejecutarse y publicar tu factura en borrador. Consulta Cotizaciones y facturación.
remote_check_in y remote_check_out se comportan de forma idéntica para trabajo hecho fuera del sitio.
Volver a leer una llamada de servicio
Tres expansiones sobreGET /v1/supplier/work_order/service_calls/{id}:
Trabajos multi-visita
Una orden de trabajo puede llevar muchas llamadas de servicio (diagnóstico, reparación, seguimiento). Crea cada visita con su propia llamadatech_scheduled (sin id), y mantén las actualizaciones posteriores de cada visita atadas al id de su llamada de servicio. Haz check-out de las visitas intermedias con un estado que continúa como PartsRequested o TechScheduled, y solo de la visita final con WaitingForReview.