Fluxo de Contas a Pagar/Receber — Documentação Complementar

Sequência operacional para integração externa com a API do ERP Spalla

1. Introdução


Esta página é uma documentação complementar ao dicionário automático da API do ERP Spalla. Seu propósito é descrever a ordem operacional em que o integrador externo deve executar as chamadas e cadastros para realizar o ciclo completo de lançamento e baixa de títulos financeiros (contas a pagar e contas a receber), identificando em cada passo se a ação é realizada via API ou na retaguarda do ERP.

Esta página não substitui o dicionário oficial da sua instância. Todos os detalhes técnicos — parâmetros aceitos, tipos de dados, regras de obrigatoriedade, estrutura de retorno, lista de objetos exportados — estão no dicionário oficial e devem ser consultados lá. Quando algum detalhe desse tipo for necessário, esta página orienta o leitor a abrir o dicionário oficial na entrada correspondente.

2. Onde encontrar o dicionário oficial da sua API


Cada empresa que opera o ERP Spalla expõe o seu próprio dicionário automático em um endereço próprio. Para acessá-lo, abra no navegador a URL no formato abaixo, substituindo os placeholders pelos valores da sua instância:

https://<host>:<porta>/root/dicionario?userToken=<token>

O dicionário oficial é a fonte autoritativa para parâmetros, tipos, obrigatoriedade, exemplos completos e lista de objetos liberados para a sua API.

3. Visão geral do fluxo


O ciclo completo compreende três blocos lógicos, executados em ordem:

  1. Preparar os cadastros de retaguarda — conjunto de tabelas auxiliares do ERP (empresa, tipo de operação, centro de custo, condição de pagamento, carteira de cobrança, conta corrente, forma de pagamento, etc.) que precisam existir antes que qualquer documento financeiro possa ser lançado. Esses cadastros são feitos pela operação dentro do próprio ERP.
  2. Cadastrar a pessoa (cliente ou fornecedor) via API — a pessoa associada ao documento pode ser criada e mantida via API REST sobre o objeto pessoa do ERP, desde que os verbos de escrita tenham sido previamente liberados na retaguarda.
  3. Executar o lançamento e a baixa do título — chamada à procedure de inclusão (APW_PRC_FINDOCADD) seguida, quando o título for liquidado, da chamada à procedure de baixa (APW_PRC_FINDOCADDBAIXA).

4. Diagrama de execução


Convenção visual: azul (Retaguarda do ERP) · verde (Via API).

5. Aviso sobre cadastro de pessoa via API


Atenção — liberação necessária na retaguarda.

O cadastro de pessoa (cliente ou fornecedor) via API é realizado por chamadas REST padrão (POST, PUT, DELETE) sobre o objeto pessoa do ERP. Esses verbos de escrita, no entanto, não vêm habilitados por padrão em todas as instalações do Spalla. A liberação é controlada na retaguarda do ERP pela operação responsável pela API. Sem essa liberação prévia, as requisições de escrita sobre o objeto pessoa não serão aceitas.

Antes de iniciar a integração, confirme com a equipe responsável que os verbos de escrita necessários foram habilitados para a sua chave de API. A lista de verbos efetivamente liberados para a sua instância aparece no dicionário oficial.

Define a entidade jurídica (empresa) e, quando aplicável, a filial sobre a qual o título financeiro será lançado. É o ponto de partida do cabeçalho do documento.

Onde cadastrar no ERP: módulo Cad → Cadastros → Empresa.

Tabela referenciada: FILIAL.

Como referenciar nas chamadas da API: o código da empresa/filial é informado no cabeçalho do lançamento. O nome exato da chave e o tipo de dado estão no dicionário oficial da sua API.

Tipo de operação financeira (por exemplo, duplicata, boleto, nota de débito), conforme cadastro interno do ERP. Determina regras operacionais aplicadas ao título.

Onde cadastrar no ERP: módulo Cad → Configurações → Ver mais → Tipo de Operação.

Tabela referenciada: TPDOC.

