Instruções para Utilização da API de acesso aos dados do ERP Spalla

1. INTRODUÇÃO


Esta documentação tem como finalidade prover informações sobre a forma de acesso aos dados do SPALLA por meio da API e integração.

2. URL BASE

A API deve ser instalada no servidor do cliente como um serviço do SPALLA, para isto deve-se atribuir as configurações da BASE DE DADOS de integração, a Porta de Comunicação e o Tipo de Protocolo de Transferência a ser utilizado nas requisições sendo eles HTTP ou HTTPS.

A Url Base da API possui a seguinte estrutura

Protocolo Endereço Porta Path Raiz
https api.apelido.spalla.app 443 /root

Exemplo de URL Base da API:

URL Completa da API:
https://api.apelido.spalla.app:443/root

Observação: os endereços, portas e tokens utilizados nesta documentação são exemplos genéricos. Substitua api.apelido.spalla.app, a porta e o token <SEU_TOKEN_AQUI> pelos valores reais fornecidos para a sua instalação do SPALLA.

Estrutura da URL:


# Formato Geral
https://api.apelido.spalla.app:55002/root

# URL Base (sem o path /root)
https://api.apelido.spalla.app:443

# Observação:
# - Quando a porta é 443 (HTTPS padrão) ou 80 (HTTP padrão), ela não aparece na URL
# - Exemplos: https://api.apelido.spalla.app/root (porta 443 implícita)

3. ENDPOINTS COM AUTENTICAÇÃO


A API Spalla oferece duas formas independentes de autenticação. Escolha apenas uma; elas não são combinadas na mesma requisição.

Forma Como funciona Validade Quando usar
A) clientNonce + sessionSignature
(ver item 2)
Dois passos: (1) obter clientNonce com o login do usuário; (2) obter sessionSignature combinando clientNonce + senha. O sessionSignature é enviado em todas as requisições seguintes. Temporária: expira em 5 minutos de inatividade. Após expirar é necessário gerar um novo sessionSignature. Aplicações que fazem login interativo com usuário e senha (ex.: app mobile Spalla, software que exige autenticação por sessão).
B) userToken
(ver item 3)
Chave permanente cadastrada para um usuário específico de integração. Enviada em cada requisição via QueryParam ou HEADER. Permanente: não expira por tempo. Só perde validade se for revogada/substituída manualmente no cadastro do usuário de integração. Integrações máquina-a-máquina (sistemas terceiros, BI, ETL, automações). É a forma recomendada para integradores que rodam sem supervisão humana.

Em resumo:

A seguir, a documentação detalhada de cada uma.

clientNonce

Este endPoint fornece um ID único para que seja executada uma comunicação direta com os dados a aplicação SPALLA, ele deve ser executado sempre antes da autenticação para que seja possível obter o ID único de Autenticação que será utilizado no login.

O ClientNonce é um hash único gerado a partir de um valor aleatório e do login do usuário, ele é utilizado para garantir a segurança da comunicação entre o cliente e o servidor.

Tipo Parâmetro Descrição
Query UserName Login do Usuário Spalla

Exemplo:


# Exemplo de Requisição para Geração do ClientNonce

https://api.apelido.spalla.app:443/root/clientNonce?UserName=SUPORTE

Response:


{
    "result": "66f4966d5b78de54f0ffdcb9fd5b4db5c1a1e4012ebfb81ef343929e42b2c512"
}

SessionSignature

O SessionSignature é o método de autenticação da API, ele é gerado a partir do ClientNonce e do Password do usuário, ele é utilizado para assinar a sessão do usuário garantindo assim a autenticação do mesmo para a utilização dos demais endPoints.

A sessão de usuário assinada com o SessionSignature tem um tempo de expiração de 5 minutos em caso de inatividade, após este tempo é necessário gerar um novo SessionSignature.

Tipo Params Descrição
Query UserName Login do Usuário Mobile
Query PassWord Senha do Usuário Mobile
Query ClientNonce ClientNonce gerado na etapa anterior

Exemplo:


# Exemplo de Requisição para Geração do SessionSignature

https://api.apelido.spalla.app:443/Auth?UserName=SUPORTE&PassWord=123456&ClientNonce=66f4966d5b78de54f0ffdcb9fd5b4db5c1a1e4012ebfb81ef343929e42b2c512

Response:


