PrevisaoVendas
CRUD de Previsão de Vendas (tabela SC4) via rotina
automática MATA700. A chave de negócio é composta —
C4_PRODUTO + C4_DATA — e ambos são
obrigatórios em todas as rotas que tocam um registro específico.
A data trafega no path sempre como string numérica de 8 dígitos
(AAAAMMDD); a conversão para Date é feita
internamente via SToD.
https://erpapi.jetme.com.br/api/99/01
Empresa 99 · Filial 01
Endpoint OAuth2
Sem credenciais? Você pode pegar o token rodando
./src/scripts/get-token.sh na biblioteca e
colar o access_token aqui no campo de refresh
(ou clique em "Logout" para limpar e voltar ao fake).
Convenções
Chave composta na URL. As rotas que tocam um
registro específico (GET, POST,
PUT, DELETE) recebem dois
path params: {produto} (código C4_PRODUTO)
e {data} (string numérica de 8 dígitos no formato
AAAAMMDD). Pontuação na data (-,
/) é rejeitada com 400.
C4_DATA é imutável. A combinação
C4_PRODUTO + C4_DATA é a chave lógica do registro.
No PUT, a data enviada no path precisa ser
idêntica à da inclusão; tentar "mover" a data
equivale a criar uma previsão nova — use DELETE
seguido de POST.
Sem cabeçalho/itens. Diferente de pedidos
(SC5/SC6), MATA700 trabalha
com um aArray plano único — não há estrutura
mestre/detalhe. O payload é um JSON simples e o
DELETE envia C4_PRODUTO +
C4_DATA no array para que o MsExecAuto localize a
chave correta (exigência da TDN MATA700).
Path params no body são ignorados.
C4_PRODUTO e C4_DATA vêm sempre do path;
se aparecerem no body de POST/PUT, são
descartados silenciosamente — não há erro, mas tampouco efeito.
Paginação. /_list usa
page/pageSize (default 50,
máx 500). Filtro por cod aproveita o
índice 1 (prefixo de C4_PRODUTO); a faixa
dataIni/dataFim aplica-se sobre
C4_DATA em scan filial.
Previsão
CRUD por produto + dataDescrição
Retorna uma previsão pesquisada pela chave composta
C4_PRODUTO + C4_DATA. Aplica filtro
de filial (xFilial("SC4")) e respeita o whitelist
CAMPOS_GET. O campo C4_DATA é
serializado como string AAAAMMDD via
DToS.
Path parameters
SB1.B1_COD). Tamanho conforme TamSX3("C4_PRODUTO").AAAAMMDD. Pattern: ^\d{8}$.Chamada de exemplo
GET https://erpapi.jetme.com.br/api/99/01/WsPrevVenda/PA001/20260612 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
{ success: true, data: Previsao }.TamSX3 ou data fora do pattern. Tier: validation-error.Descrição
Inclui uma previsão nova via MATA700 em modo
3 (nOper=3). A chave lógica é
composta: produto + data; ambos vêm do path.
Tentar incluir um par já existente retorna 409.
- Whitelist de campos: ver
PrevisaoPayload. C4_PRODUTOeC4_DATAno body são ignorados — sempre lidos do path.
Path parameters
SB1.AAAAMMDD). Pattern: ^\d{8}$.Request body
CAMPOS_ALLOW. Schema completo em
PrevisaoPayload.
POST https://erpapi.jetme.com.br/api/99/01/WsPrevVenda/INCLUIR/PA001/20260612 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "C4_LOCAL": "01", "C4_DOC": "PREV TESTE", "C4_QUANT": 10, "C4_VALOR": 100.50, "C4_OBS": "TESTE_PREP" }
POST https://erpapi.jetme.com.br/api/99/01/WsPrevVenda/INCLUIR/PA001/20260612 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "C4_LOCAL": "01", "C4_DOC": "PCP-2026-Q2", "C4_QUANT": 250, "C4_VALOR": 12500.00, "C4_OBS": "Previsao consolidada plano comercial" }
Respostas
CrudResponse com data = string vazia (a chave já é conhecida do path).AAAAMMDD. Tier: validation-error.MsExecAuto da MATA700 (produto inexistente em SB1, armazém inválido, regra de negócio). Tier: business-error.Descrição
Altera campos de uma previsão existente via
MATA700 em modo 4 (nOper=4).
Aceita qualquer subconjunto do whitelist
CAMPOS_ALLOW, exceto a chave lógica.
Atenção: C4_DATA é
imutável. A data no path tem que ser a mesma
da inclusão; tentar alterar para outra data exige
DELETE + POST com nova chave.
Path parameters
AAAAMMDD).Request body
PUT https://erpapi.jetme.com.br/api/99/01/WsPrevVenda/ALTERAR/PA001/20260612 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "C4_LOCAL": "01", "C4_DOC": "PREV TESTE", "C4_QUANT": 25, "C4_VALOR": 250.75, "C4_OBS": "TESTE_PREP_UPD" }
PUT https://erpapi.jetme.com.br/api/99/01/WsPrevVenda/ALTERAR/PA001/20260612 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "C4_QUANT": 30 }
Respostas
CrudResponse.MATA700. Tier: business-error.Descrição
Exclui a previsão via MATA700 em modo
5 (nOper=5). O wrapper monta um
aArray com C4_PRODUTO e
C4_DATA — ambos exigidos pela TDN para que o
MsExecAuto localize o registro correto.
Path parameters
AAAAMMDD).Chamada de exemplo
DELETE https://erpapi.jetme.com.br/api/99/01/WsPrevVenda/EXCLUIR/PA001/20260612 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
CrudResponse.MATA700 (dependências, regra de negócio). Tier: business-error.Listagem
Listagem paginada e typeaheadDescrição
Lista previsões aplicando filtros opcionais por prefixo de
C4_PRODUTO (índice 1) e faixa de
C4_DATA. Quando cod não é informado
o método cai em scan filial. fields permite
reduzir o conjunto de campos retornados (validados contra
CAMPOS_GET).
Query parameters
C4_PRODUTO (usa índice 1 = filial+produto+data).AAAAMMDD).AAAAMMDD), inclusiva.CAMPOS_GET.1, mínimo 1).50, máx 500).Chamada de exemplo
GET https://erpapi.jetme.com.br/api/99/01/WsPrevVenda/_list?cod=PA&page=1&pageSize=50 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
GET https://erpapi.jetme.com.br/api/99/01/WsPrevVenda/_list?dataIni=20260601&dataFim=20260630&fields=C4_PRODUTO,C4_DATA,C4_QUANT Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
pageSize > 500).Descrição
Busca rápida (typeahead) para autocomplete de UI. Faz
prefix match sobre C4_PRODUTO (índice 1) e
retorna uma lista enxuta — apenas
cod, data e doc; não
devolve o schema completo de Previsao.
Query parameters
C4_PRODUTO). Mínimo 2 caracteres.10, máx 25).Chamada de exemplo
GET https://erpapi.jetme.com.br/api/99/01/WsPrevVenda/_search?q=PA&limit=10 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
success, count, data[] com cod/data/doc.q ausente ou com menos de 2 caracteres.Schemas
Definições canônicas — campos com origemSX3 rastreável
/{produto}/{data}
e /_list). Os campos efetivamente retornados
dependem de CAMPOS_GET e do filtro fields.
SB1.B1_COD); componente 1 da chave lógica.NNR.NNR_CODIGO); default "01".AAAAMMDD via DToS. Componente 2 da chave lógica — imutável.POST e PUT.
Whitelist definida em CAMPOS_ALLOW no .prw.
C4_PRODUTO e C4_DATA aparecem no
whitelist mas são ignorados quando vêm no body —
valem sempre os valores do path.
NNR); default "01". MATA700 rejeita armazém inexistente.data tipicamente é string
vazia.
true em respostas de sucesso.data pode conter
o token interno da causa (ex: mensagem do NomeAutoLog
do MsExecAuto) para tratamento programático.
false em erros.MsExecAuto).