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 montar um Orçamento de Importação completo — cabeçalho, itens, adições e despesas —, calculá-lo, conferi-lo, alterá-lo, excluí-lo e, por fim, gerar o Processo de Importação a partir dele.
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.
O processo também nasce de Ordens de Compra de importação, sem que você monte o orçamento: a rotina CEI_RES_GERAR_IMPORTACAO_OC monta e calcula o orçamento e gera o processo, e está descrita na página do Processo de Importação.
O orçamento ocupa quatro tabelas de gravação e três de apoio:
| Tabela | Conteúdo | Nesta página |
|---|---|---|
CEIORC1 | Cabeçalho: cliente, modelo de processo, moeda e cotação, INCOTERM, datas previstas e formação do preço. | Inclusão, alteração, exclusão |
CEIORC2 | Itens: produto, NCM, quantidade e preço na moeda negociada; depois do cálculo, FOB, frete, seguro, tributos e custo. | Inclusão, alteração, exclusão |
CEIORC3 | Adições: o agrupamento dos itens por NCM, com fornecedor, fabricante e percentuais de tributo. | Complemento, inclusão alternativa, exclusão |
CEIORC4 | Despesas e receitas do orçamento: as do modelo de processo e as avulsas. | Ajuste, inclusão, exclusão |
CEIORC5, CEIORC6 | Vínculos dos itens com o Orçamento para Cliente e com a Ordem de Compra. | Somente leitura |
CEIORCVAR | Variáveis do orçamento. | Leitura e exclusão |
Duas rotinas completam o fluxo: CEI_PRC_CALCULAORCAMENTO, que calcula o orçamento, e CEI_PRC_GERAPROCESSORCAMENTO, que gera o processo.
O ponto central desta página. A tela do ERP preenche vários campos a partir do modelo de processo e do produto escolhidos. Pela API, esses campos são responsabilidade de quem integra. Cada passo de gravação 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. Os métodos usados nesta página:
| method | Objetos | Para que serve aqui | Passos |
|---|---|---|---|
GET | TABLE, VIEW | Ler o modelo, o produto, as adições, as despesas, os totais e o processo gerado. | 2, 5, 6, 8, 12 |
POST | TABLE | Incluir o cabeçalho, os itens e as despesas avulsas. | 3, 4, 6 |
PUT | TABLE | Completar as adições, ajustar as despesas e alterar o orçamento. | 5, 6, 9 |
DELETE | TABLE | Excluir item, adição, despesa, variável ou o orçamento inteiro. | 10 |
PATCH | PROCEDURE | Calcular o orçamento e gerar o processo. | 7, 11 |
Não confunda os dois níveis. O verbo HTTP da requisição de gravação é sempre PATCH; a operação é o campo "method" do JSON. Uma inclusão em CEIORC1 é uma requisição HTTP PATCH cujo corpo contém "method": "POST".
Dois pontos de formato que valem para a página inteira.
- Código numerado pelo servidor. Em cada tabela, um campo da chave é numerado pelo servidor na inclusão:
OCI_CODemCEIORC1,OCI_ITMemCEIORC2eCEIORC4,OCI_ADICAOemCEIORC3. Envie o campo com0, sempre presente emdataFields: o servidor grava o maior valor existente mais um e devolve o número na resposta. Sem o campo, a inclusão é recusada. - Datas sempre com a hora. Em
dataFields, comT:"2026-09-28T00:00:00". Emwhereeparams, com espaço:"2026-09-28 00:00:00". Detalhes na seção Datas, Horas e Data/Hora da documentação geral.
4. Visão geral do fluxo
Depois dos cadastros de retaguarda (Passo 1), o orçamento é montado e levado ao processo em nove operações via API, nesta ordem:
- Ler o modelo e o produto (
GET) — os valores que a tela copiaria sozinha (Passo 2). - Criar o cabeçalho (
POSTemCEIORC1). Na inclusão, o servidor cria as despesas do modelo que compõem o custo (Passo 3). - Incluir os itens (
POSTemCEIORC2), um por produto. Cada item é encaixado numa adição, criada pelo servidor quando falta (Passo 4). - Completar as adições (
PUTemCEIORC3) com o fornecedor e o fabricante (Passo 5). - Ajustar as despesas (
GET,PUTePOSTemCEIORC4; Passo 6). - Calcular (
PATCHemCEI_PRC_CALCULAORCAMENTO; Passo 7). - Conferir o resultado (
GETnas views de totais; Passo 8). - Gerar o processo (
PATCHemCEI_PRC_GERAPROCESSORCAMENTO; Passo 11). - Conferir o processo gerado (
GETemCEIORC1.PIM_CODe emCEIPROCESCAD; Passo 12).
Alteração (Passo 9) é um PUT seguido de novo cálculo: nada é recalculado sozinho, nem pela API nem pela tela. Exclusão (Passo 10) vai das tabelas filhas para o cabeçalho. Altere e exclua antes de gerar o processo: depois de gerado, as mudanças no orçamento não chegam ao processo.
O item vem antes da adição. A adição não precisa ser criada à parte: ao incluir um item sem adição, o servidor procura no orçamento uma adição da mesma NCM e do mesmo percentual de I.I. e, se não encontrar, cria uma nova. Por isso o Passo 4 (itens) precede o Passo 5 (adições).
5. Diagrama de execução
Convenção visual: azul (Retaguarda do ERP) · verde (Via API) · tracejado (retorno ao passo anterior, ou ramo de exclusão) · Pn = Passo n.
6. Aviso sobre liberação na retaguarda
Atenção — o que decide se este fluxo funciona na sua instância.
- Os verbos de cada objeto no cadastro de API do seu token. Este fluxo usa
GET,POST,PUTeDELETEemCEIORC1,CEIORC2,CEIORC3eCEIORC4;GETeDELETEemCEIORCVAR;GETemCEIORC5,CEIORC6,CEIPROCESMODELO,CEIPROCESMODELO6,CEIPROCESTPDOC,TMOV,INDICES,PRAZO,PROD,PRODUNI,PRODNCM,CLIFOR1,FILIAL,CEIPROCESCAD,CEIPROCESPREVISAO,DOCSPREVISAOe nas viewsCEI_VIEW_ORCTOTALORCAMENTO,CEI_VIEW_ORCTOTALADICAOeCEI_VIEW_TIPODOCUMENTO; ePATCHemCEI_PRC_CALCULAORCAMENTOeCEI_PRC_GERAPROCESSORCAMENTO. A lista efetiva aparece no dicionário da sua instância. - O responsável do orçamento (
VD_COD) é opcional e vem do cadastroVEND. Confirme no dicionário da sua instância se este objeto está disponível para o seu token. Se faltar, peça ao gestor do ERP a revisão do cadastro de API. - Duas configurações da instância mudam este fluxo, e estão explicadas na página central do módulo. O efeito neste fluxo:
CG_FT_USAPREVIAFIN— ligada (1), a geração do processo lança uma previsão financeira para cada despesa do orçamento que tenha pessoa, e cada uma precisa de data de previsão. Desligada (0), a inclusão de despesa aceita só tipos que sejam despesa de importação, e a geração registra as provisões do processo emCEIPROCESPREVISAO, a partir das despesas do modelo.CG_PIM_SUGESTAOCODIGO— maior que0, o código interno do processo gerado é substituído (Passo 11).
Antes do primeiro orçamento, os cadastros abaixo precisam existir e estar configurados no ERP. É deles que o servidor tira as despesas, os tributos, as datas e as parcelas do câmbio:
| Cadastro | Por que importa |
|---|---|
Modelo de Processo de Importação (CEIPROCESMODELO) | Tem o tipo de movimento de nacionalização (TM_CODNAC), o de saída (TM_CODSAI) e as indicações de formação de preço (MDL_PRECO*), nove delas copiadas para o orçamento. É a origem dos valores que você copia no Passo 3. O TM_CODSAI do orçamento vem do modelo, no servidor. |
Receitas e despesas previstas do modelo (CEIPROCESMODELO6) | As despesas com impacto no custo (MDL_IMPCUSTO) de 1 a 4 nascem no orçamento na inclusão do cabeçalho; as demais, no cálculo. A pessoa (CF_COD) e a condição de pagamento (PZ_COD) de cada despesa definem a previsão financeira e a data prevista. |
Tipo de movimento de entrada (TMOV) | Define o tipo de importação (TM_TIPOIMPORTA) e a incidência do PIS/Cofins na base do ICMS (TM_PISCOFINSICMS). Com rateio por peso (valor 1) do frete (TM_IMPRAT_FRETE), do seguro (TM_IMPRAT_SEGURO), das despesas de entrada (TM_IMPRAT_DESPENT) ou dos acréscimos, deduções e variação cambial (TM_IMPRAT_ADVC), o cálculo exige peso bruto em cada item. |
Tipos de despesa (CEIPROCESTPDOC) e o tipo de documento de cada um, com a data-base (TPDOC.TD_CODDATABASE) | O cálculo define a data de previsão de cada despesa do modelo pela data-base do tipo de documento, somada ao prazo da condição de pagamento da despesa no modelo. No orçamento valem quatro data-bases, cada uma ligada a uma data do cabeçalho: 102 Previsão do Embarque (OCI_PREVISAOEMBARQUE), 104 Previsão de Chegada (OCI_PREVISAOCHEGADA), 106 Previsão de Entrega (OCI_DATAPREVENTREGA) e 108 Cadastro do Processo (OCI_DATCAD). Configure a data-base nos tipos de documento das despesas do modelo; sem ela, e com CG_FT_USAPREVIAFIN = 1, a geração do processo é recusada por falta de prazo (ver Validações e erros). |
Produto (PROD, PRODNCM) | A NCM (PD_CODNCM) do item precisa ser a do cadastro, quando o produto não é genérico. O peso do cadastro (do produto ou da equivalência da unidade) entra no item que vier sem peso. O percentual de I.I. (PD_PERCII do produto ou, na falta dele, da NCM) decide em qual adição o item cai. |
Moeda (INDICES) e condição de pagamento com parcelas (PRAZO) | Quando o modelo prevê a despesa de Contrato de Câmbio (tipo 100), a condição de pagamento do orçamento (PZ_COD) a divide em uma despesa por parcela. |
Status de processo (CEISTATUSPROCESSO) | Pelo menos um status de cada tipo: 1 Ativo, 2 Encerrado e 3 Cancelado. O processo gerado no Passo 11 nasce com o status de tipo Ativo de menor código. |
Pessoas (CLIFOR1) | O cliente do orçamento, o fornecedor e o fabricante de cada adição e as pessoas das despesas. Com CG_PIM_SUGESTAOCODIGO = 2, o cliente precisa da sigla de processo (CF_PREFIXOPROCESSO). Ver Cadastro de Pessoas. |
| Configuração da instância | CG_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. Para conhecer os objetos exatos e as chaves aceitas, consulte o dicionário oficial da sua instância.
Na tela, escolher o modelo e o produto preenche vários campos do orçamento. Pela API, esse preenchimento é seu: leia os valores com "method": "GET" e copie-os nos Passos 3 e 4.
O que ler e para onde vai
| Leia | Onde | Envie em |
|---|---|---|
TM_CODNAC | CEIPROCESMODELO, por MDL_COD | CEIORC1.TM_CODENT |
TM_TIPOIMPORTA do tipo de movimento TM_CODNAC | TMOV, por TM_COD | CEIORC1.OCI_TIPOIMPORTA |
MDL_PRECOCIF, MDL_PRECOII, MDL_PRECOIPI, MDL_PRECOPISCOFINS, MDL_PRECOANTIDUMPING, MDL_PRECOICMSNACIO, MDL_PRECOAFRMM, MDL_PRECODESPESAENTRADA, MDL_PRECODESPESASAIDA | CEIPROCESMODELO | As nove OCI_PRECO* de mesmo sufixo, uma a uma (ver o Passo 3) |
| As despesas previstas | CEIPROCESMODELO6, por MDL_COD | Referência para o Passo 6: são elas que vão nascer no orçamento |
PD_CODNCM, PD_UNI3, PD_DES, PD_GENERICO | PROD, por PD_COD | CEIORC2.PD_CODNCM, OCI_UNI e OCI_DESCRICAO (ver o Passo 4) |
O modelo também tem condição de pagamento (PZ_COD) e responsável (VD_COD). A tela não os copia para o orçamento; se a sua operação usa os do modelo, copie-os você.
Exemplo — GET CEIPROCESMODELO
{
"method": "GET"
,"objectType": "TABLE"
,"objectName": "CEIPROCESMODELO"
,"fields": [
"TM_CODNAC"
,"TM_CODSAI"
,"PZ_COD"
,"VD_COD"
,"MDL_PRECOCIF"
,"MDL_PRECOII"
,"MDL_PRECOIPI"
,"MDL_PRECOPISCOFINS"
,"MDL_PRECOANTIDUMPING"
,"MDL_PRECOICMSNACIO"
,"MDL_PRECOAFRMM"
,"MDL_PRECODESPESAENTRADA"
,"MDL_PRECODESPESASAIDA"
]
,"where": [
{ "type": "field", "name": "MDL_COD", "value": 3 }
]
}
Com o TM_CODNAC devolvido, leia o tipo de importação:
{
"method": "GET"
,"objectType": "TABLE"
,"objectName": "TMOV"
,"fields": [
"TM_TIPOIMPORTA"
]
,"where": [
// TM_CODNAC lido no modelo
{ "type": "field", "name": "TM_COD", "value": "E060" }
]
}
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.
Erro comum — procurar o tipo de importação no modelo. O modelo não tem esse campo: o valor que a tela grava em OCI_TIPOIMPORTA é o TM_TIPOIMPORTA do tipo de movimento de nacionalização do modelo. Sem essa leitura, o orçamento fica sem tipo de importação, e o cálculo dos tributos considera o campo vazio.
Inclua o cabeçalho por uma requisição com "method": "POST" sobre CEIORC1.
Envie
| Campo | Observação |
|---|---|
OCI_COD = 0 | Obrigatório e sempre presente. O servidor gera o código do orçamento e o devolve na resposta. |
CF_COD | Obrigatório. Cliente do orçamento. |
MDL_COD | Obrigatório. Modelo de processo lido no Passo 2. |
ID_COD e OCI_IDCOTACAO | Moeda e cotação do orçamento. Exigidas pelo cálculo. |
OCI_INCOTERM | Exigido pelo cálculo. Domínio: CFR, CPT, CIF, CIP, FOB, FCA, EXW. |
OCI_CODINTERNO | Código de controle da empresa. Exigido para gerar o processo; não pode repetir o código interno de outro processo. |
PZ_COD | Condição de pagamento do câmbio. Envie já na inclusão: as parcelas do câmbio saem dela. |
OCI_PREVISAOEMBARQUE, OCI_PREVISAOCHEGADA, OCI_DATAPREVENTREGA | Opcionais, com T. São data-bases das despesas (Passo 1) e seguem para o processo. Envie as que os tipos de documento das despesas do modelo usam. |
VD_COD, OCI_CODCLISAI | Opcionais. Responsável e cliente da nota de saída. |
A tela preenche, a API não — envie você
| Campo | O que a tela grava |
|---|---|
FL_COD | Obrigatório. A empresa em que o usuário está logado. |
TM_CODENT | Obrigatório. O TM_CODNAC do modelo. |
OCI_DATCAD | A data do dia, com T. É a data-base 108 e o ponto de partida do prazo das previsões financeiras. Pela API, fica vazia se não for enviada. |
OCI_TIPOIMPORTA | O TM_TIPOIMPORTA do tipo de movimento TM_CODNAC. Domínio: 1 Conta e Ordem, 2 Encomenda, 3 Distribuição. |
OCI_PRECOCIF, OCI_PRECOII, OCI_PRECOIPI, OCI_PRECOPISCOFINS, OCI_PRECOANTIDUMPING, OCI_PRECOICMSNACIO, OCI_PRECOAFRMM, OCI_PRECODESPESAENTRADA, OCI_PRECODESPESASAIDA | As indicações de formação de preço do modelo (0 não, 1 sim). Copie cada MDL_PRECO* para a OCI_PRECO* de mesmo sufixo — por exemplo, MDL_PRECOICMSNACIO para OCI_PRECOICMSNACIO e MDL_PRECOANTIDUMPING para OCI_PRECOANTIDUMPING. Sem elas, o preço base de saída do item (OCI_PRECOBASEITEM) sai zero. |
OCS_COD | Opcional. O primeiro status comercial cadastrado. Se a sua operação usa status comercial, combine o código com o gestor do ERP. |
Não envie
| Campo | Por quê |
|---|---|
TM_CODSAI, OCI_PISCOFINSICMS | O servidor preenche na inclusão: o primeiro a partir do modelo, o segundo a partir do tipo de movimento de entrada. O valor enviado é substituído. |
OCI_PBCARGA, OCI_PLCARGA | Peso bruto e líquido da carga: o cálculo grava a soma dos itens. |
PIM_COD, DIM_COD | Vínculos com o processo e com a declaração de importação. O PIM_COD é gravado pela geração do processo (Passo 11). |
Exemplo — POST CEIORC1
{
"method": "POST"
,"objectType": "TABLE"
,"objectName": "CEIORC1"
,"dataFields": [
// numerado pelo servidor: sempre presente, com 0
{ "name": "OCI_COD", "value": 0 }
,{ "name": "FL_COD", "value": 1 }
,{ "name": "CF_COD", "value": 2150 }
,{ "name": "MDL_COD", "value": 3 }
// TM_CODNAC do modelo
,{ "name": "TM_CODENT", "value": "E060" }
,{ "name": "ID_COD", "value": 2 }
,{ "name": "OCI_IDCOTACAO", "value": 5.4321 }
,{ "name": "OCI_INCOTERM", "value": "FOB" }
,{ "name": "OCI_CODINTERNO", "value": "IMP-2026-015" }
,{ "name": "PZ_COD", "value": 12 }
,{ "name": "OCI_DATCAD", "value": "2026-09-28T00:00:00" }
,{ "name": "OCI_PREVISAOEMBARQUE", "value": "2026-10-15T00:00:00" }
,{ "name": "OCI_PREVISAOCHEGADA", "value": "2026-11-10T00:00:00" }
// TM_TIPOIMPORTA do tipo de movimento TM_CODNAC
,{ "name": "OCI_TIPOIMPORTA", "value": 3 }
// as nove indicações de preço, copiadas uma a uma do modelo
,{ "name": "OCI_PRECOCIF", "value": 1 }
,{ "name": "OCI_PRECOII", "value": 1 }
,{ "name": "OCI_PRECOIPI", "value": 0 }
,{ "name": "OCI_PRECOPISCOFINS", "value": 1 }
,{ "name": "OCI_PRECOANTIDUMPING", "value": 0 }
,{ "name": "OCI_PRECOICMSNACIO", "value": 1 }
,{ "name": "OCI_PRECOAFRMM", "value": 1 }
,{ "name": "OCI_PRECODESPESAENTRADA", "value": 1 }
,{ "name": "OCI_PRECODESPESASAIDA", "value": 0 }
]
}
A resposta traz Registro inserido com sucesso e, em data, o OCI_COD gerado. Guarde-o: é a chave de todos os passos seguintes. Confira por GET em CEIORC1 os campos que o servidor preencheu (TM_CODSAI e OCI_PISCOFINSICMS).
O que a inclusão já faz. Ao incluir o cabeçalho, o servidor cria em CEIORC4 as despesas do modelo com impacto no custo de 1 a 4, com o valor previsto do tipo de despesa e a pessoa do modelo. Com PZ_COD informado, a despesa de câmbio do modelo sai em uma linha por parcela da condição. O Passo 6 parte dessas linhas.
Erro comum — omitir o OCI_COD. Sem o campo, a inclusão é recusada com O campo Auto-Incremente "OCI_COD" não foi encontrado na lista de campos para persistência!. Envie-o com 0. Se duas inclusões simultâneas receberem o mesmo número, a segunda é recusada por chave repetida: refaça o POST, de novo com 0.
Faça um POST em CEIORC2 para cada produto, apontando para o OCI_COD do Passo 3. Inclua todos os itens antes de completar as adições e de calcular.
Envie
| Campo | Observação |
|---|---|
OCI_COD | Código do orçamento, devolvido no Passo 3. |
OCI_ITM = 0 | Obrigatório e sempre presente. O servidor numera o item dentro do orçamento. |
PD_COD | Obrigatório. Código do produto. |
OCI_QTD | Exigida pelo cálculo. Quantidade. Sem ela, o FOB do item sai zero. |
OCI_PRECOMNEG | Exigido pelo cálculo. Preço unitário na moeda negociada. Sem ele, o FOB do item sai zero. |
OCI_PESO, OCI_PESOL | Opcionais. Peso bruto e líquido totais do item (não unitários). Vazios ou zero, o cálculo usa o peso do cadastro vezes a quantidade. |
OCI_PDESCONTOMNEG ou OCI_VDESCONTOMNEG | Opcionais. Percentual ou valor do desconto na moeda negociada. Basta um: o cálculo deriva o outro. |
A tela preenche, a API não — envie você
| Campo | O que a tela grava |
|---|---|
PD_CODNCM | Obrigatório. A NCM do produto (PROD.PD_CODNCM). Para produto não genérico (PD_GENERICO = 0), precisa ser igual à do cadastro. |
OCI_UNI | A unidade de controle do produto (PROD.PD_UNI3). Precisa existir em PRODUNI. |
OCI_DESCRICAO | A descrição do produto (PROD.PD_DES), que pode ser detalhada depois. |
Não envie
| Campo | Por quê |
|---|---|
OCI_ADICAO | Omita. O servidor procura no orçamento uma adição com a mesma NCM e o mesmo percentual de I.I. do item; se não encontrar, cria uma adição nova, ainda sem fornecedor, que você completa no Passo 5. |
FOB, frete, seguro, CIF, bases e valores de tributo, OCI_TOTALITEM, OCI_VLRCUSTOITEM, OCI_PRECOBASEITEM, OCI_VLRCUSTOGERITEM | Calculados pelo servidor no Passo 7. |
Exemplo — POST CEIORC2 (um item)
{
"method": "POST"
,"objectType": "TABLE"
,"objectName": "CEIORC2"
,"dataFields": [
{ "name": "OCI_COD", "value": 1024 }
// numerado pelo servidor: sempre presente, com 0
,{ "name": "OCI_ITM", "value": 0 }
,{ "name": "PD_COD", "value": 4521 }
// lidos em PROD: PD_CODNCM, PD_UNI3 e PD_DES
,{ "name": "PD_CODNCM", "value": "84713012" }
,{ "name": "OCI_UNI", "value": "UN" }
,{ "name": "OCI_DESCRICAO", "value": "Notebook 14 polegadas" }
,{ "name": "OCI_QTD", "value": 200 }
,{ "name": "OCI_PRECOMNEG", "value": 85.50 }
// peso bruto total do item; omita para usar o do cadastro
,{ "name": "OCI_PESO", "value": 420.000 }
]
}
Repita para cada produto. Depois de incluir os itens, leia as adições (Passo 5) para saber quais foram criadas.
Caminho alternativo — itens da mesma NCM de fornecedores diferentes. O encaixe automático agrupa pela NCM e pelo percentual de I.I., sem olhar o fornecedor. Para separar, crie antes as adições por POST em CEIORC3, com OCI_ADICAO = 0 (sempre presente), OCI_COD, PD_CODNCM e CF_CODFOR, e informe no item o OCI_ADICAO devolvido. Nesse caminho, informe no item apenas adição da mesma NCM dele.
Exemplo — POST CEIORC3 (adição criada antes do item)
{
"method": "POST"
,"objectType": "TABLE"
,"objectName": "CEIORC3"
,"dataFields": [
{ "name": "OCI_COD", "value": 1024 }
// numerado pelo servidor: sempre presente, com 0
,{ "name": "OCI_ADICAO", "value": 0 }
,{ "name": "PD_CODNCM", "value": "84713012" }
,{ "name": "CF_CODFOR", "value": 3310 }
]
}
Erro comum — NCM diferente da do cadastro. Para produto não genérico, a inclusão é recusada com Código NCM informado é diferente do cadastro do produto!. Envie o PD_CODNCM lido em PROD no Passo 2.
Leia as adições do orçamento com GET em CEIORC3, filtrando por OCI_COD, e grave o fornecedor em cada uma com um PUT. O cálculo recusa o orçamento enquanto alguma adição estiver sem fornecedor.
Envie
| Campo | Observação |
|---|---|
OCI_COD e OCI_ADICAO, no where | Os dois com "key": true. Um where só com OCI_COD altera todas as adições do orçamento. |
CF_CODFOR | Fornecedor da adição. Exigido pelo cálculo em todas as adições, inclusive nas que tenham ficado sem item. |
CF_CODFAB | Opcional. Fabricante. |
A tela preenche, a API não — envie você
Nenhum campo: na adição, a tela também espera que o usuário informe o fornecedor e o fabricante.
Não envie
| Campo | Por quê |
|---|---|
OCI_IPICMS, OCI_IPICMST | O servidor recalcula em toda gravação da adição, a partir do fornecedor e do tipo de movimento de entrada. |
OCI_PERII, OCI_PERIPI, OCI_PERPIS, OCI_PERCOFINS, OCI_PICM, OCI_REDICM, OCI_PBCR, OCI_PICMST, OCI_PCTREDPIS, OCI_PCTREDCOFINS | Percentuais de tributo: o cálculo os regrava. |
A chave em dataFields | OCI_COD e OCI_ADICAO vão só no where. |
Exemplo — PUT CEIORC3 (uma adição)
{
"method": "PUT"
,"objectType": "TABLE"
,"objectName": "CEIORC3"
,"dataFields": [
{ "name": "CF_CODFOR", "value": 3310 }
,{ "name": "CF_CODFAB", "value": 3311 }
]
,"where": [
{ "type": "field", "name": "OCI_COD", "key": true, "value": 1024 }
,{ "type": "field", "name": "OCI_ADICAO", "key": true, "value": 1 }
]
}
Erro comum — esquecer uma adição. Basta uma adição sem fornecedor para o cálculo recusar com Fornecedor não informado em alguma Adição do Orçamento de Importação N.. Isso inclui a adição que ficou vazia depois da exclusão de itens: informe o fornecedor ou exclua a adição (Passo 10).
Leia as despesas com GET em CEIORC4, filtrando por OCI_COD: as do modelo com impacto no custo de 1 a 4 já estão lá desde o Passo 3. Ajuste as existentes com PUT e use POST só para despesa avulsa, que o modelo não prevê. As demais despesas do modelo entram no cálculo (Passo 7).
Envie
| Campo | Observação |
|---|---|
OCI_COD e OCI_ITM, no where do PUT | Os dois com "key": true. Um where só com OCI_COD altera todas as despesas. |
OCI_ITM = 0 e TDP_COD, no POST | Obrigatórios na despesa avulsa. O servidor numera o OCI_ITM. |
O valor: OCI_VALORMNAC, ou OCI_VALORMNEG com ID_COD e OCI_IDCOTACAO | Valor em moeda nacional, ou valor em moeda negociada com a moeda e a cotação. Nos tipos de despesa de importação (TDP_TIPODESPIMP de 100 a 199, ver CEI_VIEW_TIPODOCUMENTO), o cálculo converte o valor negociado para a moeda nacional, e cotação sem valor negociado é recusada. Nos demais tipos, envie também OCI_VALORMNAC: é ele que entra no custo e na previsão financeira. |
CF_COD | Pessoa da despesa. Só a despesa com pessoa vira previsão financeira do processo. |
OCI_IMPCUSTO, OCI_REEMBOLSO, OCI_INCIDEICMS | Impacto no custo, conta corrente e incidência na base do ICMS. Nas despesas do modelo, já vêm do modelo. Domínios no dicionário oficial. |
OCI_DATAPREV | Data de previsão, com T. Envie na despesa avulsa; na despesa do modelo, a data vem da data-base (Passo 1). |
A tela preenche, a API não — envie você
Nenhum campo: a tela e a API gravam as despesas do mesmo jeito, e as despesas do modelo são criadas pelo servidor nos dois casos.
Não envie
| Campo | Por quê |
|---|---|
Um POST de tipo de despesa que já está no orçamento | Para mudar uma despesa que já está no orçamento, use PUT: um POST do mesmo tipo inclui uma segunda despesa. |
| Valor e cotação das despesas calculadas pelo sistema | O cálculo grava: tributos de nacionalização (tipos de despesa de importação 103 a 106 e 128 a 130), câmbio (100, quando o orçamento tem condição de pagamento) e despesas de saída calculadas (200 a 205, 211 a 218 e 221). O tipo de cada despesa está em CEIPROCESTPDOC.TDP_TIPODESPIMP, e a lista dos tipos, em CEI_VIEW_TIPODOCUMENTO. |
OCI_DATAPREV das despesas do modelo | O cálculo define a data pela data-base do tipo de documento. |
A chave em dataFields do PUT | OCI_COD e OCI_ITM vão só no where. |
Exemplo — PUT CEIORC4 (despesa do modelo)
{
"method": "PUT"
,"objectType": "TABLE"
,"objectName": "CEIORC4"
,"dataFields": [
{ "name": "OCI_VALORMNAC", "value": 1850.00 }
,{ "name": "CF_COD", "value": 3400 }
]
,"where": [
{ "type": "field", "name": "OCI_COD", "key": true, "value": 1024 }
,{ "type": "field", "name": "OCI_ITM", "key": true, "value": 2 }
]
}
Exemplo — POST CEIORC4 (despesa avulsa em moeda negociada)
{
"method": "POST"
,"objectType": "TABLE"
,"objectName": "CEIORC4"
,"dataFields": [
{ "name": "OCI_COD", "value": 1024 }
// numerado pelo servidor: sempre presente, com 0
,{ "name": "OCI_ITM", "value": 0 }
,{ "name": "TDP_COD", "value": 45 }
,{ "name": "OCI_VALORMNEG", "value": 300.00 }
,{ "name": "ID_COD", "value": 2 }
,{ "name": "OCI_IDCOTACAO", "value": 5.4321 }
// 300.00 x 5.4321: informe quando o tipo não é de importação (100 a 199)
,{ "name": "OCI_VALORMNAC", "value": 1629.63 }
,{ "name": "OCI_IMPCUSTO", "value": 1 }
,{ "name": "CF_COD", "value": 3400 }
,{ "name": "OCI_DATAPREV", "value": "2026-11-20T00:00:00" }
]
}
Erro comum — tipo que não é despesa. Na instância com CG_FT_USAPREVIAFIN = 0, a inclusão de um tipo que não é despesa de importação (TDP_DESPESA = 0 em CEI_VIEW_TIPODOCUMENTO) é recusada com O Tipo Financeiro T não é uma despesa adicional de importação. Escolha um tipo de despesa de importação.
Com itens, adições e despesas completos, execute a rotina CEI_PRC_CALCULAORCAMENTO por uma requisição com "method": "PATCH". Calcule depois de qualquer alteração e antes de gerar o processo.
Envie
| Parâmetro | Descrição |
|---|---|
VOCI_COD | Código do orçamento a calcular (CEIORC1.OCI_COD). |
A tela faz, a API não — faça você
Depois de calcular, a tela relê o orçamento na hora. Pela API, a rotina não devolve valores: leia o resultado no Passo 8.
O que o cálculo grava
- Nos itens: FOB nas duas moedas, desconto, pesos, frete, seguro, tributos (II, IPI, PIS, Cofins, ICMS, ICMS-ST, antidumping e AFRMM), custo e preço base de saída.
- Nas adições: os percentuais de tributo.
- No cabeçalho: o peso bruto e o líquido da carga.
- Nas despesas: as despesas do modelo que faltavam, os valores das despesas calculadas pelo sistema e as datas de previsão das despesas do modelo.
- Os Orçamentos para Cliente vinculados ao orçamento, que são recalculados junto.
Exemplo — PATCH CEI_PRC_CALCULAORCAMENTO
{
"method": "PATCH"
,"objectType": "PROCEDURE"
,"objectName": "CEI_PRC_CALCULAORCAMENTO"
,"params": [
{ "name": "VOCI_COD", "value": "1024" }
]
}
Sucesso sem cálculo. Orçamento inexistente, sem itens, sem modelo de processo ou sem tipo de movimento de entrada válidos faz a rotina terminar sem erro e sem calcular nada. Confirme sempre pelo Passo 8.
Erros comuns. O cálculo recusa o orçamento sem cotação, sem INCOTERM, com adição sem fornecedor, com item sem peso bruto quando o tipo de movimento rateia por peso, ou com despesa de tipo de importação que tem cotação e não tem valor negociado. As mensagens estão em Validações e erros.
Leia o resultado do cálculo com "method": "GET":
| Objeto | Filtro | O que traz |
|---|---|---|
CEI_VIEW_ORCTOTALORCAMENTO | OCI_COD | Totais do orçamento: FOB, frete, seguro, CIF, bases e valores de tributo, peso e custo (OCI_TOT_*). |
CEI_VIEW_ORCTOTALADICAO | OCI_COD e OCI_ADICAO | Os mesmos totais por adição. Adição sem item não aparece. |
CEIORC2 | OCI_COD | Valores calculados de cada item. |
CEIORC4 | OCI_COD | Despesas com valores e datas de previsão. |
Exemplo — GET CEI_VIEW_ORCTOTALORCAMENTO
{
"method": "GET"
,"objectType": "VIEW"
,"objectName": "CEI_VIEW_ORCTOTALORCAMENTO"
,"fields": [
"OCI_TOT_VALORFOBMNEG"
,"OCI_TOT_VALORFOBMNAC"
,"OCI_TOT_TOTALCIF"
,"OCI_TOT_VII"
,"OCI_TOT_VIPI"
,"OCI_TOT_VICMS"
,"OCI_TOT_VLRCUSTOITEM"
]
,"where": [
{ "type": "field", "name": "OCI_COD", "value": 1024 }
]
}
Sinal de que o cálculo não rodou: OCI_TOT_VALORFOBMNEG vazio ou zero. Nesse caso, confira o cabeçalho (modelo e tipo de movimento de entrada) e os itens, e calcule de novo.
Altere com "method": "PUT" na tabela do dado e calcule de novo (Passo 7): nada é recalculado sozinho, e a geração do processo parte do que estiver gravado no orçamento.
Regras do PUT. Envie em dataFields só os campos que mudam, sem a chave. No where, envie só as colunas da chave primária, todas com "key": true: OCI_COD em CEIORC1; OCI_COD e OCI_ITM em CEIORC2 e CEIORC4; OCI_COD e OCI_ADICAO em CEIORC3. Em CEIORC2, CEIORC3 e CEIORC4, um where só com OCI_COD altera todas as linhas do orçamento.
Envie
| Situação | O que enviar |
|---|---|
| Quantidade, preço, peso ou desconto do item | PUT em CEIORC2 com os campos alterados. |
| Item novo | POST em CEIORC2 (Passo 4). Depois, leia as adições e informe o fornecedor em qualquer adição nova (Passo 5). |
| Cotação, moeda ou INCOTERM | PUT em CEIORC1. |
| Troca de tipo de movimento de entrada | TM_CODENT e, junto, OCI_PISCOFINSICMS (o TM_PISCOFINSICMS do tipo novo): o servidor só deriva esse campo na inclusão. |
A tela preenche, a API não — envie você
| Situação | O que a tela grava |
|---|---|
Troca de modelo (MDL_COD) | A tela copia de novo o TM_CODENT, o OCI_TIPOIMPORTA e as nove OCI_PRECO* do modelo novo. Pela API, o servidor atualiza só o TM_CODSAI: envie os demais no mesmo PUT, lidos como no Passo 2, incluindo o OCI_PISCOFINSICMS (o TM_PISCOFINSICMS do novo TM_CODENT, lido em TMOV). As despesas do modelo novo com impacto no custo de 1 a 4 são criadas só na inclusão do cabeçalho: inclua-as por POST (Passo 6) e exclua as do modelo anterior que não se aplicam. As demais entram no próximo cálculo. |
Não envie
| Campo | Por quê |
|---|---|
A chave em dataFields | Ela vai só no where. |
TM_CODSAI | O servidor o regrava a partir do modelo quando o MDL_COD muda. |
| Campos calculados | Os listados como "não envie" nos Passos 4 a 6: o próximo cálculo os regrava. |
Exemplo — PUT CEIORC2 (quantidade de um item)
{
"method": "PUT"
,"objectType": "TABLE"
,"objectName": "CEIORC2"
,"dataFields": [
{ "name": "OCI_QTD", "value": 250 }
]
,"where": [
{ "type": "field", "name": "OCI_COD", "key": true, "value": 1024 }
,{ "type": "field", "name": "OCI_ITM", "key": true, "value": 1 }
]
}
Erro comum — trocar a NCM de um item. A alteração da NCM de um item preso a uma adição de outra NCM é recusada com A NCM da adição informada é diferente da NCM do item!. Envie junto o OCI_ADICAO de uma adição da nova NCM, ou exclua o item e inclua-o de novo sem OCI_ADICAO.
Exclua com "method": "DELETE", das tabelas filhas para o cabeçalho. Exclua antes de gerar o processo (Passo 11).
Regra do DELETE. O where é aplicado como veio. Para excluir uma linha, envie a chave primária completa, com "key": true em cada campo. Em CEIORC2, CEIORC3 e CEIORC4, um where só com OCI_COD exclui todas as linhas do orçamento — é o que se usa para excluir o orçamento inteiro.
| Excluir | Como | Efeito e o que impede |
|---|---|---|
| Item | CEIORC2, por OCI_COD e OCI_ITM | O vínculo do item com o Orçamento para Cliente e com a Ordem de Compra é excluído junto. A adição fica: se ficou vazia, exclua-a ou informe nela o fornecedor, senão o próximo cálculo é recusado. |
| Adição | CEIORC3, por OCI_COD e OCI_ADICAO | Recusada enquanto houver item nela: exclua os itens antes. |
| Despesa | CEIORC4, por OCI_COD e OCI_ITM | Sem restrição. Uma despesa do modelo com impacto no custo diferente de 1 a 4 volta no próximo cálculo. |
| Orçamento inteiro | Nesta ordem, cada DELETE com where só por OCI_COD: CEIORC4 → CEIORC2 → CEIORC3 → CEIORCVAR → anexos → CEIORC1 | Numa tabela sem linhas, a resposta é O registro informado para DELETE nao existe: siga para a próxima. Remova os anexos pelo endpoint de anexos (Controle de Anexos): descubra o id_recurso do Orçamento de Importação com acao=recursos; liste os anexos com acao=listar, esse id_recurso e id_registro no formato OCI_COD; (por exemplo, 1024;, com o ponto e vírgula); e exclua cada id_arquivo devolvido. |
Exemplo — DELETE CEIORC2 (um item)
{
"method": "DELETE"
,"objectType": "TABLE"
,"objectName": "CEIORC2"
,"where": [
{ "type": "field", "name": "OCI_COD", "key": true, "value": 1024 }
,{ "type": "field", "name": "OCI_ITM", "key": true, "value": 2 }
]
}
Exemplo — DELETE CEIORC4 (todas as despesas do orçamento)
{
"method": "DELETE"
,"objectType": "TABLE"
,"objectName": "CEIORC4"
,"where": [
// só OCI_COD: exclui todas as despesas do orçamento
{ "type": "field", "name": "OCI_COD", "key": true, "value": 1024 }
]
}
Erro comum — excluir fora de ordem. O cabeçalho com despesas, itens, adições ou variáveis é recusado com Primary key for row in table 'CEIORC1' is referenced by foreign key 'FK_CEIORC4_CEIORC1' in table 'CEIORC4' (ou a variante da tabela filha que restou). O cabeçalho com anexos é recusado com Existem anexos vinculados a este registro.. Siga a ordem acima.
Com o orçamento calculado e conferido, gere o Processo de Importação executando CEI_PRC_GERAPROCESSORCAMENTO com "method": "PATCH". Faça todas as alterações e exclusões antes: depois de gerado, as mudanças no orçamento não chegam ao processo.
Envie
| Parâmetro | Descrição |
|---|---|
POCI_COD | Código do orçamento que dá origem ao processo (CEIORC1.OCI_COD). |
A tela faz, a API não — faça você
Depois de gerar, a tela relê o código do processo no orçamento e abre o processo. Pela API, a rotina não devolve o código: leia-o no Passo 12.
Condições, nesta ordem
- O orçamento ainda não foi vinculado a um processo.
- Tem código interno (
OCI_CODINTERNO). - Tem itens.
- Foi calculado: a soma do FOB dos itens é diferente de zero.
O que a geração faz
- Cria o processo em
CEIPROCESCAD, com a descriçãoProcesso gerado do Orçamento Ne os dados do orçamento: filial, cliente, código interno, modelo, tipos de movimento, responsável, embarque e destino, previsões de embarque, chegada e entrega, formação do preço e condição de pagamento do câmbio. Do modelo de processo vêm também as transportadoras, a tributação e os dados de saldo e de extrato. O processo nasce com o status de tipo Ativo de menor código cadastrado emCEISTATUSPROCESSO. - Grava o código do processo em
CEIORC1.PIM_COD. - Com
CG_FT_USAPREVIAFIN = 1, lança uma previsão financeira para cada despesa do orçamento que tenha pessoa (CF_COD), com o valor e a data de previsão gravados emCEIORC4. Com0, registra emCEIPROCESPREVISAOas provisões das despesas do modelo de processo, com o valor previsto de cada tipo de despesa (seção 6).
Com CG_PIM_SUGESTAOCODIGO maior que zero, o código interno do processo é o que a configuração sugere, e não o OCI_CODINTERNO.
Exemplo — PATCH CEI_PRC_GERAPROCESSORCAMENTO
{
"method": "PATCH"
,"objectType": "PROCEDURE"
,"objectName": "CEI_PRC_GERAPROCESSORCAMENTO"
,"params": [
{ "name": "POCI_COD", "value": "1024" }
]
}
Falha no meio não deixa processo pela metade. Se a geração for recusada em qualquer ponto — inclusive no cadastro das previsões financeiras —, nada fica gravado: nem o processo, nem o PIM_COD no orçamento. Corrija a causa e execute de novo.
Erro comum — despesa sem data de previsão. Com CG_FT_USAPREVIAFIN = 1, cada despesa com pessoa precisa de data de previsão, e a falta dela recusa a geração com a mensagem de prazo obrigatório listada em Validações e erros. Configure a data-base dos tipos de documento das despesas do modelo (Passo 1) e envie no cabeçalho a data que ela usa (Passo 3); na despesa avulsa, envie OCI_DATAPREV (Passo 6).
Leia o processo com "method": "GET", nesta ordem:
| Objeto | Filtro | O que conferir |
|---|---|---|
CEIORC1 | OCI_COD | PIM_COD: o código do processo gerado. |
CEIPROCESCAD | PIM_COD | O processo: descrição, código interno (PIM_CODINTERNO), status (PIM_STATUS), modelo e datas. |
CEIPROCESPREVISAO | PIM_COD | As provisões financeiras do processo, na instância com CG_FT_USAPREVIAFIN = 0. |
DOCSPREVISAO | PIM_COD | As previsões financeiras do processo, na instância com CG_FT_USAPREVIAFIN = 1. |
Exemplo — GET CEIORC1 (código do processo)
{
"method": "GET"
,"objectType": "TABLE"
,"objectName": "CEIORC1"
,"fields": [
"PIM_COD"
]
,"where": [
{ "type": "field", "name": "OCI_COD", "value": 1024 }
]
}
Para operar o processo gerado (status, datas, títulos e consultas), siga pela página do Processo de Importação.
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 orçamento; I, o item; T, o tipo de despesa (TDP_COD); P, o produto; Y, o processo; X, o valor envolvido (campo, código interno ou previsão financeira).
Como a mensagem chega. A tabela cita o texto com acentos, para facilitar a leitura. Na resposta da API, o texto chega sem acentos e precedido de um prefixo com a operação — na execução de rotina, Falha ao tentar resolver a requisicao (PATH). Erro:. Na exclusão, os acentos são mantidos. Compare pelo trecho característico, não pelo texto inteiro.
Gravação e exclusão
| Mensagem | Causa | O que fazer |
|---|---|---|
| O campo Auto-Incremente "X" não foi encontrado na lista de campos para persistência! | A inclusão omitiu o campo numerado pelo servidor: OCI_COD, OCI_ITM ou OCI_ADICAO. | Envie o campo com 0. |
| Registro já foi inserido… (seguida da tabela e da chave) | Chave repetida, por exemplo em duas inclusões simultâneas. | Refaça o POST com o campo numerado em 0. |
| Código NCM informado é diferente do cadastro do produto! | A NCM do item difere da do produto não genérico. | Envie o PD_CODNCM de PROD (Passo 4). |
| A NCM da adição informada é diferente da NCM do item! | Troca de NCM num item preso a uma adição de outra NCM. | Envie o OCI_ADICAO de uma adição da nova NCM, ou exclua e inclua o item de novo (Passo 9). |
| O Tipo Financeiro T não é uma despesa adicional de importação | Com CG_FT_USAPREVIAFIN = 0, inclusão de despesa de um tipo que não é despesa de importação. | Use um tipo de despesa de importação (Passo 6). |
| Nao foram informados valores da chave primaria da tabela | PUT sem nenhum item com "key": true no where. | Marque a chave primária com "key": true. |
| O registro informado para UPDATE nao existe | O where do PUT não encontrou o registro. | Confira a chave por GET. |
| O registro informado para DELETE nao existe | O where do DELETE não encontrou linha. | Confira a chave. Na exclusão do orçamento inteiro, siga para a próxima tabela. |
| Primary key for row in table 'CEIORC1' is referenced by foreign key 'FK_CEIORC4_CEIORC1' in table 'CEIORC4' | Exclusão do cabeçalho com despesas. Há variantes para as demais filhas (FK_CEIORC2_CEIORC1, FK_CEIORC3_CEIORC1, FK_CEIORCVAR_CEIORC1) e para a adição com itens (FK_CEIORC2_CEIORC3). | Siga a ordem do Passo 10. |
| Existem anexos vinculados a este registro. | Exclusão do cabeçalho com anexos. | Remova os anexos pelo endpoint de anexos (Controle de Anexos). |
Cálculo
| Mensagem | Causa | O que fazer |
|---|---|---|
| Cotação não foi informada no Orçamento de Importação N. | OCI_IDCOTACAO vazio ou zero. | PUT em CEIORC1 com ID_COD e OCI_IDCOTACAO, e calcule. |
| Código INCOTERM não foi informado no Orçamento de Importação N. | OCI_INCOTERM vazio. | PUT em CEIORC1 com o INCOTERM, e calcule. |
| Fornecedor não informado em alguma Adição do Orçamento de Importação N. | Alguma adição sem CF_CODFOR, inclusive uma que ficou sem item. | PUT com o fornecedor (Passo 5), ou exclua a adição vazia. |
| O item I do Orçamento de Importação N esta sem a informação do "Peso Bruto". Informe o peso bruto do item ou verifique o cadastro do produto P | O tipo de movimento rateia por peso, e o item e o produto estão sem peso bruto. | Envie OCI_PESO no item, ou peça à retaguarda o peso no cadastro do produto. |
| O item I de despesa/receitas do Orçamento de Importação N esta sem a informação do "Valor da Moeda Negociada". Verifique a configuração. | Despesa de tipo de importação (100 a 199) com cotação e sem valor na moeda negociada. | Envie OCI_VALORMNEG, ou deixe a despesa só com OCI_VALORMNAC, sem cotação. |
Geração do processo
| Mensagem | Causa | O que fazer |
|---|---|---|
| O orçamento de importação N já esta vinculado ao processo de importação Y | O processo deste orçamento já foi gerado. | Leia o PIM_COD (Passo 12). |
| O orçamento de importação N esta sem a informação do código interno | OCI_CODINTERNO vazio. | PUT em CEIORC1 com o código interno. |
| O orçamento de importação N não possui itens informados | Orçamento sem itens. | Inclua os itens (Passo 4) e calcule. |
| O orçamento de importação N ainda não foi calculado | A soma do FOB dos itens é zero. | Calcule (Passo 7). |
| O código interno X já foi utilizado no processo Y | Outro processo já tem esse código interno. | Altere o OCI_CODINTERNO e gere de novo. |
| Configure uma Sigla única para o Cliente deste Processo antes de Salvar | Com CG_PIM_SUGESTAOCODIGO = 2, o cliente 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 modelo | Com CG_FT_USAPREVIAFIN = 1, uma despesa com pessoa está sem data de previsão: falta a data-base no tipo de documento, ou a data que ela usa está vazia no cabeçalho. | Configure a data-base (Passo 1), envie a data do cabeçalho (Passo 3), calcule e gere de novo. Na despesa avulsa, envie OCI_DATAPREV. |
| Prazo em dias não pode ser negativo. Previsão Financeira X | Com CG_FT_USAPREVIAFIN = 1, uma despesa tem data de previsão anterior à data de cadastro do orçamento (OCI_DATCAD). | Revise as datas do cabeçalho e a data de previsão das despesas avulsas; calcule e gere de novo. |
Sem mensagem
| Situação | Causa | O que fazer |
|---|---|---|
| O cálculo termina com sucesso e sem efeito. | Orçamento inexistente, sem itens, ou sem modelo de processo ou tipo de movimento de entrada válidos. | Confira pelo GET do Passo 8. |
| A geração termina com sucesso e sem efeito. | Orçamento inexistente, ou sem modelo de processo, tipo de movimento de entrada ou filial válidos. | Confira pelo GET do Passo 12. |
Termos desta página
Os termos transversais do módulo — adição, despesa do modelo, data-base, moeda negociada e cotação, código interno — estão na página central. Os abaixo são próprios deste fluxo.
- Despesa avulsa
- A despesa que você inclui por
POSTemCEIORC4e que o modelo de processo não prevê. Diferente da despesa do modelo, a data de previsão dela é a que você enviar emOCI_DATAPREV. - Despesa calculada pelo sistema
- A despesa cujo valor o cálculo grava a partir dos totais do orçamento: tributos de nacionalização, câmbio (quando o orçamento tem condição de pagamento) e despesas de saída calculadas. O tipo é o
TDP_TIPODESPIMPdo tipo de despesa (Passo 6). - Impacto no custo
- O campo
OCI_IMPCUSTO(no modelo,MDL_IMPCUSTO): como a despesa entra no custo da importação — custo de entrada, custo de saída, acréscimo ou dedução do CIF, custo gerencial, entre outros. As despesas do modelo de valor1a4nascem na inclusão do cabeçalho; as demais, no cálculo. - Encaixe do item na adição
- O que o servidor faz ao incluir um item sem
OCI_ADICAO: procura no orçamento uma adição com a mesma NCM e o mesmo percentual de I.I. e, se não encontrar, cria uma nova, ainda sem fornecedor (Passo 4).
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 Orçamento 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 CEIORC1 no cabeçalho e de CEIORC2 na grade de itens.
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ágina | Como 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. |
| Processo de Importação | O que se faz com o processo gerado no Passo 11: status, datas previstas, títulos e consultas. Descreve também os outros dois caminhos de criação do processo: a partir de Ordens de Compra e por gravação direta. |
| Ordem de Compra | Os itens do orçamento podem estar vinculados a itens de Ordem de Compra (CEIORC6, somente leitura pela API). A exclusão do item do orçamento desfaz o vínculo (Passo 10). |
| Cadastro de Pessoas | O cliente do orçamento, o fornecedor e o fabricante das adições e as pessoas das despesas. |
| Cadastro de Produto | NCM, peso, unidade e percentual de I.I. dos produtos dos itens. |
| Controle de Anexos | O endpoint que remove os anexos do orçamento antes da exclusão do cabeçalho. |
| Orçamento para Cliente | Os Orçamentos para Cliente vinculados ao orçamento de importação (CEIORC5, somente leitura pela API) são recalculados pelo cálculo do Passo 7. A geração deles é feita na retaguarda. |
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 CEIORC1 a CEIORC4, 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.