---
# System prepended metadata

title: Pet Project - API de gerenciador financeiro

---

# Pet Project - API de gerenciador financeiro

## Verificações de API

### POST, PUT, PATH, DELETE

- Erros de validação devem retornar status 422.
- Erros de validação devem retornar o seguinte body ``{"mensagem": "Dados inválidos.", "erros": [{campo: "", mensagem: ""}]}``
- Exceptions de negocio devem retornar status status 422.
- Quando a entidade principal não for encontrada deve retornar 404.
- o body do status 422 deve ser ```{"mensagem": "Mensagem de error"}```
- 
### POST

- Deve retornar status 201
- Deve retornar o header location com /header/{id}

### PUT, DELETE

- Deve retornar status 204

## Cadastro de orçamento

### Incremento

Criação de uma API de post que possibilite o cadastro de orçamentos.

### Verificação

- O path de api deve ser ``/orcamentos``.
- O verbo http deve ser post.
- Não pode existir duas contas com a mesma descrição
- Uma conta a pagar deve contar os seguintes dados:
    - Id. 
        - Deve ser gerado pelo sistema.
    - Descrição. 
        - max: 50, obrigatório.
    - Valor da conta em 4 casas decimais. 
        - valor > 0 e  valor <= 100.000.000, obrigatório.
    

## Cadastrar pagamento junto do cadastro da conta a pagar

### Incremento

Alteração da API de cadastro de contas a pagar para possíbilitar o cadastramento do pagamento junto.

### Verificação
- Deve deve ser adicionado os seguintes dados
    - Está paga? (obrigatório)
    - Data de pagamento. (obrigatório se estiver paga)
    - Valor pago. 
        - deve ser >= valor da conta, e <= 100.000.000


## Listagem de contas a pagar

### Incremento

Criação de uma API de get que possibilite a listagem de contas a pagar.

### Verificação
- Api deve trazer o seguintes campos:
    - Id.
    - Descrição.
    - Valor da conta.
    - Data de vencimento.
    - Está paga?
    - Data de pgamento.
        - Se estiver paga ou null.
    - Valor pago.
        - Se estiver paga ou null.
    - juros pagos.
        - Se estive paga ou null.
        - Juros é diferença entre o valor a pagar, e o valor pago.