Processo de Importação — Guia de Integração via API

Criar o Processo de Importação (CEIPROCESCAD) pelos três caminhos, alterá-lo, controlar o status e consultar estoque, financeiro, fluxo de caixa e follow-up

1. Introdução

Esta página é uma documentação complementar ao dicionário automático da API do ERP Spalla. Ela descreve a ordem operacional em que o integrador externo (ou um agente de IA) deve executar as chamadas para criar um Processo de Importação, conferi-lo, alterá-lo, controlar o status e consultar o que acontece com ele: estoque, financeiro, fluxo de caixa e follow-up.

Se ainda não leu a página central do módulo COMEX Importação, leia antes: a regra de fronteira e a configuração da instância valem para todas as páginas do módulo. Se o processo vai nascer de um orçamento que você monta, leia também a página do Orçamento de Importação.

O processo fica em CEIPROCESCAD, identificado por PIM_COD. Ele nasce por um de três caminhos: do orçamento, de Ordens de Compra ou por gravação direta (Visão geral). Depois de criado, o processo segue o mesmo caminho nos três casos: conferência, alteração, status, títulos e consultas.

Fica fora desta página, porque é feito na retaguarda do ERP: a Declaração de Importação (DI ou DUIMP) e as notas fiscais do processo (nacionalização, saída, complementar e simples remessa); a efetivação, a atualização e o cancelamento das previsões financeiras; o entreposto, a transferência de recursos entre processos e o recálculo do custo gerencial; e as filhas do processo que a API não grava, como licenças, contêineres e variáveis. A DI aparece aqui só como filtro das consultas de estoque. O lançamento dos títulos do processo é da página de Contas a Pagar/Receber; aqui entra só a remissão (Passo 9).

O ponto central desta página. A tela do ERP preenche vários campos do processo a partir do modelo de processo escolhido. Pela API, na gravação direta, esses campos são responsabilidade de quem integra. O Passo 4 traz a tabela A tela preenche, a API não — envie você, com a origem de cada valor.

Esta página não substitui o dicionário oficial da sua instância. A lista completa de campos, os tipos de dados, a obrigatoriedade e a estrutura de retorno estão no dicionário e devem ser consultados lá.

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

Esta documentação é complementar. A fonte da verdade sobre campos, parâmetros, tipos, domínios e verbos liberados é o dicionário da sua instância, gerado a partir do que o seu token alcança. A explicação de como chegar a ele está na página central do módulo.

3. Como a API funciona

Todas as requisições vão para um único endpoint, /root/integrador, e a operação é definida pelo campo "method" do corpo JSON, não pelo verbo HTTP. A explicação completa e as convenções do módulo (auto-incremento em 0, datas, chave completa no PUT) estão na página central, em Convenções que valem para todo o módulo. Os métodos usados nesta página:

methodObjetosPara que serve aquiPassos
GETTABLELer o modelo, os status, as Ordens de Compra, o processo, as previsões, o rateio e os títulos.3, 4, 5, 8, 9, 10, 11, 12
POSTTABLEIncluir o processo por gravação direta.4
PUTTABLEVincular um orçamento, alterar o processo, as datas previstas e o status.6, 7, 8
DELETETABLEExcluir o processo sem dependentes.14
GETVIEWLer o saldo e o movimento da mercadoria da DI.10
GETPROCEDURE RESULTGerar o processo a partir de Ordens de Compra e executar as consultas de financeiro, câmbio, extrato e follow-up.3, 11, 12, 13
PATCHPROCEDUREGerar o processo a partir do orçamento, descrito na página do Orçamento.2

Não confunda os dois níveis. O verbo HTTP da requisição é sempre PATCH (para gravação); a operação é o campo "method" do JSON. Uma inclusão em CEIPROCESCAD é uma requisição HTTP PATCH cujo corpo contém "method": "POST". Uma PROCEDURE RESULT é executada com "method": "GET", e o tipo diz como o retorno chega, não que a rotina só lê: a geração a partir de Ordens de Compra usa GET e grava.

Como chega o retorno das consultas. O formato do retorno dos GET (objeto ou array, consulta vazia com HTTP 404 e prefixo do erro) está em Convenções que valem para todo o módulo. Dois pontos são deste fluxo:

4. Visão geral do fluxo

CaminhoQuando usarObjeto
A. Do orçamentoVocê já montou e calculou um Orçamento de Importação.CEI_PRC_GERAPROCESSORCAMENTO (PATCH) — Passo 2
B. De Ordens de CompraAs Ordens de Compra de importação já existem e você não quer montar o orçamento à mão.CEI_RES_GERAR_IMPORTACAO_OC (GET) — Passo 3
C. Gravação diretaO processo não tem orçamento.POST em CEIPROCESCAD — Passo 4

Depois dos cadastros de retaguarda (Passo 1), o processo é criado por um dos três caminhos e operado nesta ordem:

  1. Criar o processo por um dos três caminhos da tabela (Passos 2 a 4). Nos três, o servidor cria na hora as previsões ou as provisões, conforme a configuração.
  2. Conferir o processo e o que nasceu com ele (GET; Passo 5).
  3. Vincular um orçamento a um processo que já existe, se for o caso (PUT; Passo 6, opcional).
  4. Alterar o processo e as datas previstas (PUT; Passo 7).
  5. Mudar o status: encerrar, cancelar ou reabrir (PUT; Passo 8).
  6. Lançar os títulos do processo pelo financeiro, com o rateio por processo (Passo 9, remissão à página de Contas).
  7. Consultar estoque, financeiro, fluxo de caixa e follow-up (GET; Passos 10 a 13), a qualquer momento depois da criação.

A exclusão (Passo 14) é um caso-limite: pela API, só do processo sem dependentes.

O que é decidido na criação fica decidido. As previsões financeiras nascem na inclusão, a partir do modelo, da condição de pagamento do câmbio e das datas daquele momento. Defina esses dados antes de criar o processo: depois, a atualização das previsões é feita na retaguarda do ERP (Passo 7).

5. Diagrama de execução

Convenção visual: azul (Retaguarda do ERP) · verde (Via API) · borda tracejada (caso-limite) · seta azul tracejada (a efetivação da previsão, na retaguarda, gera o título) · Pn = Passo n.

6. Aviso sobre liberação na retaguarda

Atenção — o que decide se este fluxo funciona na sua instância.

Antes do primeiro processo, os cadastros abaixo precisam existir e estar configurados no ERP. É deles que o servidor tira os tipos de movimento, as previsões financeiras, a ordem de serviço de acompanhamento e o código interno:

