📚 Como Usar a API - ecosif-moviments

📋 Visão Geral

Este guia prático explica como usar a API do ecosif-moviments para realizar operações comuns.


🔑 Passo 1: Autenticação

Primeiro, obtenha um token JWT:

TOKEN=$(curl -s -X POST http://localhost:8080/api/auth/signin \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"senha123"}' \
  | jq -r '.accessToken')

echo "Token: $TOKEN"

Use o token em todas as requisições:

curl -H "Authorization: Bearer $TOKEN" ...

📦 Criar um Lote Completo

1. Criar Lote

BATCH_ID=$(curl -s -X POST http://localhost:8082/batch \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "lote": "001",
    "empresa": "00001",
    "filial": "00001",
    "ano": 2025,
    "mes": 11,
    "descricao": "Lote de Novembro"
  }' | jq -r '.id')

echo "Batch ID: $BATCH_ID"

2. Criar Documento

DOC_ID=$(curl -s -X POST http://localhost:8082/document \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d "{
    \"batchId\": $BATCH_ID,
    \"documento\": \"000001\",
    \"texto\": \"Documento de teste\"
  }" | jq -r '.id')

echo "Document ID: $DOC_ID"

3. Criar Lançamentos (Débito e Crédito)

# Débito
curl -X POST http://localhost:8082/entry \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d "{
    \"documentId\": $DOC_ID,
    \"lancamento\": \"001\",
    \"debcre\": \"D\",
    \"day\": \"15\",
    \"contaId\": 100,
    \"valor\": 1000.00
  }"

# Crédito (partida dobrada)
curl -X POST http://localhost:8082/entry \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d "{
    \"documentId\": $DOC_ID,
    \"lancamento\": \"002\",
    \"debcre\": \"C\",
    \"day\": \"15\",
    \"contaId\": 200,
    \"valor\": 1000.00
  }"

📥 Importar Arquivo CSV

Criar Arquivo CSV

documento,lançamento,débito_crédito,dia,conta,valor,histórico
000001,001,D,15,100,1000.00,Lançamento teste
000001,002,C,15,200,1000.00,Contrapartida

Importar

curl -X POST "http://localhost:8082/batch/$BATCH_ID/import?dryRun=false" \
  -H "Authorization: Bearer $TOKEN" \
  -F "file=@lancamentos.csv"

🔄 Consolidar Período

curl -X POST http://localhost:8082/runconsolidation \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "company": "00001",
    "branch": "00001",
    "year": "2025",
    "month": "11"
  }'

Nota: Operação assíncrona. Verifique status via logs ou endpoints de monitoramento.


📊 Consultar Dados

Listar Lotes

curl -X GET "http://localhost:8082/allbatch/00001/00001" \
  -H "Authorization: Bearer $TOKEN" | jq

Buscar Documento

curl -X GET "http://localhost:8082/document/$DOC_ID" \
  -H "Authorization: Bearer $TOKEN" | jq

Listar Lançamentos

curl -X GET "http://localhost:8082/allentry/$DOC_ID" \
  -H "Authorization: Bearer $TOKEN" | jq

💰 Calcular Cotas

Preview (não salva)

curl -X GET "http://localhost:8082/taxquotacalculation/00001/00001?confirmed=false" \
  -H "Authorization: Bearer $TOKEN" | jq

Confirmar e Salvar

curl -X GET "http://localhost:8082/taxquotacalculation/00001/00001?confirmed=true" \
  -H "Authorization: Bearer $TOKEN"

📝 Exemplos com cURL

Script Completo

#!/bin/bash

# 1. Autenticação
TOKEN=$(curl -s -X POST http://localhost:8080/api/auth/signin \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"senha123"}' \
  | jq -r '.accessToken')

# 2. Criar lote
BATCH_ID=$(curl -s -X POST http://localhost:8082/batch \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "lote": "001",
    "empresa": "00001",
    "filial": "00001",
    "ano": 2025,
    "mes": 11
  }' | jq -r '.id')

echo "Lote criado: $BATCH_ID"

# 3. Criar documento
DOC_ID=$(curl -s -X POST http://localhost:8082/document \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d "{
    \"batchId\": $BATCH_ID,
    \"documento\": \"000001\"
  }" | jq -r '.id')

echo "Documento criado: $DOC_ID"

# 4. Criar lançamentos
curl -X POST http://localhost:8082/entry \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d "{
    \"documentId\": $DOC_ID,
    \"lancamento\": \"001\",
    \"debcre\": \"D\",
    \"day\": \"15\",
    \"contaId\": 100,
    \"valor\": 1000.00
  }"

curl -X POST http://localhost:8082/entry \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d "{
    \"documentId\": $DOC_ID,
    \"lancamento\": \"002\",
    \"debcre\": \"C\",
    \"day\": \"15\",
    \"contaId\": 200,
    \"valor\": 1000.00
  }"

echo "Lançamentos criados com sucesso!"

🔍 Dicas e Boas Práticas

  1. Sempre valide partidas dobradas antes de criar múltiplos lançamentos
  2. Use paginação em listagens grandes
  3. Considere usar dryRun=true ao importar arquivos grandes
  4. Verifique status de operações assíncronas
  5. Trate erros apropriadamente

Última Atualização: 2025-11-27