{
    "usuario": "SUPORTE",
    "timeout": 60,
    "session_signature": "00021d4a4142ffd2993007e514df8005685ce05f6aae641e3df54ed7055ace6adc6a2a11"
}

3. ENDPOINTS COM CHAVE DE INTEGRAÇÃO


Para uma integração com aplicações de forma mais prática também disponibilizamos um endPoint um pouco mais simples que exige apenas o parâmetro userToken, este endPoint possui todos os recursos já disponibilizados porém existe apenas uma chave de acesso única que deve ser cadastrada para o usuário. Esta chave de acesso está vinculada a um usuário que será liberado para o integrador e estará vinculada a um conjunto de recursos que atender ao escopo da integração

O userToken pode ser informado tanto como QueryParam na requisição quanto no HEADER, sendo que caso exista a informação como QueryParam ela ignora o HEADER, e caso não exista ai ela passa a buscar pelo HEADER

Tipo Parâmetro Descrição
Query userToken Token de Acesso o Usuário da Integração
HEADER userToken Token de Acesso o Usuário da Integração

4. MÉTODOS


ATENÇÃO - ARQUITETURA UNIFICADA:

A API Spalla utiliza uma arquitetura de endpoint unificado. O método HTTP padrão para todas as requisições é PATCH. Para operações de gravação (POST, PUT, DELETE, PATCH no body JSON), o uso do método HTTP PATCH é obrigatório. Para operações de leitura (GET no body JSON), caso o software utilizado possua restrições quanto ao uso do método PATCH (ex: PowerBI), os métodos POST ou GET podem ser utilizados como alternativa.

O método HTTP informado na URL é independente da operação SQL a ser realizada. A operação real (consulta, inserção, atualização, exclusão ou execução de procedure) é determinada exclusivamente pelo campo "method" dentro do corpo JSON da requisição.

Como Funciona a Estrutura de Requisições

A API utiliza um conceito diferente do padrão REST tradicional. O método HTTP informado no cabeçalho da requisição não determina a operação que será executada no banco de dados. Em vez disso, a operação real é definida pelo campo "method" dentro do corpo JSON da requisição.

Estrutura Geral das Requisições:

Componente Descrição Exemplo
Método HTTP Padrão: PATCH (obrigatório para gravação). Para leitura, POST ou GET podem ser usados como alternativa em softwares com restrição ao PATCH (ex: PowerBI) PATCH
Endpoint Sempre o mesmo para todas as operações /root/integrador
Autenticação Via header userToken ou sessionSignature userToken: <SEU_TOKEN_AQUI>
Body JSON Contém o campo "method" com a operação SQL real { "method": "GET", ... }

Exemplo Visual da Arquitetura:


# EXEMPLO 1: Consulta de dados (leitura)
# O método HTTP padrão é PATCH. Para leitura, POST ou GET podem ser usados como alternativa

Requisição HTTP:
    Método HTTP: PATCH (padrão) ou POST/GET (alternativa para leitura)
    URL: https://api.apelido.spalla.app:443/root/integrador
    Header: userToken: <SEU_TOKEN_AQUI>
    Body: {
        "method": "GET",              <-- Método SQL (operação real)
        "objectType": "TABLE",
        "objectName": "CLIFOR"
    }

# EXEMPLO 2: Inserção de dados (gravação)
# Para gravação, o método HTTP PATCH é obrigatório

Requisição HTTP:
    Método HTTP: PATCH (obrigatório para gravação)
    URL: https://api.apelido.spalla.app:443/root/integrador
    Header: userToken: <SEU_TOKEN_AQUI>
    Body: {
        "method": "POST",             <-- Método SQL (operação real)
        "objectType": "TABLE",
        "objectName": "CLIFOR",
        "dataFields": [...]
    }

RESUMO IMPORTANTE:

Métodos SQL Disponíveis (Campo "method" no Body)

Abaixo segue a documentação dos métodos SQL que podem ser especificados no campo "method" do corpo JSON para acesso aos dados do SPALLA:

Método SQL Operação Objetos Suportados
GET Consulta de dados (SELECT) TABLE, VIEW, FUNCTION, PROCEDURE RESULT
POST Inserção de dados (INSERT) TABLE
PUT Atualização de dados (UPDATE) TABLE
DELETE Exclusão de dados (DELETE) TABLE
PATCH Execução de procedures e functions PROCEDURE, FUNCTION