CadastroPor que importa
Modelo de Processo de Importação (CEIPROCESMODELO)Tem o centro de custo (ST_COD), o local de estoque (LE_COD), o tipo de movimento de nacionalização (TM_CODNAC, de um tipo com TM_TIPOIMPORTA maior que zero) e o de saída (TM_CODSAI), as transportadoras, a tributação (MDL_OPER*) e a formação do preço (MDL_PRECO*). Para o caminho B, também o responsável (VD_COD) e a condição de pagamento (PZ_COD), que vão para o orçamento gerado. Com tipo de serviço de acompanhamento (TPS_COD), a inclusão do processo abre a ordem de serviço de acompanhamento vinculada a ele. As etapas de follow-up consultadas no Passo 13 são geradas na retaguarda do ERP, pela opção Gerar Follow-Up da tela de Follow-up, a partir das etapas do modelo; com linhas de desdobramento de duplicatas, cria o desdobramento do processo.
Receitas e despesas previstas do modelo (CEIPROCESMODELO6)São a origem das previsões financeiras ou das provisões do processo. Com CG_FT_USAPREVIAFIN = 1, cada despesa com pessoa (CF_COD) precisa de uma condição de pagamento (PZ_COD) com parcela em dias: sem ela, a inclusão do processo é recusada com a mensagem de prazo obrigatório (Validações e erros). A despesa de Contrato de Câmbio (tipo de despesa 100) é dividida em uma previsão por parcela da condição de pagamento do câmbio do processo (PZ_CODCAMBIO).
Status do processo (CEISTATUSPROCESSO)Pelo menos um status de cada tipo (STA_TIPO): 1 Ativo, 2 Encerrado e 3 Cancelado. O código do status (STA_COD) é o que vai em PIM_STATUS; o tipo é o que decide o comportamento (Passo 8).
Tipos financeiros do processo (CEIPROCESTPDOC)Classificam cada valor do processo no rateio dos títulos e nas previsões. O tipo do câmbio precisa estar marcado como Contrato de Câmbio (TDP_TIPODESPIMP = 100): é por ele que as consultas de câmbio reconhecem os títulos (Passo 11).
Cliente do processo (CLIFOR1)Com CG_PIM_SUGESTAOCODIGO = 2, o cliente precisa da sigla de processo (CF_PREFIXOPROCESSO). No caminho B sem cliente informado, vale a pessoa padrão da filial (FILIAL.CF_COD). Ver Cadastro de Pessoas.
Configuração da instânciaCG_FT_USAPREVIAFIN e CG_PIM_SUGESTAOCODIGO — ver a seção 6 e a configuração da instância na página central.

Esses cadastros são mantidos pela operação dentro do próprio ERP. Pela API, você os lê com GET em CEIPROCESMODELO, CEIPROCESMODELO6, CEISTATUSPROCESSO, CEIPROCESTPDOC e TMOV. Para conhecer os campos exatos, consulte o dicionário oficial da sua instância.

Quando o processo nasce de um orçamento que você montou e calculou, ele é gerado pela rotina CEI_PRC_GERAPROCESSORCAMENTO, executada com "method": "PATCH". As condições, o que a geração faz, o exemplo e os erros estão na página do Orçamento de Importação:

Depois de gerado, o processo segue pelos Passos 5 a 14 desta página.

A rotina CEI_RES_GERAR_IMPORTACAO_OC recebe uma lista de Ordens de Compra de importação, monta com elas um Orçamento de Importação, calcula o orçamento e gera o processo, numa única chamada. Ela é uma PROCEDURE RESULT, executada com "method": "GET". Apesar do GET, a rotina grava: cria o orçamento e o processo. Por isso, envie a requisição com o verbo HTTP PATCH, como toda gravação.

Antes de chamar

Para escolher as Ordens de Compra, leia PED1 (cabeçalho) e PED2 (itens) com GET. As regras de gravação desses objetos estão na página de Ordem de Compra.

Exemplo — GET PED1 (Ordens de Compra de uma filial)

{
    "method": "GET"
    ,"objectType": "TABLE"
    ,"objectName": "PED1"
    ,"fields": [ "PE_COD", "CF_COD", "TM_COD", "ID_COD", "PE_IDVALOR", "PE_DAT" ]
    ,"where": [
        { "type": "field", "name": "FL_COD", "value": 1 }
        // F = Ordem de Compra
        ,{ "type": "field", "name": "CF_TIPO", "value": "F" }
        ,{ "type": "expression", "value": "PE_DAT >= '2026-09-01 00:00:00'" }
    ]
    ,"orderBy": [ "PE_COD DESC" ]
    ,"limit": 50
}

Valores ilustrativos. Os códigos desta página são exemplos. Use os cadastros da sua instância. A lista completa e autoritativa de campos de cada objeto está no dicionário oficial.

Envie

ParâmetroObrigatórioDescrição
PFL_CODSimFilial das Ordens de Compra e do processo.
PLISTA_PE_CODSimNúmeros das Ordens de Compra, em texto, separados por vírgula: "1119,1118".
PMDL_CODSimModelo de processo, usado no orçamento e no processo.
PPIM_DESNãoDescrição do processo. Vazio, o processo recebe a descrição Processo gerado do Orçamento N.
POCI_CODINTERNONãoCódigo interno do orçamento, que segue para o processo. Vazio, vale o número da primeira Ordem de Compra da lista. Precisa ser único entre os processos; com CG_PIM_SUGESTAOCODIGO maior que 0, o código interno do processo é o que a configuração gera.
PINCOTERMNãoINCOTERM do orçamento. Padrão FOB.
PAGRUPARNão1 (padrão) soma num só item do orçamento os itens de mesmo fornecedor, produto, NCM, preço, desconto e percentual de I.I.; 0 cria um item do orçamento para cada item de Ordem de Compra.
PCF_CODCLIPRONãoCliente do orçamento e do processo, uma pessoa de tipo cliente (CF_TIPO C ou A). Vazio, vale a pessoa padrão da filial (FILIAL.CF_COD).

O que a rotina faz, em ordem

  1. Valida a lista, as Ordens de Compra, o modelo e o cliente.
  2. Cria o cabeçalho do orçamento (CEIORC1) a partir do modelo: tipo de movimento, responsável, condição de pagamento e formação do preço; moeda e cotação da primeira Ordem de Compra.
  3. Cria as adições (CEIORC3), já com o fornecedor da Ordem de Compra, os itens (CEIORC2) e o vínculo de cada item com o item de Ordem de Compra de origem (CEIORC6).
  4. Calcula o orçamento.
  5. Gera o processo, com os mesmos efeitos do caminho A: o processo nasce com o status de tipo Ativo de menor código cadastrado, com os dados do orçamento e do modelo, e com as previsões ou provisões conforme a configuração.
  6. Aplica a descrição de PPIM_DES, quando informada.

Exemplo — GET CEI_RES_GERAR_IMPORTACAO_OC

{
    "method": "GET"
    ,"objectType": "PROCEDURE RESULT"
    ,"objectName": "CEI_RES_GERAR_IMPORTACAO_OC"
    ,"params": [
        { "name": "PFL_COD",       "value": "1" }
        // Ordens de Compra da mesma moeda, separadas por vírgula
        ,{ "name": "PLISTA_PE_COD", "value": "1119,1118" }
        ,{ "name": "PMDL_COD",      "value": "5" }
        ,{ "name": "PPIM_DES",      "value": "Embarque 2026-01" }
        ,{ "name": "PAGRUPAR",      "value": "1" }
    ]
}

A resposta é sempre uma linha, e por isso chega como objeto, com quatro campos:

{
    "SUCESSO": 1
    ,"MENSAGEM": "OK"
    ,"OCI_COD": 1031
    ,"PIM_COD": 215
}
CampoConteúdo
SUCESSO1 sucesso; 0 falha.
MENSAGEMOK no sucesso; na falha, o texto do erro.
OCI_CODO orçamento gerado. Nulo na falha.
PIM_CODO processo gerado. Nulo na falha.

A falha não chega como erro HTTP. Quando alguma validação recusa a geração, a resposta vem normalmente, com SUCESSO = 0 e o motivo em MENSAGEM, e nada fica gravado: nem o orçamento, nem o processo. Confira SUCESSO antes de ler OCI_COD e PIM_COD. Em MENSAGEM, o texto do erro vem precedido de um identificador técnico: compare pelo trecho característico. As mensagens estão em Validações e erros.

Erros comuns. Uma Ordem de Compra que já está vinculada a um orçamento de importação, ou, com CG_FT_USAPREVIAFIN = 1, uma despesa do modelo sem prazo na condição de pagamento. Corrija e chame de novo: como nada foi gravado, a nova chamada parte do zero.

