API do ERP Escale+
Integre seu sistema ao ERP Escale+ usando nossa API REST. Acesse dados de produtos, clientes, vendas, agendamentos, estoque e muito mais de forma programática.
Base URL
https://erp.escalemais.com/api/v1
Autenticação
Todas as requisições devem incluir o token de autenticação no header Authorization.
O token pode ser gerado e gerenciado na seção API do painel do proprietário no ERP.
curl -X GET https://erp.escalemais.com/api/v1/products \
-H "Authorization: Bearer seu_token_aqui" \
-H "Accept: application/json" \
-H "Content-Type: application/json"
Códigos de Erro
| Código | Descrição |
|---|---|
| 200 | Sucesso |
| 201 | Recurso criado com sucesso |
| 401 | Não autenticado — Token inválido ou ausente |
| 403 | Acesso negado — Token bloqueado ou sem permissão |
| 404 | Recurso não encontrado |
| 422 | Validação falhou — Dados enviados são inválidos |
| 429 | Rate limit excedido — Máximo de 120 requisições/minuto |
| 500 | Erro interno do servidor |
Paginação
Endpoints que retornam listas usam paginação. Use os parâmetros page e per_page (padrão: 30, máximo: 100).
GET /api/v1/products?page=2&per_page=15
// Resposta inclui:
{
"current_page": 2,
"data": [...],
"last_page": 5,
"per_page": 15,
"total": 72,
"next_page_url": "...?page=3",
"prev_page_url": "...?page=1"
}
Minha Conta
/api/v1/me
Retorna os dados do usuário autenticado e sua empresa vinculada.
Exemplo de resposta
{
"user": {
"id": 1,
"name": "João Silva",
"email": "joao@empresa.com",
"role": "owner"
},
"business": {
"id": 1,
"name": "Minha Empresa Ltda",
"document": "12.345.678/0001-90",
"phone": "(67) 99999-0000",
"email": "contato@empresa.com",
"address": "Rua Exemplo, 123",
"city": "Campo Grande",
"state": "MS",
"zip_code": "79000-000"
}
}
Dashboard
/api/v1/dashboard
Retorna KPIs e resumo financeiro do mês atual.
Exemplo de resposta
{
"period": { "start": "2026-02-01", "end": "2026-02-28" },
"sales": { "count": 148, "total": 45230.50 },
"expenses": { "count": 32, "total": 12450.00 },
"customers_count": 256,
"products_count": 89,
"services_count": 15,
"low_stock_products": 3
}
Produtos
/api/v1/products
Lista todos os produtos da empresa. Suporta filtros:
| Parâmetro | Tipo | Descrição |
|---|---|---|
search | string | Buscar por nome |
category_id | integer | Filtrar por categoria |
per_page | integer | Itens por página (padrão: 30) |
/api/v1/products
Cria um novo produto.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | Nome do produto |
price | number | Sim | Preço de venda |
cost_price | number | — | Preço de custo |
stock | integer | — | Quantidade em estoque |
min_stock | integer | — | Estoque mínimo (alerta) |
sku | string | — | Código SKU |
barcode | string | — | Código de barras |
category_id | integer | — | ID da categoria |
description | string | — | Descrição |
is_active | boolean | — | Ativo? (padrão: true) |
Exemplo
curl -X POST https://erp.escalemais.com/api/v1/products \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Camiseta Escale+",
"price": 79.90,
"cost_price": 25.00,
"stock": 100,
"min_stock": 10,
"sku": "CAM-001"
}'
/api/v1/products/{id}
— Ver detalhes
/api/v1/products/{id}
— Editar produto
/api/v1/products/{id}
— Remover produto
Serviços
/api/v1/services— Listar serviços/api/v1/services— Criar serviço/api/v1/services/{id}— Ver detalhes/api/v1/services/{id}— Editar serviço/api/v1/services/{id}— Remover serviçoCampos para criação/edição:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | Nome do serviço |
price | number | Sim | Preço |
duration | integer | — | Duração em minutos |
category_id | integer | — | ID da categoria |
description | string | — | Descrição |
is_active | boolean | — | Ativo? |
Clientes
/api/v1/customers— Listar clientes/api/v1/customers— Criar cliente/api/v1/customers/{id}— Ver detalhes/api/v1/customers/{id}— Editar cliente/api/v1/customers/{id}— Remover clienteFiltros na listagem: search (busca por nome, email, telefone ou CPF/CNPJ)
Campos para criação/edição:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | Nome |
email | string | — | |
phone | string | — | Telefone |
document | string | — | CPF/CNPJ |
address | string | — | Endereço |
city | string | — | Cidade |
state | string | — | UF (2 letras) |
zip_code | string | — | CEP |
notes | string | — | Observações |
birth_date | date | — | Data de nascimento (YYYY-MM-DD) |
Fornecedores
/api/v1/suppliers— Listar fornecedores/api/v1/suppliers— Criar fornecedor/api/v1/suppliers/{id}— Ver detalhes/api/v1/suppliers/{id}— Editar fornecedor/api/v1/suppliers/{id}— Remover fornecedorCampos: name (obrigatório), email, phone, document, address, contact_name, notes
Categorias
/api/v1/categories— Listar categorias/api/v1/categories— Criar categoriaCampos: name (obrigatório), type (obrigatório: product, service ou both), color (hex, ex: #FF5733)
Vendas
/api/v1/sales— Listar vendas/api/v1/sales— Criar venda/api/v1/sales/{id}— Detalhes da vendaFiltros: status, customer_id, start_date, end_date
Exemplo: Criar venda
curl -X POST https://erp.escalemais.com/api/v1/sales \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{
"customer_id": 1,
"payment_method": "pix",
"discount": 5.00,
"sale_type": "delivery",
"source": "atendente_ai",
"delivery_fee": 5.00,
"delivery_address": "Rua Exemplo, 123",
"delivery_phone": "5511999998888",
"items": [
{
"product_id": 10,
"quantity": 2,
"unit_price": 79.90,
"discount": 0
},
{
"service_id": 3,
"quantity": 1,
"unit_price": 150.00,
"discount": 10
}
]
}'
Campos opcionais adicionais: sale_type (takeout, delivery, table, other), source (api, pedido_online, atendente_ai), delivery_fee, delivery_address, delivery_phone, delivery_instructions, status (padrão: completed).
Vendas criadas com itens são automaticamente inseridas no pipeline padrão do negócio (se existir).
Agendamentos
/api/v1/appointments— Listar agendamentos/api/v1/appointments— Criar agendamento/api/v1/appointments/{id}— Ver detalhes/api/v1/appointments/{id}— Editar agendamento/api/v1/appointments/{id}— Cancelar agendamentoFiltros: status (scheduled, confirmed, completed, cancelled, no_show), start_date, end_date
Campos para criação:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
date | date | Sim | Data (YYYY-MM-DD) |
start_time | string | Sim | Hora início (HH:MM) |
end_time | string | — | Hora fim |
customer_id | integer | — | ID do cliente |
service_id | integer | — | ID do serviço |
employee_id | integer | — | ID do colaborador |
status | string | — | Status (padrão: scheduled) |
notes | string | — | Observações |
Contas a Pagar
/api/v1/expenses— Listar despesas/api/v1/expenses/{id}— Ver detalhesFiltros: status, start_date, end_date (filtram por data de vencimento)
Contas a Receber
/api/v1/receivables— Listar recebíveis/api/v1/receivables/{id}— Ver detalhesFiltros: status, start_date, end_date
Estoque
/api/v1/stock-movements— Movimentações de estoqueFiltros: product_id, type (entry, exit)
Mesas
/api/v1/tables— Listar mesasCaixa
/api/v1/cash-registers— Listar caixas/api/v1/cash-registers/{id}— Detalhes (com transações)Filtros: status (open, closed)
Pipelines
Pipelines de produção/preparo com estágios configuráveis. Pedidos criados via API são automaticamente inseridos no pipeline padrão.
/api/v1/pipelines— Listar pipelines ativos (com estágios)Retorna todos os pipelines ativos da empresa com seus estágios (stages) ordenados por posição. Cada estágio possui: name, is_initial, is_final, color.
Configuração de Delivery
Configurações de entrega do negócio: taxas de frete, raio máximo e endereço da empresa.
/api/v1/delivery-config— Obter configuração de deliveryRetorna: has_config (bool), fee_fixed (taxa fixa), fee_per_km (taxa por km), max_km (raio máximo), latitude, longitude, business_name, business_address, business_city, business_state, business_phone.
Atendente AI
Endpoints para autenticação do aplicativo desktop Atendente AI. Requer que o plano tenha has_ai_attendant habilitado.
/api/atendente-ai/login— Login (email + password)/api/atendente-ai/verify— Verificar token (auth:sanctum)/api/atendente-ai/logout— Logout (auth:sanctum)Login: Envia email e password. Retorna token Sanctum com ability atendente-ai:access.
Verify: Retorna dados do usuário autenticado (nome, email, empresa, plano).
Pronto para integrar?
Acesse o painel do ERP, vá em API no menu lateral e gere seu token.
Acessar ERP Escale+