> ## Documentation Index
> Fetch the complete documentation index at: https://base39-release-notes-06-mar.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Transferência entre filiais

> Guia de configurações necessárias para realizar o processo de transferência de funcionário entre empresas filiais.

Há casos em que funcionários podem ser transferidos para empresas filiais, que pertencem ao mesmo grupo de empresas, porém, com outro nome e CNPJ.

Confira abaixo as configurações necessárias para que o processo de transferência do funcionário para a nova empresa funcione corretamente na aplicação.

## Pré requisitos

Antes de iniciar as configurações é necessário ter as seguintes informações:

* ID da empresa antiga

* ID da nova empresa

* CPF do funcionário a ser transferido

## Configurações

### 1. Criar um novo vínculo empregatício

Primeiramente, é necessário criar manualmente um novo vínculo empregatício, que será responsável por indicar a aplicação sobre a transferência de CNPJ do funcionário.

* Crie um novo vínculo através do endpoint: [Criar vínculo empregatício](https://docs.base39.com.br/development/api-reference/endpoint/post-v1-employments)

* * No parâmetro `status` , indicar a opção transferred

* * No parâmetro `company`, inserir o ID da antiga empresa

* * No parâmetro `transferredTo`, inserir ID da nova empresa

* * No parâmetro `customer`, é obrigatório preencher o campo `document` com o CPF do funcionário que está sendo transferido

```json

Exemplo da chamada:

{

  

"status":  "transferred",

  

"customer":  {

  

"document":  "23894709283"

  

},

  

"company":  "comp_65243323b5ce5da15dc65be1",

  

"transferredTo":  "comp_62d9889bd3985729e5a048ef"

  

}

  

```

<Note>Esta configuração é a única que deve ser feita manualmente. Todas as outras configurações a seguir são feitas automaticamente pela aplicação.</Note>

### 2. Obter ID do cliente

A aplicação obtem o ID do cliente (o funcionário que está sendo transferido) através do endpoint: [Listar clientes](https://docs.base39.com.br/development/api-reference/endpoint/get-v1-customers)

* * O parâmetro `document` é preenchido com o CPF do cliente

* * ID obtido e salvo pela aplicação

### 3. Listar empréstimos em aberto

Antes de fazer a transferência de CNPJ, é fundamental saber se o funcionário possui empréstimos em aberto.

* A aplicação executa o endpoint: [Listar empréstimos](https://docs.base39.com.br/development/api-reference/endpoint/get-v1-loans)

* * No parâmetro `customer`, a aplicação inseri o ID do cliente (obtido no passo 2)

* * No parâmetro `status`, seleciona a opção open

### 4. Encontrar as parcelas não pagas de cada empréstimo em aberto (encontrado no passo anterior)

* Para encontrar as parcelas não pagas, a aplicação utiliza o endpoint: [Listar parcelas](https://docs.base39.com.br/development/api-reference/endpoint/get-v1-installments)

* * No parâmetro `loan`, a aplicação preenche com o ID do empréstimo em aberto (encontrado no passo anterior)

* * O parâmetro `payer`, é preenchido com o ID da empresa antiga

* * O parâmetro `status`, é selecionado com a opção unpaid

<Info>Agora a aplicação tem todas as parcelas não pagas da empresa antiga e que precisam ser transferidas para a nova empresa.</Info>

### 5. Criar uma nova parcela para cada parcela não paga (encontrada no passo anterior)

* Para criar uma nova parcela, a aplicação utiliza o endpoint: [Criar parcela](https://docs.base39.com.br/development/api-reference/endpoint/post-v1-installments)

* Todos os campos da nova parcela são preenchidos exatamente igual aos da parcela do passo anterior, apenas o campo `payer`, que é alterado e preenchido com o ID da nova empresa.

### 6. Checar se existe transação na parcela

Para cada parcela em aberto (encontrada no passo 4) é necessário checar se existe alguma transação. Como por exemplo, verificar se já foi feito algum tipo de pagamento, há casos em que parte da parcela já pode ter sido paga.

* Para checar, a aplicação utiliza o endpoint: [Listar parcelas](https://docs.base39.com.br/development/api-reference/endpoint/get-v1-installments)

* * Na resposta, a aplicação verifica se existe alguma informação no campo `transactions`

* * Caso exista alguma informação, é necessário criar uma nova fatura

* Para criar uma nova fatura, a aplicação utiliza o endpoint: [Criar fatura](https://docs.base39.com.br/development/api-reference/endpoint/post-v1-invoices)

* * É necessário criar dois itens de fatura

* Primeiro item:

* * O parâmetro `installment`, é preenchido pela aplicação com o ID da parcela antiga (que tem transação)

* * O parâmetro `amount`, é preenchido com o valor negativo da transação (por exemplo, se a parcela é de 400 e tem uma transação de 200, -200 é o valor a ser preenchido)

* * O parâmetro `discount`, também é preenchido com o valor negativo da transação

* Segundo item:

* * O parâmetro `installment`, é preenchido com o ID da parcela nova (obtido no passo 5)

* * O parâmetro `amount`, é preenchido com o valor da transação (por exemplo, se a parcela é de 400 e tem transação de 200, 200 é o valor a ser preenchido)

* * O parâmetro `discount`, é preenchido com o valor da transação

* Ainda em fatura:

* * O parâmetro `type`, é selecionado com a opção `company_recurring`

* * O parâmetro `payer`, é preenchido com ID da nova empresa

* * O parâmetro `dueDate`, é preenchido com a data do dia em que a fatura está sendo criada

* * O parâmetro `beneficiary`, é preenchido com o ID do fundo da parcela

* * O parâmetro `autoFinalize`, é selecionado com o valor true

* * O parâmetro `updateInvoiceItemOnInsert`, é selecionado com o valor false

### 7. Anular parcelas antigas

Por último, depois de ter criado as novas faturas com sucesso, é necessário que a aplicação anule as parcelas antigas.

* Para anular parcelas, a aplicação utiliza o endpoint: [Anular parcela](https://docs.base39.com.br/development/api-reference/endpoint/post-v1-installments-installment-void)

* * O parâmetro `installment`, é preenchido com o ID da parcela antiga

<Note>Parcelas com `payer` da antiga empresa que não foram pagas, o status é definido como `void`.</Note>

<Note>O parâmetro `company` nos empréstimos (loans) do cliente não é atualizado durante o processo de transferência.</Note>