Se a resposta não chegar, não chame de novo às cegas. Leia CEIORC6 pelo PE_COD da primeira Ordem de Compra: se houver linha, o orçamento foi criado. O OCI_COD dela leva ao PIM_COD em CEIORC1.

Sem orçamento, inclua o processo por uma requisição com "method": "POST" sobre CEIPROCESCAD. Antes, leia o modelo de processo (GET em CEIPROCESMODELO, por MDL_COD): boa parte dos campos vem dele.

Envie

CampoObservação
PIM_COD = 0Obrigatório e sempre presente. O servidor gera o número do processo e o devolve na resposta.
MDL_CODObrigatório. Modelo de processo.
PIM_DESObrigatório. Descrição do processo.
PIM_CLIPROObrigatório. Cliente do processo.
PIM_CLIORDObrigatório. Cliente previsto da nota fiscal de saída; em geral, o mesmo cliente do processo.
PZ_CODCAMBIOCondição de pagamento do câmbio, quando houver câmbio previsto. Envie já na inclusão: as parcelas previstas do câmbio saem dela.
PIM_DATPREVEMB, PIM_DATAPRECCHE, PIM_DATAPREVENTREGAOpcionais, com T. Previsões de embarque (ETD), de chegada (ETA) e de entrega.
PIM_MARGLUCROOpcional. Quando o cliente tem margem cadastrada no modelo, o servidor grava essa margem e substitui o valor enviado. Sem ela, vale o valor enviado; omitido ou zero, a margem do modelo.

A tela preenche, a API não — envie você

CampoO que a tela grava
FL_CODObrigatório. A empresa em que o usuário está logado.
PIM_DATCADObrigatório. A data do dia, com T.
PIM_STATUSUm status de tipo Ativo (STA_TIPO = 1) de CEISTATUSPROCESSO. Sem ele, o processo fica fora das rotinas que consideram só processos ativos, como o follow-up (Passo 13).
ST_COD, LE_CODObrigatórios. Centro de custo e local de estoque do modelo.
TM_COD_ENT, TM_COD_SAITipos de movimento de entrada e de saída: o TM_CODNAC e o TM_CODSAI do modelo.
TR_COD_ENT, TR_COD_SAITransportadoras de entrada e de saída: o TR_CODNAC e o TR_CODSAI do modelo.
VD_CODResponsável: o VD_COD do modelo.
PIM_OPERPISCOFINS, PIM_OPERICMS, PIM_OPERII, PIM_OPERANTIDUMPING, PIM_OPERCUSTOSADICIONAIS, PIM_OPERAFRMMA tributação do processo. Copie cada MDL_OPER* do modelo para o PIM_OPER* de mesmo sufixo.
PIM_PRECOCIF, PIM_PRECOII, PIM_PRECOIPI, PIM_PRECOPISCOFINS, PIM_PRECOANTIDUMPING, PIM_PRECOICMSNACIO, PIM_PRECOAFRMM, PIM_PRECODESPESAENTRADA, PIM_PRECODESPESASAIDA, PIM_PRECOCUSTOCTBNACAs dez indicações de formação de preço (0 não, 1 sim). Copie cada MDL_PRECO* do modelo para o PIM_PRECO* de mesmo sufixo.
TM_CODENTCOMPL, TM_CODSAICOMPLTipos de movimento das notas complementares de entrada e de saída: o TM_CODENTCOMPL e o TM_CODSAICOMPL do modelo, cada um no campo de mesmo nome. Se o modelo não tiver, não envie o campo.
TDP_CODSALDOREC, TDP_CODSALDOPAG, PZ_CODSALDO, PT_CODSALDO, EXT_CODOs dados de acerto de saldo e o modelo de extrato, copiados dos campos de mesmo nome do modelo, quando ele os tiver.
PIM_CODINTERNOSó com CG_PIM_SUGESTAOCODIGO = 0: o código de controle da empresa, único entre os processos. Envie-o: o extrato por conta bancária filtra o processo por ele (Passo 12). Nos demais modos, o servidor gera o código.

Não envie

CampoPor quê
PIM_TIPOIMPORTA, PIM_PISCOFINSICMSO servidor grava na inclusão, a partir do tipo de movimento de TM_COD_ENT. O valor enviado é substituído.
PIM_OPERACRESCIMOCUSTO, TM_CODSAIREMESSAO servidor grava na inclusão, a partir do modelo. O valor enviado é substituído.
PIM_DTATUData da última atualização, gravada pelo servidor.
PIM_RECALCULARCUSTOCampo de controle do servidor. Com valor diferente de 0, a inclusão não cria as previsões financeiras.
PIM_CODINTERNOCom CG_PIM_SUGESTAOCODIGO maior que 0: o servidor gera o código e substitui o enviado.

Exemplo — GET CEIPROCESMODELO

{
    "method": "GET"
    ,"objectType": "TABLE"
    ,"objectName": "CEIPROCESMODELO"
    // sem fields: todas as colunas do modelo
    ,"where": [
        { "type": "field", "name": "MDL_COD", "value": 3 }
    ]
}

Exemplo — POST CEIPROCESCAD

{
    "method": "POST"
    ,"objectType": "TABLE"
    ,"objectName": "CEIPROCESCAD"
    ,"dataFields": [
        // numerado pelo servidor: sempre presente, com 0
        { "name": "PIM_COD",                  "value": 0 }
        ,{ "name": "FL_COD",                   "value": 1 }
        ,{ "name": "MDL_COD",                  "value": 3 }
        ,{ "name": "PIM_DES",                  "value": "Importação de rolamentos, lote 12" }
        ,{ "name": "PIM_CLIPRO",               "value": 2150 }
        ,{ "name": "PIM_CLIORD",               "value": 2150 }
        ,{ "name": "PIM_DATCAD",               "value": "2026-09-28T00:00:00" }
        // um status de tipo Ativo (STA_TIPO = 1)
        ,{ "name": "PIM_STATUS",               "value": 1 }
        // copiados do modelo
        ,{ "name": "ST_COD",                   "value": 20 }
        ,{ "name": "LE_COD",                   "value": 3 }
        ,{ "name": "TM_COD_ENT",               "value": "E060" }
        ,{ "name": "TM_COD_SAI",               "value": "S201" }
        ,{ "name": "TR_COD_ENT",               "value": 1 }
        ,{ "name": "TR_COD_SAI",               "value": 1 }
        ,{ "name": "VD_COD",                   "value": 12 }
        ,{ "name": "PIM_OPERPISCOFINS",        "value": 3 }
        ,{ "name": "PIM_OPERICMS",             "value": 3 }
        ,{ "name": "PIM_OPERII",               "value": 1 }
        ,{ "name": "PIM_OPERANTIDUMPING",      "value": 0 }
        ,{ "name": "PIM_OPERCUSTOSADICIONAIS", "value": 2 }
        ,{ "name": "PIM_OPERAFRMM",            "value": 1 }
        ,{ "name": "PIM_PRECOCIF",             "value": 1 }
        ,{ "name": "PIM_PRECOII",              "value": 1 }
        ,{ "name": "PIM_PRECOIPI",             "value": 0 }
        ,{ "name": "PIM_PRECOPISCOFINS",       "value": 1 }
        ,{ "name": "PIM_PRECOANTIDUMPING",     "value": 0 }
        ,{ "name": "PIM_PRECOICMSNACIO",       "value": 1 }
        ,{ "name": "PIM_PRECOAFRMM",           "value": 1 }
        ,{ "name": "PIM_PRECODESPESAENTRADA",  "value": 1 }
        ,{ "name": "PIM_PRECODESPESASAIDA",    "value": 0 }
        ,{ "name": "PIM_PRECOCUSTOCTBNAC",     "value": 0 }
        // condição de pagamento do câmbio: as parcelas previstas saem dela
        ,{ "name": "PZ_CODCAMBIO",             "value": 12 }
        ,{ "name": "PIM_DATAPRECCHE",          "value": "2026-11-10T00:00:00" }
    ]
}