Como referenciar nas chamadas da API: o código do tipo de operação é informado no cabeçalho do lançamento. A lista de tipos válidos para a sua instância está no dicionário oficial.

Estrutura analítica que permite classificar e ratear o valor do documento entre diferentes departamentos, projetos ou áreas. O documento financeiro referencia um centro de custo principal no cabeçalho e, opcionalmente, pode distribuir o valor entre vários centros de custo por meio do bloco de rateio.

Onde cadastrar no ERP: módulo Cad → Cadastros → Centro de Custo.

Tabela referenciada: SETOR (denominação interna; equivale a Centro de Custo no domínio funcional).

Como referenciar nas chamadas da API: o código é informado no cabeçalho do lançamento e, quando há rateio, também em cada item do bloco opcional de rateio por centro de custo. O nome exato das chaves está no dicionário oficial.

Índice ou cotação aplicado ao documento financeiro para conversão de valores. Relevante quando o documento contém valores expressos em referência distinta da padrão configurada para a operação.

Onde cadastrar no ERP: módulo Fin → Configurações Financeiras → Ver mais → Índices.

Tabela referenciada: INDICES.

Como referenciar nas chamadas da API: o código do índice pode ser informado no cabeçalho do lançamento. É um campo opcional — consulte o dicionário oficial para o nome da chave e as regras aplicáveis.

Define a condição de pagamento (também referida internamente como prazo de pagamento) — quantidade de parcelas, intervalos e regras aplicáveis quando o título for parcelado automaticamente pelo ERP. É a fonte do comportamento padrão de parcelamento.

Onde cadastrar no ERP: módulo Fin → Configurações Financeiras → Ver mais → Condição de Pagamento.

Tabela referenciada: PRAZO.

Como referenciar nas chamadas da API: o código da condição de pagamento é informado no cabeçalho do lançamento. Quando o integrador não envia o bloco de parcelas manualmente, o Spalla usa a condição cadastrada para gerar as parcelas. Detalhes no dicionário oficial.

Carteira de cobrança (também referida como portador de cobrança ou portador do título) — conjunto de regras que define como cada parcela será cobrada/paga: conta corrente associada, forma de pagamento padrão, relatório de boleto, percentuais de juros e multa, entre outros. É referenciada em cada parcela quando o integrador envia manualmente o bloco de parcelas no JSON do lançamento.

Onde cadastrar no ERP: módulo Fin → Configurações Financeiras → Ver mais → Contas → Carteira de Cobrança.

Tabela referenciada: PORTA (denominação interna; equivale a Carteira de Cobrança no domínio funcional).

Como referenciar nas chamadas da API: o código da carteira é informado em cada item do bloco de parcelas, quando esse bloco é enviado. Confira a chave exata no dicionário oficial.

Conta corrente (também referida como banco) — conta bancária da empresa onde o pagamento ou recebimento será efetivado. Obrigatória no momento da baixa do título.

Onde cadastrar no ERP: módulo Fin → Configurações Financeiras → Ver mais → Contas → Conta Corrente.

Tabela referenciada: BANCO (denominação interna; equivale a Conta Corrente no domínio funcional).

Como referenciar nas chamadas da API: o código da conta corrente é informado no momento da baixa do título. A nomenclatura exata do parâmetro está no dicionário oficial.

Meio de pagamento utilizado na liquidação do título (por exemplo, dinheiro, cheque, cartão, transferência), conforme cadastro do ERP. Obrigatório no momento da baixa.

Onde cadastrar no ERP: módulo Fin → Configurações Financeiras → Ver mais → Forma de Pagamento.

Tabela referenciada: FORPAG.

Como referenciar nas chamadas da API: o código da forma de pagamento é informado no momento da baixa. Veja o dicionário oficial para a lista de formas habilitadas na sua instância.

Este passo é opcional e só se aplica quando o documento financeiro está vinculado a uma operação de comércio exterior — ou seja, quando se trata de uma despesa/receita relacionada a um processo de importação ou a um processo de exportação. Para operações financeiras comuns (sem vínculo com comércio exterior), pule este passo.

