Evaluating bids

Sistema bancario com boletos

Published on the March 07, 2023 in IT & Programming

About this project

Open

### **Requisitos Funcionais**

- Incluir um código de boleto válido
- O Boleto deve estar vencido
- Apenas boletos do tipo NPC podem ser calculados
- Para receber as informações do boleto, consumir a API de Boletos Builders
- Em caso de erro, devolver o motivo do erro
- A definição dos juros de boleto bancário ocorre considerando os dias de atraso, de maneira proporcional.
    - Taxa de juros de 1% ao mês
    - 1% a cada 30 dias: 1÷ 30= 0,033% ao dia
- A multa por atraso deve ser de 2%
- O valor final do boleto deve ser:
    - Valor do boleto + valor da multa + valor dos juros em atraso = **valor cobrado**
- Salvar em um **banco de dados** todos os cálculos realizados, para que nosso time de dados possa depois cruzar as informações de boletos pagos com boletos calculados.

---

### **Request API**

```json
{
  "bar_code": "string",
  "payment_date": "string",
}
```

### **Response API**

```json
{
  "original_amount": 0,
    "amount": 0;
  "due_date": "string",
  "payment_date": "string",
    "interest_amount_calculated": 0,
    "fine_amount_calculated": 0
}
```

---

### Massa de Teste

Code 1:  `34191790010104351004791020150008291070026000`

Code 2:  `34191790010104351004791020150008191070069000`

Code 3:  `34199800020104352008771020110004191070010000`

Code 4:  `34197650070104357008271020110004991070040000`

---

### API de Boletos

- Credenciais
    - client_id: `bd753592-cf9b-4d1a-96b9-cb8b2c01bd12`
    - client_secret: `4e8229fe-1131-439c-9846-799895a8be5b`

- Para gerar Token de acesso as APIs, consumir a **API de Auth**:
   
    API →
   
    > [https://vagas.builders/api/builders/auth/tokens](https://vagas.builders/api/builders/auth/tokens)
    >
   
    Method →
   
    > POST
    >
   
    Request→
   
    ```json
    {
        "client_id":"string",
        "client_secret":"string"
    }
    ```
   
    Response →
   
    ```json
    {
        "token": "string",
        "expires_in": "2022-09-13T14:29:10.286494"
    }
    ```
   
    curl →
   
    ```json
    curl --location --request POST 'https://vagas.builders/api/builders/auth/tokens' \
    --header 'Content-Type: application/json' \
    --data-raw '{
        "client_id":"string",
        "client_secret":"string"
    }'
    ```
   
- Os dados de boleto devem ser consumido da **API de boletos Builders**
   
    API → [https://vagas.builders/api/builders/bill-payments/codes](https://vagas.builders/api/builders/bill-payments/codes)
   
    Method → POST
   
    Request →
   
    ```json
    {
        "code":"string"
    }
    ```
   
    Response →
   
    ```json
    {
        "code": "string",
        "due_date": "yyyy-mm-dd",
        "amount": 00.0,
        "recipient_name": "string",
        "recipient_document": "string",
        "type": "npc|normal"
    }
    ```
   
    curl →
   
    ```json
    curl --location --request post 'https://vagas.builders/api/builders/bill-payments/codes' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: token' \
    --data-raw '{
        "code":"string"
    }'
    ```
   

## 📌 Condições

---

- Utilizar Java;
- É permitido o uso de frameworks;
- Implementar e documentar exceções;
- Testes unitários;
    - Não se preocupe com alto percentual de cobertura, mas esperamos entender seu potencial técnico neste tipo de construção;
    - Não é necessário implementar uma pipeline (como no Github Actions) para execução dos testes, mas é importante documentar sobre “como” executar;

Category IT & Programming
Subcategory Web development
What is the scope of the project? Medium-sized change
Is this a project or a position? Project
I currently have I have specifications
Required availability As needed
API Integrations Other (Other APIs)
Roles needed Developer

Delivery term: Not specified

Skills needed

Other projects posted by A. C. D. M.