Skip to main content
POST
/
api
/
v1
/
employees
/
sync
cURL
curl --request POST \
  --url https://api.salvy.com.br/api/v1/employees/sync \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "integrationId": "123",
  "fullName": "João da Silva",
  "socialName": "João",
  "status": "active",
  "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"
  }
}'
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "fullName": "João da Silva",
  "socialName": "João",
  "status": "active",
  "workEmail": "joaosilva@empresa.com.br",
  "personalEmail": "joaos04@gmail.com",
  "workPhoneNumber": "+5541923456789",
  "personalPhoneNumber": "+5541987654321",
  "cpf": "198.099.750-07",
  "cnpj": "82.530.339/0001-64",
  "rg": "12.345.678-9",
  "position": "Desenvolvedor",
  "area": "Engenharia",
  "managerFullName": "Maria dos Santos",
  "birthDate": "1990-04-15",
  "contractType": "clt",
  "contractEndDate": "2023-12-31",
  "admittedAt": "2020-05-27",
  "terminatedAt": "2021-01-30",
  "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"
  },
  "customFields": [
    {
      "label": "teste",
      "type": "text",
      "value": "teste"
    }
  ],
  "bankAccount": {
    "bank": "Banco do Brasil",
    "branch": "1234",
    "accountNumber": "123456",
    "accountType": "checking",
    "pixKey": "joao04@gmail.com"
  },
  "salaryCents": 500000,
  "sources": [
    {
      "id": "123",
      "platform": "api"
    }
  ],
  "createdAt": "2025-01-01T00:00:00.000Z"
}
Este endpoint recebe um snapshot dos dados do colaborador e cria ou atualiza o colaborador na plataforma Salvy.
  • O snapshot enviado fica armazenado de forma separada das outras fontes de informação (como edições manuais) e novos envios sobreescrevem o snapshot anterior desse colaborador.
  • A Salvy faz a conciliação entre as integrações ativas (priorizando a mais recente) e as edições manuais (prioridade máxima) para determinar quais dados exibir ao usuário final.

Junção automática com colaboradores existentes

Ao utilizar o endpoint de sync pela primeira vez para um colaborador, tentamos juntá-lo a um colaborador já existente na plataforma. Por exemplo, um colaborador criado manualmente ou via planilha. Buscamos colaboradores já existentes por uma ordem de prioridade, nesta sequência:
  1. integrationId igual
  2. cpf igual (se fornecido)
  3. workEmail igual (se fornecido)
  4. fullName igual, e: a. Se workEmail for fornecido, e o colaborador existente não possuir workEmail (para permitir cadastro de workEmail por este endpoint) b. Se workEmail não for fornecido
  5. Caso não seja encontrado, criamos um novo colaborador
Portanto, ao utilizar este endpoint para o mesmo colaborador numa segunda vez, deve-se preservar o mesmo integrationId para garantir que o colaborador correto seja atualizado.

Exemplo de conciliação de fontes

Edição manual:
{
  "fullName": "João da Silva",
  "workEmail": "joaosilva@empresa.com.br",
  "status": "active"
}
Snapshot via API:
{
  "fullName": "João da Silva Santos",
  "workEmail": "joaosilva@empresa.com.br",
  "personalEmail": "joao04@gmail.com",
  "status": "active"
}
Resultado:
{
  "fullName": "João da Silva",
  "workEmail": "joaosilva@empresa.com.br",
  "personalEmail": "joao04@gmail.com",
  "status": "active"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
integrationId
string
required

Identificador único de sua escolha para esse colaborador

Example:

"123"

fullName
string
required

Nome completo

Example:

"João da Silva"

status
enum<string>
required

Situação do colaborador

Available options:
active,
terminated,
on-hold
Example:

"active"

socialName
string

Nome social

Example:

"João"

workEmail
string

E-mail profissional

Example:

"joaosilva@empresa.com.br"

personalEmail
string

E-mail pessoal

Example:

"joaos04@gmail.com"

workPhoneNumber
string

Telefone profissional

Example:

"+5541923456789"

personalPhoneNumber
string

Telefone pessoal

Example:

"+5541987654321"

cpf
string

Número do CPF

Example:

"198.099.750-07"

position
string

Cargo do colaborador

Example:

"Desenvolvedor"

area
string

Área do colaborador

Example:

"Engenharia"

managerFullName
string

Nome do gestor

Example:

"Maria dos Santos"

birthDate
string

Data de nascimento

Example:

"1990-04-15"

admittedAt
string

Data de admissão

Example:

"2020-05-27"

terminatedAt
string

Data de desligamento

Example:

"2021-01-20"

address
object

Endereço do colaborador

Response

id
string
required

Identificador do colaborador na plataforma Salvy (UUID)

Examples:

"123e4567-e89b-12d3-a456-426614174000"

"123e4567-e89b-12d3-a456-426614174001"

fullName
string
required

Nome completo

Example:

"João da Silva"

socialName
string | null
required

Nome social

Example:

"João"

status
enum<string>
required

Situação do colaborador

Available options:
active,
terminated,
on-hold
Example:

"active"

workEmail
string | null
required

E-mail profissional A valid email address.

Examples:

"user@example.com"

"admin@domain.org"

"info@company.net"

personalEmail
string | null
required

E-mail pessoal A valid email address.

Examples:

"user@example.com"

"admin@domain.org"

"info@company.net"

workPhoneNumber
string | null
required

Telefone profissional Phone number in E.164 format. Supports Brazilian numbers (+55).

Examples:

"+5511999999999"

"+551139999999"

personalPhoneNumber
string | null
required

Telefone pessoal Phone number in E.164 format. Supports Brazilian numbers (+55).

Examples:

"+5511999999999"

"+551139999999"

cpf
string | null
required

Número do CPF A valid CPF number.

Examples:

"123.456.789-09"

"12345678909"

cnpj
string | null
required

CNPJ do colaborador A valid CNPJ number.

Examples:

"12.345.678/0001-95"

"12345678000195"

rg
string | null
required

RG do colaborador

Example:

"12.345.678-9"

position
string | null
required

Cargo do colaborador

Example:

"Desenvolvedor"

area
string | null
required

Área do colaborador

Example:

"Engenharia"

managerFullName
string | null
required

Nome do gestor

Example:

"Maria dos Santos"

birthDate
string | null
required

Data de nascimento A date in ISO 8601 format.

Examples:

"2023-10-05"

contractType
enum<string> | null
required

Tipo de contrato

Available options:
pj,
clt,
intern,
apprentice,
temporary,
third-party
Example:

"clt"

contractEndDate
string | null
required

Data de término do contrato A date in ISO 8601 format.

Examples:

"2023-10-05"

admittedAt
string | null
required

Data de admissão A date in ISO 8601 format.

Examples:

"2023-10-05"

terminatedAt
string | null
required

Data de desligamento A date in ISO 8601 format.

Examples:

"2023-10-05"

address
object | null
required

Endereço do colaborador

customFields
object[]
required

Campos personalizados do colaborador

Example:
[
{
"label": "teste",
"type": "text",
"value": "teste"
}
]
bankAccount
object | null
required

Dados bancários do colaborador

salaryCents
number | null
required

Salário em centavos

Example:

500000

sources
object[]
required

Fontes de integração do colaborador

  • Option 1
  • Option 2
  • Option 3
Example:
[{ "id": "123", "platform": "api" }]
createdAt
string<date-time>
required

Data de criação do colaborador

Example:

"2025-01-01T00:00:00.000Z"