0% acharam este documento útil (0 voto)
5 visualizações139 páginas

Select API Documentation

A documentação da API Selecty fornece informações sobre autenticação, gerenciamento de candidatos, cargos da empresa e carimbos. Inclui exemplos de requisições e respostas em formato JSON para diversas operações, como inserção de candidatos e criação de cargos. O acesso à API requer um token de autenticação, e as chamadas são realizadas via métodos HTTP como POST e GET.

Enviado por

Mirton Brito
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
5 visualizações139 páginas

Select API Documentation

A documentação da API Selecty fornece informações sobre autenticação, gerenciamento de candidatos, cargos da empresa e carimbos. Inclui exemplos de requisições e respostas em formato JSON para diversas operações, como inserção de candidatos e criação de cargos. O acesso à API requer um token de autenticação, e as chamadas são realizadas via métodos HTTP como POST e GET.

Enviado por

Mirton Brito
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Introduction

Bem vindo a documentação da API Selecty

Use o menu a esquerda para navegar entre as diferentes rotas disponíveis, e a barra lateral a direita para visualizar os exemplos de
como realizar as requisições nas linguagens disponíveis

Autenticação
Métodos para autenticação e uso da API

Token de Acesso
Para realizar outras chamada na API, é necessário requisitar um token de acesso com esta chamada Este token então deverá ser usado
como um header. Estes dados serão enviados assim que o acesso for disponibilizado pela equipe selecty

Example request:

import requests
import json