A resposta traz Registro inserido com sucesso e, em data, o PIM_COD gerado. Guarde-o: é a chave de todos os passos seguintes.

O que a inclusão já faz, conforme o modelo e a configuração:

  • abre a ordem de serviço de acompanhamento do processo, quando o modelo tem tipo de serviço (TPS_COD). As etapas de follow-up são geradas depois, na retaguarda do ERP;
  • copia do modelo o desdobramento de duplicatas (CEIPROCESCFGDUP), quando o modelo o tem;
  • com CG_FT_USAPREVIAFIN = 0, registra as provisões do processo em CEIPROCESPREVISAO, uma para cada despesa prevista no modelo;
  • com CG_FT_USAPREVIAFIN = 1, lança as previsões financeiras em DOCSPREVISAO: uma para cada despesa do modelo com pessoa e, para a despesa de câmbio, uma por parcela de PZ_CODCAMBIO.

Erro comum — prazo da previsão. Com CG_FT_USAPREVIAFIN = 1, uma despesa do modelo com pessoa e sem parcela em dias na condição de pagamento faz a inclusão ser recusada com a mensagem de prazo obrigatório, e nada é gravado. Peça à retaguarda a condição de pagamento com parcelas nas despesas do modelo (Passo 1) e inclua de novo.

Leia o processo e o que nasceu com ele com "method": "GET":

ObjetoFiltroO que conferir
CEIPROCESCADPIM_CODO código interno (PIM_CODINTERNO), o status (PIM_STATUS) e os campos preenchidos pelo servidor, como o tipo de importação (PIM_TIPOIMPORTA).
CEIORC1PIM_CODO orçamento de origem, nos caminhos A e B, ou o vinculado no Passo 6.
CEIPROCESPREVISAOPIM_CODAs provisões do processo, na instância com CG_FT_USAPREVIAFIN = 0.
DOCSPREVISAOPIM_CODAs previsões financeiras do processo, na instância com CG_FT_USAPREVIAFIN = 1: vencimento (PRV_DVC), valor (PRV_VAL) e tipo financeiro (TDP_COD).

Exemplo — GET CEIPROCESCAD (um processo)

{
    "method": "GET"
    ,"objectType": "TABLE"
    ,"objectName": "CEIPROCESCAD"
    ,"fields": [ "PIM_COD", "PIM_CODINTERNO", "PIM_DES", "PIM_STATUS", "PIM_TIPOIMPORTA", "MDL_COD" ]
    ,"where": [
        { "type": "field", "name": "PIM_COD", "value": 215 }
    ]
}

Para listar processos, use o mesmo GET em CEIPROCESCAD com where no status, no cliente (PIM_CLIPRO) ou na filial (FL_COD), com limit (linhas por página) e offset (número da página, a partir de 1):

{
    "method": "GET"
    ,"objectType": "TABLE"
    ,"objectName": "CEIPROCESCAD"
    ,"fields": [ "PIM_COD", "PIM_CODINTERNO", "PIM_DES", "PIM_DATCAD" ]
    ,"where": [
        { "type": "field", "name": "PIM_CLIPRO", "value": 2150 }
        ,{ "type": "field", "name": "PIM_STATUS", "value": 1 }
    ]
    ,"orderBy": [ "PIM_COD DESC" ]
    ,"limit": 20
    // offset é a página: 1 traz as linhas 1 a 20
    ,"offset": 1
}

Quando o processo já existe e o orçamento foi montado depois, a tela do ERP os liga pela opção de captar o orçamento. Pela API, faça o mesmo com dois PUT, nesta ordem. O processo precisa estar com status de tipo Ativo, e o orçamento, sem processo (CEIORC1.PIM_COD vazio).

  1. PUT em CEIORC1: PIM_COD do processo, com where em OCI_COD e "key": true.
  2. PUT em CEIPROCESCAD: os dados de embarque e as datas previstas, copiados do orçamento, com where em PIM_COD e "key": true.
No processo (CEIPROCESCAD)Copie do orçamento (CEIORC1)
PIM_LOCALENTREGACLIENTEOCI_LOCALENTREGACLIENTE
PIM_DATAPREVENTREGAOCI_DATAPREVENTREGA
PIM_DATAPRECCHEOCI_PREVISAOCHEGADA
PIM_LOCEMB, PIM_NAVIOEMBOCI_LOCEMB, OCI_NAVIOEMB
PIM_LOCDESTINO, PIM_NAVIODESTINOOCI_LOCDESTINO, OCI_NAVIODESTINO
PIM_CODINTERNOOCI_CODINTERNO, só se o processo estiver sem código interno.

Exemplo — PUT CEIORC1 (vínculo)

{
    "method": "PUT"
    ,"objectType": "TABLE"
    ,"objectName": "CEIORC1"
    ,"dataFields": [
        { "name": "PIM_COD", "value": 215 }
    ]
    ,"where": [
        { "type": "field", "name": "OCI_COD", "key": true, "value": 1024 }
    ]
}

Exemplo — PUT CEIPROCESCAD (dados copiados do orçamento)

{
    "method": "PUT"
    ,"objectType": "TABLE"
    ,"objectName": "CEIPROCESCAD"
    ,"dataFields": [
        { "name": "PIM_LOCALENTREGACLIENTE", "value": "Armazém Itajaí" }
        ,{ "name": "PIM_DATAPREVENTREGA",     "value": "2026-11-20T00:00:00" }
        ,{ "name": "PIM_DATAPRECCHE",         "value": "2026-11-10T00:00:00" }
        ,{ "name": "PIM_LOCEMB",              "value": "Shanghai" }
        ,{ "name": "PIM_LOCDESTINO",          "value": "Itajaí" }
    ]
    ,"where": [
        { "type": "field", "name": "PIM_COD", "key": true, "value": 215 }
    ]
}

O vínculo não refaz as previsões. As previsões financeiras continuam as que nasceram na inclusão do processo. Para desfazer o vínculo, envie PUT em CEIORC1 com PIM_COD nulo. É também o caminho quando o segundo PUT, em CEIPROCESCAD, é recusado: desfaça o vínculo, corrija a causa (por exemplo, o status) e refaça os dois PUT.

Altere com "method": "PUT" sobre CEIPROCESCAD, com where em PIM_COD e "key": true. PIM_COD é a chave inteira do processo e não entra em dataFields.

Datas previstas

CampoSignificado
PIM_DATPREVEMBData prevista de embarque (ETD).
PIM_DATAPRECCHEData prevista de chegada (ETA).
PIM_DATAPREVENTREGAData prevista de entrega ao cliente.

Regras, na ordem correta

Exemplo — PUT CEIPROCESCAD (datas previstas)

{
    "method": "PUT"
    ,"objectType": "TABLE"
    ,"objectName": "CEIPROCESCAD"
    ,"dataFields": [
        { "name": "PIM_DATPREVEMB",      "value": "2026-10-20T00:00:00" }
        ,{ "name": "PIM_DATAPRECCHE",     "value": "2026-11-18T00:00:00" }
        ,{ "name": "PIM_DATAPREVENTREGA", "value": "2026-11-25T00:00:00" }
    ]
    ,"where": [
        { "type": "field", "name": "PIM_COD", "key": true, "value": 215 }
    ]
}

