Files
portalweb-api/API.md
2025-04-02 18:18:13 -03:00

5.6 KiB

Portal Juru API Documentation

Índice

  1. Autenticação
  2. Endpoints
  3. Modelos de Dados
  4. Exemplos de Uso
  5. Códigos de Erro

Autenticação

A API utiliza autenticação JWT. Para acessar os endpoints protegidos, inclua o token no header:

Authorization: Bearer seu-token-jwt

Endpoints

Consulta de Dados

Listar Lojas

GET /api/v1/data-consult/stores

Resposta

[
  {
    "id": "001",
    "name": "Loja Principal",
    "store": "001 - Loja Principal"
  }
]

Listar Vendedores

GET /api/v1/data-consult/sellers

Resposta

[
  {
    "id": "001",
    "name": "João Silva"
  }
]

Consultar Faturamento

GET /api/v1/data-consult/billings

Resposta

[
  {
    "id": "001",
    "date": "2024-04-02T10:00:00Z",
    "total": 1000.00
  }
]

Filtrar Clientes

GET /api/v1/data-consult/customers/:filter

Parâmetros

  • filter: Termo de busca (nome, documento, etc.)

Resposta

[
  {
    "id": "001",
    "name": "Maria Silva",
    "document": "123.456.789-00"
  }
]

Buscar Produtos

GET /api/v1/data-consult/products/:filter

Parâmetros

  • filter: Termo de busca (nome, código, etc.)

Resposta

[
  {
    "id": "001",
    "name": "Produto Exemplo",
    "manufacturerCode": "ABC123"
  }
]

Pedidos e Pagamentos

Listar Pedidos da Loja

GET /api/v1/orders-payment/orders/:id

Parâmetros

  • id: ID da loja

Resposta

[
  {
    "createDate": "2024-04-02T10:00:00Z",
    "storeId": "001",
    "orderId": 12345,
    "customerId": "001",
    "customerName": "João Silva",
    "sellerId": "001",
    "sellerName": "Maria Santos",
    "billingId": "001",
    "billingName": "Cartão de Crédito",
    "planId": "001",
    "planName": "3x sem juros",
    "amount": 1000.00,
    "installments": 3,
    "amountPaid": 1000.00
  }
]

Buscar Pedido Específico

GET /api/v1/orders-payment/orders/:id/:orderId

Parâmetros

  • id: ID da loja
  • orderId: ID do pedido

Resposta

{
  "createDate": "2024-04-02T10:00:00Z",
  "storeId": "001",
  "orderId": 12345,
  "customerId": "001",
  "customerName": "João Silva",
  "sellerId": "001",
  "sellerName": "Maria Santos",
  "billingId": "001",
  "billingName": "Cartão de Crédito",
  "planId": "001",
  "planName": "3x sem juros",
  "amount": 1000.00,
  "installments": 3,
  "amountPaid": 1000.00
}

Listar Pagamentos do Pedido

GET /api/v1/orders-payment/payments/:id

Parâmetros

  • id: ID do pedido

Resposta

[
  {
    "orderId": 12345,
    "payDate": "2024-04-02T10:00:00Z",
    "card": "**** **** **** 1234",
    "installments": 3,
    "flagName": "VISA",
    "type": "CREDITO",
    "amount": 1000.00,
    "userId": "001",
    "nsu": "123456789",
    "auth": "A12345"
  }
]

Criar Pagamento

POST /api/v1/orders-payment/payments/create

Corpo da Requisição

{
  "orderId": 12345,
  "card": "**** **** **** 1234",
  "auth": "A12345",
  "nsu": "123456789",
  "installments": 3,
  "amount": 1000.00,
  "flagName": "VISA",
  "paymentType": "CREDITO",
  "userId": 1
}

Criar Fatura

POST /api/v1/orders-payment/invoice/create

Corpo da Requisição

{
  "orderId": 12345,
  "userId": 1
}

Modelos de Dados

OrderDto

interface OrderDto {
  createDate: Date;      // Data de criação do pedido
  storeId: string;       // ID da loja
  orderId: number;       // ID do pedido
  customerId: string;    // ID do cliente
  customerName: string;  // Nome do cliente
  sellerId: string;      // ID do vendedor
  sellerName: string;    // Nome do vendedor
  billingId: string;     // ID da forma de pagamento
  billingName: string;   // Nome da forma de pagamento
  planId: string;        // ID do plano de pagamento
  planName: string;      // Nome do plano de pagamento
  amount: number;        // Valor total do pedido
  installments: number;  // Número de parcelas
  amountPaid: number;    // Valor total pago
}

PaymentDto

interface PaymentDto {
  orderId: number;       // ID do pedido
  payDate: Date;         // Data do pagamento
  card: string;          // Número do cartão
  installments: number;  // Número de parcelas
  flagName: string;      // Nome da bandeira
  type: string;          // Tipo de pagamento
  amount: number;        // Valor do pagamento
  userId: string;        // ID do usuário
  nsu: string;          // NSU da transação
  auth: string;         // Código de autorização
}

Códigos de Erro

Código Descrição
400 Requisição inválida
401 Não autorizado
403 Acesso negado
404 Recurso não encontrado
500 Erro interno do servidor

Exemplos de Uso

Exemplo de Requisição com cURL

# Listar pedidos de uma loja
curl -X GET "http://localhost:3000/api/v1/orders-payment/orders/001" \
  -H "Authorization: Bearer seu-token-jwt"

# Criar novo pagamento
curl -X POST "http://localhost:3000/api/v1/orders-payment/payments/create" \
  -H "Authorization: Bearer seu-token-jwt" \
  -H "Content-Type: application/json" \
  -d '{
    "orderId": 12345,
    "card": "**** **** **** 1234",
    "auth": "A12345",
    "nsu": "123456789",
    "installments": 3,
    "amount": 1000.00,
    "flagName": "VISA",
    "paymentType": "CREDITO",
    "userId": 1
  }'