curl --request POST \
--url https://api.salvy.com.br/api/v3/asset-statements \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "responsibility",
"assetIds": [
"123e4567-e89b-12d3-a456-426614174000"
]
}
'import requests
url = "https://api.salvy.com.br/api/v3/asset-statements"
payload = {
"type": "responsibility",
"assetIds": ["123e4567-e89b-12d3-a456-426614174000"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({type: 'responsibility', assetIds: ['123e4567-e89b-12d3-a456-426614174000']})
};
fetch('https://api.salvy.com.br/api/v3/asset-statements', 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.salvy.com.br/api/v3/asset-statements",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'type' => 'responsibility',
'assetIds' => [
'123e4567-e89b-12d3-a456-426614174000'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.salvy.com.br/api/v3/asset-statements"
payload := strings.NewReader("{\n \"type\": \"responsibility\",\n \"assetIds\": [\n \"123e4567-e89b-12d3-a456-426614174000\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.salvy.com.br/api/v3/asset-statements")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"responsibility\",\n \"assetIds\": [\n \"123e4567-e89b-12d3-a456-426614174000\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.salvy.com.br/api/v3/asset-statements")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"type\": \"responsibility\",\n \"assetIds\": [\n \"123e4567-e89b-12d3-a456-426614174000\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "123e4567-e89b-12d3-a456-426614174000",
"companyId": "123e4567-e89b-12d3-a456-426614174000",
"type": "responsibility",
"status": "signed",
"employeeId": "123e4567-e89b-12d3-a456-426614174000",
"assetIds": [
"123e4567-e89b-12d3-a456-426614174000"
],
"createdAt": "2025-01-01T00:00:00.000Z",
"signedAt": "2025-01-02T00:00:00.000Z",
"canceledAt": null,
"cancelReason": null,
"replacedById": null
}{
"code": "idempotency-parameters-mismatch-error",
"message": "<string>"
}{
"code": "unauthorized",
"message": "<string>"
}{
"code": "forbidden",
"message": "<string>"
}{
"code": "resource-not-found",
"message": "<string>"
}{
"code": "payload-too-large",
"message": "<string>"
}{
"code": "input-validation-error",
"message": "<string>",
"details": [
{
"key": "<string>",
"message": "<string>"
}
]
}{
"code": "too-many-attempts",
"message": "<string>"
}{
"code": "unknown",
"message": "<string>"
}Enviar termo
Envia um termo de responsabilidade ou de devolução de equipamentos para assinatura eletrônica do colaborador, por e-mail. Ao enviar um termo de responsabilidade, os termos de responsabilidade pendentes de assinatura que incluem algum dos mesmos equipamentos são cancelados e substituídos pelo novo. Termos de devolução não são substituídos. No ambiente sandbox nenhum e-mail é enviado: use POST /asset-statements/{id}/simulate-signature para simular a assinatura.
curl --request POST \
--url https://api.salvy.com.br/api/v3/asset-statements \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "responsibility",
"assetIds": [
"123e4567-e89b-12d3-a456-426614174000"
]
}
'import requests
url = "https://api.salvy.com.br/api/v3/asset-statements"
payload = {
"type": "responsibility",
"assetIds": ["123e4567-e89b-12d3-a456-426614174000"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({type: 'responsibility', assetIds: ['123e4567-e89b-12d3-a456-426614174000']})
};
fetch('https://api.salvy.com.br/api/v3/asset-statements', 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.salvy.com.br/api/v3/asset-statements",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'type' => 'responsibility',
'assetIds' => [
'123e4567-e89b-12d3-a456-426614174000'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.salvy.com.br/api/v3/asset-statements"
payload := strings.NewReader("{\n \"type\": \"responsibility\",\n \"assetIds\": [\n \"123e4567-e89b-12d3-a456-426614174000\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.salvy.com.br/api/v3/asset-statements")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"responsibility\",\n \"assetIds\": [\n \"123e4567-e89b-12d3-a456-426614174000\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.salvy.com.br/api/v3/asset-statements")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"type\": \"responsibility\",\n \"assetIds\": [\n \"123e4567-e89b-12d3-a456-426614174000\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "123e4567-e89b-12d3-a456-426614174000",
"companyId": "123e4567-e89b-12d3-a456-426614174000",
"type": "responsibility",
"status": "signed",
"employeeId": "123e4567-e89b-12d3-a456-426614174000",
"assetIds": [
"123e4567-e89b-12d3-a456-426614174000"
],
"createdAt": "2025-01-01T00:00:00.000Z",
"signedAt": "2025-01-02T00:00:00.000Z",
"canceledAt": null,
"cancelReason": null,
"replacedById": null
}{
"code": "idempotency-parameters-mismatch-error",
"message": "<string>"
}{
"code": "unauthorized",
"message": "<string>"
}{
"code": "forbidden",
"message": "<string>"
}{
"code": "resource-not-found",
"message": "<string>"
}{
"code": "payload-too-large",
"message": "<string>"
}{
"code": "input-validation-error",
"message": "<string>",
"details": [
{
"key": "<string>",
"message": "<string>"
}
]
}{
"code": "too-many-attempts",
"message": "<string>"
}{
"code": "unknown",
"message": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Idempotency key for this request. Will return the same response if the same request is made again with the same key. Fails if parameters are different.
Body
- Option 1
- Option 2
Termo de responsabilidade, enviado na entrega dos equipamentos. O colaborador que assina é o colaborador associado aos equipamentos, que devem estar todos com o mesmo colaborador.
"responsibility""responsibility"
IDs dos equipamentos listados no termo, até 6. Todos devem pertencer à mesma empresa.
1 - 6 elements["123e4567-e89b-12d3-a456-426614174000"]
Response
Identificador do termo na plataforma Salvy.
"123e4567-e89b-12d3-a456-426614174000"
"123e4567-e89b-12d3-a456-426614174001"
ID da empresa dona do termo.
"123e4567-e89b-12d3-a456-426614174000"
"123e4567-e89b-12d3-a456-426614174001"
Tipo do termo: responsibility (termo de responsabilidade, na entrega dos equipamentos) ou return (termo de devolução).
responsibility, return "responsibility"
Situação do termo. pending-signature enquanto o colaborador não assina, signed depois de assinado e canceled quando cancelado ou substituído por um termo mais novo.
pending-signature, signed, canceled "signed"
ID do colaborador que assina o termo.
"123e4567-e89b-12d3-a456-426614174000"
"123e4567-e89b-12d3-a456-426614174001"
IDs dos equipamentos listados no termo.
A valid UUID string, in any version.
["123e4567-e89b-12d3-a456-426614174000"]
Data de envio do termo para assinatura.
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$"2025-01-01T00:00:00.000Z"
Data de assinatura. Nulo enquanto o termo não foi assinado.
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$"2025-01-02T00:00:00.000Z"
Data de cancelamento. Nulo quando o termo não foi cancelado.
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$null
Motivo do cancelamento: replaced-by-new-document quando um termo de responsabilidade mais novo foi enviado para algum dos mesmos equipamentos, content-outdated quando um equipamento do termo de responsabilidade passou para outro colaborador antes da assinatura, client-request quando a empresa cancelou o termo e signer-refused quando o colaborador recusou a assinatura. Nulo quando o termo não foi cancelado.
client-request, replaced-by-new-document, content-outdated, signer-refused null
ID do termo que substituiu este. Nulo quando o termo não foi substituído.
null