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

Documentação da API RENT: Guia Completo

A documentação da RENT API descreve como empresas podem submeter dados sobre centros de trabalho e trabalhadores para o mapa RENT, incluindo autenticação e detalhes de vários endpoints. A API requer autenticação via token JWT e permite a submissão de informações em lotes, com restrições de quantidade e formato. Os endpoints cobrem login, atualização de informações da empresa, submissão de centros de trabalho, trabalhadores e documentos necessários.

Enviado por

andredeuterio
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)
3 visualizações15 páginas

Documentação da API RENT: Guia Completo

A documentação da RENT API descreve como empresas podem submeter dados sobre centros de trabalho e trabalhadores para o mapa RENT, incluindo autenticação e detalhes de vários endpoints. A API requer autenticação via token JWT e permite a submissão de informações em lotes, com restrições de quantidade e formato. Os endpoints cobrem login, atualização de informações da empresa, submissão de centros de trabalho, trabalhadores e documentos necessários.

Enviado por

andredeuterio
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

Documentação RENT API

1
Índice
1. Visão Geral........................................................................................................................................ 3
1.1. Autenticação................................................................................................................................. 3
1.2. Submissão de informação da empresa ........................................................................................ 3
1.3. Submissão dos centros de trabalho ............................................................................................. 3
1.4. Submissão dos trabalhadores ...................................................................................................... 3
2. Autenticação..................................................................................................................................... 4
3. Sumário de Endpoints ...................................................................................................................... 4
3.1. POST /rent_api/Account/login ................................................................................................ 4
3.2. POST /rent_api/Account/refresh-token.................................................................................. 5
3.3. GET /rent_api/DataSets/GetDataSet ...................................................................................... 6
3.4. POST /rent_api/RENT/submit-company-information ............................................................ 7
3.5. POST /rent_api/RENT/submit-work-centers-information ................................................... 10
3.6. POST /rent_api/RENT/submit-work-center-employees-information .................................. 11
3.7. POST /rent_api/RENT/submit-work-center-employee-documents ..................................... 13
3.8. POST /rent_api/RENT/submit-rent-map ............................................................................... 15

2
1. Visão Geral
A API RENT permite que empresas submetam dados relacionados com os seus centros de
emprego e trabalhadores para efeitos de submissão do mapa RENT.

A API está disponível em: [Link] e demais especificações técnicas


poderão ser consultadas aqui: [Link]
[Link]/rent_api/[Link]?url=/rent_api/[Link]

Os utilizadores deverão ser empresas, já registadas no portal do INEFOP, e devem autenticar-


se para que consigam submeter qualquer informação.

A submissão é permitida apenas durante um determinado intervalo de tempo definido pelo


INEFOP e apenas poderá submeter um mapa RENT por ano.

Os utilizadores devem seguir o seguinte fluxo na submissão de dados:

1.1. Autenticação

Os utilizadores do tipo empresa devem autenticar-se na API. O token JWT recebido na


autenticação deve ser usado no cabeçalho das restantes invocações.

1.2. Submissão de informação da empresa

Este método permite a actualização dos dados da empresa. Não é obrigatória a sua
invocação. Caso não seja invocado, são utilizados os dados que estão actualmente no sistema.

1.3. Submissão dos centros de trabalho

Com este método, os utilizadores enviam a informação de todos os centros de trabalho. Se a


empresa tiver mais do que 500 centros de trabalho, deve ser feita mais do que uma invocação.
A informação de todos os centros de trabalho da empresa deve ser enviada para o sistema. No
caso de haver uma falha na submissão de um dos centros numa invocação com 500 centros,
nenhum centro será inserido/atualizado.

1.4. Submissão dos trabalhadores

Este método permite o envio da informação referente aos trabalhadores da empresa. Se a


empresa tiver mais do que 500 trabalhadores, deve ser feita mais do que uma invocação. A
informação de todos os trabalhadores da empresa deve ser enviada para o sistema. No caso de
haver uma falha na submissão de um dos trabalhadores numa invocação com 500 trabalhadores,
nenhum trabalhador será inserido/atualizado.

1.5. Submissão dos documentos dos trabalhadores

