curl --request POST \
--url https://api.salvy.com.br/api/v3/employees/batch-sync \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"employees": [
{
"integrationId": "123",
"fullName": "João da Silva",
"status": "active",
"forceCreate": false,
"socialName": "João",
"workEmail": "joaosilva@empresa.com.br",
"personalEmail": "joaos04@gmail.com",
"workPhoneNumber": "+5541923456789",
"personalPhoneNumber": "+5541987654321",
"cpf": "198.099.750-07",
"position": "Desenvolvedor",
"area": "Engenharia",
"managerFullName": "Maria dos Santos",
"birthDate": "1990-04-15",
"admittedAt": "2020-05-27",
"terminatedAt": "2021-01-20",
"address": {
"zipCode": "12345-678",
"streetName": "Rua das Flores",
"streetNumber": "123",
"complement": "Apto 101",
"neighborhood": "Jardim das Flores",
"city": "São Paulo",
"state": "SP",
"country": "Brasil"
}
}
]
}
'import requests
url = "https://api.salvy.com.br/api/v3/employees/batch-sync"
payload = { "employees": [
{
"integrationId": "123",
"fullName": "João da Silva",
"status": "active",
"forceCreate": False,
"socialName": "João",
"workEmail": "joaosilva@empresa.com.br",
"personalEmail": "joaos04@gmail.com",
"workPhoneNumber": "+5541923456789",
"personalPhoneNumber": "+5541987654321",
"cpf": "198.099.750-07",
"position": "Desenvolvedor",
"area": "Engenharia",
"managerFullName": "Maria dos Santos",
"birthDate": "1990-04-15",
"admittedAt": "2020-05-27",
"terminatedAt": "2021-01-20",
"address": {
"zipCode": "12345-678",
"streetName": "Rua das Flores",
"streetNumber": "123",
"complement": "Apto 101",
"neighborhood": "Jardim das Flores",
"city": "São Paulo",
"state": "SP",
"country": "Brasil"
}
}
] }
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({
employees: [
{
integrationId: '123',
fullName: 'João da Silva',
status: 'active',
forceCreate: false,
socialName: 'João',
workEmail: 'joaosilva@empresa.com.br',
personalEmail: 'joaos04@gmail.com',
workPhoneNumber: '+5541923456789',
personalPhoneNumber: '+5541987654321',
cpf: '198.099.750-07',
position: 'Desenvolvedor',
area: 'Engenharia',
managerFullName: 'Maria dos Santos',
birthDate: '1990-04-15',
admittedAt: '2020-05-27',
terminatedAt: '2021-01-20',
address: {
zipCode: '12345-678',
streetName: 'Rua das Flores',
streetNumber: '123',
complement: 'Apto 101',
neighborhood: 'Jardim das Flores',
city: 'São Paulo',
state: 'SP',
country: 'Brasil'
}
}
]
})
};
fetch('https://api.salvy.com.br/api/v3/employees/batch-sync', 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/employees/batch-sync",
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([
'employees' => [
[
'integrationId' => '123',
'fullName' => 'João da Silva',
'status' => 'active',
'forceCreate' => false,
'socialName' => 'João',
'workEmail' => 'joaosilva@empresa.com.br',
'personalEmail' => 'joaos04@gmail.com',
'workPhoneNumber' => '+5541923456789',
'personalPhoneNumber' => '+5541987654321',
'cpf' => '198.099.750-07',
'position' => 'Desenvolvedor',
'area' => 'Engenharia',
'managerFullName' => 'Maria dos Santos',
'birthDate' => '1990-04-15',
'admittedAt' => '2020-05-27',
'terminatedAt' => '2021-01-20',
'address' => [
'zipCode' => '12345-678',
'streetName' => 'Rua das Flores',
'streetNumber' => '123',
'complement' => 'Apto 101',
'neighborhood' => 'Jardim das Flores',
'city' => 'São Paulo',
'state' => 'SP',
'country' => 'Brasil'
]
]
]
]),
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/employees/batch-sync"
payload := strings.NewReader("{\n \"employees\": [\n {\n \"integrationId\": \"123\",\n \"fullName\": \"João da Silva\",\n \"status\": \"active\",\n \"forceCreate\": false,\n \"socialName\": \"João\",\n \"workEmail\": \"joaosilva@empresa.com.br\",\n \"personalEmail\": \"joaos04@gmail.com\",\n \"workPhoneNumber\": \"+5541923456789\",\n \"personalPhoneNumber\": \"+5541987654321\",\n \"cpf\": \"198.099.750-07\",\n \"position\": \"Desenvolvedor\",\n \"area\": \"Engenharia\",\n \"managerFullName\": \"Maria dos Santos\",\n \"birthDate\": \"1990-04-15\",\n \"admittedAt\": \"2020-05-27\",\n \"terminatedAt\": \"2021-01-20\",\n \"address\": {\n \"zipCode\": \"12345-678\",\n \"streetName\": \"Rua das Flores\",\n \"streetNumber\": \"123\",\n \"complement\": \"Apto 101\",\n \"neighborhood\": \"Jardim das Flores\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\",\n \"country\": \"Brasil\"\n }\n }\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/employees/batch-sync")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"employees\": [\n {\n \"integrationId\": \"123\",\n \"fullName\": \"João da Silva\",\n \"status\": \"active\",\n \"forceCreate\": false,\n \"socialName\": \"João\",\n \"workEmail\": \"joaosilva@empresa.com.br\",\n \"personalEmail\": \"joaos04@gmail.com\",\n \"workPhoneNumber\": \"+5541923456789\",\n \"personalPhoneNumber\": \"+5541987654321\",\n \"cpf\": \"198.099.750-07\",\n \"position\": \"Desenvolvedor\",\n \"area\": \"Engenharia\",\n \"managerFullName\": \"Maria dos Santos\",\n \"birthDate\": \"1990-04-15\",\n \"admittedAt\": \"2020-05-27\",\n \"terminatedAt\": \"2021-01-20\",\n \"address\": {\n \"zipCode\": \"12345-678\",\n \"streetName\": \"Rua das Flores\",\n \"streetNumber\": \"123\",\n \"complement\": \"Apto 101\",\n \"neighborhood\": \"Jardim das Flores\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\",\n \"country\": \"Brasil\"\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.salvy.com.br/api/v3/employees/batch-sync")
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 \"employees\": [\n {\n \"integrationId\": \"123\",\n \"fullName\": \"João da Silva\",\n \"status\": \"active\",\n \"forceCreate\": false,\n \"socialName\": \"João\",\n \"workEmail\": \"joaosilva@empresa.com.br\",\n \"personalEmail\": \"joaos04@gmail.com\",\n \"workPhoneNumber\": \"+5541923456789\",\n \"personalPhoneNumber\": \"+5541987654321\",\n \"cpf\": \"198.099.750-07\",\n \"position\": \"Desenvolvedor\",\n \"area\": \"Engenharia\",\n \"managerFullName\": \"Maria dos Santos\",\n \"birthDate\": \"1990-04-15\",\n \"admittedAt\": \"2020-05-27\",\n \"terminatedAt\": \"2021-01-20\",\n \"address\": {\n \"zipCode\": \"12345-678\",\n \"streetName\": \"Rua das Flores\",\n \"streetNumber\": \"123\",\n \"complement\": \"Apto 101\",\n \"neighborhood\": \"Jardim das Flores\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\",\n \"country\": \"Brasil\"\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"taskId": "0f9c1b2e-5d3a-4f8b-9c7e-1a2b3c4d5e6f"
}{
"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>"
}Sincronizar colaboradores em lote
Cria ou atualiza vários colaboradores de uma vez, identificados pelo integrationId de sua escolha. A requisição é aceita por inteiro ou recusada por inteiro: se algum colaborador for inválido, nenhum é alterado e a resposta aponta a posição dele na lista. Os colaboradores são sincronizados em segundo plano; a resposta traz o ID de uma tarefa para acompanhar o resultado em GET /tasks/.
curl --request POST \
--url https://api.salvy.com.br/api/v3/employees/batch-sync \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"employees": [
{
"integrationId": "123",
"fullName": "João da Silva",
"status": "active",
"forceCreate": false,
"socialName": "João",
"workEmail": "joaosilva@empresa.com.br",
"personalEmail": "joaos04@gmail.com",
"workPhoneNumber": "+5541923456789",
"personalPhoneNumber": "+5541987654321",
"cpf": "198.099.750-07",
"position": "Desenvolvedor",
"area": "Engenharia",
"managerFullName": "Maria dos Santos",
"birthDate": "1990-04-15",
"admittedAt": "2020-05-27",
"terminatedAt": "2021-01-20",
"address": {
"zipCode": "12345-678",
"streetName": "Rua das Flores",
"streetNumber": "123",
"complement": "Apto 101",
"neighborhood": "Jardim das Flores",
"city": "São Paulo",
"state": "SP",
"country": "Brasil"
}
}
]
}
'import requests
url = "https://api.salvy.com.br/api/v3/employees/batch-sync"
payload = { "employees": [
{
"integrationId": "123",
"fullName": "João da Silva",
"status": "active",
"forceCreate": False,
"socialName": "João",
"workEmail": "joaosilva@empresa.com.br",
"personalEmail": "joaos04@gmail.com",
"workPhoneNumber": "+5541923456789",
"personalPhoneNumber": "+5541987654321",
"cpf": "198.099.750-07",
"position": "Desenvolvedor",
"area": "Engenharia",
"managerFullName": "Maria dos Santos",
"birthDate": "1990-04-15",
"admittedAt": "2020-05-27",
"terminatedAt": "2021-01-20",
"address": {
"zipCode": "12345-678",
"streetName": "Rua das Flores",
"streetNumber": "123",
"complement": "Apto 101",
"neighborhood": "Jardim das Flores",
"city": "São Paulo",
"state": "SP",
"country": "Brasil"
}
}
] }
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({
employees: [
{
integrationId: '123',
fullName: 'João da Silva',
status: 'active',
forceCreate: false,
socialName: 'João',
workEmail: 'joaosilva@empresa.com.br',
personalEmail: 'joaos04@gmail.com',
workPhoneNumber: '+5541923456789',
personalPhoneNumber: '+5541987654321',
cpf: '198.099.750-07',
position: 'Desenvolvedor',
area: 'Engenharia',
managerFullName: 'Maria dos Santos',
birthDate: '1990-04-15',
admittedAt: '2020-05-27',
terminatedAt: '2021-01-20',
address: {
zipCode: '12345-678',
streetName: 'Rua das Flores',
streetNumber: '123',
complement: 'Apto 101',
neighborhood: 'Jardim das Flores',
city: 'São Paulo',
state: 'SP',
country: 'Brasil'
}
}
]
})
};
fetch('https://api.salvy.com.br/api/v3/employees/batch-sync', 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/employees/batch-sync",
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([
'employees' => [
[
'integrationId' => '123',
'fullName' => 'João da Silva',
'status' => 'active',
'forceCreate' => false,
'socialName' => 'João',
'workEmail' => 'joaosilva@empresa.com.br',
'personalEmail' => 'joaos04@gmail.com',
'workPhoneNumber' => '+5541923456789',
'personalPhoneNumber' => '+5541987654321',
'cpf' => '198.099.750-07',
'position' => 'Desenvolvedor',
'area' => 'Engenharia',
'managerFullName' => 'Maria dos Santos',
'birthDate' => '1990-04-15',
'admittedAt' => '2020-05-27',
'terminatedAt' => '2021-01-20',
'address' => [
'zipCode' => '12345-678',
'streetName' => 'Rua das Flores',
'streetNumber' => '123',
'complement' => 'Apto 101',
'neighborhood' => 'Jardim das Flores',
'city' => 'São Paulo',
'state' => 'SP',
'country' => 'Brasil'
]
]
]
]),
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/employees/batch-sync"
payload := strings.NewReader("{\n \"employees\": [\n {\n \"integrationId\": \"123\",\n \"fullName\": \"João da Silva\",\n \"status\": \"active\",\n \"forceCreate\": false,\n \"socialName\": \"João\",\n \"workEmail\": \"joaosilva@empresa.com.br\",\n \"personalEmail\": \"joaos04@gmail.com\",\n \"workPhoneNumber\": \"+5541923456789\",\n \"personalPhoneNumber\": \"+5541987654321\",\n \"cpf\": \"198.099.750-07\",\n \"position\": \"Desenvolvedor\",\n \"area\": \"Engenharia\",\n \"managerFullName\": \"Maria dos Santos\",\n \"birthDate\": \"1990-04-15\",\n \"admittedAt\": \"2020-05-27\",\n \"terminatedAt\": \"2021-01-20\",\n \"address\": {\n \"zipCode\": \"12345-678\",\n \"streetName\": \"Rua das Flores\",\n \"streetNumber\": \"123\",\n \"complement\": \"Apto 101\",\n \"neighborhood\": \"Jardim das Flores\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\",\n \"country\": \"Brasil\"\n }\n }\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/employees/batch-sync")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"employees\": [\n {\n \"integrationId\": \"123\",\n \"fullName\": \"João da Silva\",\n \"status\": \"active\",\n \"forceCreate\": false,\n \"socialName\": \"João\",\n \"workEmail\": \"joaosilva@empresa.com.br\",\n \"personalEmail\": \"joaos04@gmail.com\",\n \"workPhoneNumber\": \"+5541923456789\",\n \"personalPhoneNumber\": \"+5541987654321\",\n \"cpf\": \"198.099.750-07\",\n \"position\": \"Desenvolvedor\",\n \"area\": \"Engenharia\",\n \"managerFullName\": \"Maria dos Santos\",\n \"birthDate\": \"1990-04-15\",\n \"admittedAt\": \"2020-05-27\",\n \"terminatedAt\": \"2021-01-20\",\n \"address\": {\n \"zipCode\": \"12345-678\",\n \"streetName\": \"Rua das Flores\",\n \"streetNumber\": \"123\",\n \"complement\": \"Apto 101\",\n \"neighborhood\": \"Jardim das Flores\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\",\n \"country\": \"Brasil\"\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.salvy.com.br/api/v3/employees/batch-sync")
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 \"employees\": [\n {\n \"integrationId\": \"123\",\n \"fullName\": \"João da Silva\",\n \"status\": \"active\",\n \"forceCreate\": false,\n \"socialName\": \"João\",\n \"workEmail\": \"joaosilva@empresa.com.br\",\n \"personalEmail\": \"joaos04@gmail.com\",\n \"workPhoneNumber\": \"+5541923456789\",\n \"personalPhoneNumber\": \"+5541987654321\",\n \"cpf\": \"198.099.750-07\",\n \"position\": \"Desenvolvedor\",\n \"area\": \"Engenharia\",\n \"managerFullName\": \"Maria dos Santos\",\n \"birthDate\": \"1990-04-15\",\n \"admittedAt\": \"2020-05-27\",\n \"terminatedAt\": \"2021-01-20\",\n \"address\": {\n \"zipCode\": \"12345-678\",\n \"streetName\": \"Rua das Flores\",\n \"streetNumber\": \"123\",\n \"complement\": \"Apto 101\",\n \"neighborhood\": \"Jardim das Flores\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\",\n \"country\": \"Brasil\"\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"taskId": "0f9c1b2e-5d3a-4f8b-9c7e-1a2b3c4d5e6f"
}{
"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
Colaboradores a criar ou atualizar, até 1.000 por requisição, cada um com um integrationId diferente. O corpo da requisição é limitado a 1 MB; se a sua base passar disso, divida-a em mais de uma requisição.
1 - 1000 elementsShow child attributes
Show child attributes
Response
ID da tarefa que sincroniza os colaboradores; acompanhe o resultado em GET /tasks/{id}.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"0f9c1b2e-5d3a-4f8b-9c7e-1a2b3c4d5e6f"