As previsões financeiras não acompanham a alteração. Elas nascem na inclusão do processo e não são refeitas quando as datas, a condição de pagamento do câmbio ou o modelo mudam depois. Nesse caso, a atualização é feita na retaguarda do ERP, pela opção Atualizar Previsões da tela do processo.

O status do processo é o código de CEISTATUSPROCESSO gravado em PIM_STATUS. O que decide o comportamento é o tipo do status (STA_TIPO). Leia os status da instância com GET e altere com PUT só com PIM_STATUS:

ParaEnvie em PIM_STATUSObservação
Encerrarum status de tipo 2 (Encerrado)O processo e os registros ligados a ele deixam de aceitar alteração.
Cancelarum status de tipo 3 (Cancelado)Idem. Se o processo estiver encerrado, a troca exige a mesma permissão de Reabrir.
Reabrirum status de tipo 1 (Ativo)Exige, no usuário vinculado ao token, a permissão de alterar o status de processo encerrado (seção 6).

Exemplo — GET CEISTATUSPROCESSO

{
    "method": "GET"
    ,"objectType": "TABLE"
    ,"objectName": "CEISTATUSPROCESSO"
    ,"fields": [ "STA_COD", "STA_DES", "STA_TIPO" ]
    ,"orderBy": [ "STA_TIPO", "STA_COD" ]
}

Exemplo — PUT CEIPROCESCAD (encerrar)

{
    "method": "PUT"
    ,"objectType": "TABLE"
    ,"objectName": "CEIPROCESCAD"
    ,"dataFields": [
        // só o status, num PUT próprio
        { "name": "PIM_STATUS", "value": 8 }
    ]
    ,"where": [
        { "type": "field", "name": "PIM_COD", "key": true, "value": 215 }
    ]
}

O que o encerramento e o cancelamento travam. Com o processo em status de tipo Encerrado ou Cancelado, o servidor recusa as alterações no processo e nos registros ligados a ele: a DI, as provisões do processo (CEIPROCESPREVISAO), o desdobramento de duplicatas, as etapas de follow-up e o rateio de títulos — inclusive o lançamento de um título rateado para o processo (Passo 9). A mensagem informa que o processo está encerrado ou cancelado. Altere o status num PUT próprio e só então altere os demais campos.

O lançamento de contas a pagar e a receber de um processo — o título com o rateio para o processo — é feito pelo APW_PRC_FINDOCADD e está descrito na página de Contas a Pagar/Receber: Passo 9 (vínculo com o processo, a chave CEIPROCESRATEIO e os campos de cada item) e Passo 11 (lançamento). Três pontos são deste fluxo:

Exemplo — GET CEIPROCESRATEIO (documentos do processo)

{
    "method": "GET"
    ,"objectType": "TABLE"
    ,"objectName": "CEIPROCESRATEIO"
    ,"fields": [ "FL_COD", "CF_TIPO", "FT_COD", "TDP_COD", "PIM_VALMNACIO", "PIM_VALMDOLAR", "PIM_CUSTO", "PIM_REEMBOLSO" ]
    ,"where": [
        { "type": "field", "name": "PIM_COD", "value": 215 }
    ]
}

O estoque do processo é o da mercadoria da sua Declaração de Importação (DI ou DUIMP). Primeiro, leia em CEIDICAD, pelo processo, o código de cada DI (DIM_COD); com mais de uma, o retorno é um array, e cada DI se consulta nas views pelo seu DIM_COD. O formato do retorno está em Como a API funciona.

ObjetoColunas principaisQuando usar
CEI_VIEW_SALDOMERCADORIA (VIEW)DIM_COD, MER_ID, PD_COD, PD_LOTE, PD_DES, PD_UNI3, QTD_ENTRADA, QTD_SAIDA, QTD_SALDOSaldo físico de cada item da DI, por lote: entradas menos saídas dos movimentos de estoque vinculados ao item. Depois do encerramento do estoque da DI, QTD_SALDO é zero.
CEI_VIEW_SALDOMERCADORIANACIONALIZACAO (VIEW)DIM_COD, MER_ID, ADI_NUM, PD_COD, PD_LOTE, MER_QUANTIDADEMERCADORIA, QTD_ATENDIDA, QTD_SALDO, CF_COD, CF_RSOCIALQuanto de cada item da DI ainda falta nacionalizar: a quantidade da DI menos a já atendida por nota fiscal de nacionalização. CF_COD é o fornecedor da adição.
CEI_VIEW_MOVIMENTOMERCADORIA (VIEW)DIM_COD, MER_ID, FL_COD, CF_TIPO, FT_COD, PD_COD, PD_LOTE, ME_QTDEST, ME_ENT, LE_COD, TM_CODOs movimentos de estoque vinculados a cada item da DI, um por item de nota fiscal: CF_TIPO = 'F' é entrada, 'C' é saída. Use para detalhar o saldo.

Exemplo — GET CEIDICAD (a DI do processo)

{
    "method": "GET"
    ,"objectType": "TABLE"
    ,"objectName": "CEIDICAD"
    ,"fields": [ "DIM_COD", "DIM_DATAFIMESTOQUE" ]
    ,"where": [
        { "type": "field", "name": "PIM_COD", "value": 215 }
    ]
}

Exemplo — GET CEI_VIEW_SALDOMERCADORIA

{
    "method": "GET"
    ,"objectType": "VIEW"
    ,"objectName": "CEI_VIEW_SALDOMERCADORIA"
    ,"fields": [ "MER_ID", "PD_COD", "PD_LOTE", "PD_DES", "QTD_ENTRADA", "QTD_SAIDA", "QTD_SALDO" ]
    ,"where": [
        // DIM_COD lido em CEIDICAD
        { "type": "field", "name": "DIM_COD", "value": 314 }
    ]
    ,"orderBy": [ "MER_ID" ]
}

Exemplo — GET CEI_VIEW_SALDOMERCADORIANACIONALIZACAO

{
    "method": "GET"
    ,"objectType": "VIEW"
    ,"objectName": "CEI_VIEW_SALDOMERCADORIANACIONALIZACAO"
    ,"fields": [ "MER_ID", "ADI_NUM", "PD_COD", "MER_QUANTIDADEMERCADORIA", "QTD_ATENDIDA", "QTD_SALDO" ]
    ,"where": [
        { "type": "field", "name": "DIM_COD", "value": 314 }
    ]
    ,"orderBy": [ "MER_ID" ]
}

CEI_VIEW_MOVIMENTOMERCADORIA recebe o mesmo corpo, trocando objectName e as colunas de fields pelas da tabela acima.

Sem DI, não há estoque do processo. Enquanto a DI não é registrada na retaguarda, o GET em CEIDICAD volta vazio (HTTP 404 com rowCount:0), e as views não têm o que mostrar.

O financeiro do processo pode ser lido de três formas: pela rotina que a tela do processo usa, pelas tabelas de rateio e de títulos, ou pelas consultas de câmbio.

A consulta da tela: CEI_RES_FINANCEIROPROCESSO

É a consulta da aba Financeiro da tela do processo: os documentos rateados para o processo e, com CG_FT_USAPREVIAFIN = 1, as previsões ainda não efetivadas, em ordem de emissão, com crédito, débito, acumulados e saldo.

ParâmetroObrigatórioDescrição
P_PIM_CODSimO processo.
P_TIPORESULTSim0 todos os lançamentos; 1 só os marcados com débito ou crédito em conta corrente do processo.