Diferença entre PROCEDURE e PROCEDURE RESULT:

Tipos de Dados e Formatação de Valores

Regras para formatar os valores enviados em dataFields, params, where e having nos métodos POST, PUT, DELETE e PATCH. A API converte internamente todos os valores recebidos em texto antes de aplicar ao banco de dados.

Tipo no SAP SQL Anywhere Formato JSON aceito Exemplo
integer, numeric, decimal, float, double Número JSON ou string. Ponto como separador decimal. Sem separador de milhar. Sem símbolo de moeda. 1234 ou "1234.56"
date (somente data) String no formato ISO-8601 "YYYY-MM-DD". "2026-04-21"
timestamp (data e hora) String no formato ISO-8601 "YYYY-MM-DDTHH:MM:SS" (preferencial). Frações de segundo opcionais (.SSS). O formato alternativo "YYYY-MM-DD HH:MM:SS" também é aceito. Informações de fuso horário são ignoradas — usar sempre o horário do servidor. "2026-04-21T12:05:13" ou "2026-04-21T12:05:13.000"
time (somente hora) String no formato "HH:MM:SS". "12:05:13"
varchar, long varchar, char String JSON. "Texto qualquer"
long binary, binary (BLOB) String com o conteúdo em Base64. O objeto em dataFields deve incluir "fieldType": "ftBlob". { "name": "ARQUIVO", "fieldType": "ftBlob", "value": "U1BBTExB..." }
Valor nulo Literal JSON null ou string "NULL" (case-insensitive). null ou "NULL"

Observações importantes:

GET

A requisição do tipo GET é utilizada para consultas de dados, ela é feita por meio de um Script JSON que é enviado no corpo da requisição BODY e é interpretada pela API.

O Script JSON é composto por um conjunto de parâmetros que são utilizados para a consulta dos dados, abaixo segue a documentação dos parâmetros.

Params Descrição
method Método SQL a executar (GET, POST, PUT, DELETE, PATCH)
objectType Tipo de Objeto a ser consultado
objectName Nome da Tabela, View ou Procedure Result a ser consultada
limit Número de registros que serão retornados na consulta
offset Número de registros que serão ignorados no inicio da consulta
fields Lista de campos a exibir no SELECT, Os campos podem ser informados um a um ou separados por vírgula
fieldsIgnore Ignora os campos a exibir no SELECT
calculatedFields Campos Calculados a exibir no SELECT
params Usado somente para os objetos [ "FUNCTION", "PROCEDURE RESULT" ]
where Lista de campos e expressões para o WHERE
groupBy Lista de campos para agrupamento da busca. É utilizado uma Lista de Strings.
having Lista de campos e expressões para o HAVING
orderBy Lista de campos para ordenação da busca. É utilizado uma Lista de Strings.

Através do método GET é possível realizar consultas nos seguintes Objetos

ObjectType Descrição
TABLE Tabela do Banco de Dados
VIEW View do Banco de Dados
FUNCTION Função do Banco de Dados com retorno
PROCEDURE RESULT Procedure do Banco de Dados com Retorno SQL

Exemplo:


