Documentação da API - ERP Escale+ Pular para o conteúdo principal
API Docs v1.0

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
REST
Arquitetura
JSON
Formato de dados
Bearer
Autenticação

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"
Importante: O token é exibido apenas uma vez ao ser gerado. Guarde-o em local seguro. O proprietário pode bloquear, desbloquear ou revogar o token a qualquer momento pelo painel.

Códigos de Erro

Código Descrição
200Sucesso
201Recurso criado com sucesso
401Não autenticado — Token inválido ou ausente
403Acesso negado — Token bloqueado ou sem permissão
404Recurso não encontrado
422Validação falhou — Dados enviados são inválidos
429Rate limit excedido — Máximo de 120 requisições/minuto
500Erro 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

GET /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

GET /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

GET /api/v1/products

Lista todos os produtos da empresa. Suporta filtros:

ParâmetroTipoDescrição
searchstringBuscar por nome
category_idintegerFiltrar por categoria
per_pageintegerItens por página (padrão: 30)
POST /api/v1/products

Cria um novo produto.

CampoTipoObrigatórioDescrição
namestringSimNome do produto
pricenumberSimPreço de venda
cost_pricenumberPreço de custo
stockintegerQuantidade em estoque
min_stockintegerEstoque mínimo (alerta)
skustringCódigo SKU
barcodestringCódigo de barras
category_idintegerID da categoria
descriptionstringDescrição
is_activebooleanAtivo? (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"
  }'
GET /api/v1/products/{id} — Ver detalhes
PUT /api/v1/products/{id} — Editar produto
DELETE /api/v1/products/{id} — Remover produto

Serviços

GET/api/v1/services— Listar serviços
POST/api/v1/services— Criar serviço
GET/api/v1/services/{id}— Ver detalhes
PUT/api/v1/services/{id}— Editar serviço
DELETE/api/v1/services/{id}— Remover serviço

Campos para criação/edição:

CampoTipoObrigatórioDescrição
namestringSimNome do serviço
pricenumberSimPreço
durationintegerDuração em minutos
category_idintegerID da categoria
descriptionstringDescrição
is_activebooleanAtivo?

Clientes

GET/api/v1/customers— Listar clientes
POST/api/v1/customers— Criar cliente
GET/api/v1/customers/{id}— Ver detalhes
PUT/api/v1/customers/{id}— Editar cliente
DELETE/api/v1/customers/{id}— Remover cliente

Filtros na listagem: search (busca por nome, email, telefone ou CPF/CNPJ)

Campos para criação/edição:

CampoTipoObrigatórioDescrição
namestringSimNome
emailstringE-mail
phonestringTelefone
documentstringCPF/CNPJ
addressstringEndereço
citystringCidade
statestringUF (2 letras)
zip_codestringCEP
notesstringObservações
birth_datedateData de nascimento (YYYY-MM-DD)

Fornecedores

GET/api/v1/suppliers— Listar fornecedores
POST/api/v1/suppliers— Criar fornecedor
GET/api/v1/suppliers/{id}— Ver detalhes
PUT/api/v1/suppliers/{id}— Editar fornecedor
DELETE/api/v1/suppliers/{id}— Remover fornecedor

Campos: name (obrigatório), email, phone, document, address, contact_name, notes

Categorias

GET/api/v1/categories— Listar categorias
POST/api/v1/categories— Criar categoria

Campos: name (obrigatório), type (obrigatório: product, service ou both), color (hex, ex: #FF5733)

Vendas

GET/api/v1/sales— Listar vendas
POST/api/v1/sales— Criar venda
GET/api/v1/sales/{id}— Detalhes da venda

Filtros: 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

GET/api/v1/appointments— Listar agendamentos
POST/api/v1/appointments— Criar agendamento
GET/api/v1/appointments/{id}— Ver detalhes
PUT/api/v1/appointments/{id}— Editar agendamento
DELETE/api/v1/appointments/{id}— Cancelar agendamento

Filtros: status (scheduled, confirmed, completed, cancelled, no_show), start_date, end_date

Campos para criação:

CampoTipoObrigatórioDescrição
datedateSimData (YYYY-MM-DD)
start_timestringSimHora início (HH:MM)
end_timestringHora fim
customer_idintegerID do cliente
service_idintegerID do serviço
employee_idintegerID do colaborador
statusstringStatus (padrão: scheduled)
notesstringObservações

Contas a Pagar

GET/api/v1/expenses— Listar despesas
GET/api/v1/expenses/{id}— Ver detalhes

Filtros: status, start_date, end_date (filtram por data de vencimento)

Contas a Receber

GET/api/v1/receivables— Listar recebíveis
GET/api/v1/receivables/{id}— Ver detalhes

Filtros: status, start_date, end_date

Estoque

GET/api/v1/stock-movements— Movimentações de estoque

Filtros: product_id, type (entry, exit)

Mesas

GET/api/v1/tables— Listar mesas

Caixa

GET/api/v1/cash-registers— Listar caixas
GET/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.

GET/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.

GET/api/v1/delivery-config— Obter configuração de delivery

Retorna: 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.

POST/api/atendente-ai/login— Login (email + password)
GET/api/atendente-ai/verify— Verificar token (auth:sanctum)
POST/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+