Colunas principais: PIM_ORDEM (a ordem do lançamento no resultado), FIN_TIPO (1 previsão financeira, 2 documento), FL_COD, CF_TIPO (C receita, F despesa), FT_COD, FT_EMI, CF_COD, CF_RSOCIAL, PIM_VALMNACIO_CR, PIM_VALMNACIO_DB, PIM_VALMNACIO_CR_AC, PIM_VALMNACIO_DB_AC, PIM_SALDO, PIM_CUSTO, PIM_REEMBOLSO, TDP_DES e PAGO (PG quando o documento está totalmente pago). A chave do documento (FL_COD, CF_TIPO, FT_COD) vale nas linhas com FIN_TIPO = 2; nas de previsão, ainda não há documento. O saldo acumulado segue PIM_ORDEM: o saldo final do processo é o PIM_SALDO da linha de maior PIM_ORDEM.

{
    "method": "GET"
    ,"objectType": "PROCEDURE RESULT"
    ,"objectName": "CEI_RES_FINANCEIROPROCESSO"
    ,"params": [
        { "name": "P_PIM_COD",     "value": "215" }
        ,{ "name": "P_TIPORESULT", "value": "0" }
    ]
    ,"orderBy": [ "PIM_ORDEM" ]
}

As tabelas: rateio, documentos e títulos

O câmbio: CEI_RES_DOCUMENTOCAMBIO, CEI_RES_BAIXACAMBIO e CEI_RES_VARIACAOCAMBIAL

As três trazem os títulos de contrato de câmbio rateados para processos que já têm DI: sem DI registrada, o processo não aparece. Nas duas primeiras, o título entra também só quando o rateio usa o tipo financeiro de câmbio (TDP_TIPODESPIMP = 100, Passo 1).

RotinaParâmetrosO que devolve
CEI_RES_DOCUMENTOCAMBIOP_DT_INI e P_DT_FIM (período de vencimento, obrigatórios); P_FL_COD, P_PIM_COD, P_PIM_CLIPRO e P_CF_COD_FORNECEDOR (opcionais)Cada parcela de câmbio, com o fator do processo no documento (FATOR_PROCESSO), o valor em moeda nacional e estrangeira (VALOR_TITULO, VALOR_TITULO_DOLAR), o pago (VALOR_TITULO_PAGO, VALOR_TITULO_PAGO_DOLAR), a situação (TIPO_CAMBIO: em aberto ou fechado), a cotação do dia (COTACAO_DO_DIA) e o saldo a pagar (VALOR_TITULO_A_PAGAR, VALOR_TITULO_A_PAGAR_DOLAR). Traz também PIM_CODINTERNO, DIM_NUMERODI, FT_NUM e TT_DVC.
CEI_RES_BAIXACAMBIOOs mesmos; o período é o da baixaAs mesmas colunas, uma linha por baixa, mais a data (TT_DPG), o valor pago na baixa (VALOR_PAGO, VALOR_PAGO_DOLAR) e a cotação da baixa (TT_COTACAO_BAIXA).
CEI_RES_VARIACAOCAMBIALP_FL_COD, P_DT_INI e P_DT_FIM (obrigatórios); P_PIM_COD, P_PIM_CLIPRO e P_CF_COD_FORNECEDOR_DI (opcionais)A variação cambial de cada pagamento de câmbio contra a cotação da DI: COTACAO_DI, COTACAO_TITULO2, PIM_TT_VALMNAC, PIM_TT_VALMNAC_COTACAO_DI, DATA_VARIACAO_CAMBIAL (a maior entre o registro da DI e o pagamento; é ela que o período filtra), VARIACAO_CAMBIAL_ATIVA e VARIACAO_CAMBIAL_PASSIVA.
{
    "method": "GET"
    ,"objectType": "PROCEDURE RESULT"
    ,"objectName": "CEI_RES_DOCUMENTOCAMBIO"
    ,"params": [
        // período de vencimento: espaço entre data e hora
        { "name": "P_DT_INI",  "value": "2026-01-01 00:00:00" }
        ,{ "name": "P_DT_FIM",  "value": "2026-12-31 23:59:59" }
        ,{ "name": "P_PIM_COD", "value": "215" }
    ]
}

CEI_RES_BAIXACAMBIO recebe o mesmo corpo, trocando objectName; ali, P_DT_INI e P_DT_FIM são o período da baixa. CEI_RES_VARIACAOCAMBIAL tem outra lista de parâmetros, com P_FL_COD obrigatório:

{
    "method": "GET"
    ,"objectType": "PROCEDURE RESULT"
    ,"objectName": "CEI_RES_VARIACAOCAMBIAL"
    ,"params": [
        { "name": "P_FL_COD",  "value": "1" }
        // período da data da variação cambial
        ,{ "name": "P_DT_INI",  "value": "2026-01-01 00:00:00" }
        ,{ "name": "P_DT_FIM",  "value": "2026-12-31 23:59:59" }
        ,{ "name": "P_PIM_COD", "value": "215" }
    ]
}

O fluxo de caixa do processo junta o realizado, que são as baixas já feitas, e o a vencer, que são as parcelas em aberto e as previsões. A rotina CEI_PRC_RES_RESULTADOFIN devolve as duas partes numa só lista, com o saldo acumulado do processo em cada linha. É a mesma consulta da aba Fluxo de Caixa da tela do processo.

Fluxo de caixa do processo: CEI_PRC_RES_RESULTADOFIN

ParâmetroDescrição
P_PIM_CODO processo. Com 0, todos os processos do cliente informado em P_PIM_CLIPRO.
P_PIM_CLIPROO cliente do processo. Com 0, sem filtro de cliente. Informe o processo ou o cliente: sem nenhum dos dois, o resultado vem vazio.
P_TIPORESULT0 devolve o extrato, com todas as linhas. 1 devolve só a linha de fechamento de saldo (VLR_FLAG = 1); use-o com P_PIM_COD.

Cada linha é uma parcela de documento rateado para o processo, uma baixa dessa parcela ou uma previsão financeira. Os valores são a parte do processo no documento, na proporção do rateio (Passo 11). As linhas vêm em ordem de processo, grupo, data da baixa e vencimento, numeradas em PIM_ORDEM.

ColunaConteúdo
FIN_TIPO2 parcela de documento; 1 previsão financeira. Na previsão, FT_COD é o número da previsão.
PIM_GRUPO1 baixado; 2 vencido; 3 a vencer. As previsões são sempre do grupo 3.
PIM_COD, PIM_CODINTERNO, PIM_CLIPROO processo e o cliente dele.
FL_COD, CF_TIPO, FT_COD, TD_COD, TDP_COD, TDP_DES, CF_COD, CF_RSOCIALO documento, o tipo de despesa do processo e a pessoa do documento. CF_TIPO: C receita, F despesa.
TT_DVC, TT_DPG, BC_COD, FP_CODVencimento, data da baixa e a conta e a forma de pagamento da baixa.
VLR_CREDITO, VLR_DEBITOO valor da linha. Nas baixas, o valor pago; nas parcelas em aberto e nas previsões, o valor em aberto.
VLR_CREDITOACM, VLR_DEBITOACM, VLR_SALDOCrédito e débito acumulados e o saldo acumulado do processo até a linha (crédito menos débito).
VLR_CAIXA1 quando a linha compôs o saldo. Entram no saldo as parcelas vencidas e a vencer, as previsões e, entre as baixas, as lançadas como disponível no fluxo e as de transferência de caixa. As demais baixas aparecem com VLR_CAIXA = 0 e não somam.
VLR_FLAG1 na linha de fechamento de saldo: a última baixa antes dos lançamentos em aberto do processo ou, sem baixa seguida de lançamento em aberto, a última linha.
{
    "method": "GET"
    ,"objectType": "PROCEDURE RESULT"
    ,"objectName": "CEI_PRC_RES_RESULTADOFIN"
    ,"params": [
        { "name": "P_PIM_COD",    "value": "215" }
        ,{ "name": "P_PIM_CLIPRO", "value": "0" }
        // 0 = extrato completo; 1 = só a linha de fechamento de saldo
        ,{ "name": "P_TIPORESULT", "value": "0" }
    ]
    ,"orderBy": [ "PIM_ORDEM" ]
}