3
Através deste método, os utilizadores podem enviar os documentos necessários dos
trabalhadores. Apenas é possível enviar 50 documentos de cada vez, pelo que, se necessário, os
utilizadores deverão invocar mais do que uma vez o método. Trabalhadores com documento de
identificação diferente de “Bilhete de Identidade” devem submeter o documento de
identificação neste método, e ainda, se o documento de identificação for “Passaporte”, deve ser
enviado também o Visto. Só é permitido o envio de documentos do tipo .pdf, .jpg, .jpeg, e .png.

1.6. Submissão do mapa RENT

Este método deve ser invocado após toda a informação dos centros de trabalho e
trabalhadores ser submetida. Apenas informação enviada pelos métodos acima de submissão de
centros de trabalho e trabalhadores será considerada. Todos os centros e trabalhadores cuja
informação não tenha sido enviada serão inactivados no sistema e não constarão no mapa RENT.

Segue informação mais detalhada acerca dos endpoints disponíveis.

2. Autenticação
Todos os endpoints seguros requerem um token Bearer no cabeçalho Authorization:

Authorization: Bearer {JWT Token}

3. Sumário de Endpoints
Segue a descrição dos endpoints disponíveis na API

3.1. POST /rent_api/Account/login

Descrição: Autenticação de utilizador e obtenção de tokens JWT.

Corpo do Pedido: SimpleLoginFO_UserCommand

• username: Nome de utilizador


• password: Palavra-passe do utilizador

Exemplo – pedido:

4
{
"username": "string",
"password": "string"
}

Resposta: SimpleLoginResult

• jwtToken: Token de autenticação


• refreshToken: Token de actualização
• name: Nome do utilizador
• mustConfirmMail: É necessário confirmar o e-mail
• mustConfirmPhone: É necessário confirmar o telefone
• email: E-mail do utilizador
• phoneNumber: Telefone do utilizador

Exemplo – resposta de sucesso (200):

{
"succeeded": true,
"errors": [
"string"
],
"jwtToken": "string",
"refreshToken": "string",
"name": "string",
"mustConfirmPhone": true,
"mustConfirmEmail": true,
"email": "string",
"phoneNumber": "string"
}

3.2. POST /rent_api/Account/refresh-token

Descrição: Geração de novo token de autenticação baseado no token de actualização.

Corpo do Pedido: RefreshTokenSimpleCommand

• refreshToken: Token de actualização

Exemplo – pedido:

5
{
"refreshToken": "string"
}

Resposta: SimpleLoginResult

• jwtToken: Token de autenticação


• refreshToken: Token de actualização
• name: Nome do utilizador
• mustConfirmMail: É necessário confirmar o e-mail
• mustConfirmPhone: É necessário confirmar o telefone
• email: E-mail do utilizador
• phoneNumber: Telefone do utilizador

Exemplo – resposta de sucesso (200):

{
"succeeded": true,
"errors": [
"string"
],
"jwtToken": "string",
"refreshToken": "string",
"name": "string",
"mustConfirmPhone": true,
"mustConfirmEmail": true,
"email": "string",
"phoneNumber": "string"
}

3.3. GET /rent_api/DataSets/GetDataSet

Descrição: Obter informações de um determinado DataSet.

Parâmetros de Query:

• name: Nome do DataSet. Valores possíveis:


o BusinessPurpose
o LegalForm
o Provinces
o EconomicActivitiesClassification
o CompanyActivity
o Municipalities
o Nationalities

6
o AcademicLevel
o Gender
o MaritalStatus
o RENTEmployeeDocumentTypes
o EmploymentProfessionalCategory
o EmploymentStatus
o ProfessionalCategory
o EmploymentCenter
o CollectiveEmployeeDocumentTypes
o CompanyPropertyType

Resposta: Lista de DataSetDTO

• id: Id do registo
• value: Valor do registo
• keyValue: Chave do registo

Exemplo – resposta de sucesso (200):

[
{
"id": 0,
"value": "string",
"keyValue": "string"
}
]

3.4. POST /rent_api/RENT/submit-company-information

Descrição: Submissão da informação da empresa.

Corpo do Pedido: UpdateRENTFrontOfficeUserCommand

• companyInfo: Objecto CompanyInformation