url = '[Link]
payload = {
"api_id": "12345678-9abc-def0-1234-56789abcdef0",
"secret": "\"<senha-super-secreta>\""
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('POST', url, headers=headers, json=payload)


[Link]()

Example response (200):

{
"access_token": "<bearer-token>",
"token_type": "bearer",
"expires_in": 3600
}

Example response (401):


{
"error": "Unauthorized"
}

REQUEST

POST v2/auth

BODY PARAMETERS

api_id uuid
ID de conexão

secret string
Senha ou password da conexão

Impersonate
requires authentication

Esta chamada retorna um link único e expirável, que é responsaǘel por autentuicar e redirecionar o usuário a alguma url do pórtral do
serviços. Útil para integrações de portais externos, onde a autenticação é realizada do lado do cliente.

Example request:
import requests
import json

url = '[Link]
payload = {
"url": "vacancy\/lists\/index",
"email": "ab"
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('POST', url, headers=headers, json=payload)


[Link]()

Example response (200):

{
"url": "<url-de-retorno>"
"expires": "<data-de-expiração>"
}

Example response (401):

{
"error": "Unauthorized"
}

Example response (404):


{
"error": true,
"message": "Não encontrado."
}

REQUEST

POST v2/impersonate

BODY PARAMETERS

url string optional


Url para a qual você quer direcionar o usuário externo

email string
Email do usuário externo. Deve estar ativo.

Candidatos
Funções relacionadas a candidatos
Inserir candidato
requires authentication

Cria um novo candidato

Example request:

import requests
import json

url = '[Link]
payload = {
"name": "Jos\u00e9 da Silva",
"cpf": "12345678901",
"email": "jose@[Link]",
"phone": "41999999999",
"gender": "M",
"birth_date": "1980-05-13",
"assumed_name": "Z\u00e9",
"postal_code": "83508555",
"state": "PR",
"city": "Curitiba",
"district": "Centro",
"street": "Rua Volunt\u00e1rios da P\u00e1tria",
"street_number": "100",
"complement": "apto 10",
"obs": "Coment\u00e1rio",
"welcome": true
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = [Link]('POST', url, headers=headers, json=payload)
[Link]()

Example response (201):

{
"error": false,
"message": "Candidato enviado ao Processo Seletivo 1463 com sucesso!",
"data": {
"candidate_id": "203582",
"selective_process_id": "1463",
"step_id_selection": 1
}
}

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

Example response (422):

{
"error": true,
"message": "Campos inválidos",
"fields": {
"name": [
"O campo name é obrigatório."
]
}
}

REQUEST

POST v2/candidate

BODY PARAMETERS

name string
Nome.

cpf string
CPF (apenas números).

email string
E-mail.

phone string
Celular.

gender string optional


Sexo (M ou F).

birth_date string optional


Data de nascimento (YYYY-MM-DD).

assumed_name string optional


Nome social.
postal_code string optional
CEP.

state string optional


UF.

city string optional


Cidade.

district string optional


Bairro.

street string optional


Rua.

street_number string optional


Núemro.

complement string optional


Complemento.

obs string optional


Observação.

welcome boolean optional


Enviar mensagem de boas vindas.
Enviar para PS
requires authentication

Envia um candidato para um Processo Seletivo

Example request:

import requests
import json

url = '[Link]
payload = {
"selective_process_id": 123,
"person_id": 123456,
"stage": "1"
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('POST', url, headers=headers, json=payload)


[Link]()

Example response (201):

{
"error": false,
"message": "Candidato enviado ao Processo Seletivo 1463 com sucesso!",
"data": {
"candidate_id": "203582",
"selective_process_id": "1463",
"step_id_selection": 1
}
}

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

Example response (422):

{
"error": true,
"message": "Campos inválidos",
"fields": {
"selective_process_id": [
"O campo selective_process_id é obrigatório."
]
}
}

REQUEST

POST v2/candidate/send_to_ps

BODY PARAMETERS
selective_process_id integer
Id do Processo Seletivo.

person_id integer
Id do candidato.

stage interger optional


Etapa em que o candidato vai entrar (1 - Convocação, 2 - Seleção).

Cargos da Empresa
Funções relacionadas aos cargos da empresa

Lista de Cargos da Empresa


requires authentication

Busca os dados básicos de todos os cargos da empresa

STATUS:
a: Ativo
c: Cancelado

Example request:

import requests
import json

url = '[Link]
params = {
'sort': '-name',
'code': 'ENG001',
'page': '1',
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('GET', url, headers=headers, params=params)


[Link]()

Example response (200):

{
"current_page": 1,
"data": [
{
"occupation_corporation_id": 16880,
"name": "NOME DO CARGO 1",
"description": "DESCRIÇÃO DO CARGO 1",
"code": "0001",
"activities": "ATIVIDADES DO CARGO 1.",
"status": "a"
},
{
"occupation_corporation_id": 16881,
"name": "NOME DO CARGO 2",
"description": "DESCRIÇÃO DO CARGO 2",
"code": "0002",
"activities": "ATIVIDADES DO CARGO 2.",
"status": "a"
}
],
"first_page_url": "base_url\/v2\/occupation_corporation?page=1",
"from": 1,
"last_page": 2,
"last_page_url": "base_url\/v2\/occupation_corporation?page=2",
"next_page_url": "base_url\/v2\/occupation_corporation?page=2",
"path": "base_url\/v2\/occupation_corporation",
"per_page": 2,
"prev_page_url": "base_url\/v2\/occupation_corporation?page=80",
"to": 2,
"total": 3
}

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

REQUEST

GET v2/occupation_corporation

QUERY PARAMETERS

sort string optional


Campo usado para ordenação, prefixe com o sinal de menos (-) para ordem decrescente.
code string optional
Código do cargo

page string optional


Número da página buscada

Busca de Cargo da Empresa


requires authentication

Busca os dados básicos de um cargo da empresa

STATUS:
a: Ativo
c: Cancelado

Se foram cadastrados os códigos internos dos cargos (code) essa busca será feita por ele, caso contrario será feita pelo id do cargo
(occupation_corporation_id)

Example request:

import requests
import json

url = '[Link]
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('GET', url, headers=headers)


[Link]()

Example response (200):

{
"occupation_corporation_id": 16880,
"name": "NOME DO CARGO 1",
"description": "DESCRIÇÃO DO CARGO 1",
"code": "0001",
"activities": "ATIVIDADES DO CARGO 1.",
"corporation": {
"corporation_id": 1,
"name": "EMPRESA 1",
"code": 1
}
}

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

Example response (422):


{
"error": true,
"message": "Campos inválidos",
"fields": {
"occupation_corporation_id": [
"O campo occupation corporation id (XXXX) deve ser um número inteiro."
]
}
}

REQUEST

GET v2/occupation_corporation/{occupation_corporation_id}

URL PARAMETERS

id string
Código do cargo ou id

Criação de Cargos da Empresa


requires authentication

Cria um novo cargo da empresa

Se o code passado na requisição já existir em algum registro, esse registro será atualizado e não criado um novo.
OBS: Como o code não é um campo obrigatório, você pode cadastrar sem informa-lo ou deixando-o nulo (null), nesse caso a regra
acima é ignorada.

Você pode vincular o cargo a uma empresa informando o corporation_code ou corporation_id:


corporation_code é o código da empresa no seu sistema, precisa estar cadastrada essa informação no selecty.
corporation_id é o código da empresa no selecty.

Example request:

import requests
import json

url = '[Link]
payload = {
"name": "PROGRAMADOR",
"description": "DESCRI\u00c7\u00c3O",
"code": "0001",
"activities": "ATIVIDADES",
"corporation_code": 1,
"corporation_id": 1
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('POST', url, headers=headers, json=payload)


[Link]()

Example response (200):


{
"error": false,
"message": "Cargo da empresa atualizado com sucesso.",
"resource_id": 16905
}

Example response (201):

{
"error": false,
"message": "Cargo da empresa criado com sucesso.",
"resource_id": 16905
}

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

Example response (422):

{
"error": true,
"message": "Campos inválidos",
"fields": {
"name": [
"O campo name é obrigatório."
]
}
}

REQUEST

POST v2/occupation_corporation

BODY PARAMETERS

name string
Nome do novo cargo da empresa.

description string optional


Descrição do cargo da empresa.

optional
code string
Código do cargo da empresa.

activities string optional


Atividades do cargo da empresa.

corporation_code integer optional


Código personalizavel da empresa, utilizado para salvar o código de outro sistema.

corporation_id integer optional


Código da empresa, se informado irá ignorar o corporation_code.
Alteração de Cargos da Empresa
requires authentication

Altera um novo cargo da empresa

STATUS:
a: Ativo
c: Cancelado

Example request:

import requests
import json

url = '[Link]
payload = {
"name": "PROGRAMADOR",
"description": "DESCRI\u00c7\u00c3O",
"code": "0001",
"activities": "ATIVIDADES",
"corporation_code": 1,
"corporation_id": 1,
"status": "c"
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = [Link]('PUT', url, headers=headers, json=payload)
[Link]()

Example response (200):

{
"error": false,
"message": "Cargo da empresa atualizado com sucesso.",
"data": {
"occupation_corporation_id": 16904,
"name": "NOVO CARGO 3",
"description": "DESCRIÇÃO 3",
"code": "9878",
"activities": "ATIVIDADES 3",
"status": "a"
}
}

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

Example response (409):

{
"error": true,
"message": "Já existe um cargo da empresa com esse \"code\"",
"data": {
"occupation_corporation_id": 16903,
"name": "NOVO CARGO 2",
"description": "DESCRIÇÃO",
"code": "9877",
"activities": "ATIVIDADES"
}
}

Example response (422):

{
"error": true,
"message": "Campos inválidos",
"fields": {
"name": [
"O campo name é obrigatório."
],
"occupation_corporation_id": [
"O campo occupation corporation id (XXXX) deve ser um número inteiro."
]
}
}

REQUEST

PUT v2/occupation_corporation/{occupation_corporation_id}

URL PARAMETERS

occupation_corporation_id string
ID do cargo

Você pode vincular o cargo a uma empresa informando o corporation_code ou corporation_id:


corporation_code é o código da empresa no seu sistema, precisa estar cadastrada essa informação no selecty.
corporation_id é o código da empresa no selecty.

BODY PARAMETERS

name string optional


Nome do novo cargo da empresa.

description string optional


Descrição do cargo da empresa.

code string optional


Código do cargo da empresa.

activities string optional


Atividades do cargo da empresa.

corporation_code integer optional


Código personalizavel da empresa, utilizado para salvar o código de outro sistema.

corporation_id integer optional


Código da empresa, se informado irá ignorar o corporation_code.

status stringoptional
Status do cargo (a = Ativo, c = Cancelado).
Carimbos

Funções relacionadas aos carimbos

Lista de Carimbos
requires authentication

Busca os dados básicos de todos os carimbos do sistema

Example request:

import requests
import json

url = '[Link]
params = {
'sort': '-label',
'page': '1',
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = [Link]('GET', url, headers=headers, params=params)
[Link]()

Example response (200):

{
"current_page": 1,
"data": [
{
"stamp_id": 1,
"label": "Recomendado",
"description": "Carimbo para marcar candidatos recomendados para certas vagas",
"color": 255,
"icon": "https:\/\/[Link]\/selecty-drive\/shared\/stamps\/[Link]"
},
{
"stamp_id": 2,
"label": "Não recomendado",
"description": "Carimbo para marcar candidatos NÃO recomendados para certas vagas",
"color": 16711680,
"icon": "https:\/\/[Link]\/selecty-drive\/shared\/stamps\/[Link]"
},
{
"stamp_id": 3,
"label": "Importação",
"description": "Carimbo para Importação",
"color": 0,
"icon": "https:\/\/[Link]\/selecty-drive\/shared\/stamps\/[Link]"
}
],
"first_page_url": "base_url\/v2\/stamps?page=1",
"from": 1,
"last_page": 1,
"last_page_url": "base_url\/v2\/stamps?page=1",
"next_page_url": null,
"path": "base_url\/v2\/stamps",
"per_page": 10,
"prev_page_url": null,
"to": 3,
"total": 3
}

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

REQUEST

GET v2/stamps

QUERY PARAMETERS

sort string optional


Campo usado para ordenação, prefixe com o sinal de menos (-) para ordem decrescente.

page string optional


Número da página buscada

Busca de Carimbos
requires authentication

Busca os dados básicos de um carimbo

Example request:

import requests
import json

url = '[Link]
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('GET', url, headers=headers)


[Link]()

Example response (200):

{
"stamp_id": 1,
"label": "Recomendado",
"description": "Carimbo para marcar candidatos recomendados para certas vagas",
"color": 255,
"icon": "https:\/\/[Link]\/selecty-drive\/shared\/stamps\/[Link]"
}

Example response (404):


{
"error": true,
"message": "Não encontrado."
}

Example response (422):

{
"error": true,
"message": "Campos inválidos",
"fields": {
"stamp_id": [
"O campo stamp id (XXX) deve ser um número inteiro."
]
}
}

REQUEST

GET v2/stamps/{stamp_id}

URL PARAMETERS

stamp_id string
ID do carimbo

Criação de Carimbo
requires authentication

Cria um novo carimbo

Example request:

import requests
import json

url = '[Link]
payload = {
"label": "RECOMENDADO",
"description": "DESCRI\u00c7\u00c3O",
"color": 255,
"icon": "https:\/\/[Link]\/selecty-drive\/shared\/stamps\/[Link]"
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('POST', url, headers=headers, json=payload)


[Link]()

Example response (201):

{
"error": false,
"message": "Carimbo salvo com sucesso",
"data": {
"label": "label 2",
"description": "description 2",
"color": 255,
"icon": "icon",
"stamp_id": 6
}
}

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

Example response (409):

{
"error": true,
"message": "Já existe um carimbo com essa \"label\"",
"data": {
"stamp_id": 5,
"label": "label",
"description": "description",
"color": 123,
"icon": "icon"
}
}

Example response (422):

{
"error": true,
"message": "Campos inválidos",
"fields": {
"color": [
"O campo color (blue) deve ser um número inteiro."
]
}
}

REQUEST

POST v2/stamps

BODY PARAMETERS

label string optional


Label para identificar o carimbo.

description string optional


Descrição do carimbo.

color integer optional


Cor do carimbo, número inteiro.

icon string optional


URL da imagem do carimbo.

Alteração de Carimbo
requires authentication
Altera um carimbo

Example request:

import requests
import json

url = '[Link]
payload = {
"label": "RECOMENDADO",
"description": "DESCRI\u00c7\u00c3O",
"color": 255,
"icon": "https:\/\/[Link]\/selecty-drive\/shared\/stamps\/[Link]"
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('PUT', url, headers=headers, json=payload)


[Link]()

Example response (200):

{
"error": false,
"message": "Carimbo atualizado com sucesso.",
"data": {
"stamp_id": 6,
"label": "label 2",
"description": "description 2",
"color": 255,
"icon": "icon"
}
}

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

Example response (409):

{
"error": true,
"message": "Já existe um carimbo com essa \"label\"",
"data": {
"stamp_id": 5,
"label": "label",
"description": "description",
"color": 123,
"icon": "icon"
}
}

Example response (422):

{
"error": true,
"message": "Campos inválidos",
"fields": {
"color": [
"O campo color (blue) deve ser um número inteiro."
],
"stamp_id": [
"O campo stamp id (XXXX) deve ser um número inteiro."
]
}
}

REQUEST

PUT v2/stamps/{stamp_id}

URL PARAMETERS

stamp_id string
ID do carimbo

BODY PARAMETERS

label string optional


Label para identificar o carimbo.

description string optional


Descrição do carimbo.

color integer optional


Cor do carimbo, número inteiro.

icon string optional


URL da imagem do carimbo.
Lista pessoas carimbadas
requires authentication

Busca os dados básicos de todos as pessoas carimbadas do sistema

Example request:

import requests
import json

url = '[Link]
params = {
'sort': '-label',
'page': '1',
'stamped_person_id': '1',
'stamp_id': '1',
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('GET', url, headers=headers, params=params)


[Link]()

Example response (200):

{
"current_page": 1,
"data": [
{
"stamp_id": 3,
"stamp_label": "Importação",
"stamped_person_id": 58792,
"stamped_person_name": "NOME DA PESSOA CARIMBADA",
"values": null,
"description": null,
"who_stamped_id": 2,
"who_stamped_name": "Matriz",
"date_stamped": "2020-04-01"
},
{
"stamp_id": 1,
"stamp_label": "Recomendado",
"stamped_person_id": 58792,
"stamped_person_name": "NOME DA PESSOA CARIMBADA",
"values": null,
"description": null,
"who_stamped_id": null,
"who_stamped_name": null,
"date_stamped": "2021-01-26"
}
],
"first_page_url": "base_url\/v2\/stamped?stamped_person_id=58792&page=1",
"from": 1,
"last_page": 1,
"last_page_url": "base_url\/v2\/stamped?stamped_person_id=58792&page=1",
"next_page_url": null,
"path": "base_url\/v2\/stamped",
"per_page": 10,
"prev_page_url": null,
"to": 2,
"total": 2
}

Example response (404):


{
"error": true,
"message": "Não encontrado."
}

REQUEST

GET v2/stamped

QUERY PARAMETERS

sort string optional


Campo usado para ordenação, prefixe com o sinal de menos (-) para ordem decrescente.

page string optional


Número da página buscada

stamped_person_id string optional


Busca pelo ID da pessoa carimba

stamp_id string optional


Busca pelo ID do carimbo

Carimbar pessoa
requires authentication
Carimba uma pessoa

Example request:

import requests
import json

url = '[Link]
payload = {
"stamp_id": 1,
"person_id": 123456,
"values": "Valor",
"description": "Descri\u00e7\u00e3o"
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('POST', url, headers=headers, json=payload)


[Link]()

Example response (201):

{
"error": false,
"message": "Pessoa carimbada com sucesso.",
"data": {
"stamp_id": 2,
"values": "Valor",
"description": "Descrição",
"who_stamped_id": null,
"date_stamped": "2021-01-26",
"stamp_label": "Não recomendado",
"stamped_person_id": 58792,
"stamped_person_name": "NOME DA PESSOA CARIMBADA",
"who_stamped_name": null
}
}

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

Example response (409):

{
"error": true,
"message": "Pessoa já carimbada com esse carimbo",
"data": {
"stamp_id": 1,
"values": null,
"description": null,
"who_stamped_id": null,
"date_stamped": "2021-01-26",
"stamp_label": "Recomendado",
"stamped_person_id": 58792,
"stamped_person_name": "NOME DA PESSOA CARIMBADA",
"who_stamped_name": null
}
}

Example response (422):


{
"error": true,
"message": "Campos inválidos",
"fields": {
"stamp_id": [
"O campo stamp id é obrigatório."
],
"person_id": [
"O campo person id (pessoa) deve ser um número inteiro."
]
}
}

REQUEST

POST v2/stamped

BODY PARAMETERS

stamp_id integer
ID do carimbo.

person_id integer
ID da pessoa que será carimbada.

values string optional


Valor.

description string optional


Descrição.
Clientes

Funções relacionadas aos clientes e suas informações

Listar Clientes
requires authentication

Busca os dados básicos de todas os clientes no sistema

Example request:

import requests
import json

url = '[Link]
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('GET', url, headers=headers)


[Link]()
Example response (200):

{
"status": "success",
"message": "Clientes listados com sucesso.",
"data": [
{
"person_id": 1,
"name": "Cliente 1",
"status": "r",
"customer_type": "PJ",
"cnpj": "12.345.678\/0001-90",
"cpf": null
},
{
"person_id": 2,
"name": "Cliente 2",
"status": "c",
"customer_type": "PF",
"cnpj": null,
"cpf": "123.456.789-00"
}
]
}

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

REQUEST
GET v2/commercial/customers

Buscar Cliente
requires authentication

Busca os dados básicos de um cliente

Example request:

import requests
import json

url = '[Link]
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('GET', url, headers=headers)


[Link]()

Example response (200):

{
"status": "success",
"message": "Cliente encontrado com sucesso.",
"data": {
"customer": {
"person_id": "1",
"name": "Cliente 1",
"assumed_name": "Cliente 1",
"birth_date": "2009-01-17",
"creation_date": "2019-01-17 00:00:00-02",
"cnpj": "01234567890123",
"acting_area": "Tecnologia e Informática",
"status": "r",
"internal_code": null,
"customer_type": "r"
}
}
}

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

REQUEST

GET v2/commercial/customers/{id}

URL PARAMETERS

id string optional
integer required ID do cliente
Inserir Cliente
requires authentication

Cria um novo cliente.

Status:

STATUS_REGULAR = 'r'
STATUS_CANCELED = 'c'
STATUS_INACTIVE = 'i'
STATUS_PROSPECT = 'p'
STATUS_POTENTIAL = 't'
STATUS_RESTRICTED = 'e'
STATUS_HUNTING = 'h'

Example request:

import requests
import json

url = '[Link]
payload = {
"name": "Nome da Empresa LTDA",
"assumed_name": "Nome da Empresa",
"birth_date": "2000-10-10",
"cnpj": "eaque",
"cpf": "iste",
"acting_area": "sapiente",
"status": "r",
"internal_code": "doloremque",
"customer_type": "in"
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('POST', url, headers=headers, json=payload)


[Link]()

Example response (200):

{
"status": "success",
"message": "Cliente salvo com sucesso.",
"data": {
"customer_id": 3
}
}

REQUEST

POST v2/commercial/customers

BODY PARAMETERS

name string
Nome do cliente.

assumed_name string optional


Nome fantasia.
birth_date dateoptional
Data de nascimento.

cnpj string optional


CNPJ do cliente caso pessoa juridica.

cpf string optional


CPF do cliente caso pessoa fisica.

acting_area string optional


Segmento.

status string
Status do cliente.

internal_code string optional


Código interno.

customer_type string
c = Pessoa juridica, i = Pessoa fisica.

Editar Cliente
requires authentication

Edita os dados de um cliente.


Status:

STATUS_REGULAR = 'r'
STATUS_CANCELED = 'c'
STATUS_INACTIVE = 'i'
STATUS_PROSPECT = 'p'
STATUS_POTENTIAL = 't'
STATUS_RESTRICTED = 'e'
STATUS_HUNTING = 'h'

Example request:

import requests
import json

url = '[Link]
payload = {
"name": "Nome da Empresa LTDA",
"assumed_name": "Nome da Empresa",
"birth_date": "2000-10-10",
"cnpj": "maiores",
"cpf": "sit",
"acting_area": "voluptatem",
"status": "r",
"internal_code": "qui",
"customer_type": "assumenda"
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('PUT', url, headers=headers, json=payload)


[Link]()
Example response (200):

{
"status": "success",
"message": "Cliente atualizado com sucesso."
}

REQUEST

PUT v2/commercial/customers/{id}

URL PARAMETERS

id string optional
integer required ID do cliente a ser editado

BODY PARAMETERS

name string
Nome do cliente.

assumed_name string optional


Nome fantasia.

birth_date dateoptional
Data de nascimento.

cnpj string optional


CNPJ do cliente caso pessoa juridica.
cpf string optional
CPF do cliente caso pessoa fisica.

acting_area string optional


Segmento.

status string
Status do cliente.

internal_code string optional


Código interno.

customer_type string
c = Pessoa juridica, i = Pessoa fisica.

Contratações

Funcções relacionadas às contratações e suas informações

Lista de Contratações
requires authentication

Busca os dados básicos de todas as contratações realizadas

Os seguintes STATUS estão disponíveis para consulta:

pending | null - Lista as contrações pendentes, em processo de contratação, ainda não concluídas pela plataforma. É o status
padrão, quando nenhum enviado.
pre-exported - Lista os registros exportados previamente.
exported - Lista os registros prontos para integração.
processing - Lista os registros que atualmente estão em processamento pela integração
accepted - Lista todas as contratações concluídas pelo processo de integração
rejected - Lista as contratações rejeitadas pelo processo de integração

Example request:

import requests
import json

url = '[Link]
params = {
'sort': '-work_id',
'page': '1',
'status': 'exported',
'cpf': '123.456.789-01',
'vacancy_id': '123',
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = [Link]('GET', url, headers=headers, params=params)
[Link]()

Example response (200):

{
"current_page": 1,
"data": [
{
"work_id": 1245,
"vacancy_id": 123,
"person": {
"name": "José da Silva",
"birth_date": "1967-03-06",
"cpf": "61260478009",
},
"integration": {
"status": "rejected",
"message": "CPF já contratado"
}
},
{
"work_id": 1246,
"vacancy_id": 123,
"person": {
"name": "Maria Pereira",
"birth_date": "1980-01-12",
"cpf": "13789400084",
},
"integration": {
"status": "rejected",
"message": "Dados inconsistentes"
}
}
],
"first_page_url": "base_url/v2/work/payroll?page=1",
"from": 1,
"last_page": 3951,
"last_page_url": "[Link]
"next_page_url": "base_url/v2/work/payroll?page=2",
"path": "base_url/v2/work/payroll",
"per_page": 10,
"prev_page_url": null,
"to": 10,
"total": 39506
}

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

Example response (422):

{
"error": true,
"message": "Campos inválidos"
}

REQUEST

GET v2/work/payroll

QUERY PARAMETERS
optional
sort string
Campo usado para ordenação, Prefixe com o sinal de menos (-) para ordem decrescente o sinal.

page string optional


Número da página buscada

status string optional


Filtro de status da contratação

cpf string optional


Busca as contratações de um determinado CPF

vacancy_id string optional


Busca as contratações pelo código da vaga

Busca de Contratação
requires authentication

Busca os dados detalhados de uma contratação específica

Example request:

import requests
import json
url = '[Link]
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('GET', url, headers=headers)


[Link]()

Example response (200):

{
"work_id": 160904,
"vacancy_id": 123,
"tax": "15",
"work_type": 5,
"comments": "Funcionário com excelente desempenho",
"occupation_id": 2143,
"start": "2020-07-07",
"finish": null,
"activities": "Recepcionar o público em geral, Venda de produtos veterinários, Atendimento ao cliente",
"employer_id": 1,
"work_address_id": 21403,
"salary": "2500.00",
"person": {
"person_id": 104246,
"name": "Maria Santos Silva",
"birth_date": "1985-03-15",
"creation_date": "2020-04-23 10:13:01-03",
"assumed_name": "Maria Santos",
"last_update": "2024-12-15 14:30:25.123456-03",
"gender": "F",
"cpf": "12345678901",
"rg": "123456789",
"organ_rg": "SSP",
"state_rg": "SP",
"city_rg": "São Paulo",
"date_of_issue_rg": "2003-05-20",
"nationality": "Brasileira",
"born_state": "SP",
"born_city": "São Paulo",
"mother_name": "Ana Maria Santos",
"mother_not_declared_in_the_document": false,
"mother_cpf": "98765432100",
"father_name": "João Santos Silva",
"father_not_declared_in_the_document": false,
"father_cpf": "11122233344",
"civil_status": "Casado",
"number_of_children": 2,
"children_info": "Dois filhos menores de idade",
"email": "[Link]@[Link]",
"home_phone": "(11) 3456-7890",
"site": "https:\/\/[Link]\/in\/mariasantos-exemplo-api",
"cellphone": "(11) 98765-4321",
"national_health_service_number": "123456789012345",
"professional_number": "CRC-SP 123456"
},
"status": 20,
"unit_id": 12378,
"workload": "220",
"salary_type": "m",
"occupation_corporation_id": 12345,
"cost_center_corporation_id": 54321,
"position_id": 154,
"owner_id": 5,
"benefits": "Vale alimentação R$ 350,00, Plano de saúde familiar, Vale transporte",
"creation_date": "2020-07-07 18:11:59-03",
"employee_registration_code": "EMP-2024-001",
"month_workload": "Segunda a sexta-feira das 08:00 às 17:00 com 1h de almoço",
"parent_work_id": null,
"integration": {
"status": "accepted",
"message": "Integração realizada com sucesso"
},
"hire_type": 1,
"exporter_id": 12,
"hire_type_label": "hire_type_internal_employee",
"status_label": "is_working",
"allocation": {
"internal_code": "DEPT-RH-001"
},
"dismissal_date": null,
"address": {
"country": "Brasil",
"zip_code": "01234-567",
"street_type": "Rua",
"street": "das Flores",
"number": "123",
"complement": "Apartamento 45B",
"district": "Centro",
"state": "SP",
"city": "São Paulo"
},
"education": {
"schooling_level": "Superior Completo"
},
"ctps": {
"has_ctps": true,
"is_first_job": false,
"ctps_type": "Digital",
"ctps_number": "1234567890",
"ctps_serial": "001",
"ctps_state": "SP",
"ctps_city": "São Paulo",
"ctps_date": "2010-01-15"
},
"pis": {
"has_pis": true,
"pis_pasep_number": "12345678901",
"pis_pasep_date": "2010-02-20"
},
"voter": {
"has_voter_registration": true,
"voter_registration_number": "123456789012",
"voter_registration_zone": "001",
"voter_registration_section": "0123",
"voter_registration_state": "SP",
"voter_registration_city": "São Paulo",
"voter_registration_date": "2003-10-15"
},
"armed_forces": {
"has_certificate_armed_forces": false,
"certificate_of_armed_forces_service_status": null,
"certificate_of_armed_forces_service": null,
"certificate_of_armed_forces_service_serie": null,
"certificate_of_armed_forces_service_organ": null,
"certificate_of_armed_forces_service_uf": null,
"certificate_of_armed_forces_service_type": null,
"certificate_of_armed_forces_service_category": null,
"certificate_of_armed_forces_service_date": null
},
"cnh": {
"has_cnh": true,
"cnh_number": "12345678901",
"cnh_local": "São Paulo",
"cnh_organ": "DETRAN-SP",
"cnh_state": "SP",
"cnh_type": "B",
"cnh_date_emission": "2020-03-10",
"cnh_date_validity": "2030-03-10",
"cnh_date_first_emission": "2005-08-20"
},
"bank": {
"bank_name": "Banco do Brasil",
"bank_type": "Conta Corrente",
"bank_holder_name": "Maria Santos Silva",
"bank_holder_type": "Física",
"bank_agency": "1234-5",
"bank_account": "12345-6",
"bank_operation": "001",
"bank_pix_type": "E-mail",
"bank_pix_value": "[Link]@[Link]"
},
"epi": {
"tshirt": "M",
"trousers": "40",
"shoe": "37",
"jacket": "M",
"shirt": "M"
},
"cnpj": {
"name": null,
"number": null,
"name_legal_representative": null,
"phone_legal_representative": null,
"email_legal_representative": null
},
"diversity": {
"racial": "Parda",
"assumed_name": false,
"gender_identity": "Cisgênero",
"gender_orientation": "Heterossexual"
},
"dependents": [
{
"name": "Pedro Santos Silva",
"birth_date": "2015-06-12",
"gender": "Masculino",
"civil_status": "Solteiro",
"kinship": "Filho",
"rg": "987654321",
"cpf": null,
"vaccine_number": "VAC123456",
"sus_card": "123456789012345",
"mother_name": "Maria Santos Silva",
"income_tax": true,
"life_insurance": true,
"health_care": true
},
{
"name": "Ana Santos Silva",
"birth_date": "2018-11-08",
"gender": "Feminino",
"civil_status": "Solteiro",
"kinship": "Filho",
"rg": null,
"cpf": null,
"vaccine_number": "VAC789012",
"sus_card": "987654321098765",
"mother_name": "Maria Santos Silva",
"income_tax": true,
"life_insurance": true,
"health_care": true
}
],
"transports": [
{
"way_transport": "Ida",
"type_transport": "Ônibus",
"path_transport": "Centro - Jardins",
"value_transport": "4.50"
},
{
"way_transport": "Volta",
"type_transport": "Ônibus",
"path_transport": "Jardins - Centro",
"value_transport": "4.50"
}
],
"additional_contacts": [
{
"name": "João Santos Silva",
"phone": "(11) 91234-5678"
},
{
"name": "Ana Maria Santos",
"email": "[Link]@[Link]"
},
{
"name": "Maria Santos Silva",
"website": "https:\/\/[Link]\/in\/mariasantos-exemplo-api"
}
]
}

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

REQUEST

GET v2/work/payroll/{work_id}

URL PARAMETERS

work_id string
ID da contratação

Atualização de status
requires authentication

Realiza a atualização do status do contratado.

Podem ser usados os seguintes STATUS:

exported - Define o registro como preparado para integração


processing - Marca o registro como "em processamento"
accepted - Registro aceito como correto e já importado
rejected - Registro rejeitado na importação. Recomenda-se informar o motivo, para que o operador possa ser informado na
interface.
O funcionamento obedece as seguintes regras:

Registros "exported", somente podem ser alterados para "processing"


Registros "processing", somente podem ser alterados para "accepted" ou "rejected"
Registros "rejected", somente podem ser alterados para "exported" ou "processing"
Registros "accepted", não podem ser mais alterados

Example request:

import requests
import json

url = '[Link]
payload = {
"status": "rejected",
"message": "Registro rejeitado por motivos de...."
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('PUT', url, headers=headers, json=payload)


[Link]()

Example response (200):

{
"error": false,
"message": "Atualizado com sucesso"
}

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

Example response (422):

{
"error": true,
"message": "Não é pertimido alterar o status de \"exported\" para \"exported\""
}

REQUEST

PUT v2/work/payroll/status/{work_id}

URL PARAMETERS

work_id string
ID da contratação.

BODY PARAMETERS

status string
Novo status da contratação a ser atualizado.
optional
message string
Mensagem de status, erro ou informação relativa à atualização. Texto livre.

Atualização de status em lote


requires authentication

Realiza a atualização do status do contratado em lote.

Podem ser usados os seguintes STATUS:

exported - Define o registro como preparado para integração


processing - Marca o registro como "em processamento"
accepted - Registro aceito como correto e já importado
rejected - Registro rejeitado na importação. Recomenda-se informar o motivo, para que o operador possa ser informado na
interface.

O funcionamento obedece as seguintes regras:

Registros "exported", somente podem ser alterados para "processing"


Registros "processing", somente podem ser alterados para "accepted" ou "rejected"
Registros "rejected", somente podem ser alterados para "exported" ou "processing"
Registros "accepted", não podem ser mais alterados
Podem ser atualizados até 20 contratações por vez

Example request:

import requests
import json

url = '[Link]
payload = [
{
"work_id": 67236,
"status": "rejected",
"message": "Registro rejeitado por motivos de...."
}
]
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('PUT', url, headers=headers, json=payload)


[Link]()

Example response (200):

{
"error": false,
"message": "Atualizado com sucesso"
}

Example response (207):


[
{
"error": false,
"message": "Atualizado com sucesso",
"code": 200,
"work_id": 123
},
{
"error": true,
"message": "Não é pertimido alterar o status de \"accepted\" para \"rejected\"",
"code": 422,
"work_id": 124
}
]

REQUEST

PUT v2/work/payroll/status/in/batch

BODY PARAMETERS

*.work_id integer
ID da contratação.

*.status string
Novo status da contratação a ser atualizado.

*.message string optional


Mensagem de status, erro ou informação relativa à atualização. Texto livre.
Atualização de status de etapas personalizadas do tipo status
requires authentication

Realiza a atualização do status de etapa de status personalizada.

Essas etapas são apenas usadas para mostrar status no fluxo admissional, geralmente usada para mostrar informações de integração.
Os status a serem enviados precisam ser previamente cadastrados na base, e para isso, é necessário contato com a Selecty.

Example request:

import requests
import json

url = '[Link]
payload = {
"status": "rejected",
"stage_name": "Status de integra\u00e7\u00e3o"
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('PUT', url, headers=headers, json=payload)


[Link]()

Example response (200):


{
"error": false,
"message": "Atualizado com sucesso"
}

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

Example response (422):

{
"error": true,
"message": "Etapa não encontrada, ou status não encontrado!"
}

REQUEST

PUT v2/work/stages/status/{work_id}

URL PARAMETERS

work_id string
ID da contratação.

BODY PARAMETERS
status string
O status que deseja salvar na etapa.

stage_name string
Nome da etapa do fluxo admissional que deja alterar o status.

Admitir
requires authentication

Altera o status de uma contratação para admitido

Podem ser usados os seguintes SEARCH_BY:

cpf - O contratado será identificada pelo CPF


work_id - O contratado será identificada pelo código de contrato de trabalho

Obs: O parametro search_by não é obrigatório, quando não informado usa o CPF como padrão

Example request:

import requests
import json

url = '[Link]
payload = {
"start_date": "2020-10-10",
"registration": "123456"
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('PUT', url, headers=headers, json=payload)


[Link]()

Example response (200):

{
"error": false,
"message": "Successfully updated."
}

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

Example response (409):

{
"error": true,
"message": "Encontrado mais de um registro."
}
Example response (422):

{
"error": true,
"message": "Campos inválidos"
}

REQUEST

PUT v2/work/admit/{identifier}/{search_by?}

URL PARAMETERS

identifier string
Identificador da pessoa com status "Em admissão" que esta sendo contratada

search_by string optional


Campo pelo qual será feita a busca do contratado.

BODY PARAMETERS

start_date string optional


Data de admissão no formato Y-m-d.

optional
registration string
Número do registro/matricula do funcionario.
Demitir
requires authentication

Altera o status de uma contratação para demitido

Podem ser usados os seguintes REASON_OF_DISMISSAL, informe o código:

1 - Justa causa
2 - Sem justa causa
3 - Término de contrato
4 - Culpa recíproca/força maior
5 - A pedido do empregado
6 - Aposentadoria
7 - Falecimento
8 - Transferência
9 - Expirado
10 - Encerrado (Solicitação da empresa - Efetivação)
11 - Encerrado (Solicitação da empresa - desligamento)
12 - Encerrado (Solicitação do estagiário)
13 - Encerrado (Solicitação da Faculdade)

Podem ser usados os seguintes SEARCH_BY:

cpf - O contratado será identificada pelo CPF


work_id - O contratado será identificada pelo código de contrato de trabalho
registration - O contratado será identificada pela matricula

Obs: O parametro search_by não é obrigatório, quando não informado usa o REGISTRATION (matricula) como padrão
Example request:

import requests
import json

url = '[Link]
payload = {
"dismissal_date": "2020-10-10",
"reason_of_dismissal": 1,
"dismissal_comments": "Abandono de Emprego",
"cpf": "12345678901"
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('PUT', url, headers=headers, json=payload)


[Link]()

Example response (200):

{
"error": false,
"message": "Successfully updated."
}

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

Example response (422):

{
"error": true,
"message": "Campos inválidos"
}

REQUEST

PUT v2/work/demit/{identifier}/{search_by?}

URL PARAMETERS

identifier string
Identificador da pessoa com status "Trabalhando" que esta sendo demitida

optional
search_by string
Campo pelo qual será feita a busca do contratado.

BODY PARAMETERS

dismissal_date string
Data de demissão no formato Y-m-d.

reason_of_dismissal integer optional


Motivo da demissão.
dismissal_comments string optional
Parecer demissional.

cpf string optional


CPF do funcionario.

Demitir em lote
requires authentication

Altera o status de uma ou mais contratações para demitido

Podem ser usados os seguintes REASON_OF_DISMISSAL, informe o código:

1 - Justa causa
2 - Sem justa causa
3 - Término de contrato
4 - Culpa recíproca/força maior
5 - A pedido do empregado
6 - Aposentadoria
7 - Falecimento
8 - Transferência
9 - Expirado
10 - Encerrado (Solicitação da empresa - Efetivação)
11 - Encerrado (Solicitação da empresa - desligamento)
12 - Encerrado (Solicitação do estagiário)
13 - Encerrado (Solicitação da Faculdade)

Para identificar o contratado é preciso informar o WORK_ID (Código da contratação), REGISTRATION (matricula) ou CPF
obrigatóriamente
Caso mais de uma opção seja informada, será utilizado apenas um para identificação, seguindo a seguinte ordem, WORK_ID,
REGISTRATION e por ultimo CPF

Aconselhamos utilizar o WORK_ID para integração para evitar possíveis duplicidades, no caso do CPF e REGISTRATION podem haver
duplicidades e não será feita a demissão.
É possível uma pessoa ter duas contratações com status trabalhando e dessa forma não saberiamos qual contratação demitir, por isso é
importante informar o WORK_ID.

Podem ser feitas 20 demissões por vez

Example request:

import requests
import json

url = '[Link]
payload = {
"cpf": "12345678901",
"work_id": 12345678901,
"registration": "123456",
"dismissal_date": "2020-10-10",
"reason_of_dismissal": 1,
"dismissal_comments": "Abandono de Emprego"
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = [Link]('PUT', url, headers=headers, json=payload)
[Link]()

Example response (200):

{
"error": false,
"message": "Successfully updated."
}

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

Example response (422):

{
"error": true,
"message": "Campos inválidos"
}

REQUEST

PUT v2/work/demit-in-batch

BODY PARAMETERS
cpf stringoptional
CPF do funcionario.

work_id integer optional


Código da contratação, código único gerado no Selecty.

registration stringoptional
Matricula do contratado.

dismissal_date string
Data de demissão no formato Y-m-d.

reason_of_dismissal integer optional


Motivo da demissão.

dismissal_comments string optional


Parecer demissional.

Movimentar
requires authentication

Altera o cargo e/ou estrutura organizacional de uma contratação com status "Trabalhando"

Example request:
import requests
import json

url = '[Link]
payload = {
"cpf": "12345678901",
"occupation_code": "10",
"short_code": "10",
"last_level": 4,
"last_level_code": "10",
"move_fired": false
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('PUT', url, headers=headers, json=payload)


[Link]()

Example response (200):

{
"error": false,
"message": "Successfully updated."
}

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

Example response (422):

{
"error": true,
"message": "Campos inválidos"
}

REQUEST

PUT v2/work/move/{registration}

URL PARAMETERS

registration string
Código de registro do funcionário (Matrícula)

BODY PARAMETERS

cpf string optional


CPF do funcionario.

occupation_code string optional


Código do novo cargo, caso não informado manterá o cargo antigo.

short_code string optional


Código de identificação da nova estrutura organizacional, se preenchido irá ignorar os campos last_level e last_level_code.
last_level integeroptional
Ultimo nivel da nova estrutura organizacional (1 até 6), obrigatório se last_level_code estiver preenchido.

last_level_code string optional


Código do ultimo nivel da estrutura organizacional, obrigatório se last_level estiver preenchido.

move_fired booleanoptional
Se true vai movimentar um funcionario mesmo que esteja demitido.

Documentos

Buscar documentos de pessoas.

Documentos disponíveis
requires authentication

Buscar a lista de arquivos disponíveis de uma pessoa.

Podem ser usados os seguintes SEARCH_BY:


cpf - Será buscado os documentos pelo CPF da pessoa
person_id - Será buscado os documentos pelo código identificador da pessoa
work_id - Será buscado os documentos pelo código de contrato de trabalho

Example request:

import requests
import json

url = '[Link]
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('GET', url, headers=headers)


[Link]()

Example response (200):

[
"rg_frente",
"rg_verso",
"comprovante_endereco",
"certidao_nascimento",
"ctps_frente",
"ctps_verso",
"pis",
"titulo_eleitor",
"reservista_frente",
"comprovante_escolaridade"
]
Example response (404):

{
"error": true,
"message": "Não encontrado."
}

REQUEST

GET v2/person/docs/available/{search_by}/{identifier}

URL PARAMETERS

search_by string
Campo pelo qual será buscado os documentos.

identifier string
Identificador com base no search_by escolhido, número do cpf, person_id ou work_id.

Todos em zip
requires authentication

Disponibiliza todos os documentos de uma pessoa em um arquivo zip.

Podem ser usados os seguintes SEARCH_BY:


cpf - Será buscado os documentos pelo CPF da pessoa
person_id - Será buscado os documentos pelo código identificador da pessoa
work_id - Será buscado os documentos pelo código de contrato de trabalho

Example request:

import requests
import json

url = '[Link]
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('GET', url, headers=headers)


[Link]()

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

REQUEST

GET v2/person/docs/download/{search_by}/{identifier}

URL PARAMETERS
search_by string
Campo pelo qual será buscado os documentos.

identifier string
Identificador com base no search_by escolhido, número do cpf, person_id ou work_id.

Um documento específico
requires authentication

Disponibiliza um documento específico definido pelo "type".

Podem ser usados os seguintes SEARCH_BY:

cpf - Será buscado os documentos pelo CPF da pessoa


person_id - Será buscado os documentos pelo código identificador da pessoa
work_id - Será buscado os documentos pelo código de contrato de trabalho

Podem ser usados os seguintes TYPE:

esocial
rg_frente
rg_verso
cpf
comprovante_endereco
certidao_nascimento
ctps_frente
ctps_verso
pis
titulo_eleitor
reservista_frente
reservista_verso
cnh
comprovante_escolaridade
comprovante_bancario_frente
comprovante_bancario_verso
vale_transporte
formulario_imposto_de_renda
formulario_salario_familia
fretado
formulario_sindical
formulario_vale_transporte
sus

Example request:

import requests
import json

url = '[Link]
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = [Link]('GET', url, headers=headers)
[Link]()

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

REQUEST

GET v2/person/docs/download/{search_by}/{identifier}/{type}

URL PARAMETERS

search_by string
Campo pelo qual será buscado os documentos.

identifier string
Identificador com base no search_by escolhido, número do cpf, person_id ou work_id.

type string
Identifica qual documento deseja buscar.
Estrutura Organizacional

Funções relacionadas a estrutura organizacional da empresa

Atualização da estrutura organizacional em lote


requires authentication

Enviar um arquivo no formato de CSV, separador ; (ponto e virgula) como no modelo ao lado:

A coluna ativo informa o status do ultimo item da linha, nela deve ser passada a string TRUE ou FALSE. Qualquer outro valor será
entendido como FALSE.

Por exemplo a linha 1 do modelo (ignorando cabeçalho), a coluna ativo esta marcada como TRUE, quer dizer que o ultimo item da linha
"Centro de Custo 11111" esta ativo.

Já na linha 2 do modelo, a coluna ativo esta marcada como FALSE, quer dizer que o "Centro de Custo 2 11112" esta inativo, porém o
"Centro de Custo 11111" permanece ativo.

A coluna permite_contratacoes serve para bloquear abertura de vagas em uma determinada camada da estrutura organizacional, essa
coluna não é obrigatória, caso não informada será considerada TRUE em todas as linhas.
Modelo:
cnpj_empresa;codigo_empresa;nome_empresa;codigo_unidade;nome_unidade;codigo_departamento;nome_departamento;codigo_centro_custo;nome_ce
00000000000001;1001;Empresa 1001;1011;Unidade 1011;1111;Departamento 1111;11111;Centro de Custo 11111;;;;;TRUE;FALSE
00000000000001;1001;Empresa 1001;1011;Unidade 1011;1111;Departamento 1111;11111;Centro de Custo 11111;11112;Centro de Custo 2 11112;;;
00000000000001;1001;Empresa 1001;1011;Unidade 1011;1111;Departamento 1111;11111;Centro de Custo 11111;11112;Centro de Custo 2 11112;11
00000000000002;2001;Empresa 2001;2011;Unidade 2011;2111;Departamento 2111;21111;Centro de Custo 21111;;;;;TRUE;FALSE
00000000000002;2001;Empresa 2001;2011;Unidade 2011;2111;Departamento 2111;21111;Centro de Custo 21111;21112;Centro de Custo 2 21112;;;
00000000000002;2001;Empresa 2001;2011;Unidade 2011;2111;Departamento 2111;21111;Centro de Custo 21111;21112;Centro de Custo 2 21112;21
00000000000002;2001;Empresa 2001;2012;Unidade 2012;2112;Departamento 2112;21112;Centro de Custo 21121;21122;Centro de Custo 2 21122;21

 

Example request:

import requests
import json

url = '[Link]
files = {
'csv': open('/tmp/phpLbsefJ', 'rb')
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'multipart/form-data',
'Accept': 'application/json'
}

response = [Link]('POST', url, headers=headers, files=files)


[Link]()

Example response (202):


{
"status": "success",
"data": {
"type": "queue-job",
"id": 1,
"link": "{url}\/v2\/jobs\/1"
}
}

REQUEST

POST v2/organizational_structure/batch

BODY PARAMETERS

csv file
CSV com os dados da estrutura organizacional, modelo ao lado.

Jobfeed

Funções relacionadas a jobfeed


Feed de vagas
Esta chamada retorna a lista vagas que estão publicadas e ativas no portal do cliente.

A autenticação é feita via token fornecido pela Selecty.

Example request:

import requests
import json

url = '[Link]
params = {
'portal': 'selecty',
'page': '1',
'per_page': '10',
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'X-Api-Key': '&lt;token fornecido pela Selecty&gt;'
}

response = [Link]('GET', url, headers=headers, params=params)


[Link]()

Example response (200):

[
{
"current_page": "1",
"data": [
{
"id": 1652,
"title": "Vaga para Agente Comercial em Curitiba - PR",
"occupation": "Agente Comercial",
"location": "Curitiba - PR",
"description": "Profissional irá realizar vendas ativas e receptivas via telefone, irá participar de reuniões, e ajudar a desenvolver a equipe comer
"publicationDate": "2023-03-16T12:22:56-0300",
"positions": "3",
"contractType": "\"CLT (Efetivo)\"",
"portals": [
"youse"
],
"url": "https:\/\/[Link]\/vaga\/1652\/vaga-para-agente-comercial-em-curitiba-pr",
"subscriptionUrl": "https:\/\/[Link]\/vaga\/1652\/vaga-para-agente-comercial-em-curitiba-pr?inscribe=1",
"actingArea": "Administração Comercial\/Vendas",
"salary": "",
"benefits": "Vale Alimentação\nAlimentação no local\nVale Transporte\nAuxilio Educação\nPlano Odontologico\nPlano de Saude",
"education": "",
"qualification": "",
"requirements": "Escolaridade mínima:\r\nGraduação - Concluído - Obrigatório\r\n\r\nInformática:\r\n - Pacote Office - Avançado - Obrigatório\r\n\r\
"employerDescription": "",
"workload": "44",
"workSchedule": "De segunda a Sexta"
},
{
"id": 1735,
"title": "Vaga para Auxiliar de Entrega",
"occupation": "Auxiliar de Entrega",
"location": "",
"description": "",
"publicationDate": "2022-09-20T10:42:10-0300",
"positions": 1,
"contractType": "\"CLT (Efetivo)\"",
"portals": [
"youse"
],
"url": "https:\/\/[Link]\/vaga\/1735\/vaga-para-auxiliar-de-entrega",
"subscriptionUrl": "https:\/\/[Link]\/vaga\/1735\/vaga-para-auxiliar-de-entrega?inscribe=1",
"actingArea": "",
"salary": "",
"benefits": "",
"education": "",
"qualification": "",
"requirements": "",
"employerDescription": "",
"workload": "44",
"workSchedule": "De segunda a Sexta"
}
],
"first_page_url": "https:\/\/[Link]\/v2\/jobfeed\/index?page=1",
"from": 1,
"last_page": 21,
"last_page_url": "https:\/\/[Link]\/v2\/jobfeed\/index?page=21",
"next_page_url": "https:\/\/[Link]\/v2\/jobfeed\/index?page=2",
"path": "https:\/\/[Link]\/v2\/jobfeed",
"per_page": "2",
"prev_page_url": "https:\/\/[Link]\/v2\/jobfeed\/index?page=1",
"to": 2,
"total": 41
}
]

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

REQUEST

GET v2/jobfeed/index

QUERY PARAMETERS
optional
portal string
Campo usado para definir qual o portal a ser buscado.

page string optional


Núemro da página a ser buscada (caso não seja informado o valor default será 1).

optional
per_page string
Número de registros por página (caso não seja informado o valor default será 10).

Pessoas

Funções relacionadas a todas as pessoas do sistema (candidatos, selecionadores...)

Busca de pessoas
requires authentication

Busca de pessoas.

Example request:
import requests
import json

url = '[Link]
params = {
'person_id': '1277778',
'name': 'roberto',
'cpf': '99999999',
'contact': '12',
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('GET', url, headers=headers, params=params)


[Link]()

Example response (200):

{
"error": false,
"data": [
{
"person_id": 1,
"name": "Maria da Silva Brasil",
"individuals": {
"person_id": 1,
"cpf": "52497500010"
},
"contacts": [
{
"person_id": 1,
"value": ""
},
{
"person_id": 1,
"value": "mariasilvabrasil@[Link]"
},
{
"person_id": 1,
"value": ""
},
{
"person_id": 1,
"value": ""
},
{
"person_id": 1,
"value": ""
},
{
"person_id": 1,
"value": "41999999999"
},
{
"person_id": 1,
"value": ""
}
],
"external_user": null,
"works": [
{
"work_id": 10,
"status": "in_hiring",
"position_id": 1,
"position_code": "position_teste1",
"workstation_id": 2,
"workstation_code": "2103teste2",
"dismissal_date": "YYYY-mm-dd",
"registration": "00000001"
},
{
"work_id": 11,
"status": "is_working",
"position_id": 2,
"position_code": "position_teste2",
"workstation_id": 1,
"workstation_code": "2103teste1",
"dismissal_date": "YYYY-mm-dd",
"registration": "00000002"
}
]
}
]
}

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

Example response (422):

{
"error": true,
"message": "Campos inválidos"
}

REQUEST

GET v2/person/search

QUERY PARAMETERS
person_id string optional
integer O ID da pessoa.

name string optional


string O nome da pessoa.

cpf string optional


string O CPF da pessoa.

contact string optional


string O contato da pessoa, podendo ser email ou número.

Tabela de dominio

Tabela de dominio e seus registros.

Listar
requires authentication

Buscar a lista de dominios cadastrados.


Example request:

import requests
import json

url = '[Link]
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('GET', url, headers=headers)


[Link]()

Example response (200):

{
"status": "success",
"message": "Domínios listados com sucesso.",
"current_page": 1,
"data": [
{
"id": 1,
"domain_index": "bank_type",
"name": "Bank Type",
"description": "Tipo de banco",
"permission": null,
"created_at": null,
"updated_at": null
}
],
"first_page_url": "base_url\/v2\/resource\/domain?page=1",
"from": 1,
"next_page_url": null,
"path": "base_url\/v2\/resource\/domain",
"per_page": 50,
"prev_page_url": null,
"to": 1
}

Example response (404):

{
"status": "error",
"message": "Nenhum domínio encontrado."
}

REQUEST

GET v2/resource/domain

Inserir
requires authentication

Cria uma nova tabela de dominio.

Example request:

import requests
import json
url = '[Link]
payload = {
"name": "Bank type",
"description": "Tipos de banco"
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('POST', url, headers=headers, json=payload)


[Link]()

Example response (200):

{
"status": "success",
"message": "Domínio salvo com sucesso.",
"data": {
"name": "Bank Type",
"description": "Tipo de banco",
"permission": null,
"domain_index": "bank_type",
"updated_at": null,
"created_at": null,
"id": 1
}
}

REQUEST

POST v2/resource/domain

BODY PARAMETERS
name string optional
Nome da tabela de dominio.

description string optional


Descrição da tabela de dominio.

Atualizar
requires authentication

Atualiza uma tabela de dominio.

Example request:

import requests
import json

url = '[Link]
payload = {
"name": "Bank type edited",
"description": "Tipos de banco editado"
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = [Link]('PUT', url, headers=headers, json=payload)
[Link]()

Example response (200):

{
"status": "success",
"message": "Domínio atualizado com sucesso.",
"data": {
"id": 2,
"domain_index": "bank_type",
"name": "Bank Type edited",
"description": "Tipo de banco editado",
"permission": null,
"created_at": null,
"updated_at": null
}
}

REQUEST

PUT v2/resource/domain/{id}

URL PARAMETERS

id string
Identificador unico da tabela de dominio.

BODY PARAMETERS

name required optional


string Nome da tabela de dominio.
description required optional
string Descrição da tabela de dominio.

Remover registro
requires authentication

Remover um registro de domínio especifico.

Example request:

import requests
import json

url = '[Link]
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('DELETE', url, headers=headers)


[Link]()

Example response (200):

{
"status": "success",
"message": "Registro de domínio removido com sucesso."
}

REQUEST

DELETE v2/resource/domain/{id}

URL PARAMETERS

id string
Identifica o registro.

Listar registros
requires authentication

Buscar a lista de registros cadastrados de uma tabela de dominio.

Example request:

import requests
import json

url = '[Link]
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('GET', url, headers=headers)


[Link]()

Example response (200):

{
"status": "success",
"message": "Domínios listados com sucesso.",
"current_page": 1,
"data": [
{
"id": 1,
"domain_index": "bank_type",
"name": "Bank Type",
"description": "Tipo de banco",
"permission": null,
"created_at": null,
"updated_at": null
}
],
"first_page_url": "base_url\/v2\/resource\/domain?page=1",
"from": 1,
"next_page_url": null,
"path": "base_url\/v2\/resource\/domain",
"per_page": 50,
"prev_page_url": null,
"to": 1
}

Example response (404):

{
"status": "error",
"message": "Nenhum domínio encontrado."
}

REQUEST

GET v2/resource/domain/{domain_index}

URL PARAMETERS

domain_index string
Identifica a tabela de dominio.

Inserir registro
requires authentication

Cria um novo registro em um dominio especifico.

Quando informado o composite_key, irá usar os dados dele junto com a coluna key para identificar um registro, se encontra-lo
irá atualizar.
Quando não informado o composite_key e informado o custom, irá usar a key e todos os dados do custom para identificar um
registro, não atualiza registro.
Quando não informado o composite_key e nem o custom, irá usar apenas a key para identificar o registro, não atualiza registro.

Example request:
import requests
import json

url = '[Link]
payload = [
{
"key": "3",
"value": "Conta corrente",
"custom": {
"custom_key": "sit"
},
"composite_key": [
"custom_key"
]
}
]
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('POST', url, headers=headers, json=payload)


[Link]()

Example response (200):

{
"status": "success",
"message": "Registro de domínio salvo com sucesso.",
"data": {
"records_saved": [
{
"domain_index": "bank_type",
"key": "1",
"value": "Conta Corrente",
"source": "{\"key\":\"1\",\"value\":\"Conta Corrente\",\"custom\":null}",
"id": 1
},
{
"domain_index": "bank_type",
"key": "2",
"value": "Conta Poupança",
"source": "{\"key\":\"2\",\"value\":\"Conta Poupanca\",\"custom\":null}",
"id": 2
},
{
"domain_index": "bank_type",
"key": "3",
"value": "Conta Salário",
"source": "{\"key\":\"3\",\"value\":\"Conta Salario\",\"custom\":{\"key_1\":\"value_1\",\"key_2\":\"value_2\",\"key_3\":\"value_3\"}}",
"id": 3
}
],
"records_already_exist": []
}
}

REQUEST

POST v2/resource/domain/{domain_index}

URL PARAMETERS

domain_index string
Identifica a tabela de dominio.

BODY PARAMETERS

*.key required optional


string Còdigo que identifica o registro.
*.value required optional
string Valor do registro.

*.custom object optional


Objeto json customizado.

*.custom.custom_key string optional


Chave e valor customizado do objeto.

*.composite_key array optional


Se informado cria uma chave composta da key mais os dados do custom que estão nesse array.

Atualizar registro
requires authentication

Atualizar um registro em um dominio especifico.

Example request:

import requests
import json

url = '[Link]
payload = {
"key": "3",
"value": "Conta corrente editada",
"custom": {
"custom_key": "voluptatem"
}
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('PUT', url, headers=headers, json=payload)


[Link]()

Example response (200):

{
"status": "success",
"message": "Registro de domínio atualizado com sucesso.",
"data": {
"id": 3,
"domain_index": "bank_type",
"key": "3",
"value": "Conta Salario editada",
"source": "{\"key\":\"3\",\"value\":\"Conta Salario editada\",\"custom\":{\"custom_1\":\"value 1\",\"custom_2\":\"value 2\",\"custom_3\":\"value 3\"}}",
"created_at": null,
"updated_at": null
}
}

REQUEST

PUT v2/resource/domain/{domain_index}/{id}

URL PARAMETERS
domain_index string
Identifica a tabela de dominio.

id string
Identifica o registro.

BODY PARAMETERS

key required optional


string Còdigo que identifica o registro.

value required optional


string Valor do registro.

custom objectoptional
Objeto json customizado.

custom.custom_key string optional


Chave e valor customizado do objeto.

Tags

Funcções relacionadas às vagas e suas informações


Criação / Alteração de tags
requires authentication

Cria ou alteração um tag na entidade definida

Example request:

import requests
import json

url = '[Link]
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('PUT', url, headers=headers)


[Link]()

Example response (200):

{
"error": false,
"tags": {
"tag": "value"
}
}
Example response (404):

{
"error": true,
"message": "Não encontrado."
}

Example response (422):

{
"error": true,
"message": "Campos inválidos",
"fields": {
"[Link]": [
"O campo [Link] (1) deve ser uma string."
]
}
}

REQUEST

PUT v2/tags/{entity}/{identifier}

URL PARAMETERS

entity string
Tipo de entidade a ser taggeada

identifier string
Identificador da entidade
Remoção de tags
requires authentication

Realizada a remoção de uma tag previamente cadastrada

Example request:

import requests
import json

url = '[Link]
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('DELETE', url, headers=headers)


[Link]()

Example response (200):

{
"error": false,
"tags": {
"tag": "value"
}
}
Example response (404):

{
"error": true,
"message": "Não encontrado."
}

Example response (422):

{
"error": true,
"message": "Campos inválidos",
"fields": {
"[Link]": [
"O campo [Link] (1) deve ser uma string."
]
}
}

REQUEST

DELETE v2/tags/{entity}/{identifier}

URL PARAMETERS

entity string
Tipo de entidade a ser taggeada

identifier string
Identificador da entidade
Usuários

Funções relacionadas a usuários externos e internos

Criação/Atualização de usuário externo


requires authentication

Criação/Atualização de usuário externo.

Os seguintes USER_PROFILE podem ser usados:

requester - Perfil de requisitante só visualiza as vagas que ele é requisitante.


human_resources_manager - Perfil Gestor do RH visualiza todas as vagas do cliente.

Example request:

import requests
import json

url = '[Link]
payload = {
"email": "nome@[Link]",
"customer_cnpj": [
"00669395000177",
"62000000000"
],
"user_profile": "requester"
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('POST', url, headers=headers, json=payload)


[Link]()

Example response (200):

{
"error": false,
"message": "Usuário criado com sucesso!",
"id": 47
}

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

Example response (422):


{
"error": true,
"message": "Houve um erro ao criar conta!"
}

REQUEST

POST v2/account/users/external/create

BODY PARAMETERS

email string
Email do usuario que será usado para login.

customer_cnpj array
Lista de CNPJ's dos cliente ao qual o usuário terá acesso.

user_profile string optional


Perfil do usuario.

Vagas

Funcções relacionadas às vagas e suas informações


Lista de Vagas
requires authentication

Busca os dados básicos de todas as vagas no sistema

Example request:

import requests
import json

url = '[Link]
params = {
'sort': '-creation_date',
'page': '1',
'tag[name]': 'tag-value',
'between[creation_date]': '2022-01-01 00:00:00 AND 2022-02-01 23:59:59',
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('GET', url, headers=headers, params=params)


[Link]()

Example response (200):

{
"current_page": 3,
"data": [
{
"vacancy_id": 10549,
"title": "TITULO DA VAGA #1",
"priority": "n",
"creation_date": "2020-10-10 11:31:16-03",
"finish_date": "2020-10-10 11:31:16-03",
"total_vacancies": 1,
"tags": {
"tag1": "value"
},
"total_open_positions": "1"
},
{
"vacancy_id": 10548,
"title": "TITULO DA VAGA #2",
"priority": "n",
"creation_date": "2020-10-09 15:09:21-03",
"finish_date": "2020-10-10 11:31:16-03",
"total_vacancies": 1,
"tags": [],
"total_open_positions": "1"
}
],
"first_page_url": "base_url\/v2\/vacancy?page=1",
"from": 21,
"next_page_url": "base_url\/v2\/vacancy?page=4",
"path": "base_url\/v2\/vacancy",
"per_page": 10,
"prev_page_url": "base_url\/v2\/vacancy?page=2",
"to": 22
}

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

REQUEST

GET v2/vacancy

QUERY PARAMETERS

sort string optional


Campo usado para ordenação, prefixe com o sinal de menos (-) para ordem decrescente.

page string optional


Número da página buscada

optional
tag[name] string
Nome e valor da tag, caso queria filtrar. Pode ser passado multiplas vezes

between[creation_date] string optional


Entre datas, usar AND entre data inicial e final, pode filtrar pelo creation_date ou finish_date.

Busca de Vagas
requires authentication

Busca os dados básicos de um vaga aberta


Example request:

import requests
import json

url = '[Link]
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('GET', url, headers=headers)


[Link]()

Example response (200):

{
"hr_request_id": 12315,
"request_type": "Expansão",
"title": "AUX DE ESCRITORIO I",
"corporation": "Corporação",
"corporation_code": 1,
"corporation_cnpj": "Corporação",
"unit": "Unidade",
"unit_code": 3,
"unit_cnpj": "Corporação",
"department_id": "Corporação",
"department_name": "Departamento",
"department_code": "1",
"cost_center_id": "1",
"cost_center_name": "Centro de Custo 1",
"cost_center_code": "2",
"cost_center_two_id": "2",
"cost_center_two_name": "Centro de Custo 2",
"cost_center_two_code": "Corporação",
"cost_center_three_id": "3",
"cost_center_three_name": "Centro de Custo 3",
"cost_center_three_code": "1",
"creation_date": "2020-01-01 14:15:00-03",
"is_confidential": false,
"hr_request_type": "s",
"internal_code": null,
"justification": "Aumento de demanda",
"priority": "n",
"validate_inscription": true,
"occupation": "AUX DE ESCRITORIO I",
"occupation_code": "6233",
"total_vacancies": 1,
"contract_type": [
"CLT (Efetivo)"
],
"start_period": "2020-03-20",
"contract_period": "u",
"time_contract": 1,
"finish_period": "2020-06-20",
"salary": "2500",
"salary_max": null,
"salary_type": "m",
"additional_salary": null,
"benefits": "VALE ALIMENTAÇÃO\nVALE TRANSPORTES\nPLANO DE SAÚDE",
"work_schedule": "SEGUNDA À SEXTA - 08:30 ÀS 12:00 E 14:00 ÀS 18:00",
"workload_type": "s",
"workload": "180",
"activities": "*",
"comments": "",
"workplace": {
"address_id": 12345,
"zip_code": "81280330",
"street": "Rua Prof. Pedro Viriato Parigot de Souza",
"number": "3901",
"complement": "Salas 38 e 39",
"district": "Jardim Alvorada",
"city": "Curitiba",
"state": "PR",
"country": "Brasil",
"references": null,
"street_type": null,
"latitude": "-25.440885",
"longitude": "-49.345692",
"geocoord_precision": 1
},
"customer": null,
"customer_id": null,
"customer_cpf": null,
"customer_cnpj": null,
"requester": "João Requisitante",
"responsible": null,
"tags": {
"tag1": "value"
},
"custom": {
"organizational_structor_short_code": "166"
},
"status_ps": "VAGA EM PROCESSO SELETIVO"
}

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

Example response (422):

{
"error": true,
"message": "Campos inválidos",
"fields": {
"vacancy_id": [
"O campo vacancy id (XXXX) deve ser um número inteiro."
]
}
}

REQUEST

GET v2/vacancy/{vacancy_id}

URL PARAMETERS

vacancy_id string
ID da contratação

Criar vaga - Posto de Trabalho


requires authentication

Cria uma vaga com os dados do posto de trabalho

Example request:

import requests
import json

url = '[Link]
payload = {
"requester_id": 1,
"num_positions": 2,
"workstation_code": "POS_123.",
"request_type": "e",
"position_id": 10,
"title": "\"Programador Pleno\"",
"workplace_type": "p",
"zip_code": "iusto",
"street": "quibusdam",
"number": "eligendi",
"complement": "consequatur",
"district": "exercitationem",
"city": "id",
"state": "eius"
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('POST', url, headers=headers, json=payload)


[Link]()

REQUEST

POST v2/vacancy/create/with/workstation

BODY PARAMETERS

requester_id integer
Código (person_id) do requisitante.

num_positions integer
Quantidade de posições.
workstation_code string
Código do Posto de Trabalho.

request_type string
Tipo de requisição [e = Expansão, s = Substituição].

position_id integer optional


Código da posição do funcionario a ser substituido.

title string optional


Titulo da vaga, se não informado será o nome do cargo.

workplace_type string optional


Modalidade de Contrato [p = presencial, r = remoto, h = hibrido].

zip_code string optional


CEP.

street string optional


Logradouro.

number string optional


Número.

complement string optional


Complemento.

district string optional


Bairro.
city string optional
Cidade.

state string optional


Estado.

Workstations

Funções relacionadas ao Workstation (Postos de Trabalho)

Criação de Posto de Trabalho


requires authentication

Cria um posto de Trabalho.

Example request:

import requests
import json
url = '[Link]
payload = {
"corporation_id": "voluptatem",
"unit_corporation_id": "eos",
"department_corporation_id": "eum",
"cost_center_corporation_id": "et",
"occupation_corporation_id": "rerum",
"total_positions": 17,
"salary": "facere",
"benefits": "fugiat",
"parent_workstation_id": 2,
"workstation_code": "cum",
"workstation_name": "architecto"
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('POST', url, headers=headers, json=payload)


[Link]()

REQUEST

POST v2/workstations/create

BODY PARAMETERS

corporation_id string

unit_corporation_id string

department_corporation_id string

cost_center_corporation_id string
occupation_corporation_id string

total_positions integer optional


Total de posições a serem Inseridas

salary numeral optional


Salários

benefits string optional


Benefícios

parent_workstation_id integer optional


ID do Posto Pai

workstation_code string optional


Código do Posto de Trabalho, precisa ser único

workstation_name string optional


Nome do Posto de Trabalho

Listagem de Postos de Trabalhos


requires authentication

Busca uma Workstation baseado em uma chave e valor


Example request:

import requests
import json

url = '[Link]
payload = {
"key": "qui",
"value": "maiores"
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('POST', url, headers=headers, json=payload)


[Link]()

REQUEST

POST v2/workstations/search

BODY PARAMETERS

key string
Chave da Busca, podendo ser: workstation_code, position_code, person_id

value string
Valor da Busca: Ex: workstation_code, position_code: POS_RP12345_1_abc123, person_id: 12345
Inativação de Posto de Trabalho
requires authentication

Inativa um Posto de trabalho que não possua nenhuma Posição ligada a uma Contratação ou Processo Seletivo.

Example request:

import requests
import json

url = '[Link]
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('PUT', url, headers=headers)


[Link]()

REQUEST

PUT v2/workstations/{workstation_code}/inactivate

URL PARAMETERS

workstation_code string
Código do Workstation. Ex: WSgy9d7iaQx5Rn
Adição / Redução de Posições
requires authentication

Adiciona ou Reduz a quantidade informada de posições dentro do workstation.

Example request:

import requests
import json

url = '[Link]
params = {
'quantity': 'qui',
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('PUT', url, headers=headers, params=params)


[Link]()

Example response (200):

{
"error": false,
"message": "Foi reduzido com sucesso!"
}
Example response (404):

{
"error": true,
"message": "Não encontrado."
}

Example response (422):

{
"error": true,
"message": "Campos inválidos"
}

REQUEST

PUT v2/workstations/{workstation_code}/{action}/position

URL PARAMETERS

workstation_code string
Código do Workstation. Ex: POS_RP12345_1_abc123

action string
Ação, podendo ser increase ou decrease

QUERY PARAMETERS

quantity string
Número da posições a ser reduzida.
Pre desligamento
requires authentication

Faz a alteração do status do funcionário informado para o status de aviso prévio

Podem ser usados os seguintes TYPE_DISMISSAL, informando o código:

1 - Demissão por justa causa


2 - Demissão sem justa causa
3 - Pedido de demissão
4 - Acordo entre partes
5 - Demitido
6 - Termino de contrato

Example request:

import requests
import json

url = '[Link]
payload = {
"workstation_code": "1",
"cpf": 0,
"registration_number": 1050,
"start_date": "Y-m-d",
"finish_date": "Y-m-d",
"type_dismissal": 1
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}

response = [Link]('PUT', url, headers=headers, json=payload)


[Link]()

Example response (200):

{
"error": false,
"message": "Pré Demissão efetuada com sucesso!"
}

Example response (404):

{
"error": true,
"message": "Não encontrado."
}

Example response (422):

{
"error": true,
"message": "Campos inválidos"
}

REQUEST

PUT v2/workstations/pre-fired
BODY PARAMETERS

workstation_code string
Código do Posto de Trabalho.

cpf integer
CPF do colaborador a ser desligado.

registration_number integer optional


Matrícula do colaborador a ser desligado.

start_date date
Data de Inicio do aviso prévio.

finish_date date
Data do fim do aviso prévio.

type_dismissal integer
Tipo de desligamento.

Você também pode gostar