Por conta bancária: CEI_RES_EXTRATOBANCARIO_PROCESSO

É o extrato de uma conta (caixa ou banco) no período, com o processo de cada lançamento rateado. Os três parâmetros são obrigatórios: P_BC_COD (o código da conta, cadastrado na retaguarda), P_DT_INI e P_DT_FIM (período das baixas). A rotina não recebe o processo como parâmetro e não devolve PIM_COD: filtre o processo pelo resultado, com where em PIM_CODINTERNO. Por isso o processo precisa ter código interno. Com CG_PIM_SUGESTAOCODIGO = 0, envie-o na inclusão.

Colunas principais: VENCIMENTO, TT_DPG (data da baixa), VALOR_TOTPAGO_CRED, VALOR_TOTPAGO_DEB, DBCR, TIPOLANCA, PIM_CODINTERNO, CF_RSOCIAL_PROCESSO, TDP_DES e VFATOR.

{
    "method": "GET"
    ,"objectType": "PROCEDURE RESULT"
    ,"objectName": "CEI_RES_EXTRATOBANCARIO_PROCESSO"
    ,"params": [
        { "name": "P_BC_COD",  "value": "1001" }
        ,{ "name": "P_DT_INI", "value": "2026-09-01 00:00:00" }
        ,{ "name": "P_DT_FIM", "value": "2026-09-30 23:59:59" }
    ]
    // o processo se filtra pelo resultado
    ,"where": [
        { "type": "field", "name": "PIM_CODINTERNO", "value": "IMP.0015/26" }
    ]
}

Use o extrato por conta quando a pergunta for “o que entrou e saiu desta conta, e de qual processo”; para o fluxo de um processo, use a CEI_PRC_RES_RESULTADOFIN.

O follow-up são as etapas de acompanhamento do processo, com as datas previstas e realizadas. A rotina CEI_RES_FOLLOWUP devolve as etapas já cadastradas no processo, com as datas calculadas e a situação de cada uma. As etapas são mantidas na retaguarda do ERP.

ParâmetroDescrição
P_PIM_COD ou P_VD_CODO processo ou o responsável pelas etapas. Informe um dos dois.
P_ETP_CODOpcional. Filtra uma etapa.
P_ETP_PREV_DATACAL1, P_ETP_PREV_DATACAL2Opcionais. Período da data de previsão calculada, com espaço entre data e hora.
P_PIM_CLIPROOpcional. Filtra pelo cliente do processo.
P_TIPOMantenha o padrão, 0.
pPCG_CODNão envie: é de uso da Área do Cliente.

Colunas principais: PIM_COD, PIM_CODINTERNO, ETP_COD, ETP_ORD, ETP_DES, VD_NOM, ETP_PREV_DATACAL, ETP_REAL_DATACAL e ETP_STATUS (0 aberta, 1 prevista, 2 atrasada, 9 realizada).

{
    "method": "GET"
    ,"objectType": "PROCEDURE RESULT"
    ,"objectName": "CEI_RES_FOLLOWUP"
    ,"params": [
        { "name": "P_PIM_COD", "value": "215" }
    ]
    ,"orderBy": [ "ETP_ORD" ]
}

Só processos ativos. A rotina considera apenas processos com status de tipo Ativo e que tenham etapas cadastradas. Processo encerrado, cancelado ou sem etapas volta vazio (HTTP 404 com rowCount:0). Logo depois da criação, a consulta volta vazia até que as etapas sejam geradas na retaguarda do ERP.

A exclusão pela API alcança o processo que não tem desdobramento de duplicatas, previsões financeiras, DI, títulos rateados, etapas de follow-up nem anexos. Quando o modelo cria esses registros na inclusão, ou quando o processo já avançou, a exclusão é feita na retaguarda do ERP.

Exclua com "method": "DELETE" sobre CEIPROCESCAD, com a chave completa: PIM_COD com "key": true.

{
    "method": "DELETE"
    ,"objectType": "TABLE"
    ,"objectName": "CEIPROCESCAD"
    ,"where": [
        { "type": "field", "name": "PIM_COD", "key": true, "value": 215 }
    ]
}

Erro comum — processo com dependentes. A exclusão é recusada com uma mensagem que cita a tabela dependente, por exemplo Primary key for row in table 'CEIPROCESCAD' is referenced by foreign key 'FK_CEIPROCESCFGDUP_CEIPROCESCAD' in table 'CEIPROCESCFGDUP' (desdobramento de duplicatas) ou a variante com FK_DOCSPREVISAO_CEIPROCESCAD (previsões financeiras). O processo com anexos é recusado com Existem anexos vinculados a este registro.; os anexos se removem pelo endpoint de anexos (Controle de Anexos). Nos demais casos, a exclusão é feita na retaguarda do ERP.

Validações e erros

As mensagens abaixo são as que o servidor devolve para este fluxo, na situação descrita. N é o código do processo; Y, outro processo; X, o valor envolvido (código interno, DI ou previsão financeira); E, a empresa; M, o modelo; C, o cliente.

Como a mensagem chega. A tabela cita o texto com acentos, para facilitar a leitura. Na resposta da API, o texto chega precedido de um prefixo com a operação e, fora da exclusão, sem acentos; o formato está em Validações e erros da página do Orçamento. Nas consultas, o prefixo é Falha ao tentar resolver a requisicao (GET). Erro:. No caminho B, a mensagem vem no campo MENSAGEM, com SUCESSO = 0. No lançamento de título rateado, a mensagem chega na coluna DOC_ERRO do retorno (Contas a Pagar/Receber, Passo 11). Compare sempre pelo trecho característico.

Gravação, alteração e exclusão do processo

MensagemCausaO que fazer
O campo Auto-Incremente "PIM_COD" não foi encontrado na lista de campos para persistência!A inclusão omitiu PIM_COD.Envie PIM_COD com 0 (Passo 4).
O processo N está ENCERRADO, é necessário alterar o Status do Processo para permitir quaisquer alterações (ou CANCELADO)Alteração, ou lançamento de título rateado, em processo com status de tipo Encerrado ou Cancelado.PUT só com PIM_STATUS de tipo Ativo, depois a alteração (Passo 8).
Usuário não autorizado a alterar o Status do Processo NReabertura sem a permissão de alterar o status de processo encerrado.Peça ao gestor do ERP a permissão para o usuário da integração.
Não é permitido alterar o Código Interno do processoCom CG_PIM_SUGESTAOCODIGO maior que 0, o PUT mudou PIM_CODINTERNO.Não envie PIM_CODINTERNO no PUT.
O código interno X já foi utilizado no processo YOutro processo já tem esse código interno.Envie outro código.
Configure uma Sigla única para o Cliente deste Processo antes de SalvarCom CG_PIM_SUGESTAOCODIGO = 2, o cliente do processo não tem sigla de processo.Peça à retaguarda a sigla (CF_PREFIXOPROCESSO) no cadastro do cliente.
Previsão financeira X esta vinculada a processo de importação, portanto a informação do Prazo(dias) é obrigatória. Revise a condição de pagamento informada na configuração da previsão financeiro do modeloCom CG_FT_USAPREVIAFIN = 1, uma despesa do modelo com pessoa está sem parcela em dias na condição de pagamento.Peça à retaguarda a condição de pagamento com parcelas nas despesas do modelo e inclua de novo (Passo 1).
Já existe a DI X vinculada ao processo N, portanto a informação de processo entrepostado não pode ser alteradaPIM_ENTREPOSTADO alterado com DI vinculada.Defina o entrepostado antes de registrar a DI.
O processo N é processo entreposto, portanto a informação de processo entrepostado não pode ser marcadaO processo foi gerado por entreposto de outro processo.Não marque PIM_ENTREPOSTADO nele.
Notas Fiscais de Nacionalização já foi Gerada.Tributação (PIM_OPER*) ou tipo de importação alterados depois de toda a mercadoria da DI nacionalizada.Defina a tributação antes da nacionalização (Passo 7).
Nao foram informados valores da chave primaria da tabelaPUT ou DELETE sem "key": true no where.Marque PIM_COD com "key": true (Passos 7, 8 e 14).
Primary key for row in table 'CEIPROCESCAD' is referenced by foreign key 'FK_CEIPROCESCFGDUP_CEIPROCESCAD' in table 'CEIPROCESCFGDUP'Exclusão de processo com dependentes. Há variantes para as demais tabelas dependentes, como FK_DOCSPREVISAO_CEIPROCESCAD.Exclua na retaguarda do ERP (Passo 14).
Existem anexos vinculados a este registro.Exclusão de processo com anexos.Remova os anexos pelo endpoint de anexos (Controle de Anexos).