o contactName: Nome - Obrigatório
o taxIdNumber: NIF - Obrigatório - Deve ter entre 8 a 14 caracteres
o permitCode: Código do alvará - Obrigatório - Deve ter no máximo 25 caracteres
o permitCodeValidUntil: Data de validade do alvará - Obrigatório
o niss: NISS
o companyAddress: Objeto CompanyAddress
▪ provinceKey: Província - Obrigatório - Preencher com keyValue
correspondente do DataSet 'Provinces'

7
▪ municipalityKey: Município - Obrigatório - Preencher com keyValue
correspondente do DataSet 'Municipalities' - Deve pertencer à província
selecionada
▪ address: Morada - Obrigatório
▪ district: Bairro - Obrigatório
o businessPurposeKeyList: Lista de sector económico - Obrigatório - Valores da lista
devem ser preenchidos com os keyValue correspondentes do DataSet
'BusinessPurpose'
o experience: Anos de experiência - Obrigatório
o companyEmail: Email da empresa - Obrigatório
o companyPhone: Telefone da empresa - Obrigatório
o companyEACKey: CAE da Empresa - Obrigatório - Preencher com keyValue
correspondente do DataSet 'EconomicActivitiesClassification'
o shareCapital: Capital Social - Obrigatório
o publicDivisionPercentage: Repartição Estatal (%) - Obrigatório - As duas repartições
devem perfazer 100%
o privateNationalDivisionPercentage: Repartição Privado Nacional (%) - Obrigatório -
As duas repartições devem perfazer 100%
o activityStartYear: Ano de início de actividade - Obrigatório
o legalFormKey: Natureza Jurídica - Obrigatório - Preencher com keyValue
correspondente do DataSet 'LegalForm'
o companyActivityKey: Actividade principal da empresa - Obrigatório - Preencher com
keyValue correspondente do DataSet 'CompanyActivity'
o corporateObject: Objecto social - Obrigatório
o companyPropertyTypeKey: Tipo de Propriedade - Obrigatório - Preencher com
keyValue correspondente do DataSet 'CompanyPropertyType'
• isFirstSubmission: Indica se é a primeira submissão da empresa. Deve estar a true caso a
empresa tenha sido criada no ano que está a declarar e tem 30 dias para entregar o rent
após a sua constituição, deve ser false se já não é a primeira vez que entrega o rent

8
Exemplo – pedido:
{
"companyInfo": {
"contactName": "string",
"taxIdNumber": "string",
"permitCode": "string",
"permitCodeValidUntil": "2025-04-16T10:04:52.633Z",
"niss": "string",
"companyAddress": {
"provinceKey": "string",
"municipalityKey": "string",
"address": "string",
"district": "string"
},
"businessPurposeKeyList": [
"string"
],
"experience": 0,
"companyEmail": "string",
"companyPhone": "string",
"companyEACKey": "string",
"subsidiaryCompany": "string",
"subsidiaryCompanyPostalCode": "string",
"subsidiaryCompanyActivity": "string",
"subsidiaryCompanyEACKey": "string",
"maleWorkersNumber": 0,
"femaleWorkersNumber": 0,
"totalWorkersNumber": 0,
"shareCapital": 0,
"publicDivisionPercentage": 0,
"privateNationalDivisionPercentage": 0,
"activityStartYear": 0,
"legalFormKey": "string",
"companyActivityKey": "string",
"corporateObject": "string"",
"companyPropertyTypeKey": "string"
},
"isFirstSubmission": false
}

Resposta: Result

• succeded: Sucesso na operação?


• errors: Lista de mensagens de erro

Exemplo – resposta de sucesso (200):

{
"succeeded": true,
"errors": [
"string"
]
}

9
3.5. POST /rent_api/RENT/submit-work-centers-information

Descrição: Submissão dos centros de trabalho da empresa (máx. 500 por invocação).

Corpo do Pedido: UpsertRENTWorkCentersCommand

• workCenterList: Objecto com lista de WorkCenter


