📝 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