curl -X POST https://api.sistema-representantes.com.br/api/v1/sales \
-H "Content-Type: application/json" \
-H "x-api-key: sua-api-key-aqui" \
-d '{
"clienteId": "123e4567-e89b-12d3-a456-426614174000",
"representadaId": "987e6543-e89b-12d3-a456-426614174999",
"status": "Pedido",
"itens": [
{
"produtoId": "QUEIJO-MUSSARELA",
"quantidade": 10,
"valorUnitario": 45.90
}
]
}'
curl -X POST https://api.sistema-representantes.com.br/api/v1/sales \
-H "Content-Type: application/json" \
-H "x-api-key: sua-api-key-aqui" \
-d '{
"clienteId": "123e4567-e89b-12d3-a456-426614174000",
"representadaId": "987e6543-e89b-12d3-a456-426614174999",
"status": "Pedido",
"data": "2024-01-25",
"pedido": "PED-ESPECIAL-001",
"itens": [
{
"produtoId": "QUEIJO-MUSSARELA",
"quantidade": 20,
"valorUnitario": 45.90
},
{
"produtoId": "QUEIJO-PRATO",
"quantidade": 15,
"valorUnitario": 42.50
},
{
"produtoId": "REQUEIJAO-200G",
"quantidade": 30,
"valorUnitario": 8.90
}
]
}'
const saleData = {
clienteId: "123e4567-e89b-12d3-a456-426614174000",
representadaId: "987e6543-e89b-12d3-a456-426614174999",
status: "Pedido",
itens: [
{
produtoId: "PROD-001",
quantidade: 50,
valorUnitario: 25.00
},
{
produtoId: "PROD-002",
quantidade: 30,
valorUnitario: 35.50
}
]
};
const response = await fetch('https://api.sistema-representantes.com.br/api/v1/sales', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': 'sua-api-key-aqui'
},
body: JSON.stringify(saleData)
});
const result = await response.json();
if (result.success) {
console.log(`Venda criada: ${result.data.pedido}`);
console.log(`Valor total: R$ ${result.data.valor_total.toFixed(2)}`);
// Listar itens
result.data.itens.forEach(item => {
console.log(`- ${item.produto_id}: ${item.quantidade}x R$ ${item.valor_unitario} = R$ ${item.valor_total}`);
});
} else {
console.error('Erro:', result.error);
}
import requests
import json
from datetime import date
url = "https://api.sistema-representantes.com.br/api/v1/sales"
headers = {
'Content-Type': 'application/json',
'x-api-key': 'sua-api-key-aqui'
}
# Venda com data específica
data = {
"clienteId": "123e4567-e89b-12d3-a456-426614174000",
"representadaId": "987e6543-e89b-12d3-a456-426614174999",
"status": "Em processamento",
"data": date.today().strftime("%Y-%m-%d"),
"itens": [
{
"produtoId": "LEITE-INTEGRAL-1L",
"quantidade": 100,
"valorUnitario": 4.50
},
{
"produtoId": "MANTEIGA-200G",
"quantidade": 50,
"valorUnitario": 12.90
},
{
"produtoId": "IOGURTE-170G",
"quantidade": 200,
"valorUnitario": 3.20
}
]
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
if response.status_code == 201:
print(f"Venda registrada com sucesso!")
print(f"Pedido: {result['data']['pedido']}")
print(f"Data: {result['data']['data']}")
print(f"Valor Total: R$ {result['data']['valor_total']:.2f}")
print("\nItens:")
for item in result['data']['itens']:
print(f"- {item['produto_id']}: {item['quantidade']} un x R$ {item['valor_unitario']:.2f} = R$ {item['valor_total']:.2f}")
else:
print(f"Erro: {result.get('error', 'Erro desconhecido')}")
<?php
$url = 'https://api.sistema-representantes.com.br/api/v1/sales';
$headers = [
'Content-Type: application/json',
'x-api-key: sua-api-key-aqui'
];
// Venda com múltiplos produtos
$data = [
'clienteId' => '123e4567-e89b-12d3-a456-426614174000',
'representadaId' => '987e6543-e89b-12d3-a456-426614174999',
'status' => 'Pedido',
'itens' => [
[
'produtoId' => 'BEBIDA-LACTEA-1L',
'quantidade' => 48,
'valorUnitario' => 3.90
],
[
'produtoId' => 'CREAM-CHEESE-150G',
'quantidade' => 24,
'valorUnitario' => 9.50
]
]
];
$options = [
'http' => [
'header' => implode("\r\n", $headers),
'method' => 'POST',
'content' => json_encode($data)
]
];
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
$response = json_decode($result, true);
if (isset($response['success']) && $response['success']) {
echo "Venda registrada com sucesso!\n";
echo "Pedido: " . $response['data']['pedido'] . "\n";
echo "Valor Total: R$ " . number_format($response['data']['valor_total'], 2, ',', '.') . "\n";
echo "\nItens da venda:\n";
foreach ($response['data']['itens'] as $item) {
echo sprintf("- %s: %d x R$ %.2f = R$ %.2f\n",
$item['produto_id'],
$item['quantidade'],
$item['valor_unitario'],
$item['valor_total']
);
}
} else {
echo "Erro: " . $response['error'] . "\n";
}
?>
{
"success": true,
"data": {
"id": "789e0123-e89b-12d3-a456-426614174222",
"pedido": "PED-2024-003",
"data": "2024-01-25",
"cliente_id": "123e4567-e89b-12d3-a456-426614174000",
"representada_id": "987e6543-e89b-12d3-a456-426614174999",
"status": "Pedido",
"valor_total": 1824.50,
"itens": [
{
"produto_id": "QUEIJO-MUSSARELA",
"quantidade": 20,
"valor_unitario": 45.90,
"valor_total": 918.00
},
{
"produto_id": "QUEIJO-PRATO",
"quantidade": 15,
"valor_unitario": 42.50,
"valor_total": 637.50
},
{
"produto_id": "REQUEIJAO-200G",
"quantidade": 30,
"valor_unitario": 8.90,
"valor_total": 267.00
}
],
"created_at": "2024-01-25T14:30:00Z"
}
}
{
"error": "Dados de entrada inválidos",
"details": {
"clienteId": "Campo obrigatório",
"itens": "Deve conter pelo menos um item"
}
}
{
"error": "Cliente não encontrado ou inativo"
}
{
"error": "Quantidade deve ser maior que zero"
}
{
"error": "API key ausente"
}
{
"error": "Empresa inativa"
}
Vendas
Criar Venda
Registra uma nova venda com múltiplos itens
POST
/
api
/
v1
/
sales
curl -X POST https://api.sistema-representantes.com.br/api/v1/sales \
-H "Content-Type: application/json" \
-H "x-api-key: sua-api-key-aqui" \
-d '{
"clienteId": "123e4567-e89b-12d3-a456-426614174000",
"representadaId": "987e6543-e89b-12d3-a456-426614174999",
"status": "Pedido",
"itens": [
{
"produtoId": "QUEIJO-MUSSARELA",
"quantidade": 10,
"valorUnitario": 45.90
}
]
}'
curl -X POST https://api.sistema-representantes.com.br/api/v1/sales \
-H "Content-Type: application/json" \
-H "x-api-key: sua-api-key-aqui" \
-d '{
"clienteId": "123e4567-e89b-12d3-a456-426614174000",
"representadaId": "987e6543-e89b-12d3-a456-426614174999",
"status": "Pedido",
"data": "2024-01-25",
"pedido": "PED-ESPECIAL-001",
"itens": [
{
"produtoId": "QUEIJO-MUSSARELA",
"quantidade": 20,
"valorUnitario": 45.90
},
{
"produtoId": "QUEIJO-PRATO",
"quantidade": 15,
"valorUnitario": 42.50
},
{
"produtoId": "REQUEIJAO-200G",
"quantidade": 30,
"valorUnitario": 8.90
}
]
}'
const saleData = {
clienteId: "123e4567-e89b-12d3-a456-426614174000",
representadaId: "987e6543-e89b-12d3-a456-426614174999",
status: "Pedido",
itens: [
{
produtoId: "PROD-001",
quantidade: 50,
valorUnitario: 25.00
},
{
produtoId: "PROD-002",
quantidade: 30,
valorUnitario: 35.50
}
]
};
const response = await fetch('https://api.sistema-representantes.com.br/api/v1/sales', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': 'sua-api-key-aqui'
},
body: JSON.stringify(saleData)
});
const result = await response.json();
if (result.success) {
console.log(`Venda criada: ${result.data.pedido}`);
console.log(`Valor total: R$ ${result.data.valor_total.toFixed(2)}`);
// Listar itens
result.data.itens.forEach(item => {
console.log(`- ${item.produto_id}: ${item.quantidade}x R$ ${item.valor_unitario} = R$ ${item.valor_total}`);
});
} else {
console.error('Erro:', result.error);
}
import requests
import json
from datetime import date
url = "https://api.sistema-representantes.com.br/api/v1/sales"
headers = {
'Content-Type': 'application/json',
'x-api-key': 'sua-api-key-aqui'
}
# Venda com data específica
data = {
"clienteId": "123e4567-e89b-12d3-a456-426614174000",
"representadaId": "987e6543-e89b-12d3-a456-426614174999",
"status": "Em processamento",
"data": date.today().strftime("%Y-%m-%d"),
"itens": [
{
"produtoId": "LEITE-INTEGRAL-1L",
"quantidade": 100,
"valorUnitario": 4.50
},
{
"produtoId": "MANTEIGA-200G",
"quantidade": 50,
"valorUnitario": 12.90
},
{
"produtoId": "IOGURTE-170G",
"quantidade": 200,
"valorUnitario": 3.20
}
]
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
if response.status_code == 201:
print(f"Venda registrada com sucesso!")
print(f"Pedido: {result['data']['pedido']}")
print(f"Data: {result['data']['data']}")
print(f"Valor Total: R$ {result['data']['valor_total']:.2f}")
print("\nItens:")
for item in result['data']['itens']:
print(f"- {item['produto_id']}: {item['quantidade']} un x R$ {item['valor_unitario']:.2f} = R$ {item['valor_total']:.2f}")
else:
print(f"Erro: {result.get('error', 'Erro desconhecido')}")
<?php
$url = 'https://api.sistema-representantes.com.br/api/v1/sales';
$headers = [
'Content-Type: application/json',
'x-api-key: sua-api-key-aqui'
];
// Venda com múltiplos produtos
$data = [
'clienteId' => '123e4567-e89b-12d3-a456-426614174000',
'representadaId' => '987e6543-e89b-12d3-a456-426614174999',
'status' => 'Pedido',
'itens' => [
[
'produtoId' => 'BEBIDA-LACTEA-1L',
'quantidade' => 48,
'valorUnitario' => 3.90
],
[
'produtoId' => 'CREAM-CHEESE-150G',
'quantidade' => 24,
'valorUnitario' => 9.50
]
]
];
$options = [
'http' => [
'header' => implode("\r\n", $headers),
'method' => 'POST',
'content' => json_encode($data)
]
];
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
$response = json_decode($result, true);
if (isset($response['success']) && $response['success']) {
echo "Venda registrada com sucesso!\n";
echo "Pedido: " . $response['data']['pedido'] . "\n";
echo "Valor Total: R$ " . number_format($response['data']['valor_total'], 2, ',', '.') . "\n";
echo "\nItens da venda:\n";
foreach ($response['data']['itens'] as $item) {
echo sprintf("- %s: %d x R$ %.2f = R$ %.2f\n",
$item['produto_id'],
$item['quantidade'],
$item['valor_unitario'],
$item['valor_total']
);
}
} else {
echo "Erro: " . $response['error'] . "\n";
}
?>
{
"success": true,
"data": {
"id": "789e0123-e89b-12d3-a456-426614174222",
"pedido": "PED-2024-003",
"data": "2024-01-25",
"cliente_id": "123e4567-e89b-12d3-a456-426614174000",
"representada_id": "987e6543-e89b-12d3-a456-426614174999",
"status": "Pedido",
"valor_total": 1824.50,
"itens": [
{
"produto_id": "QUEIJO-MUSSARELA",
"quantidade": 20,
"valor_unitario": 45.90,
"valor_total": 918.00
},
{
"produto_id": "QUEIJO-PRATO",
"quantidade": 15,
"valor_unitario": 42.50,
"valor_total": 637.50
},
{
"produto_id": "REQUEIJAO-200G",
"quantidade": 30,
"valor_unitario": 8.90,
"valor_total": 267.00
}
],
"created_at": "2024-01-25T14:30:00Z"
}
}
{
"error": "Dados de entrada inválidos",
"details": {
"clienteId": "Campo obrigatório",
"itens": "Deve conter pelo menos um item"
}
}
{
"error": "Cliente não encontrado ou inativo"
}
{
"error": "Quantidade deve ser maior que zero"
}
{
"error": "API key ausente"
}
{
"error": "Empresa inativa"
}
Cria uma nova venda no sistema. O valor total é calculado automaticamente com base nos itens. Se não fornecer um código de pedido, será gerado automaticamente.
Você precisa de uma API key válida no header x-api-key para usar este endpoint.
Cálculo Automático: O valor total da venda é calculado automaticamente somando (quantidade × valor unitário) de cada item.
Headers
string
required
application/json
string
required
API key de autenticação
Body
Informações da Venda
string
required
ID do cliente (UUID)Deve ser um cliente cadastrado e ativo
string
required
ID da representada (UUID)Deve ser uma representada cadastrada
string
default:"PAGA"
Status da vendaValores aceitos:
PAGA- Venda paga (padrão)AGUARDANDO PAGAMENTO- Aguardando pagamentoCANCELADA- Venda canceladaENVIADA- Venda enviadaENTREGUE- Venda entregue
string
Data da venda no formato YYYY-MM-DDSe não fornecida, usa a data atual
string
Código do pedidoSe não fornecido, gera automaticamente no formato: PED-YYYY-XXXX
Itens da Venda
array
required
curl -X POST https://api.sistema-representantes.com.br/api/v1/sales \
-H "Content-Type: application/json" \
-H "x-api-key: sua-api-key-aqui" \
-d '{
"clienteId": "123e4567-e89b-12d3-a456-426614174000",
"representadaId": "987e6543-e89b-12d3-a456-426614174999",
"status": "Pedido",
"itens": [
{
"produtoId": "QUEIJO-MUSSARELA",
"quantidade": 10,
"valorUnitario": 45.90
}
]
}'
curl -X POST https://api.sistema-representantes.com.br/api/v1/sales \
-H "Content-Type: application/json" \
-H "x-api-key: sua-api-key-aqui" \
-d '{
"clienteId": "123e4567-e89b-12d3-a456-426614174000",
"representadaId": "987e6543-e89b-12d3-a456-426614174999",
"status": "Pedido",
"data": "2024-01-25",
"pedido": "PED-ESPECIAL-001",
"itens": [
{
"produtoId": "QUEIJO-MUSSARELA",
"quantidade": 20,
"valorUnitario": 45.90
},
{
"produtoId": "QUEIJO-PRATO",
"quantidade": 15,
"valorUnitario": 42.50
},
{
"produtoId": "REQUEIJAO-200G",
"quantidade": 30,
"valorUnitario": 8.90
}
]
}'
const saleData = {
clienteId: "123e4567-e89b-12d3-a456-426614174000",
representadaId: "987e6543-e89b-12d3-a456-426614174999",
status: "Pedido",
itens: [
{
produtoId: "PROD-001",
quantidade: 50,
valorUnitario: 25.00
},
{
produtoId: "PROD-002",
quantidade: 30,
valorUnitario: 35.50
}
]
};
const response = await fetch('https://api.sistema-representantes.com.br/api/v1/sales', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': 'sua-api-key-aqui'
},
body: JSON.stringify(saleData)
});
const result = await response.json();
if (result.success) {
console.log(`Venda criada: ${result.data.pedido}`);
console.log(`Valor total: R$ ${result.data.valor_total.toFixed(2)}`);
// Listar itens
result.data.itens.forEach(item => {
console.log(`- ${item.produto_id}: ${item.quantidade}x R$ ${item.valor_unitario} = R$ ${item.valor_total}`);
});
} else {
console.error('Erro:', result.error);
}
import requests
import json
from datetime import date
url = "https://api.sistema-representantes.com.br/api/v1/sales"
headers = {
'Content-Type': 'application/json',
'x-api-key': 'sua-api-key-aqui'
}
# Venda com data específica
data = {
"clienteId": "123e4567-e89b-12d3-a456-426614174000",
"representadaId": "987e6543-e89b-12d3-a456-426614174999",
"status": "Em processamento",
"data": date.today().strftime("%Y-%m-%d"),
"itens": [
{
"produtoId": "LEITE-INTEGRAL-1L",
"quantidade": 100,
"valorUnitario": 4.50
},
{
"produtoId": "MANTEIGA-200G",
"quantidade": 50,
"valorUnitario": 12.90
},
{
"produtoId": "IOGURTE-170G",
"quantidade": 200,
"valorUnitario": 3.20
}
]
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
if response.status_code == 201:
print(f"Venda registrada com sucesso!")
print(f"Pedido: {result['data']['pedido']}")
print(f"Data: {result['data']['data']}")
print(f"Valor Total: R$ {result['data']['valor_total']:.2f}")
print("\nItens:")
for item in result['data']['itens']:
print(f"- {item['produto_id']}: {item['quantidade']} un x R$ {item['valor_unitario']:.2f} = R$ {item['valor_total']:.2f}")
else:
print(f"Erro: {result.get('error', 'Erro desconhecido')}")
<?php
$url = 'https://api.sistema-representantes.com.br/api/v1/sales';
$headers = [
'Content-Type: application/json',
'x-api-key: sua-api-key-aqui'
];
// Venda com múltiplos produtos
$data = [
'clienteId' => '123e4567-e89b-12d3-a456-426614174000',
'representadaId' => '987e6543-e89b-12d3-a456-426614174999',
'status' => 'Pedido',
'itens' => [
[
'produtoId' => 'BEBIDA-LACTEA-1L',
'quantidade' => 48,
'valorUnitario' => 3.90
],
[
'produtoId' => 'CREAM-CHEESE-150G',
'quantidade' => 24,
'valorUnitario' => 9.50
]
]
];
$options = [
'http' => [
'header' => implode("\r\n", $headers),
'method' => 'POST',
'content' => json_encode($data)
]
];
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
$response = json_decode($result, true);
if (isset($response['success']) && $response['success']) {
echo "Venda registrada com sucesso!\n";
echo "Pedido: " . $response['data']['pedido'] . "\n";
echo "Valor Total: R$ " . number_format($response['data']['valor_total'], 2, ',', '.') . "\n";
echo "\nItens da venda:\n";
foreach ($response['data']['itens'] as $item) {
echo sprintf("- %s: %d x R$ %.2f = R$ %.2f\n",
$item['produto_id'],
$item['quantidade'],
$item['valor_unitario'],
$item['valor_total']
);
}
} else {
echo "Erro: " . $response['error'] . "\n";
}
?>
Response
Sucesso
boolean
Indica se a operação foi bem-sucedida
object
Dados da venda criada
Show Estrutura da venda
Show Estrutura da venda
string
ID único da venda (UUID)
string
Código do pedido (gerado automaticamente se não fornecido)
string
Data da venda (formato: YYYY-MM-DD)
string
ID do cliente
string
ID da representada
string
Status da venda
number
Valor total calculado automaticamente
array
string
Data de criação (ISO 8601)
Erro
string
Mensagem de erro descritiva
{
"success": true,
"data": {
"id": "789e0123-e89b-12d3-a456-426614174222",
"pedido": "PED-2024-003",
"data": "2024-01-25",
"cliente_id": "123e4567-e89b-12d3-a456-426614174000",
"representada_id": "987e6543-e89b-12d3-a456-426614174999",
"status": "Pedido",
"valor_total": 1824.50,
"itens": [
{
"produto_id": "QUEIJO-MUSSARELA",
"quantidade": 20,
"valor_unitario": 45.90,
"valor_total": 918.00
},
{
"produto_id": "QUEIJO-PRATO",
"quantidade": 15,
"valor_unitario": 42.50,
"valor_total": 637.50
},
{
"produto_id": "REQUEIJAO-200G",
"quantidade": 30,
"valor_unitario": 8.90,
"valor_total": 267.00
}
],
"created_at": "2024-01-25T14:30:00Z"
}
}
{
"error": "Dados de entrada inválidos",
"details": {
"clienteId": "Campo obrigatório",
"itens": "Deve conter pelo menos um item"
}
}
{
"error": "Cliente não encontrado ou inativo"
}
{
"error": "Quantidade deve ser maior que zero"
}
{
"error": "API key ausente"
}
{
"error": "Empresa inativa"
}
Validações
O sistema aplica as seguintes validações:Campos obrigatórios:
clienteId: Deve existir e estar ativorepresentadaId: Deve existirstatus: Deve ser um status válidoitens: Array com pelo menos um item
produtoId: Obrigatórioquantidade: Maior que zerovalorUnitario: Maior que zero
- Cliente deve pertencer à mesma empresa da API key
- Data não pode ser futura
Códigos de Pedido
Se o campo
pedido não for fornecido, o sistema gera automaticamente:- Formato:
PED-YYYY-XXXX - YYYY = Ano atual
- XXXX = Número sequencial
- Exemplos: PED-2024-0001, PED-2024-0002…
- O código é único por empresa
Cálculo de Valores
Cálculo Automático do Valor Total:O sistema calcula automaticamente:Não é necessário (nem possível) enviar o valor total - ele sempre será calculado pelo sistema.
- Valor total de cada item:
quantidade × valorUnitario - Valor total da venda: soma de todos os itens
Item 1: 10 × R$ 45,90 = R$ 459,00
Item 2: 5 × R$ 32,50 = R$ 162,50
Total da Venda: R$ 621,50