o Cada WorkCenter contém:
▪ provinceKey: Província - Obrigatório - Preencher com keyValue
correspondente do DataSet 'Provinces'
▪ municipalityKey: Município - Obrigatório - Preencher com keyValue
correspondente do DataSet 'Municipalities' - Deve pertencer à província
selecionada
▪ activityKey: Actividade - Obrigatório - Preencher com keyValue
correspondente do DataSet 'EconomicActivitiesClassification'
▪ name: Nome do Centro - Obrigatório
▪ address: Morada - Obrigatório
▪ postalCode: Caixa Postal
▪ phoneNumber: Telefone - Obrigatório
▪ email: Email - Obrigatório
▪ workerCount: Nº de trabalhadores - Obrigatório
▪ instrumentCount: Instrumento - Obrigatório
• isFirstSubmission: Indica se é a primeira submissão da empresa. Deve estar a true caso a
empresa tenha sido criada no ano que está a declarar e tem 30 dias para entregar o rent
após a sua constituição, deve ser false se já não é a primeira vez que entrega o rent

Exemplo – pedido:

10
{
"workCenterList": {
"workCenters": [
{
"provinceKey": "string",
"municipalityKey": "string",
"activityKey": "string",
"name": "string",
"address": "string",
"postalCode": "string",
"phoneNumber": "string",
"email": "string",
"workerCount": 0,
"instrumentCount": "string"
}
]
},
"isFirstSubmission": false
}

Resposta: Result

• succeded: Sucesso na operação?


• errors: Lista de mensagens de erro

Exemplo – resposta de sucesso (200):

{
"succeeded": true,
"errors": [
"string"
]
}

3.6. POST /rent_api/RENT/submit-work-center-employees-information

Descrição: Submissão da informação dos trabalhadores (máx. 500).

Corpo do Pedido: UpsertRENTWorkCenterEmployeesCommand

• workCenterEmployeeList: Objecto com lista de WorkCenterEmployeeInfo


o Cada WorkCenterEmployeeInfo contém:
▪ provinceKey: Província - Obrigatório se nacionalidade for Angolana -
Preencher com keyValue correspondente do DataSet 'Provinces'

11
▪ municipalityKey: Município - Obrigatório se nacionalidade for Angolana -
Preencher com keyValue correspondente do DataSet 'Municipalities' -
Deve pertencer à província selecionada
▪ nationalityKey: Nacionalidade - Obrigatório - Preencher com keyValue
correspondente do DataSet 'Nationalities'
▪ address: Morada - Obrigatório
▪ name: Nome do trabalhador - Obrigatório
▪ ssn: NISS - Obrigatório - Caso o trabalhador não esteja inscrito no INSS,
colocar o nº Visto Trabalho
▪ nif: NIF - Obrigatório
▪ dateOfBirth: Data de nascimento - Obrigatório
▪ genderKey: Género - Obrigatório - Preencher com keyValue
correspondente do DataSet 'Gender'
▪ maritalStatusKey: Estado Civil - Obrigatório - Preencher com keyValue
correspondente do DataSet 'MaritalStatus'
▪ academicLevelKey: Nível Académico - Obrigatório - Preencher com keyValue
correspondente do DataSet 'AcademicLevel'
▪ documentTypeKey: Documento de Identificação - Obrigatório - Preencher
com keyValue correspondente do DataSet
'CollectiveEmployeeDocumentTypes'
▪ identityDocumentNumber: N.º Documento de Identificação - Obrigatório
▪ workVisaNumber: Nº de Visto de trabalho do trabalhador - Obrigatório se o
Documento de Identificação for Passaporte
▪ identityDocumentIssueDate: Data de Emissão do Documento de
Identificação - Obrigatório
▪ identityDocumentExpiryDate: Data de Validade do Documento de
Identificação - Obrigatório
▪ addmissionDate: Data de Admissão - Obrigatório
▪ professionalCategoryKey: Categoria Profissional - Obrigatório - Preencher
com keyValue correspondente do DataSet
'EmploymentProfessionalCategories'
▪ employmentStatusKey: Situação Profissional - Obrigatório - Preencher com
keyValue correspondente do DataSet 'EmploymentStatuses'
▪ baseSalary: Remuneração total em Kz - Obrigatório
▪ salaryStatedInTheContract: Salário Expresso no Contracto em Kz -
Obrigatório
▪ functionKey: Profissão - Obrigatório - Preencher com keyValue
correspondente do DataSet 'ProfessionalCategory'
▪ normalWorkingHours: Horas normais
▪ weeklyWorkingHours: Horas semanais
▪ regularProvision: Prestação regular
▪ irregularProvision: Prestação irregular

