CadastroAtivo
CRUD de bens do Ativo Imobilizado sobre a rotina automática
ATFA010. Modelo 2 (cabeçalho SN1 + grade
SN3): cada item representa um tipo de saldo/depreciação
do bem (contábil, fiscal, societário, …). O identificador externo é
a chave composta N1_CBASE + N1_ITEM (concatenada sem
separador, tamanhos via TamSX3).
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 como identificador externo. O path
param {chave} em /WsSN1/ALTERAR/<chave>,
/WsSN1/EXCLUIR/<chave> e /WsSN1/<chave>
é a concatenação sem separador de
N1_CBASE + N1_ITEM. Os tamanhos são lidos
em runtime de TamSX3 — não há comprimento fixo. No
POST, o segmento equivalente é placeholder
(auto) e a chave real vem dentro do
cabecalho do payload.
Payload aninhado (Modelo 2). Diferente dos
endpoints de tabela única (SA1, SB1), o
corpo é estruturado em { cabecalho, itens[] }. O array
itens tem mínimo 1 elemento e cada item
representa uma linha de SN3 (tipo de saldo).
PUT exige N3_TIPO em todo item. O
ATFA010 em modo 4 usa N3_TIPO como
LINPOS para localizar a linha do grid. Item sem
N3_TIPO é rejeitado com 422 antes do MsExecAuto
— caso contrário a rotina substituiria todo o grid SN3 do bem.
Itens não listados no payload não são tocados.
DELETE remove cabeçalho + todos os itens. O
EXCLUIR aciona nOper=5 com
AUTDELETA em cada linha SN3 conhecida. Não há exclusão
parcial por item — para remover um tipo específico, use
PUT com N3_TIPO + AUTDELETA no
modo grid (futuro; não suportado em rev1).
Formato de datas. Campos N1_AQUISIC
e N3_DINDEPR aceitam string YYYYMMDD no
payload — convertidos via SToD(). Qualquer outro formato
produz data inválida e é rejeitado pela rotina.
Paginação. /_list usa
page/pageSize (default 50, máx
500). A listagem retorna apenas a capa (campos de
SN1); para obter os itens, faça GET /WsSN1/<chave>.
Fixtures sentinel. Os smoke tests usam
N1_CBASE com prefixo _TS para que registros
residuais sejam triviais de identificar e descartar.
Ativo
CRUD de bens (cabeçalho SN1 + itens SN3) via ATFA010Descrição
Cria um novo bem (cabeçalho SN1) com 1 ou mais
itens SN3 (tipos de saldo) via ATFA010
em nOper=3. A chave (N1_CBASE + N1_ITEM)
vem no cabecalho do body; o segmento da URL é
placeholder (auto).
Path parameter
auto). A chave real (N1_CBASE + N1_ITEM) vem no cabecalho do payload.Request body
{ cabecalho, itens[] }. Schema completo em
AtivoPayload.
POST https://erpapi.jetme.com.br/api/99/01/WsSN1/INCLUIR/auto Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "cabecalho": { "N1_CBASE": "_TS001", "N1_ITEM": "01", "N1_AQUISIC": "20260507", "N1_DESCRIC": "NOTEBOOK DELL VOSTRO", "N1_QUANTD": 1, "N1_CHAPA": "987" }, "itens": [ { "N3_TIPO": "01", "N3_HISTOR": "Saldo contabil", "N3_TPSALDO": "1", "N3_TPDEPR": "1", "N3_CCONTAB": "11101001", "N3_VORIG1": 10000, "N3_PERDEPR": 20, "N3_DINDEPR": "20260507" } ] }
POST https://erpapi.jetme.com.br/api/99/01/WsSN1/INCLUIR/auto Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "cabecalho": { "N1_CBASE": "_TS002", "N1_ITEM": "01", "N1_AQUISIC": "20260507", "N1_DESCRIC": "MAQUINA INDUSTRIAL XPTO", "N1_QUANTD": 1, "N1_CHAPA": "4421" }, "itens": [ { "N3_TIPO": "01", "N3_HISTOR": "Saldo contabil", "N3_TPSALDO": "1", "N3_TPDEPR": "1", "N3_CCONTAB": "11201001", "N3_VORIG1": 50000, "N3_PERDEPR": 10, "N3_DINDEPR": "20260507" }, { "N3_TIPO": "02", "N3_HISTOR": "Saldo fiscal", "N3_TPSALDO": "1", "N3_TPDEPR": "1", "N3_CCONTAB": "11201001", "N3_VORIG1": 50000, "N3_PERDEPR": 10, "N3_DINDEPR": "20260507" } ] }
Respostas
RespostaCriacao com data.cbase + data.item.cabecalho/itens. Tier: validation-error.ATFA010 rejeitou o payload (campo obrigatório ausente, N3_CCONTAB inexistente em CT1, enum inválido). Tier: business-error.console_rest.log).Descrição
Altera campos do cabeçalho SN1 e/ou itens
SN3 específicos via ATFA010 em
nOper=4. Cada item do array itens
deve trazer N3_TIPO — usado como
LINPOS para identificar a linha no grid.
Itens não listados no payload não são tocados.
Para excluir uma linha SN3 específica, é necessário evoluir o wrapper
(suporte a AUTDELETA em modo grid; backlog).
Path parameter
N1_CBASE + N1_ITEM concatenados (sem separador). Tamanhos via TamSX3.Request body
N3_TIPO.
PUT https://erpapi.jetme.com.br/api/99/01/WsSN1/ALTERAR/_TSDOC000101 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "cabecalho": { "N1_DESCRIC": "NOTEBOOK DELL VOSTRO 5430", "N1_CHAPA": "987-A" }, "itens": [ { "N3_TIPO": "01" } ] }
PUT https://erpapi.jetme.com.br/api/99/01/WsSN1/ALTERAR/_TSDOC000101 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "cabecalho": {}, "itens": [ { "N3_TIPO": "01", "N3_HISTOR": "Saldo contabil revisado", "N3_PERDEPR": 25 } ] }
Respostas
RespostaCriacao.N3_TIPO, regra de negócio do ATFA010, ou referência inválida (ex: N3_CCONTAB inexistente). Tier: business-error.Descrição
Exclui o bem inteiro via ATFA010 em
nOper=5. O wrapper monta AUTDELETA em
todas as linhas SN3 conhecidas antes de invocar o
MsExecAuto. Não há exclusão parcial.
Path parameter
N1_CBASE + N1_ITEM concatenados.Chamada de exemplo
DELETE https://erpapi.jetme.com.br/api/99/01/WsSN1/EXCLUIR/_TSDOC000101 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
RespostaSimples (success + message).ATFA010). Tier: business-error.Descrição
Retorna o bem completo: cabeçalho de SN1 + todos os
itens de SN3 ligados à mesma chave
(N1_CBASE + N1_ITEM). Aplica filtro de filial
(xFilial("SN1")) e respeita os whitelists
CAMPOS_CAB_GET e CAMPOS_ITEM_GET.
Path parameter
N1_CBASE + N1_ITEM concatenados.Chamada de exemplo
GET https://erpapi.jetme.com.br/api/99/01/WsSN1/_TSDOC000101 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
RespostaConsulta com data.cabecalho + data.itens[].Listagem
Consulta paginada da capa SN1Descrição
Lista a capa dos bens cadastrados, com filtros parciais opcionais
e paginação page/pageSize. Retorna apenas
campos do cabeçalho SN1 — para obter os itens (grade SN3) faça
GET /WsSN1/<chave>.
Query parameters
N1_CBASE (match por LIKE 'cbase%').N1_DESCRIC (case-insensitive).N1_CHAPA.1, mínimo 1).50, máx 500).Chamada de exemplo
GET https://erpapi.jetme.com.br/api/99/01/WsSN1/_list?cbase=_TS&page=1&pageSize=50 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
GET https://erpapi.jetme.com.br/api/99/01/WsSN1/_list?descric=notebook&pageSize=20 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
RespostaListagem com page, pageSize, count e data[].page/pageSize fora dos limites.Schemas
Definições canônicas — campos com origemSX3 rastreável
SN1). N1_CBASE
e N1_ITEM são obrigatórios no POST (compõem a chave);
no PUT são derivados do path e não precisam ser
repetidos no corpo.
TamSX3 (varia entre clientes; 4 a 6 chars)."01" quando há um único item por base).YYYYMMDD — convertida por SToD().1.SN3. Cada item representa um tipo de
saldo/depreciação (contábil, fiscal, societário, etc.).
N3_TIPO é o discriminador da linha — sempre obrigatório
(LINPOS em PUT).
01=contábil, 02=fiscal, 05=societário.CT1 antes do MsExecAuto; caso contrário 422.YYYYMMDD.201 (POST) e 200
(PUT). data traz a chave do bem (útil quando o cliente
quer reusar imediatamente em GET/PUT/DELETE).
true em respostas de sucesso.N1_CBASE do bem afetado.N1_ITEM do bem afetado.GET /WsSN1/_list. Devolve só campos de
cabeçalho — não inclui o grid SN3.
true.data (não é o total geral).N1_CBASE, N1_ITEM, N1_DESCRIC, N1_CHAPA, N1_AQUISIC.data pode trazer
token interno da causa (ex: log do NomeAutoLog) para
tratamento programático.
false em erros.MsExecAuto).