About this project
it-programming / web-development
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