300 lines
5.6 KiB
Markdown
300 lines
5.6 KiB
Markdown
# Portal Juru API Documentation
|
|
|
|
## Índice
|
|
1. [Autenticação](#autenticação)
|
|
2. [Endpoints](#endpoints)
|
|
- [Consulta de Dados](#consulta-de-dados)
|
|
- [Pedidos e Pagamentos](#pedidos-e-pagamentos)
|
|
3. [Modelos de Dados](#modelos-de-dados)
|
|
4. [Exemplos de Uso](#exemplos-de-uso)
|
|
5. [Códigos de Erro](#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
|
|
```http
|
|
GET /api/v1/data-consult/stores
|
|
```
|
|
|
|
**Resposta**
|
|
```json
|
|
[
|
|
{
|
|
"id": "001",
|
|
"name": "Loja Principal",
|
|
"store": "001 - Loja Principal"
|
|
}
|
|
]
|
|
```
|
|
|
|
#### Listar Vendedores
|
|
```http
|
|
GET /api/v1/data-consult/sellers
|
|
```
|
|
|
|
**Resposta**
|
|
```json
|
|
[
|
|
{
|
|
"id": "001",
|
|
"name": "João Silva"
|
|
}
|
|
]
|
|
```
|
|
|
|
#### Consultar Faturamento
|
|
```http
|
|
GET /api/v1/data-consult/billings
|
|
```
|
|
|
|
**Resposta**
|
|
```json
|
|
[
|
|
{
|
|
"id": "001",
|
|
"date": "2024-04-02T10:00:00Z",
|
|
"total": 1000.00
|
|
}
|
|
]
|
|
```
|
|
|
|
#### Filtrar Clientes
|
|
```http
|
|
GET /api/v1/data-consult/customers/:filter
|
|
```
|
|
|
|
**Parâmetros**
|
|
- `filter`: Termo de busca (nome, documento, etc.)
|
|
|
|
**Resposta**
|
|
```json
|
|
[
|
|
{
|
|
"id": "001",
|
|
"name": "Maria Silva",
|
|
"document": "123.456.789-00"
|
|
}
|
|
]
|
|
```
|
|
|
|
#### Buscar Produtos
|
|
```http
|
|
GET /api/v1/data-consult/products/:filter
|
|
```
|
|
|
|
**Parâmetros**
|
|
- `filter`: Termo de busca (nome, código, etc.)
|
|
|
|
**Resposta**
|
|
```json
|
|
[
|
|
{
|
|
"id": "001",
|
|
"name": "Produto Exemplo",
|
|
"manufacturerCode": "ABC123"
|
|
}
|
|
]
|
|
```
|
|
|
|
### Pedidos e Pagamentos
|
|
|
|
#### Listar Pedidos da Loja
|
|
```http
|
|
GET /api/v1/orders-payment/orders/:id
|
|
```
|
|
|
|
**Parâmetros**
|
|
- `id`: ID da loja
|
|
|
|
**Resposta**
|
|
```json
|
|
[
|
|
{
|
|
"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
|
|
```http
|
|
GET /api/v1/orders-payment/orders/:id/:orderId
|
|
```
|
|
|
|
**Parâmetros**
|
|
- `id`: ID da loja
|
|
- `orderId`: ID do pedido
|
|
|
|
**Resposta**
|
|
```json
|
|
{
|
|
"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
|
|
```http
|
|
GET /api/v1/orders-payment/payments/:id
|
|
```
|
|
|
|
**Parâmetros**
|
|
- `id`: ID do pedido
|
|
|
|
**Resposta**
|
|
```json
|
|
[
|
|
{
|
|
"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
|
|
```http
|
|
POST /api/v1/orders-payment/payments/create
|
|
```
|
|
|
|
**Corpo da Requisição**
|
|
```json
|
|
{
|
|
"orderId": 12345,
|
|
"card": "**** **** **** 1234",
|
|
"auth": "A12345",
|
|
"nsu": "123456789",
|
|
"installments": 3,
|
|
"amount": 1000.00,
|
|
"flagName": "VISA",
|
|
"paymentType": "CREDITO",
|
|
"userId": 1
|
|
}
|
|
```
|
|
|
|
#### Criar Fatura
|
|
```http
|
|
POST /api/v1/orders-payment/invoice/create
|
|
```
|
|
|
|
**Corpo da Requisição**
|
|
```json
|
|
{
|
|
"orderId": 12345,
|
|
"userId": 1
|
|
}
|
|
```
|
|
|
|
## Modelos de Dados
|
|
|
|
### OrderDto
|
|
```typescript
|
|
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
|
|
```typescript
|
|
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
|
|
|
|
```bash
|
|
# 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
|
|
}' |