{
    // *** Método a Ser Executado
    // Nome do método invocado no SQL
    "method": "GET"

    // *** Tipo do Objeto
    // Tipo do Objeto do Select [ TABLE, VIEW, FUNCTION, PROCEDURE RESULT ]
    ,"objectType": "PROCEDURE RESULT"

    // *** Nome do Objeto
    // Nome do Objeto do Select
    ,"objectName": "PRC_RES_CLIFOR1"

    // *** Limit / QUantidade de Registros
    // Quantidade de Registros por resultado
    ,"limit": 5

    // *** Offset / Paginação
    // Registros a pular ( Qtde informada x Limit )
    // Ex: Limit: 5 e Offset : 1 apresentaria os registros de 1 a 5
    // Ex: Limit: 5 e Offset : 2 apresentaria os registros de 6 a 10
    ,"offset": 1

    // *** Campos do Select
    ,"fields": [
        "CF_COD",
        "CF_RSOCIAL",
        "CF_CPFCGC",
        "CF_STATUS"
    ]

    // *** Campos a Ignorar
    // Ignora apenas os campos informados e retorna todos os outros
    // Utilizar apenas um dos grupo "fields" ou "fieldsIgnore" nunca os dois juntos
    // Informar os campos de forma individual separados por vírgula
    ,"fieldsIgnore": [ "CF_RSOCIAL" ]

    // *** Campos Calculados
    // Campos com Expressões SQL, campos fabricados com base nos dados da tabela
    // Informar os campos de forma individual separados por vírgula
    ,"calculatedFields" : [
        "1 AS calculatedFields1",
        "2 AS calculatedFields2",
        "3 AS calculatedFields3"
    ]

    // *** Parâmetros
    // Lista de parâmetros e valores a aplicar na procedure antes do WHERE
    ,"params" : [
        // Parâmetros da Função ou da Procedure com Result
        {
            "name" : "pCF_COD",
            "value": "8"
        }
    ]

    // *** where
    // Expressões de filtros aplicadas no WHERE do SQL
    ,"where": [
        // Campos da Tabela
        {
          "type": "Field",
          "name": "CF_STATUS",
          "value": 1
        }

        // Campos calculados
        ,{
          "type": "Field",
          "name": "calculatedFields3",
          "value": 3
        }

        // Expressões SQL
        ,{
          "type": "Expression",
          "value": "CF_COD > 0"
        }
    ]

    // Group By
    // Campos a Agrupar no resultado do SQL
    // Informar os campos de forma individual separados por vírgula
    ,"groupBy" : [
        "CF_COD",
        "CF_RSOCIAL",
        "CF_CPFCGC",
        "CF_STATUS"
    ]

    // *** Having
    // Lista de condições a aplicar depois do SQL pronto
    // Estes filtros são aplicados após os filtros do WHERE onde podemos filtrar um COUNT por exemplo, ou uma condição além do WHERE
    // Informar os campos de forma individual separados por vírgula
    // Aqui podemos utilizar os campos calculados como filtros
    ,"Having" : [
        // Campos da Tabela
        {
          "type": "Field",
          "name": "CF_STATUS",
          "value": 1
        }

        // Campos calculados
        ,{
          "type": "Field",
          "name": "calculatedFields1",
          "value": 1
        }

        // Expressões SQL
        ,{
          "type": "Expression",
          "value": "CF_COD > 0"
        }
    ]

    // *** Order By
    // Campos de ordenação dos resultados
    // Informar os campos de forma individual separados por vírgula com ou sem as clausulas "ASC" e "DESC"
    ,"orderBy": [
        "CF_COD ASC",
        "CF_RSOCIAL DESC"
    ]
}

POST

Params Descrição
method Método SQL a executar (GET, POST, PUT, DELETE, PATCH)
objectType Tipo de Objeto a ser consultado
objectName Nome da Tabela, View ou Procedure Result a ser consultada
dataFields Lista de objetos {name, value[, fieldType]} com os valores a inserir
fieldAI Nome da coluna auto-incremento da tabela (a API deixa o servidor gerar o valor)
fieldsReturn Lista de campos a serem retornados pela API após o INSERT

Através do método POST é possível realizar consultas nos seguintes Objetos

ObjectType Descrição
TABLE Tabela do Banco de Dados

Atenção — erros comuns no POST:

Exemplo:


{
    // method
    // Nome do método invocado no SQL
    "method": "POST"

    // objectType
    // Tipo do Objeto do Select
    ,"objectType": "TABLE"

    // objectName
    // Nome do Objeto do Select
    ,"objectName": "TESTEAPI"

    // Campos para Insert na Tabela
    ,"dataFields": [
        // Campo 1: Codigo
        {
          "name": "CODIGO",
          "value": 1
        }

        // Campo 2: Nome
        ,{
          "name": "NOME",
          "value": "MARIA DA SILVA"
        }
    ]
}

PUT

Params Descrição
method Método SQL a executar (GET, POST, PUT, DELETE, PATCH)
objectType Tipo de Objeto a ser consultado
objectName Nome da Tabela, View ou Procedure Result a ser consultada
dataFields Lista de objetos {name, value[, fieldType]} com os valores a atualizar (não incluir campos de chave primária)
where Filtro do UPDATE. Ao menos um item deve conter "key": true indicando a chave primária

Através do método PUT é possível realizar consultas nos seguintes Objetos

ObjectType Descrição
TABLE Tabela do Banco de Dados