Os dois cenários são excludentes — um mesmo documento se vincula a processo de importação ou a processo de exportação, nunca aos dois simultaneamente. Os blocos de rateio enviados no JSON do lançamento são distintos para cada caso.

A) Vínculo com Processo de Importação

Quando o financeiro for despesa/receita de um processo de importação, o lançamento usa o bloco de rateio por processo de importação no JSON. Esse bloco grava registros na tabela de rateio interna, que exige dois cadastros prévios na retaguarda:

Esses dois códigos alimentam, respectivamente, as chaves de identificação do processo e do tipo financeiro em cada item do bloco de rateio por processo de importação no JSON do lançamento (tabela CEIPROCESRATEIO — "Rateio de Documentos por Processo"). Os nomes exatos das chaves do JSON estão no dicionário oficial.

B) Vínculo com Processo de Exportação

Quando o financeiro for despesa/receita de um processo de exportação, o lançamento usa o bloco de rateio por exportação no JSON. Esse bloco grava registros na tabela EXPRATEIO — "Rateio de Contas (Exportação)" — que possui FK para o processo de exportação na tabela EXPPROCES. Por isso, é necessário um único cadastro prévio na retaguarda:

O código do processo de exportação alimenta a chave de identificação do processo em cada item do bloco de rateio por exportação no JSON do lançamento. O nome exato da chave está no dicionário oficial.

Diferença entre os dois cenários

AspectoImportaçãoExportação
Bloco do JSON usadoRateio por processo de importaçãoRateio por exportação
Cadastros de retaguarda exigidosCEIPROCESCAD + CEIPROCESTPDOCEXPPROCES
Tabela de rateio que recebe os registrosCEIPROCESRATEIOEXPRATEIO
Tipificação financeira por itemObrigatória (TDP_COD)Não se aplica

Quando não usar: em todas as operações financeiras que não têm vínculo com comércio exterior, este passo é dispensado. O integrador simplesmente omite os blocos de rateio correspondentes no JSON do lançamento.

Toda movimentação financeira está vinculada a uma pessoa — um cliente (quando o título é a receber) ou um fornecedor (quando é a pagar). Esse cadastro pode ser criado, alterado e removido via API REST, usando os verbos padrão sobre o objeto pessoa do ERP.

O cadastro de pessoas é controlado diretamente em duas tabelas do banco:

A API expõe esses dois cadastros como objetos REST separados. Os nomes exatos dos objetos e a relação entre eles estão descritos no dicionário oficial da sua instância.

Liberação prévia na retaguarda. Os verbos de escrita (POST, PUT, DELETE) sobre os objetos de pessoa e de contato precisam ter sido habilitados na retaguarda do ERP para a chave de API que será usada. Verbos não liberados resultam em rejeição da requisição.

Onde encontrar a definição do objeto: no dicionário oficial da sua API, na entrada do objeto pessoa. Lá estão os campos aceitos, tipos de dado, regras de obrigatoriedade e exemplos de payload completos.

Verbos típicos do ciclo de vida:

A lista de verbos efetivamente liberados para a sua chave aparece no próprio dicionário oficial da sua instância.

Dica — descobrir a tabela e o campo a partir da interface do ERP. Ao operar qualquer tela do ERP Spalla diretamente pela interface (Cadastro de Pessoa ou qualquer outra), pressione a combinação Ctrl + Alt + Shift + H. O sistema altera o título da janela indicando que o modo de identificação está ativo. A partir desse momento, ao parar o mouse sobre qualquer campo da tela, aparece um hintbox mostrando o nome da tabela e da coluna do banco às quais aquele campo da interface está vinculado. É um recurso prático para mapear visualmente, durante o uso do ERP, qual tabela e qual coluna correspondem a cada campo da tela — e assim correlacionar essas referências com as chaves do JSON utilizadas na API.

Regras de validação e integridade referencial. As regras de validação aplicadas ao cadastro de pessoa via API são exatamente as mesmas que o ERP aplica quando o cadastro é feito diretamente pela operação na interface do sistema. Essas regras de negócio residem no backend (banco de dados) e atuam em todas as operações de inclusão (POST), alteração (PUT) e exclusão (DELETE), independentemente do canal de origem — interface gráfica do ERP, API REST ou procedure.