Caminho B — em MENSAGEM, com SUCESSO = 0

MensagemCausaO que fazer
Nenhuma ordem de compra foi informada na lista.PLISTA_PE_COD vazio.Informe os números das Ordens de Compra.
Existe ordem de compra inexistente para a empresa E na lista informada.Número que não é Ordem de Compra da filial PFL_COD.Confira a lista e a filial pelo GET em PED1.
A lista possui ordem de compra cujo tipo de movimento não é de nacionalização (importação).Ordem de Compra com tipo de movimento que não é de importação.Envie só Ordens de Compra de importação.
A lista possui ordem de compra já vinculada a um orçamento de importação.Ordem de Compra já usada em outro orçamento.Tire essa Ordem de Compra da lista.
O modelo de processo de importação M não existe.PMDL_COD inexistente.Confira o modelo em CEIPROCESMODELO.
O cliente C informado para o processo não existe ou não é um cliente.PCF_CODCLIPRO inexistente ou de pessoa que não é cliente.Envie uma pessoa de tipo C ou A.
Cliente do processo não definido: informe o parâmetro PCF_CODCLIPRO ou configure a pessoa padrão (CF_COD) da filial E.Sem cliente informado e sem pessoa padrão na filial.Envie PCF_CODCLIPRO.
O modelo M não possui tipo de movimento de nacionalização definido.Modelo sem TM_CODNAC.Peça à retaguarda o tipo de movimento de nacionalização no modelo.
Mensagens do cálculo e da geração do processoO orçamento montado pela rotina foi recusado no cálculo ou na geração, por exemplo por falta de itens.Veja a causa e a ação em Validações e erros da página do Orçamento.

Consultas

MensagemCausaO que fazer
Nao foram encontrados resultados para a requisicao do tipo GET com os parametros informados [ rowCount:0 ].A consulta não tem linhas (HTTP 404).Não é erro: trate como resultado vazio.
Favor informar o Processo ou Responsável!CEI_RES_FOLLOWUP sem P_PIM_COD e sem P_VD_COD.Informe um dos dois (Passo 13).
O metodo POST nao e valido para objetos do tipo PROCEDURE RESULT.PROCEDURE RESULT chamada com "method" diferente de GET.Use "method": "GET".
O parametro 'X' nao existe para a procedure 'Y'.Nome de parâmetro errado em params.Confira os nomes no dicionário da sua instância.

Termos desta página

Os termos transversais do módulo — Processo de Importação, código interno, modelo de processo, despesa do modelo e data-base — estão na página central. Os abaixo são próprios deste fluxo.

Status do processo e tipo de status
O status é o código do cadastro CEISTATUSPROCESSO gravado em PIM_STATUS; cada instância tem os seus, com descrições próprias. O tipo (STA_TIPO) é o que decide o comportamento: 1 Ativo, 2 Encerrado, 3 Cancelado (Passo 8).
Rateio do documento por processo
A atribuição de um documento financeiro, no todo ou em parte, a um ou mais processos, em CEIPROCESRATEIO, com o tipo financeiro e o valor de cada processo. É o único vínculo entre o título e o processo: o documento não guarda o processo (Passo 9).
Previsão financeira e provisão do processo
Os valores esperados do processo antes de haver título. Com CG_FT_USAPREVIAFIN = 1, são previsões financeiras em DOCSPREVISAO, com vencimento, que a retaguarda efetiva em documento. Com 0, são provisões em CEIPROCESPREVISAO, uma por despesa do modelo.
Desdobramento de duplicatas
As regras, copiadas do modelo na inclusão do processo (CEIPROCESCFGDUP), de como a retaguarda gera as duplicatas de cobrança das notas fiscais de saída do processo.
Follow-up
As etapas de acompanhamento do processo, com datas previstas e realizadas, calculadas a partir das data-bases do processo. São geradas na retaguarda do ERP, a partir das etapas do modelo, e consultadas pela rotina CEI_RES_FOLLOWUP (Passo 13).
Declaração de Importação (DI ou DUIMP)
O registro aduaneiro da importação, em CEIDICAD, identificado por DIM_COD e ligado ao processo por PIM_COD. É registrada na retaguarda do ERP; pela API, serve de filtro para as consultas de estoque e é pré-requisito das consultas de câmbio.

Dica — identificar a tabela e o campo a partir da interface do ERP

Quando você souber o que quer gravar mas não souber onde, use a própria interface do ERP para descobrir. Com a tela de Processo de Importação aberta, pressione Ctrl + Alt + Shift + H: o título da janela muda, indicando que o modo de identificação está ativo. A partir daí, ao parar o mouse sobre um campo da tela, aparece uma dica com o nome da tabela e do campo a que ele está vinculado — por exemplo, as colunas de CEIPROCESCAD nos dados do processo.

Com o nome da tabela e do campo em mãos, procure-os no dicionário da sua instância para confirmar o tipo, o domínio e se estão liberados para o seu token.

Relação com páginas vizinhas

PáginaComo se liga a esta
COMEX Importação
central
A regra de fronteira do módulo, a configuração da instância e os termos transversais. Leia antes desta.
Orçamento de ImportaçãoO caminho A: o orçamento montado e calculado de que o processo é gerado (Passo 2). O caminho B monta um orçamento sozinho.
Contas a Pagar/ReceberO lançamento dos títulos do processo, com o rateio por processo (Passo 9).
Ordem de CompraAs Ordens de Compra de importação de que o caminho B gera o orçamento e o processo (Passo 3).
Cadastro de PessoasO cliente do processo, com a sigla de processo quando CG_PIM_SUGESTAOCODIGO = 2.
Controle de AnexosO endpoint que remove os anexos do processo antes da exclusão.

Onde aprofundar

Esta página é um guia operacional — descreve o que fazer e em que ordem. Para como exatamente montar cada requisição (lista completa de campos de CEIPROCESCAD, tipos de dado, obrigatoriedade, domínios e parâmetros das rotinas), a fonte autoritativa é o dicionário oficial da sua instância, cujo endereço está na página central do módulo.

O dicionário reflete sempre os objetos e verbos liberados para o seu token. A regra de fronteira e a configuração do módulo estão na página central de COMEX Importação, e o transporte das requisições, na documentação geral da API.