📝 Exemplos de Requisição e Resposta - ecosif-moviments
📋 Visão Geral
Este documento contém exemplos práticos de uso da API.
Nota: Substitua <token> pelo token JWT válido.
📦 Lotes
Criar Lote
Request:
POST /batch
Authorization: Bearer <token>
Content-Type: application/json
{
"lote": "001",
"empresa": "00001",
"filial": "00001",
"ano": 2025,
"mes": 11,
"descricao": "Lote de Novembro"
}
Response (201 Created):
{
"id": 1,
"lote": "001",
"empresa": "00001",
"filial": "00001",
"ano": 2025,
"mes": 11,
"descricao": "Lote de Novembro"
}
Listar Lotes
Request:
GET /allbatch/00001/00001?page=0&size=10
Authorization: Bearer <token>
Response (200 OK):
[
{
"id": 1,
"lote": "001",
"empresa": "00001",
"filial": "00001",
"ano": 2025,
"mes": 11
}
]
📄 Documentos
Criar Documento
Request:
POST /document
Authorization: Bearer <token>
Content-Type: application/json
{
"batchId": 1,
"documento": "000001",
"diaref": "15",
"texto": "Documento de teste",
"cdpadronizado": "001"
}
Response (201 Created):
{
"id": 1,
"batchId": 1,
"documento": "000001",
"diaref": "15",
"texto": "Documento de teste"
}
📝 Lançamentos
Criar Lançamento (Débito)
Request:
POST /entry
Authorization: Bearer <token>
Content-Type: application/json
{
"documentId": 1,
"lancamento": "001",
"debcre": "D",
"day": "15",
"contaId": 100,
"valor": 1000.00,
"historico": "Pagamento de fornecedor"
}
Response (201 Created):
{
"id": 1,
"documentId": 1,
"lancamento": "001",
"debcre": "D",
"day": "15",
"contaId": 100,
"valor": 1000.00
}
Criar Lançamento (Crédito)
Request:
POST /entry
Authorization: Bearer <token>
Content-Type: application/json
{
"documentId": 1,
"lancamento": "002",
"debcre": "C",
"day": "15",
"contaId": 200,
"valor": 1000.00,
"historico": "Contrapartida"
}
Response (201 Created):
{
"id": 2,
"documentId": 1,
"lancamento": "002",
"debcre": "C",
"day": "15",
"contaId": 200,
"valor": 1000.00
}
Nota: Soma de débitos deve igualar soma de créditos no documento.
📥 Importação
Importar Arquivo CSV
Request:
POST /batch/1/import?dryRun=false
Authorization: Bearer <token>
Content-Type: multipart/form-data
file: <arquivo.csv>
Response (200 OK):
{
"success": true,
"totalRows": 100,
"successRows": 95,
"errorRows": 5,
"errors": [
"Linha 10: Conta contábil inválida",
"Linha 25: Valor inválido"
],
"message": "Importação concluída com sucesso"
}
🔄 Consolidação
Executar Consolidação
Request:
POST /runconsolidation
Authorization: Bearer <token>
Content-Type: application/json
{
"company": "00001",
"branch": "00001",
"year": "2025",
"month": "11"
}
Response (200 OK):
{
"company": "00001",
"branch": "00001",
"year": "2025",
"month": "11",
"status": "PROCESSING"
}
Nota: Operação assíncrona. Status muda para COMPLETED quando termina.
❌ Exemplos de Erro
400 Bad Request - Partidas Não Conferem
Request:
POST /entry
Authorization: Bearer <token>
Content-Type: application/json
{
"documentId": 1,
"lancamento": "001",
"debcre": "D",
"valor": 1000.00
}
Response (400 Bad Request):
{
"message": "Partidas dobradas não conferem. Débitos: 1000.00, Créditos: 0.00",
"timestamp": "2025-11-27T10:30:00",
"status": 400,
"error": "Bad Request"
}
401 Unauthorized - Token Inválido
Request:
GET /batch/1
Authorization: Bearer token-invalido
Response (401 Unauthorized):
{
"message": "Token inválido ou expirado",
"timestamp": "2025-11-27T10:30:00",
"status": 401,
"error": "Unauthorized"
}
404 Not Found - Recurso Não Encontrado
Request:
GET /batch/999
Authorization: Bearer <token>
Response (404 Not Found):
{
"message": "Lote não encontrado: 999",
"timestamp": "2025-11-27T10:30:00",
"status": 404,
"error": "Not Found"
}
Última Atualização: 2025-11-27