O sistema mantém integridade referencial entre os registros. Por isso, por exemplo, uma pessoa (cliente ou fornecedor) que já foi utilizada em um documento financeiro não pode ser excluída — a exclusão é rejeitada para preservar a consistência do histórico de movimentos. Restrições análogas se aplicam aos demais cadastros: qualquer registro referenciado por outro documento permanece bloqueado para exclusão enquanto a referência existir.

A mesma garantia vale para os passos de lançamento (APW_PRC_FINDOCADD) e baixa (APW_PRC_FINDOCADDBAIXA): todas as validações de negócio do banco são aplicadas integralmente, qualquer que seja o canal de entrada. Mensagens de erro retornadas pela API são as mesmas geradas pelo banco quando a mesma regra é violada na operação direta pelo ERP.

Procedure responsável por incluir um documento financeiro — tanto a pagar quanto a receber. O tipo de movimento (a pagar ou a receber) é definido por uma chave do cabeçalho que identifica se o documento é de cliente (emitido / a receber) ou de fornecedor (recebido / a pagar). A consulta ao dicionário oficial mostra o nome exato dessa chave e os valores aceitos.

Forma de entrada

A procedure recebe um único parâmetro: uma string contendo um JSON serializado. Esse JSON é composto por quatro seções:

Para a lista completa de chaves aceitas em cada bloco, com nome, tipo, obrigatoriedade e regras de validação, consulte o dicionário oficial da sua API na entrada APW_PRC_FINDOCADD.

Cenário A — parcelas geradas automaticamente pelo Spalla

Quando o bloco de parcelas é omitido, o Spalla utiliza o prazo de pagamento referenciado no cabeçalho para calcular automaticamente a quantidade de parcelas, datas de vencimento e valores. É o caminho mais simples.

{
  "cabecalho": {
    // identificação do documento, pessoa, datas, valor total, prazo
    // (consulte o dicionário oficial para a lista completa de chaves)
  }
  // sem o bloco de parcelas: o Spalla parcela conforme o prazo cadastrado
}

Cenário B — parcelas controladas manualmente pelo integrador

Quando o bloco de parcelas é enviado, o Spalla ignora qualquer parcelamento automático e grava exatamente as parcelas descritas. Use este cenário quando precisar de controle total sobre datas, valores, históricos individuais e regras de juros/multa/desconto por parcela.

{
  "cabecalho": {
    // identificação do documento, pessoa, datas, valor total
  },
  "parcelas": [
    { /* parcela 1 */ },
    { /* parcela 2 */ }
    // ... uma entrada por parcela
  ],
  "rateioCentroCusto": [
    // opcional: lista de itens de rateio por centro de custo
  ],
  "rateioExportacao": [
    // opcional: lista de itens de rateio para operações de exportação
  ]
}

Os nomes reais das chaves (em maiúsculas, conforme o padrão das procedures do Spalla) e a estrutura interna de cada item dos arrays estão documentados no dicionário oficial da sua API.

Retorno

A procedure devolve a chave de identificação de cada parcela gerada. Essa chave é o que permite, posteriormente, registrar a baixa do título. Os campos exatos do retorno estão no dicionário oficial da sua API na entrada desta procedure.

Pré-requisitos cumpridos antes deste passo

Todos os cadastros de retaguarda relevantes para o cabeçalho e para os blocos opcionais (passos 1 a 9) e o cadastro da pessoa (passo 10) precisam estar concluídos.

Procedure responsável por registrar o pagamento (no caso de contas a pagar) ou o recebimento (no caso de contas a receber) de um título previamente lançado. A diferenciação entre baixa de título a pagar e baixa de título a receber é feita pelo mesmo indicador de tipo de movimento usado no lançamento.

Forma de entrada

A procedure recebe um conjunto de parâmetros distintos para identificar o título (chave devolvida pelo lançamento) e descrever a baixa (data de pagamento, valor, forma de pagamento, conta corrente, histórico, e os valores complementares de desconto, juros, multa e acréscimo).

