AutorizacaoEntrega
CRUD em SC7 (Pedido de Compras / Autorização de Entrega)
via rotina automática MATA120 — modelo 2 (cabeçalho
+ itens convivem na mesma tabela). O 1º parâmetro nTipoDoc
é inferido a partir de SB1->B1_CONTRAT do produto do 1º
item: S/A → Autorização de Entrega
(modo 2, exige Contrato em SC3); demais → Pedido de Compras
(modo 1, livre ou vinculado a SC1). C7_NUM é gerado pelo
servidor (GetSXENum + ConfirmSX8) no POST.
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).
Vinculação com o ERP
Convenções
PC vs AE inferido pelo produto. O endpoint olha
SB1->B1_CONTRAT do produto do 1º item para decidir
nTipoDoc do MATA120 (1 = Pedido de Compras,
2 = Autorização de Entrega). Todos os itens da
chamada devem resolver para o mesmo modo — payload misto
retorna 422.
Numeração automática. No POST o cliente passa o
path-param {numero} como placeholder (recomenda-se
"auto"); o servidor gera C7_NUM via
GetSXENum + loop DbSeek/ConfirmSX8
e devolve em data.numero. O placeholder é ignorado.
Op=4 e Op=5 exigem C7_REC_WT. O
endpoint resolve automaticamente: no PUT, faz aScan em
SC7 filtrado por C7_NUM casando por
C7_ITEM do payload; no DELETE, varre a SC7 inteira e
repõe a grade. Em chamadas diretas ao wrapper U_MT120Exc,
o caller é responsável por popular o campo.
Modelo de descontos. Item suporta
C7_VLDESC (valor absoluto) e/ou C7_DESC
(percentual) — podem ser combinados, MATA120 soma os efeitos.
Cabeçalho aceita C7_DESC1/C7_DESC2/C7_DESC3
(percentuais aplicados em cadeia, cada um sobre o valor já descontado pelo anterior).
Vínculo C7_NUMSC/C7_ITEMSC.
A tabela referenciada varia conforme B1_CONTRAT:
(N, vazio) → SC1 (Solicitação de
Compras); (S, A) → SC3 (Contrato de
Parceria). O endpoint escolhe a tabela correta e devolve 422 quando
o vínculo informado não existe.
PUT em modo PC=1 com pendência conhecida. A
revisão atual (rev3) ainda devolve 500 em alterações
de PC livre por dependência de aRatCC (Rateio por Centro
de Custo) no MATA120 Op=4. AE (nTipoDoc=2) é
aceita normalmente no PUT. Ver
Pendências conhecidas — _prep/wsmata120/_scratch/PEND-rateio-cc-projeto.md.
Datas. C7_EMISSAO e
C7_DATPRF aceitam string AAAAMMDD no
payload. Default de C7_EMISSAO = dDataBase
quando omitido. Sem suporte editorial a YYYY-MM-DD nesta
revisão.
Pendências conhecidas (rev3)
PUT PC=1 retorna 500. Alterações em pedidos cujo
produto tem B1_CONTRAT em (N, vazio) caem em
stack do MATA120 Op=4 (aRatCC[1][2][0]). Indício de que
a rotina exige rateio mesmo na alteração. Workaround atual:
DELETE + POST. PUT em AE
(nTipoDoc=2) funciona.
Rateios não expostos. aRatCC
(Centro de Custo via SCH) e aRatPrj (Projeto via AJ7,
SIGAPRJ v11+) ainda não fazem parte do payload. Estrutura mapeada em
src/api/AutorizacaoEntrega/MATA120-PCOM04018.md.
Aprovação de PC. MATA120 não cobre aprovação
(op=7). Aprovação passa por rotina própria do PCP
(ADV0066 · SIGAGSP) — fora do escopo deste endpoint.
Moeda diferente de 1. Quando
C7_MOEDA != 1, MATA120 exige C7_TXMOEDA no
cabeçalho (TDN pageId 322152451). Não tratado nesta revisão —
assume moeda 1 (real).
DELETE de SC7 já recebida. Não há checagem
editorial para devolver 409. Cabe ao MATA120 Op=5 rejeitar via
NomeAutoLog — cliente recebe 422.
AutorizacaoEntrega
CRUD por C7_NUM (modelo 2 · capa + itens)Descrição
Inclui Pedido de Compras (nTipoDoc=1) ou Autorização
de Entrega (nTipoDoc=2) via MATA120 em modo
3 (MODEL_OPERATION_INSERT). O endpoint
infere o modo a partir de SB1->B1_CONTRAT do produto
do 1º item. Numeração C7_NUM gerada pelo servidor.
- Payload
cabecalho+itens[](mínimo 1 item). - Bloco opcional
adiantamento[]alimentaaAdtPC; pré-requisito: PA cadastrado em SE2. - Descontos: item (
C7_VLDESCe/ouC7_DESC) e cabeçalho (C7_DESC1/2/3).
Path parameter
C7_NUM real é gerado pelo servidor e devolvido em data.numero. Use "auto" para deixar a intenção explícita.Request body
cabecalho (campos do whitelist
CAMPOS_CAB_ALLOW) e itens[] (whitelist
CAMPOS_ITEM_ALLOW). Schema em
SC7Payload.
POST https://erpapi.jetme.com.br/api/99/01/WsSC7/INCLUIR/auto Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "cabecalho": { "C7_FORNECE": "000002", "C7_LOJA": "01", "C7_EMISSAO": "20260507", "C7_COND": "000", "C7_CONTATO": "PCLIVRE", "C7_FILENT": "01" }, "itens": [ { "C7_PRODUTO": "PROD001", "C7_QUANT": 3, "C7_PRECO": 10.0, "C7_TOTAL": 30.0, "C7_LOCAL": "00" } ] }
POST https://erpapi.jetme.com.br/api/99/01/WsSC7/INCLUIR/auto Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "cabecalho": { "C7_FORNECE": "000002", "C7_LOJA": "01", "C7_EMISSAO": "20260511", "C7_COND": "000", "C7_CONTATO": "PCCOMSC", "C7_FILENT": "01" }, "itens": [ { "C7_PRODUTO": "PROD002", "C7_QUANT": 100, "C7_PRECO": 10.0, "C7_TOTAL": 1000.0, "C7_LOCAL": "00", "C7_NUMSC": "000002", "C7_ITEMSC": "0001" } ] }
POST https://erpapi.jetme.com.br/api/99/01/WsSC7/INCLUIR/auto Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "cabecalho": { "C7_FORNECE": "000003", "C7_LOJA": "01", "C7_EMISSAO": "20260507", "C7_COND": "000", "C7_CONTATO": "PCCONTRA", "C7_FILENT": "01" }, "itens": [ { "C7_PRODUTO": "MP02PARCERIA", "C7_QUANT": 3, "C7_PRECO": 10.0, "C7_TOTAL": 30.0, "C7_LOCAL": "00", "C7_NUMSC": "000001", "C7_ITEMSC": "0001" } ] }
POST https://erpapi.jetme.com.br/api/99/01/WsSC7/INCLUIR/auto Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "cabecalho": { "C7_FORNECE": "000002", "C7_LOJA": "01", "C7_EMISSAO": "20260511", "C7_COND": "000", "C7_CONTATO": "DESCCAB", "C7_FILENT": "01", "C7_DESC1": 10, "C7_DESC2": 20, "C7_DESC3": 50 }, "itens": [ { "C7_PRODUTO": "PROD001", "C7_QUANT": 10, "C7_PRECO": 100.0, "C7_TOTAL": 1000.0, "C7_LOCAL": "00" }, { "C7_PRODUTO": "PROD001", "C7_QUANT": 20, "C7_PRECO": 100.0, "C7_TOTAL": 2000.0, "C7_LOCAL": "00" } ] }
POST https://erpapi.jetme.com.br/api/99/01/WsSC7/INCLUIR/auto Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "cabecalho": { "C7_FORNECE": "000002", "C7_LOJA": "01", "C7_EMISSAO": "20260511", "C7_COND": "000", "C7_CONTATO": "DESCPRC", "C7_FILENT": "01" }, "itens": [ { "C7_PRODUTO": "PROD001", "C7_QUANT": 10, "C7_PRECO": 100.0, "C7_TOTAL": 1000.0, "C7_LOCAL": "00", "C7_DESC": 20 } ] }
POST https://erpapi.jetme.com.br/api/99/01/WsSC7/INCLUIR/auto Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "cabecalho": { "C7_FORNECE": "000002", "C7_LOJA": "01", "C7_EMISSAO": "20260511", "C7_COND": "000", "C7_CONTATO": "DESCVLD", "C7_FILENT": "01" }, "itens": [ { "C7_PRODUTO": "PROD001", "C7_QUANT": 10, "C7_PRECO": 100.0, "C7_TOTAL": 1000.0, "C7_LOCAL": "00", "C7_VLDESC": 150 } ] }
POST https://erpapi.jetme.com.br/api/99/01/WsSC7/INCLUIR/auto Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "cabecalho": { "C7_FORNECE": "000002", "C7_LOJA": "01", "C7_EMISSAO": "20260511", "C7_COND": "006", "C7_CONTATO": "PCCOMADT", "C7_FILENT": "01" }, "itens": [ { "C7_PRODUTO": "PROD001", "C7_QUANT": 1, "C7_PRECO": 100.0, "C7_TOTAL": 100.0, "C7_LOCAL": "00" } ], "adiantamento": [ { "prefixo": "A", "num": "PAPC01", "parcela": "1", "tipo": "PA", "fornec": "000002", "loja": "01", "valor": 100 } ] }
Respostas
CrudResponse com data.numero = C7_NUM gerado.itens[] vazio, ou campos obrigatórios ausentes. Tier: validation-error.C7_NUMSC/C7_ITEMSC inválido na tabela esperada (SC1 ou SC3 conforme B1_CONTRAT), PA do adiantamento inexistente em SE2, ou rejeição do MsExecAuto do MATA120 (cond. pagamento, fornecedor bloqueado, etc). Tier: business-error.
Descrição
Altera cabeçalho e/ou itens via MATA120 Op=4. O
endpoint preenche C7_REC_WT automaticamente para
cada item (aScan em SC7 filtrado por
C7_NUM casando por C7_ITEM do payload).
AUTDELETA="S" em um item marca-o para exclusão
dentro do Op=4.
- AE (
nTipoDoc=2): PUT validado e estável. - PC (
nTipoDoc=1): PUT retorna 500 nesta revisão por dependência deaRatCC— ver Pendências.
Path parameter
Request body
CAMPOS_CAB_ALLOW; itens
com C7_ITEM obrigatório para casar o item original.
PUT https://erpapi.jetme.com.br/api/99/01/WsSC7/ALTERAR/000001 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "cabecalho": { "C7_CONTATO": "ATUALIZADO" }, "itens": [ { "C7_ITEM": "0001", "C7_PRODUTO": "PROD001", "C7_QUANT": 5, "C7_PRECO": 10.0, "C7_TOTAL": 50.0, "C7_LOCAL": "00" } ] }
PUT https://erpapi.jetme.com.br/api/99/01/WsSC7/ALTERAR/000002 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "cabecalho": { "C7_CONTATO": "PCADTUPD" }, "itens": [ { "C7_ITEM": "0001", "C7_PRODUTO": "PROD001", "C7_QUANT": 5, "C7_PRECO": 100.0, "C7_TOTAL": 500.0, "C7_LOCAL": "00" } ], "adiantamento": [ { "prefixo": "A", "num": "PAPC02", "parcela": "1", "tipo": "PA", "fornec": "000002", "loja": "01", "valor": 500 } ] }
Respostas
CrudResponse com data.numero.C7_ITEM ausente em algum item, etc. Tier: validation-error.C7_NUM inexistente ou C7_ITEM não encontrado na SC7. Tier: not-found.aRatCC[1][2][0] no MATA120. Workaround:
DELETE + POST. Em AE (modo 2) este
status indica falha real interna.
Descrição
Exclui a SC7 inteira via MATA120 Op=5. O
endpoint reproduz aItens com C7_REC_WT
varrendo a tabela. MATA120 rejeita exclusão quando há
recebimento associado — resposta 422 com mensagem do
NomeAutoLog.
Path parameter
Cenario
Exemplo da requisicao (cenario ativo)
DELETE https://erpapi.jetme.com.br/api/99/01/WsSC7/EXCLUIR/000001 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
C7_NUM ausente ou inválido. Tier: validation-error.Descrição
Retorna a SC7 estruturada como {cabecalho, itens[]}.
Aplica xFilial("SC7") e respeita o whitelist
CAMPOS_CAB_GET/CAMPOS_ITEM_GET.
Path parameter
Cenario
Exemplo da requisicao (cenario ativo)
GET https://erpapi.jetme.com.br/api/99/01/WsSC7/000001 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
SC7Detalhe com data = { cabecalho, itens[] }.numero fora do pattern.Listagem
Paginação por C7_NUM (uma linha por SC7)Descrição
Lista cabeçalhos distintos de SC7. Devolve uma linha por
C7_NUM com C7_FORNECE, C7_LOJA
e C7_EMISSAO. Filtros são opcionais e podem ser
combinados.
Query parameters
C7_NUM.C7_FORNECE (igualdade, case-insensitive).AAAAMMDD).1).50, máx 500).Cenario
Exemplo da requisicao (cenario ativo)
GET https://erpapi.jetme.com.br/api/99/01/WsSC7/_list?fornece=000002&page=1&pageSize=50 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
GET https://erpapi.jetme.com.br/api/99/01/WsSC7/_list?emissao=20260511 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
pageSize > 500, etc).Schemas
Definições canônicas — campos com origemSX3 rastreável
POST e PUT. Envelope com
cabecalho (whitelist CAMPOS_CAB_ALLOW),
itens[] (whitelist CAMPOS_ITEM_ALLOW, mínimo 1
item) e opcional adiantamento[]
(Adiantamento).
cabecalho · object
C7_LOJA)."01".AAAAMMDD). Default = dDataBase."006" recomendada para uso com adiantamento.C7_DESC1).itens[] · array (minItems: 1)
"0001", "0002", ...). No PUT é a chave de casamento com a SC7 existente.B1_COD existente em SB1. Define o modo PC/AE pelo B1_CONTRAT.B1_CONTRAT em (N, vazio) ou para SC3 quando (S, A).C7_NUMSC).AAAAMMDD).C7_DESC.C7_VLDESC (MATA120 soma os efeitos).Op=4.SGET /WsSC7/{numero}.
data contém { cabecalho: object, itens: object[] }
com os campos do whitelist CAMPOS_CAB_GET/CAMPOS_ITEM_GET.
true.C7_NUM, C7_EMISSAO, C7_FORNECE, C7_LOJA, C7_COND, C7_CONTATO, C7_FILENT, C7_TIPO, C7_TPOP, C7_DESC1/2/3, C7_TPFRETE, C7_FRETE.C7_ITEM, C7_PRODUTO, C7_QUANT, C7_PRECO, C7_TOTAL, C7_LOCAL, C7_NUMSC, C7_ITEMSC, C7_DATPRF, C7_VLDESC, C7_DESC./WsSC7/_list. Uma linha por
C7_NUM (cabeçalho distinct — sem itens).
AAAAMMDD).adiantamento[] —
alimenta o 8º parâmetro aAdtPC do MATA120.
Pré-requisito: título PA já cadastrado em SE2 com os mesmos
prefixo/num/parcela/tipo/fornec/loja.
No POST, FIE_PEDIDO vai vazio; no PUT, o endpoint
injeta o C7_NUM atual.
"PA".data.numero traz o C7_NUM gerado no POST
ou refletido no PUT.
true em respostas de sucesso.C7_NUM gerado (POST) ou alvo da operação (PUT). Ausente no DELETE.data pode conter
o token interno da causa (ex: mensagem do NomeAutoLog
do MATA120) para tratamento programático.
false em erros.MsExecAuto MATA120).Cenários
Catálogo de combinações de payload/query reconhecidas pelos métodos. Cada cenário usa o mesmo schema mas demonstra um uso típico distinto. Tier semântico no slug (-minimo, -com-*, -invalido); endpoint no type-pill.
B1_CONTRAT e sem vinculo a SC1.
Modo MATA120 = 1 (PC), inferido pelo 1o item.
Quando usar: compra avulsa sem solicitacao previa.
C7_NUMSC+C7_ITEMSC. Modo MATA120 = 1.
Pre-requisito: SC1 existente; endpoint valida em SC1 antes do MsExecAuto.
B1_CONTRAT in (S,A), vinculado a
Contrato de Parceria (SC3). Modo MATA120 = 2 (AE).
Pre-requisito: SC3 valida; endpoint valida em SC3 antes do MsExecAuto.
C7_DESC1/2/3 aplicados em cadeia sobre o valor bruto
(TDN PCOM04018). Cada percentual incide sobre o saldo apos o anterior.
C7_DESC).
C7_VLDESC).
aAdtPC.
Pre-requisito: titulo PA pre-cadastrado em SE2 para o fornecedor.
C7_TIPO fora do Pertence("1,2").
Static fValDom rejeita antes do MATA120, devolvendo mensagem clara em
vez do HELP opaco da rotina. Valores aceitos: 1 (Pedido de Compra),
2 (Autorizacao de Entrega).
C7_TPOP fora do Pertence("FP").
Valores aceitos: F (Firme), P (Prevista).
C7_REC_WT
e auto-resolvido pelo endpoint via C7_ITEM.
Aviso: retorno 500 conhecido nesta base (bug pre-existente do MATA120 com PA -- ver memoria
project_handoff_2026_05_11_proxima_frente_pa).
MATA120 Op=5.
Bloqueio: 422 quando ha recebimento associado (validacao do MATA120).
SC7Detalhe com data = {cabecalho, itens[]}.
C7_NUM. Filtros num,
fornece, emissao combinaveis. Paginacao via
page/pageSize.