Atenção — erros comuns no PUT:

  1. NÃO utilize o parâmetro fields — ele é exclusivo do método GET. Internamente, a API executa um SELECT de validação antes do UPDATE; ao receber fields no formato de objeto a validação dispara o erro genérico Invalid class typecast. Os valores a atualizar devem ir em dataFields.
  2. O parâmetro where é obrigatório e ao menos um de seus itens deve conter "key": true indicando o(s) campo(s) da chave primária. Sem isso, a API retorna Nao foram informados valores da chave primaria da tabela.
  3. Não inclua campos da chave primária em dataFields — eles devem aparecer apenas no where com "key": true.
  4. Consulte a seção Tipos de Dados e Formatação de Valores para o formato correto de datas, timestamps e números.

Exemplo:


{
    // method
    // Nome do método invocado no SQL
    "method": "PUT"

    // objectType
    // Tipo do Objeto
    ,"objectType": "TABLE"

    // objectName
    // Nome da Tabela
    ,"objectName": "TESTEAPI"

    // Campos para Update da Tabela
    // NÃO informar campos de Chave Primária aqui
    // Formatos: numeric = número ou string com ponto decimal; date = "YYYY-MM-DD"; timestamp = "YYYY-MM-DDTHH:MM:SS" (ISO-8601)
    ,"dataFields": [
        // String
        {
          "name": "NOME",
          "value": "MARIA DA SILVA"
        }

        // Numeric / Decimal
        ,{
          "name": "VALOR",
          "value": "1234.56"
        }

        // Date (somente data)
        ,{
          "name": "DATA_VENCIMENTO",
          "value": "2026-04-21"
        }

        // Timestamp (ISO-8601)
        ,{
          "name": "DATA_EMISSAO",
          "value": "2026-04-21T12:05:13"
        }
    ]

    // Condições para o Update
    // Ao menos um item deve conter "key": true indicando a chave primária
    ,"where": [
        {
          "type": "field",
          "name": "CODIGO",
          "key": true,
          "value": 1
        }
    ]
}

DELETE

Params Descrição
method Método SQL a executar (GET, POST, PUT, DELETE, PATCH)
objectType Tipo de Objeto a ser consultado
objectName Nome da Tabela, View ou Procedure Result a ser consultada
where Filtro do DELETE. Informar obrigatoriamente pelo menos um item com o valor da chave primária

Através do método DELETE é possível realizar consultas nos seguintes Objetos

ObjectType Descrição
TABLE Tabela do Banco de Dados

Atenção:

Exemplo:


{
    // method
    // Nome do método invocado no SQL
    "method": "DELETE"

    // objectType
    // Tipo do Objeto do Select
    ,"objectType": "TABLE"

    // objectName
    // Nome do Objeto do Select
    ,"objectName": "TESTEAPI"

    // Condições para a Exclusão
    ,"where": [
        // Deve-se informar a chave primária da tabela para condição de exclusão
        {
          "type": "field",
          "name": "CODIGO",
          "value": 1
        }
    ]
}

PATCH

Quando usar o PATCH:

Params Descrição
method Método SQL a executar (GET, POST, PUT, DELETE, PATCH)
objectType Tipo de Objeto a ser consultado
objectName Nome da Tabela, View ou Procedure Result a ser consultada
params Lista de parâmetros {name, value} da procedure ou function a invocar

Através do método PATCH é possível realizar consultas nos seguintes Objetos

ObjectType Descrição
FUNCTION Função do Banco de Dados com retorno
PROCEDURE Procedure do Banco de Dados com Retorno SQL

Exemplo:


{
    // method
    // Nome do método invocado no SQL
    "method": "PATCH"

    // objectType
    // Tipo do Objeto do Select
    ,"objectType": "PROCEDURE"

    // objectName
    // Nome do Objeto do Select
    ,"objectName": "PRC_TESTEAPI"

    ,"params" : [
        {
            "name" : "pPARAMETRO",
            "value": "TESTE"
        }
    ]
}

5. SPALLA API TOOLKIT


O que é

O Spalla API Toolkit — o toolkit de API para uso de IA do ERP Spalla — é um conjunto de ferramentas que ensina um agente de inteligência artificial a integrar com esta API. Com ele instalado, o agente deixa de depender de o integrador descrever a API a cada conversa: passa a conhecer o contrato das requisições, os objetos que a sua integração alcança e as regras de cada módulo do ERP.