Para a assinatura completa, com nome de cada parâmetro, tipo, obrigatoriedade e ordem, consulte o dicionário oficial da sua API na entrada APW_PRC_FINDOCADDBAIXA.

Pré-requisito obrigatório

O título precisa existir antes da baixa. A baixa é executada sobre uma parcela já gravada por APW_PRC_FINDOCADD (passo 11) ou já existente no ERP. A chave de identificação devolvida pelo lançamento é o que conecta a baixa ao título correto.

Retorno

A procedure devolve a confirmação da baixa registrada. Os campos exatos do retorno e o comportamento em caso de baixa parcial estão descritos no dicionário oficial.

Validações e erros


As validações aplicadas ao lançamento e à baixa são as regras de negócio do banco de dados do ERP Spalla — restrições de integridade referencial, regras das triggers e dos próprios corpos das procedures. Quando alguma dessas regras é violada, a mensagem original gerada pelo banco é retornada no corpo da resposta da procedure.

O integrador deve tratar a mensagem de erro retornada e exibi-la ou registrá-la conforme a necessidade da integração. As mensagens são definidas pela instalação do ERP e podem variar entre clientes; por isso, esta página não lista mensagens específicas.

Consulta dos dados gerados


Após o lançamento e a baixa, os títulos ficam disponíveis para consulta pelo módulo financeiro do ERP Spalla. Para que o integrador também possa consumir esses dados via API, o Spalla disponibiliza quatro views de leitura, expostas como objetos REST (verbo GET). Cada uma representa um recorte específico do ciclo do título:

View Conteúdo Quando consultar
SPA_CONTASAPAGAR Títulos a pagar — em aberto Listar obrigações financeiras pendentes com fornecedores (despesas ainda não liquidadas).
SPA_CONTASPAGAS Títulos pagos — histórico Auditar pagamentos já efetuados a fornecedores, com data, valor e forma de pagamento.
SPA_CONTASARECEBER Títulos a receber — em aberto Listar valores a receber de clientes (receitas ainda não liquidadas).
SPA_CONTASRECEBIDAS Títulos recebidos — histórico Auditar recebimentos já efetuados de clientes, com data, valor e forma de pagamento.

As quatro views consolidam dados do cabeçalho do documento (empresa, pessoa, tipo de operação, datas, valores) e da parcela (vencimento, número da parcela, status). As views SPA_CONTASPAGAS e SPA_CONTASRECEBIDAS incluem ainda os dados da baixa (data do pagamento, forma e banco), permitindo a reconciliação completa do ciclo lançamento → baixa.

Liberação na retaguarda. A consulta sobre cada uma dessas views precisa estar habilitada na retaguarda do ERP para a chave de API utilizada. Sem essa liberação, a view não aparece no dicionário da sua instância nem responde a requisições.

Como consultar: a forma exata de chamar cada view via API — endpoint, método HTTP, estrutura do corpo da requisição, parâmetros aceitos (filtros, limites, ordenação, seleção de campos) e exemplo de payload de retorno — está descrita no dicionário oficial da sua API, nas entradas correspondentes a cada uma das quatro views. Cada cliente do Spalla possui o seu próprio dicionário, refletindo a configuração e as liberações específicas da sua instância. Consulte-o sempre que precisar da especificação detalhada de uma consulta — esta documentação complementar não duplica essas informações para evitar conflito com o que está publicado no dicionário oficial.

Onde aprofundar


Esta página é um guia operacional — descreve o que fazer e em que ordem. Para como exatamente chamar cada procedure (nomes de chaves, tipos de dado, obrigatoriedade, exemplos completos de payload e de retorno), a fonte autoritativa é o dicionário oficial da sua instância, em https://<host>:<porta>/root/dicionario?userToken=<token>.

O dicionário oficial é gerado dinamicamente a partir do banco de dados da própria instalação, refletindo sempre o estado atual da API liberada para aquela chave. Manter o consumo da API baseado nele garante que a integração permaneça alinhada com a versão exata do ERP em produção.