Quitar la última «Hecha» registrada desde la pauta
curl --request DELETE \
--url https://api.ugps.io/api/maintenance/programs/{id}/services/{itemId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.ugps.io/api/maintenance/programs/{id}/services/{itemId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.ugps.io/api/maintenance/programs/{id}/services/{itemId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ugps.io/api/maintenance/programs/{id}/services/{itemId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.ugps.io/api/maintenance/programs/{id}/services/{itemId}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://api.ugps.io/api/maintenance/programs/{id}/services/{itemId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ugps.io/api/maintenance/programs/{id}/services/{itemId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": "success",
"data": {
"id": "<string>",
"taskName": "<string>",
"programId": "<string>",
"programName": "<string>",
"assetLabel": "<string>",
"service": {
"odometer": 123,
"engineHours": 123,
"date": "2023-12-25"
},
"restoredReference": true,
"restored": {
"odometer": 123,
"engineHours": 123,
"date": "<string>",
"assumed": [
"odometer"
]
}
}
}{
"error": "Token inválido o expirado"
}{
"error": "No tiene permisos para realizar esta acción"
}{
"error": "Recurso no encontrado"
}{
"status": "failed",
"code": "TRACKER_SENSOR_DIN_CONFLICT",
"message": "Esa entrada digital ya está asignada a otro sensor del dispositivo"
}{
"message": "Error interno del servidor"
}Mantenimiento - Pautas
Quitar la última «Hecha» registrada desde la pauta
Quita la última «Hecha» registrada desde la pauta de esa tarea en el camión. Si es la vigente, restaura el último servicio anterior (o el ≈, ya corrido por los ajustes de odómetro) con una escritura condicionada; si no, solo la borra. Responde 409 MAINTENANCE_SERVICE_NOT_FROM_PROGRAM si es de una OT (se quita desde la orden) o de la importación, MAINTENANCE_SERVICE_NOT_LAST si no es la última de la pauta y MAINTENANCE_SERVICE_WITHOUT_HISTORY si es anterior al historial.
DELETE
/
api
/
maintenance
/
programs
/
{id}
/
services
/
{itemId}
Quitar la última «Hecha» registrada desde la pauta
curl --request DELETE \
--url https://api.ugps.io/api/maintenance/programs/{id}/services/{itemId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.ugps.io/api/maintenance/programs/{id}/services/{itemId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.ugps.io/api/maintenance/programs/{id}/services/{itemId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ugps.io/api/maintenance/programs/{id}/services/{itemId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.ugps.io/api/maintenance/programs/{id}/services/{itemId}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://api.ugps.io/api/maintenance/programs/{id}/services/{itemId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ugps.io/api/maintenance/programs/{id}/services/{itemId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": "success",
"data": {
"id": "<string>",
"taskName": "<string>",
"programId": "<string>",
"programName": "<string>",
"assetLabel": "<string>",
"service": {
"odometer": 123,
"engineHours": 123,
"date": "2023-12-25"
},
"restoredReference": true,
"restored": {
"odometer": 123,
"engineHours": 123,
"date": "<string>",
"assumed": [
"odometer"
]
}
}
}{
"error": "Token inválido o expirado"
}{
"error": "No tiene permisos para realizar esta acción"
}{
"error": "Recurso no encontrado"
}{
"status": "failed",
"code": "TRACKER_SENSOR_DIN_CONFLICT",
"message": "Esa entrada digital ya está asignada a otro sensor del dispositivo"
}{
"message": "Error interno del servidor"
}Authorizations
Token de sesión Better Auth o API token (atk_...) en el header Authorization: Bearer <token>. Los JWT legacy ya no son válidos.

