{"openapi":"3.0.3","info":{"title":"API Exportação De Candidatos","version":"1.0.0","description":"A API de expotação de candidatos permite aos clientes do Vagas for Business exportarem todos candidatos de uma vaga na etapa de exportação, para que possam importar os dados em seus sitemas por meio de uma chamada HTTP no formato JSON.\n\n## Autenticação\n\nA autenticação para utilização desta API pode ser feita de 02 maneiras:\n\n+ Client Credencials\n    + A vaga será criada com o usuário de identificação _Admin_ como responsável\n+ Autorization Code (3-legged)\n    + A vaga será criada com o usuário informado na autorização como responsável\n\n### Client Credencials\n\nEsse processo consiste em uma chamada POST direto ao gateway indicando as credencias para obter o token de acesso.\n\nConsiderando que as credencias foram criadas no gateway, basta realizar uma chamada conforme o exemplo:\n\n```\ncurl -X POST -k -H 'Content-Type: application/x-www-form-urlencoded' -i 'https://apigateway.vagas.com.br/oauth/token' --data 'grant_type=client_credentials' -u 'client_id:client_secret'\n```\n\nO retorno dessa execução será:\n\n```json\n{\n  \"access_token\": \"asd23sde12e123sd\",\n  \"expires_in\": 2591999,\n  \"token_type\": \"Bearer\"\n}\n```\n\nPara todas as demais requisições abaixo, o __access\\_token__ deve ser\nincluído na requisição como um atributo do HEADER em formato BEARER\n\nLembrando que o __access\\_token__ tem um limite de tempo para uso, a informação retornada\nna chave __expires\\_in__ indica a quantidades de segundos que o token será expirado a partir de sua data de geração.\n\n__Exemplo de chamada usando o __access\\_token__:__\n\n```shell\n# Valor exemplo que deve ser incluido no HEADER da requisição:\n# Authorization: Bearer asd23sde12e123sd\nCURL example:\ncurl -XGET \u003cURL TBD\u003e\n    --header “Authorization: Bearer asd23sde12e123sd”\n```\n\n\n### Autorization Code (3-legged)\n\nEsse processo implementa a especificação OAuth 2.0 para autenticação e autorização.\n\nEsta autenticação segue o padrão de \"three leg\":\n+ O __serviço remoto__ requisita ao __usuário__ (funcionário do Vagas For Business)\n para que faça a autenticação em um servidor do __VAGAS API__\n\n#### Como obter o token\n\nO serviço remoto inicia o processo chamando uma URL para /oauth/authorize\ndo servidor do VAGAS API, enviando como parametros:\n\n+ __client_id__: Identificador da aplicação (Fornecido pela VAGAS)\n+ __login_type__: Identificador do tipo de login (deve ser enviado o valor \"empresa\")\n+ __response_type__: Identificador do tipo de resposta (deve ser enviado o valor \"code\")\n+ __redirect_uri__: URI que será redirecionado quando a ação de login for sucesso ou não\n\n__Exemplo:__\n```\nhttps://apigateway.vagas.com.br/oauth/authorize?response_type=code\u0026client_id=some_application_id\u0026login_type=empresa\u0026redirect_uri=http%3A%2F%2Flocalhost%2Foauth%2Fcode_callback\n```\n\nO usuário irá autenticar com suas credencias e autorizará o uso de suas informações\npelo serviço remoto.\n\nQuando o usuário aceitar a autorização, o servidor VAGAS API irá redirecionar de volta\nao serviço remoto usando o endereço indicado pelo parametro redirect_uri\ncom um código de autorização.\n\n__Exemplo:__\n```\nhttp://localhost/oauth/code_callback?code=AixUbVTop239876\n```\n\nNo caso de requisição não autorizada, a chamada será para o mesmo URI\ninformado no parametro redirect_uri com o parametro de erro.\n\n__Exemplo:__\n```\nhttp://localhost/oauth/code_callback?error=unauthorized-request\n```\n\nUsando o código retornado acima, o serviço remoto deve requisitar\num token de acesso que será usado para todas as demais requisições.\n\nFazendo uma nova requisição através de um HTTP POST para a rota\n/oauth/token usando o formato \"application/x-www-form-urlencoded\" com os seguintes parametros:\n+ __code__: O código de autorização (recebido na chamada anterior)\n+ __grant_type__: Com o valor \"authorization_code\"\n\nTambém deve ser incluido no cabeçalho da requisição (HEADER)\num atributo com as informações de client\\_id e client\\_secret concatenados\npor dois pontos (:) e codificado em Base64\n\n__Exemplo:__\n\n+ Tendo o client\\_id igual a `\u003cclient_id\u003e` e um client\\_secret igual a `\u003cclient_secret\u003e`\n+ Devem ser concatenados: `\u003cclient_id\u003e:\u003cclient_secret\u003e`\n+ Aplicado Base64 no valor acima: `\u003cbase64(client_id:client_secret)\u003e`\n+ Incluído no HEADER da requisição: `Authorization: Basic \u003cbase64(client_id:client_secret)\u003e`\n\n\n__Curl Exemplo:__\n\n```shell\ncurl -XPOST https://apigateway.vagas.com.br/oauth/token \\\n    --header “Authorization: Basic \u003cbase64(client_id:client_secret)\u003e” \\\n    --data “code=AixUbVTop239876\u0026grant_type=authorization_code”\n```\n\n__O retorno da requisição, se bem sucedida será:__\n```json\n {\n   \"access_token\": \"asd23sde12e123sd\",\n   \"expired_in\": 2591999\n }\n```\n\nPara todas as demais requisições abaixo, o __access\\_token__ deve ser\nincluído na requisição como um atributo do HEADER em formato BEARER\n\nLembrando que o __access\\_token__ tem um limite de tempo para uso, a informação retornada\nna chave __expires\\_in__ indica a quantidades de segundos que o token será expirado a partir de sua data de geração.\n\n__Exemplo de chamada usando o __access\\_token__:__\n\n```shell\n# Valor exemplo que deve ser incluido no HEADER da requisição:\n# Authorization: Bearer asd23sde12e123sd\nCURL example:\ncurl -XGET \u003cURL TBD\u003e\n    --header “Authorization: Bearer asd23sde12e123sd”\n```\n"},"servers":[{"url":"https://apigateway.vagas.com.br/v1/applicants-export"}],"security":[{"bearerAuth":[]}],"tags":[{"name":"Currículos de candidatos"}],"paths":{"/jobs/approved-applicants.json":{"get":{"summary":"Candidatos para exportação","description":"A requisição pode ser feita através dos parâmetros a seguir, que são obrigatórios:\n * ID da vaga (job_id); ou\n * Intervalo de datas (export_date_start e export_date_end)\n\nParâmetros opcionais:\n * page (se não for informado, retornará todos os registros em apenas 1 página)\n * per_page (se não for informado, retornará como padrão 10 registros por página)\n\nImportante:\n * O intervalo de datas leva em consideração a data em que o candidato foi movido para a fase de exportação\n * O intervalo máximo permitido entre datas é de 12 meses\n","operationId":"get_jobs_approved_applicants_json","parameters":[{"name":"job_id","in":"query","required":false,"description":"Id da vaga que será solicitados os candidatos.","schema":{"type":"string"},"example":"123"},{"name":"export_date_start","in":"query","required":false,"description":"Data de inicio para busca de candidatos.","schema":{"type":"string","format":"date"},"example":"2023-01-10"},{"name":"export_date_end","in":"query","required":false,"description":"Data de termino para busca de candidatos.","schema":{"type":"string","format":"date"},"example":"2023-02-05"},{"name":"page","in":"query","required":false,"description":"Número da página a ser retornada.","schema":{"type":"number","default":1},"example":1},{"name":"per_page","in":"query","required":false,"description":"Limite de registros para retornar por página.","schema":{"type":"number","default":10},"example":10}],"x-apib-request-headers":["Authorization: Bearer \u003cauth_token\u003e"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/job_applicant_ok"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorized"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/not_found"}}}},"412":{"description":"Resposta para quando algum dos parametros são inválidos, o retorno pode ser um ou mais dos valores\ndefinidos na resposta de exemplo\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/precondition_failed"}}}}}}},"/jobs/resumes.json":{"get":{"tags":["Currículos de candidatos"],"summary":"Currículos","description":"A requisição pode ser feita através dos parâmetros a seguir, que são obrigatórios:\n * ID da vaga (job_id); ou\n * Intervalo de datas (export_date_start e export_date_end)\n\nParâmetros opcionais:\n * page (se não for informado, retornará todos os registros em apenas 1 página)\n * per_page (se não for informado, retornará como padrão 10 registros por página)\n * include_additions (indica se os adendos serão incluidos no retorno)\n\nImportante:\n * O intervalo de datas leva em consideração a data em que o candidato foi movido para a fase de exportação\n * O intervalo máximo permitido entre datas é de 12 meses\n","operationId":"get_jobs_resumes_json","parameters":[{"name":"job_id","in":"query","required":false,"description":"Id da vaga que será solicitados os candidatos.","schema":{"type":"string"},"example":"123"},{"name":"export_date_start","in":"query","required":false,"description":"Data de inicio para busca de candidatos.","schema":{"type":"string","format":"date"},"example":"2023-01-10"},{"name":"export_date_end","in":"query","required":false,"description":"Data de termino para busca de candidatos.","schema":{"type":"string","format":"date"},"example":"2023-02-05"},{"name":"page","in":"query","required":false,"description":"Número da página a ser retornada.","schema":{"type":"number","default":1},"example":1},{"name":"per_page","in":"query","required":false,"description":"Limite de registros para retornar por página.","schema":{"type":"number","default":10},"example":10},{"name":"include_additions","in":"query","required":false,"description":"parametro para indicar se os adendos serão incluidos no retorno.","schema":{"type":"boolean","default":false},"example":true}],"x-apib-request-headers":["Authorization: Bearer \u003cauth_token\u003e"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/job_resume_ok"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorized"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/not_found"}}}},"412":{"description":"Resposta para quando algum dos parametros são inválidos, o retorno pode ser um ou mais dos valores\ndefinidos na resposta de exemplo\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/precondition_failed"}}}}}}},"/jobs/resumes/{resume_id}.pdf":{"get":{"tags":["Currículos de candidatos"],"summary":"Currículo em PDF","operationId":"get_jobs_resumes_resume_id_pdf","parameters":[{"name":"resume_id","in":"path","required":true,"description":"Id do currículo requisitado.","schema":{"type":"string"},"example":"123"},{"name":"job_id","in":"query","required":true,"description":"Id da vaga que o candidato está na fase de exportação","schema":{"type":"number"},"example":456}],"x-apib-request-headers":["Authorization: Bearer \u003cauth_token\u003e"],"responses":{"200":{"description":"OK","content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unauthorized"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/not_found"}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Authorization: Bearer \u003cauth_token\u003e"}},"schemas":{"job_applicant_ok":{"type":"array","items":{"$ref":"#/components/schemas/Applicant"}},"job_resume_ok":{"type":"array","items":{"$ref":"#/components/schemas/Resume"}},"unauthorized":{"type":"object","properties":{"error":{"type":"string","example":"Usuário não autenticado"},"status":{"type":"number","example":401}}},"not_found":{"type":"object","properties":{"error":{"type":"string","example":"Resource not found"},"status":{"type":"number","example":404}}},"precondition_failed":{"type":"object","properties":{"error":{"type":"object","properties":{"base":{"type":"array","items":{"type":"string"},"example":["Datas devem ter intervalo máximo de 1 ano"]},"export_date_start":{"type":"array","items":{"type":"string"},"example":["deve ser uma data"]},"export_date_end":{"type":"array","items":{"type":"string"},"example":["deve ser uma data"]},"job_id":{"type":"array","items":{"type":"string"},"example":["deve ser um numero"]},"page":{"type":"array","items":{"type":"string"},"example":["deve ser maior ou igual a 1"]},"per_page":{"type":"array","items":{"type":"string"},"example":["deve ser menor ou igual a 100"]}}},"status":{"type":"number","example":412}}},"Applicant":{"type":"object","properties":{"nome_completo":{"type":"string","example":"John Sousa"},"data_de_nascimento":{"type":"string","example":"05/11/1980"},"identidade_de_genero":{"type":"string","example":"Homem Cisgenero"},"genero":{"type":"string","example":"M"},"estado_civil":{"type":"object","properties":{"codigo":{"type":"number","example":1},"estado":{"type":"string","example":"Solteiro(a)"}}},"raca":{"type":"object","properties":{"codigo":{"type":"number","example":1},"classificacao":{"type":"string","example":"Branco(a)"}}},"pessoa_com_deficiencia":{"type":"boolean","example":true},"tipo_da_deficiencia":{"type":"string","example":"Visual"},"nome_da_mae":{"type":"string","example":"Maria Sousa"},"nivel_de_escolaridade":{"type":"string","example":"Superior completo"},"pais_de_nascimento":{"type":"string","example":"Brasil"},"endereco":{"type":"object","properties":{"endereco":{"type":"string","example":"Rua das nações"},"numero":{"type":"string","example":"123"},"complemento":{"type":"string","example":"Casa"},"cidade":{"type":"string","example":"São Paulo"},"estado":{"type":"string","example":"SP"},"cep":{"type":"string","example":"19828-123"}}},"email":{"type":"string","example":"john@email.com"},"telefone_ddd":{"type":"string","example":"11"},"telefone_numero":{"type":"string","example":"934569876"},"nomeemergencia":{"type":"string","example":"não possui"},"cpf":{"type":"string","example":"23896587891"},"rg":{"type":"string","example":"123458862"},"estado_de_emissao":{"type":"string","example":"SP"},"numero_ctps":{"type":"string","example":"87654"},"serie_ctps":{"type":"string","example":"342323"},"data_de_emissao_ctps":{"type":"string","example":"10/01/2019"},"inscricaopispasep":{"type":"string","example":"34323242"},"inscricao_nit":{"type":"string","example":"87654"},"numero_do_titulo":{"type":"string","example":"34534"},"zona":{"type":"string","example":"34"},"sessao":{"type":"string","example":"234"},"data_de_emissao_do_titulo":{"type":"string","example":"12/12/2015"},"certificado_reservista":{"type":"string","example":"3423423"},"possui_dependentes":{"type":"boolean","example":true},"dependentes":{"type":"array","items":{"$ref":"#/components/schemas/dependents"}},"data_de_chegada_ao_brasil":{"type":"string","example":"13/05/1999"},"numero_do_passaporte":{"type":"string","example":"342352543"},"possui_visto":{"type":"boolean","example":true},"numero_do_visto":{"type":"string","example":"4023423534"},"possui_rne":{"type":"boolean","example":true},"numero_rne":{"type":"string","example":"634645"},"naturalizado_brasileiro":{"type":"boolean","example":false},"data_de_naturalizacao":{"type":"string","example":"20/05/2010"},"casado_com_brasileiro":{"type":"boolean","example":false},"possui_filhos_brasileiros":{"type":"boolean","example":true},"possui_cnh":{"type":"boolean","example":true},"numero_cnh":{"type":"string","example":"1242352"},"validade_da_cnh":{"type":"string","example":"05/12/2029"},"categoria_conta_banco":{"type":"string","example":"Conta corrente"},"banco":{"type":"string","example":"001 - Banco do Brasil S.A."},"numero_da_agencia":{"type":"number","example":4321},"numero_da_conta":{"type":"number","example":123456},"id_vaga":{"type":"number","example":54364},"id_interno_cliente":{"type":"string","example":"teste0123456"},"nome_cargo":{"type":"string","example":"Gerente de conta"},"data_criacao_vaga":{"type":"string","example":"2022-04-12T19:43:17.803-03:00"},"data_candidato_movido_exportacao":{"type":"string","example":"2022-04-12T19:43:17.803-03:00"}}},"Resume":{"type":"object","properties":{"id":{"type":"number","example":1085180},"nome_completo":{"type":"string","nullable":true,"example":"José Fictício Barbosa Júnior"},"data_de_nascimento":{"type":"string","nullable":true,"example":"1967-01-23"},"identidade_de_genero":{"type":"string","nullable":true,"example":"homem cisgênero"},"documentos":{"type":"array","items":{"type":"object","properties":{"documento":{"type":"string","description":"Tipo do documento, CPF, RG, Passaporte, ...","example":"CPF (BRA)"},"pais":{"type":"string","example":"Brasil"},"numero":{"type":"string","example":"12345678900"}}}},"email":{"type":"string","nullable":true,"example":"teste@vagas.com.br"},"versao_pdf":{"type":"string","nullable":true,"example":null},"pessoa_com_deficiencia":{"type":"boolean","example":false},"nacionalidade":{"type":"string","nullable":true,"example":"Brasileiro"},"telefone_celular":{"type":"object","properties":{"ddi":{"type":"string","nullable":true,"example":"55"},"ddd":{"type":"string","nullable":true,"example":"11"},"number":{"type":"string","nullable":true,"example":"999999999"}}},"telefone_residencial":{"type":"string","nullable":true,"description":"Pode conter pequenas frases, não apenas números","example":"(11) 1234-5678"},"endereco":{"type":"object","properties":{"bairro":{"type":"string","nullable":true,"example":null},"cep":{"type":"string","nullable":true,"example":"60871680"},"complemento":{"type":"string","nullable":true,"example":null},"logradouro":{"type":"string","nullable":true,"example":"Rua Iraci, 123 - Apto 7"},"numero":{"type":"string","nullable":true,"example":null},"pais":{"type":"string","nullable":true,"example":"Brasil"},"estado":{"type":"string","nullable":true,"example":"MG"},"cidade":{"type":"string","nullable":true,"example":"Belo Horizonte"},"latitude":{"type":"string","nullable":true,"example":"-23.5071871"},"longitude":{"type":"string","nullable":true,"example":"-46.8965909"}}},"nivel_de_escolaridade":{"type":"string","nullable":true,"example":"Formação superior completa"},"autodeclaracao_racial":{"type":"string","nullable":true,"example":null},"adendos":{"type":"object","description":"Adendos podem ter N propriedades, sendo o nome do atributo definido pelo nome do adendo","additionalProperties":{"type":"object","description":"Nome dos adendos podem ter N perguntas, sendo o nome do atributo definido pelo nome identificador da pergunta","additionalProperties":{"type":"object","properties":{"pergunta":{"type":"string","example":"Qual a palabra certa?"},"resposta":{"type":"string","example":"A"}},"x-apib-key-name":"identificador da pergunta"},"x-apib-key-name":"nome_do_adendo (string)"}}}},"dependents":{"type":"object","properties":{"nome_completo":{"type":"string","example":"John Junior"},"cpf":{"type":"string","example":"12345678902"},"data_de_nascimento":{"type":"string","example":"11/09/2021"}}}}}}