CadastroEntidade08
CRUD de Entidade do Plano Contabil 08 (tabela CV0) via
MsExecAuto do CTBA800. O plano e fixo
(CV0_PLANO = "08", hardcoded no endpoint); o cliente passa
apenas CV0_CODIGO no path. Para planos 06/07/08 use os
endpoints irmaos CadastroEntidade06/07/08,
todos compartilhando o mesmo wrapper U_CT800Exc.
CV0_MSBLQL nao presente no SX3 desta base; padrao MSBLQL/MSBLQD nao implementado no wrapper CT800EXC. Ver Pendencias.Endpoint OAuth2
Sem credenciais? Voce 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).
Vinculacao com o ERP
Convencoes
Plano fixo "08". Este endpoint nao expoe CV0_PLANO
no payload — o valor e sempre "08", definido no .prw
(#Define PLANO_FIXO "08"). Para outros planos, use os endpoints
irmaos (CadastroEntidade06, 07, 08),
todos compartilhando o mesmo wrapper U_CT800Exc.
Identificador externo. A rota /WsEntidade08/{codigo}
recebe CV0_CODIGO direto no path (string, padronizada via
PadR para o tamanho do SX3). O Protheus nao gera sequencia
aqui — o cliente decide o codigo no POST. Para buscar pela chave tecnica
(RecNo / CV0_MSUID), use /_byid?tipo=recno|msuid&valor=….
DELETE nao requer CV0_ITEM. Conforme a DT
do CTBA800, a exclusao trabalha apenas com a chave
PLANO + CODIGO. O endpoint nao expoe nem exige
CV0_ITEM no DELETE.
Paginacao e delta-sync. /_list usa
page/pageSize (default 50, max
500). Para sincronizacao incremental, alterne para
orderBy=recno e use since/cursor
conforme o nextCursor retornado.
Encoding e acentos. Descricoes (CV0_DESC)
aceitam acentos do portugues (Windows-1252). Filtros de busca em
/_list?desc=… sao normalizados sem acento (via
U_NoAcento) e em uppercase antes do DbSeek.
Entidade08
CRUD por codigo (CV0_CODIGO) no plano fixo 05Descricao
Retorna a entidade do plano 08 pesquisada pelo codigo. Aplica
filtro de filial (xFilial("CV0")) e respeita o whitelist
CAMPOS_GET definido no .prw. O parametro
opcional fields reduz o conjunto de campos retornados.
Path parameter
PadR ate TamSX3("CV0_CODIGO").Query parameters
CAMPOS_GET.Cenario
Exemplo da requisicao (cenario ativo)
GET https://erpapi.jetme.com.br/api/99/01/WsEntidade08/ZTEST Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
GET https://erpapi.jetme.com.br/api/99/01/WsEntidade08/ZTEST?fields=CV0_CODIGO,CV0_DESC Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
{ success: true, data: Entidade }.TamSX3("CV0_CODIGO"). Tier: validation-error.Descricao
Inclui uma entidade nova no plano contabil 05 via CTBA800
em modo 3 (MODEL_OPERATION_INSERT). O endpoint
preenche automaticamente CV0_PLANO = "08" e usa
CV0_CODIGO recebido no path. Demais campos vem do payload.
- Whitelist: ver
EntidadePayload. - Se ja existir entidade com mesmo
CV0_CODIGOno plano 08, retorna 409.
Path parameter
TamSX3("CV0_CODIGO").Cenario
Body fields (variam por cenario)
"000099").Exemplo da requisicao (cenario ativo)
POST https://erpapi.jetme.com.br/api/99/01/WsEntidade08/INCLUIR/ZTEST Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "CV0_DESC": "ENTIDADE ZTEST PLANO05" }
POST https://erpapi.jetme.com.br/api/99/01/WsEntidade08/INCLUIR/ZTEST Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "CV0_DESC": "ENTIDADE ZTEST PLANO05", "CV0_ITEM": "000099" }
Respostas
CrudResponse com data contendo a chave gravada (CV0_PLANO/CV0_CODIGO).CV0_CODIGO informado. Tier: business-error.MsExecAuto do CTBA800 (campo fora do whitelist, valor invalido). Tier: business-error.Descricao
Altera campos da entidade via CTBA800 em modo
4 (MODEL_OPERATION_UPDATE). Aceita qualquer
subconjunto do whitelist CAMPOS_ALLOW. A chave
(CV0_PLANO+CV0_CODIGO) nao e alteravel —
CV0_PLANO e fixo "08" e CV0_CODIGO vem do path.
Path parameter
Cenario
Body fields (variam por cenario)
Exemplo da requisicao (cenario ativo)
PUT https://erpapi.jetme.com.br/api/99/01/WsEntidade08/ALTERAR/ZTEST Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "CV0_DESC": "ENTIDADE ZTEST PLANO05 ALTERADA" }
Respostas
CrudResponse.MsExecAuto do CTBA800. Tier: business-error.Descricao
Exclui a entidade via CTBA800 em modo 5
(MODEL_OPERATION_DELETE). DELETE nao requer
CV0_ITEM — conforme DT do CTBA800,
a chave usada e apenas CV0_PLANO + CV0_CODIGO.
O MsExecAuto rejeita exclusao quando a entidade possui
dependencias contabeis vinculadas (lancamentos, configuracoes).
Path parameter
Cenario
Exemplo da requisicao (cenario ativo)
DELETE https://erpapi.jetme.com.br/api/99/01/WsEntidade08/EXCLUIR/ZTEST Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
CrudResponse.Descricao
Busca a entidade por id tecnico — util para integracoes que
persistem o RecNo do AdvPL ou o identificador universal
(CV0_MSUID) e querem reconfirmar o registro sem
reconstruir a chave de negocio.
Atencao: nesta base o campo CV0_MSUID
nao existe no SX3 — chamadas com tipo=msuid
respondem 501. Ver Pendencias.
Query parameters
recnomsuidtipo=recno, string quando tipo=msuid).Cenario
Exemplo da requisicao (cenario ativo)
GET https://erpapi.jetme.com.br/api/99/01/WsEntidade08/_byid?tipo=recno&valor=1234 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
GET https://erpapi.jetme.com.br/api/99/01/WsEntidade08/_byid?tipo=msuid&valor=9f7a3e2c4b8d1a0e Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
{ success: true, data: Entidade }.tipo/valor ausentes ou tipo fora do enum.msuid requer CV0_MSUID presente no dicionario, indisponivel neste ambiente.Listagem
Listagem paginada de entidades do plano 08Descricao
Lista entidades do plano 08 com filtros por cod
(CV0_CODIGO exato) ou desc (prefixo
normalizado, sem acento). Suporta dois modos de ordenacao:
orderBy=chave(default) — paginacao porpage/pageSize.orderBy=recno— delta-sync, usasince/cursorcomnextCursorretornado.
Query parameters
CV0_CODIGO exato (indice 1).CV0_DESC (normalizado sem acento, uppercase).CAMPOS_GET.1, minimo 1).50, max 500).chave.chaverecnoorderBy=recno).nextCursor de pagina anterior.Cenarios
Exemplo da requisicao (cenario ativo)
GET https://erpapi.jetme.com.br/api/99/01/WsEntidade08/_list?page=1&pageSize=50 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
GET https://erpapi.jetme.com.br/api/99/01/WsEntidade08/_list?desc=ENTIDADE&page=1&pageSize=50 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
GET https://erpapi.jetme.com.br/api/99/01/WsEntidade08/_list?orderBy=recno&cursor=0&pageSize=200 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
data (array de Entidade), page, pageSize, count, opcionalmente nextCursor.orderBy invalido, pageSize > 500).Schemas
Definicoes canonicas — campos com origemSX3 rastreavel
/{codigo}, /_list,
/_byid). Inclui chave de negocio
(CV0_PLANO/CV0_CODIGO), descricao e item.
Campos efetivamente retornados dependem de CAMPOS_GET e do
filtro fields.
"08" neste endpoint."000099").CV0_MSUID (presente se o dicionario tiver o campo — ausente nesta base).msuid.POST e PUT. Whitelist
definida em CAMPOS_ALLOW no .prw. A chave
(CV0_PLANO fixo "08" + CV0_CODIGO via path)
nao aparece no payload.
CTBA800 aceitar a inclusao."000099"). Quando omitido, o CTBA800 assume o default do dicionario.data traz
a chave gravada (POST) ou string vazia (PUT/DELETE).
true em respostas de sucesso.CV0_PLANO/CV0_CODIGO). Em PUT/DELETE pode ser string vazia ou objeto auxiliar.data pode conter o token interno
da causa (ex: mensagem do NomeAutoLog do CTBA800)
para tratamento programatico, quando aplicavel.
false em erros.MsExecAuto).Cenarios
Catalogo de combinacoes de payload/query reconhecidas pelos metodos do plano 08. Tier semantico no slug; endpoint notype-pill.
CV0_DESC no body. CV0_PLANO e fixo "08", CV0_CODIGO vem do path. CV0_ITEM assume o default do dicionario.
Quando usar: caso de uso padrao do CRUD; cliente nao precisa controlar item.
CV0_DESC + CV0_ITEM explicito — usado quando a entidade compoe um nivel hierarquico definido no plano contabil.
Quando usar: integracoes que precisam preservar a sequencia hierarquica de origem.
CV0_DESC via CTBA800 modo 4. Campos omitidos preservam o valor anterior; chave (CV0_PLANO+CV0_CODIGO) nao e alteravel.
Quando usar: renomear a entidade sem alterar hierarquia.
CTBA800 modo 5. Conforme DT, basta PLANO+CODIGO.
Bloqueio: 422 quando ha dependencias contabeis (lancamentos, configuracoes) vinculadas a entidade.
DbSeek pelo indice 1 (filial+plano+codigo, todos com PadR). Retorna envelope { success, data: Entidade } com todos os campos do CAMPOS_GET.
?fields=… reduzindo o payload de resposta. Cada campo solicitado e validado contra CAMPOS_GET; campo fora do whitelist devolve 400.
RecNo() do AdvPL via tipo=recno&valor=N. Identificador tecnico sempre disponivel — defesa multi-filial verifica que CV0_FILIAL bate com a filial corrente.
CV0_MSUID nao esta presente no SX3, entao o endpoint nao consegue procurar por id universal. Documentado para uniformidade do padrao; o cenario passa a responder 200 quando o ambiente receber UPDDISTR habilitando o campo. Ver Pendencias.
orderBy=chave + page/pageSize. Paginacao por offset sobre o indice 1 da CV0, restrita ao plano fixo "08".
cod (CV0_CODIGO exato pelo indice) ou desc (prefixo de CV0_DESC com normalizacao via U_NoAcento). Os dois sao combinaveis com page/pageSize.
orderBy=recno + cursor retomavel via nextCursor retornado na pagina anterior. since (corta RecNo() < since) tambem aceito.
Quando usar: sincronizacao incremental de consumer (Angular embarcado, integradores externos).
Pendencias conhecidas (rev3)
MSUID indisponivel nesta base (501 ambiental). O dicionario
(SX3) desta instalacao nao expoe CV0_MSUID nem CV0_MSUIDT.
O endpoint detecta a ausencia via U_RestCamposOpc e responde
501 em GET /_byid?tipo=msuid. Documentado para
uniformidade do padrao — quando a base receber UPDDISTR habilitando os campos,
o cenario passa a responder 200 sem alteracao no .prw.
Bloqueio MSBLQL/MSBLQD nao implementado. O padrao da
biblioteca (validado em SA1/SA2/SB1/SB5/SC1) ainda nao chegou ao wrapper
CT800EXC. Hoje PUT e DELETE nao
verificam CV0_MSBLQL/CV0_MSBLQD antes do
MsExecAuto. Quando o campo estiver presente no SX3 e o padrao
for portado, a regra de "apenas o par MSBLQL/MSBLQD aceito em registro
bloqueado" sera replicada de WsSA1.
Sem _search de sugestao. Diferente de
endpoints como WsSA1/WsSB1, este nao expoe GET /_search?q=…
para sugestao rapida em UI de digitacao incremental. /_list?desc=…
cobre o caso, mas devolve a Entidade inteira; _search
devolveria so {codigo, desc}. Backlog se houver demanda do
consumer.
Wrapper CT800EXC compartilhado entre 4 endpoints.
Mudancas no helper U_CT800Exc afetam simultaneamente
CadastroEntidade08/06/07/08.
Cada slot que toca a lib deve revalidar smoke dos 4 antes de promover, mesmo
que o caso de uso original seja so um plano.