Funciona com Claude Code, Claude Cowork e OpenAI Codex, e é composto de duas peças independentes entre si — um servidor que expõe a API como ferramentas para o agente, e um conjunto de conhecimento sobre como cada módulo espera ser integrado, que funciona mesmo sem o servidor.

O toolkit conversa apenas com esta API, por HTTP. Ele não abre conexão com a base de dados do ERP, e tudo o que alcança está dentro do escopo que o seu userToken tem liberado — o limite é o mesmo de qualquer integração.

Recursos

RecursoO que faz
Descoberta automática do escopo O toolkit lê o dicionário desta instância e passa a conhecer exatamente os objetos, campos, tipos e verbos que o seu token alcança. Não há catálogo embutido nem lista a manter: o que vale é o que a sua API responde hoje.
Ferramentas tipadas para o agente Consulta, execução de function e de procedure, e gravação, expostas ao agente como operações com parâmetros definidos — em vez de o agente montar JSON solto e errar o formato.
Travas contra acidentes conhecidos Teto de tamanho de resposta, supressão automática de colunas muito longas, limite padrão em consulta sem limite, exigência de chave primária no filtro de alteração e exclusão, pré-visualização com contagem de registros afetados antes de gravar, e nenhuma repetição automática de gravação após falha de rede.
Gravação desligada por padrão Na configuração inicial o toolkit opera somente em leitura, e as operações de gravação nem chegam a ser oferecidas ao agente. Habilitá-las é decisão explícita de quem administra a integração.
Memória entre sessões Aprende as convenções da sua integração — os objetos que ela usa, os filtros que se repetem, o vocabulário da empresa — para que você não precise repetir a mesma instrução em toda conversa. Nunca guarda valor de dado, dado pessoal nem credencial.
Conhecimento por módulo Traz a ordem operacional das chamadas de cada módulo — cadastro de pessoas, cadastro de produto, financeiro, pedido de venda e ordem de compra — nas mesmas versões dos guias publicados na seção 6.
Tratamento de texto formatado Os campos de texto longo do ERP que guardam formatação são convertidos para leitura e regravados no formato correto, sem perder a formatação existente.
Acompanha a evolução da API Quando a sua API ganha ou perde objetos, o toolkit recarrega o dicionário e relata o que mudou, apontando o que ficou obsoleto no que havia aprendido antes.

Vantagens

Como obter

O toolkit é distribuído de forma controlada. Fale com o gestor do ERP Spalla da sua empresa — quem administra o cadastro de API dentro do ERP e define os objetos liberados para cada integração. É com essa pessoa que se obtém o material de instalação, junto com o endereço desta API e o userToken da integração.

6. INSTRUÇÕES COMPLEMENTARES


Além da referência técnica dos métodos apresentada acima, disponibilizamos guias complementares com exemplos de fluxos completos de integração para os principais módulos do ERP Spalla. Consulte os documentos abaixo para roteiros passo a passo, exemplos de requisições encadeadas e boas práticas específicas de cada área.

Fluxo de Contas a Pagar/Receber

Guia completo do fluxo financeiro via API: lançamento, consulta, baixa e gestão de títulos a pagar e a receber, com exemplos de requisições e regras de negócio do módulo financeiro do SPALLA.

Abrir guia →
Cadastro de Pessoas (Clientes e Fornecedores)

Guia completo do cadastro de pessoas via API: criação e manutenção de clientes e fornecedores (CLIFOR), campos obrigatórios, validações e exemplos de requisições para o módulo de cadastros do SPALLA.

Abrir guia →
Cadastro de Produto

Guia completo do cadastro de produtos via API: inclusão em PROD, unidades de equivalência (PRODEQUIV), códigos de barras (PRODBARCOD), preço em tabela de preço (TABPRECO2), campos obrigatórios, herança do NCM, inativação e as travas de produto já movimentado.

Abrir guia →
Pedido de Venda

Guia completo da gravação de pedidos de venda via API: cabeçalho (PED1), itens (PED2), cálculo pela procedure PRC_CALCULAPEDIDO e fechamento do cadeado, com a ordem obrigatória das chamadas e as validações do módulo comercial do SPALLA.

Abrir guia →
Ordem de Compra

Guia completo da gravação de ordens de compra via API: cabeçalho e itens no mesmo par de tabelas do pedido (CF_TIPO = 'F'), cálculo, fechamento e as regras específicas de suprimentos do SPALLA.