12
• isFirstSubmission: Indica se é a primeira submissão da empresa. Deve estar a true caso a
empresa tenha sido criada no ano que está a declarar e tem 30 dias para entregar o rent
após a sua constituição, deve ser false se já não é a primeira vez que entrega o rent

Resposta: Result

• succeded: Sucesso na operação?


• errors: Lista de mensagens de erro

Exemplo – resposta de sucesso (200):

{
"succeeded": true,
"errors": [
"string"
]
}

3.7. POST /rent_api/RENT/submit-work-center-employee-documents

Descrição: Submissão dos documentos dos trabalhadores (máx. 50 documentos).

Corpo do Pedido: multipart/form-data

• WorkCenterEmployeeDocumentList: Objecto com lista de WorkCenterEmployeeDocumentInfo


o Cada WorkCenterEmployeeDocumentInfo contém:
▪ documentTypeKey: Tipo de Documento de Identificação - Obrigatório -
Preencher com keyValue correspondente do DataSet
'RENTEmployeeDocumentTypes'
▪ employeeSSN: NISS do trabalhador a quem pertence o documento -
Obrigatório - Caso o trabalhador não esteja inscrito no INSS, colocar o nº
Visto Trabalho
▪ documentIndex: Posição do documento na lista de documentos
'Documents' - Obrigatório - O primeiro documento da lista tem índice 0
• Documents: Lista de arquivos (ficheiros binários)
• isFirstSubmission: Indica se é a primeira submissão da empresa. Deve estar a true caso a
empresa tenha sido criada no ano que está a declarar e tem 30 dias para entregar o rent
após a sua constituição, deve ser false se já não é a primeira vez que entrega o rent

Não é possível invocar este método através da Swagger UI apresentada quando se acede ao URL
da aplicação. A título de exemplo, apresenta-se abaixo um exemplo de código C# que permite a
invocação do método.

13
var client = new RestClient("<URL_API>");
var request = new RestRequest("rent_api/RENT/submit-work-center-employee-
documents", [Link]);

// Add multipart form data headers


[Link] = true;

// Add Bearer token to the Authorization header


[Link]("Authorization", $"Bearer {bearerToken}");

for (int i = 0; i < [Link]; i++)


{
var docInfo = documents[i];

[Link]($"WorkCenterEmployeeDocumentList[{i}].DocumentTypeKey",
[Link]());
[Link]($"WorkCenterEmployeeDocumentList[{i}].EmployeeSSN",
[Link]);

[Link]($"WorkCenterEmployeeDocumentList[{i}].DocumentIndex",
[Link]());
}

foreach (var (fileName, content) in files)


{
[Link]("Documents", content, fileName, "image/png");
}

var response = await [Link](request);

if ([Link])
{
[Link]("Files and document info uploaded successfully.");
}
else
{
[Link]($"Error: {[Link]}");

Resposta: Result

• succeded: Sucesso na operação?


• errors: Lista de mensagens de erro

Exemplo – resposta de sucesso (200):

{
"succeeded": true,
"errors": [
"string"
]
}

14
3.8. POST /rent_api/RENT/submit-rent-map

Descrição: Submissão final do Mapa RENT.

Corpo do Pedido: SubmitRENTMapCommand

• employmentCenterKey: Centro de emprego - Obrigatório - Preencher com keyValue


correspondente do DataSet 'EmploymentCenter'
• isFirstSubmission: Indica se é a primeira submissão da empresa. Deve estar a true caso a
empresa tenha sido criada no ano que está a declarar e tem 30 dias para entregar o rent
após a sua constituição, deve ser false se já não é a primeira vez que entrega o rent

Exemplo – pedido:

{
"employmentCenterKey": "string",
"isFirstSubmission": false
}

Resposta: RENTMapSubmitResult

• mapName: Nome do mapa RENT


• status: Estado do mapa RENT
• submissionDate: Data de submissão do mapa RENT
• success: Sucesso na submissão

Exemplo – resposta de sucesso (200):

{
"mapName": "string",
"status": "string",
"submissionDate": "string",
"success": true
}

15

Você também pode gostar