Abrir guia →
Análise de Vendas e Faturamento

Guia completo do consumo da análise de vendas via API: as procedures PRC_RES_ANALISEVENDAS2 e PRC_RES_BIANALISEVENDAS como fonte de dados para gráficos e painéis, os 18 tipos de análise, os parâmetros que mudam o total, a leitura correta de custo e margem e o paralelo com a tela Avaliação de Venda Líquida.

Abrir guia →
Módulo de Produção

Página central do módulo de Produção, com cinco guias a partir dela: a Fórmula de Fabricação e o ciclo completo da Ordem de Produção — criação e preparação, apontamento, documentos fiscais e encerramento —, mais a Produção do Dia. Cobre a regra de fronteira do módulo, a configuração da instância que muda o comportamento de cada fluxo, a análise de qualidade por lote e a emissão das notas de insumo e de produto acabado.

Abrir guia →

7. OBJETOS DISPONÍVEIS


A API do Spalla expõe quatro tipos de objetos do banco de dados do ERP. Esta seção descreve o que é cada tipo e como ele é utilizado nas requisições.

Como os objetos são liberados: os objetos disponibilizados na API são definidos diretamente no ERP Spalla. Para cada objeto liberado, o manual on-line integrado (acessível com o Token do integrador) detalha a forma de uso — com exemplo de requisição em cURL — e o dicionário de dados completo, apresentando o tipo, o nome e a descrição de cada campo, parâmetro ou retorno.

Um servidor, vários integradores: o sistema de APIs do Spalla permite que um mesmo servidor e uma mesma rota atendam diferentes integradores, cada um com permissões de acesso e lista de objetos próprias — exatamente como o sistema de permissões de acesso do ERP. Basta variar o Token conforme o usuário específico da API. Dessa forma, a empresa pode manter múltiplos integradores e parceiros com acessos distintos no mesmo servidor de API, cada um com documentação on-line exclusiva.

TABLES — Tabelas

Armazenam os dados persistentes do ERP — cadastros e movimentos. São o único tipo que aceita gravação: além da leitura (GET), permitem inserção (POST), atualização (PUT) e exclusão (DELETE), com suporte a filtros (where), ordenação, paginação e campos calculados. No manual on-line, cada tabela traz o dicionário completo dos campos (nome, tipo, tamanho, se aceita nulo e se é chave primária). Exemplos: CLIFOR (clientes e fornecedores), BANCO (contas bancárias / caixa), CONFIG (parâmetros do sistema), COMPOS (composição de produtos / kits).

objectType: "TABLE"  ·  Operações: GET, POST, PUT, DELETE

VIEWS — Visões

Consultas pré-montadas no banco que combinam e filtram dados de uma ou mais tabelas, entregando um resultado pronto para leitura. São somente leitura, acessadas pelo método GET, com suporte a fields, where, groupBy, having e orderBy. Úteis para relatórios e integrações que precisam de dados já consolidados, sem manipular as tabelas de origem. No manual on-line, cada view lista a estrutura do resultado (campo, tipo, tamanho e descrição).

objectType: "VIEW"  ·  Operações: GET

PROCEDURES — Procedimentos

Rotinas de regra de negócio do ERP. São disparadas pelo método PATCH, recebendo seus parâmetros de entrada no array params. Podem executar ações (lançamentos, rotinas, atualizações) e, quando do tipo PROCEDURE RESULT, retornar um conjunto de dados (status de sucesso/falha, um valor ou uma lista de registros) — neste caso consultadas via GET. No manual on-line, cada procedure documenta os parâmetros de entrada (nome, tipo, obrigatoriedade e default) e a estrutura de retorno.

objectType: "PROCEDURE" / "PROCEDURE RESULT"  ·  Operações: PATCH (execução) · GET (retorno)

FUNCTIONS — Funções

Funções do banco que recebem parâmetros e retornam um valor calculado ou um conjunto de dados. Recomenda-se o método GET (comportamento idêntico a um SELECT sobre a função); o PATCH também é aceito. Indicadas para cálculos e consultas derivadas reutilizáveis pelas integrações. No manual on-line, cada função documenta seus parâmetros e o retorno (nome, tipo, tamanho e descrição).

objectType: "FUNCTION"  ·  Operações: GET (recomendado) · PATCH