RateioContabil
CRUD de Rateio Contábil (tabela CTQ) via
MsExecAuto da rotina CTBA270. A estrutura é
cabeçalho + array de itens: CTQ_RATEIO
identifica o cabeçalho (chave natural fornecida pelo cliente, sem
GetSXENum) e CTQ_SEQUEN identifica cada item.
PUT substitui o conjunto inteiro de itens (não é merge).
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
Identificador externo. Todas as rotas
/WsRateioContabil/<VERBO>/{rateio} aceitam
CTQ_RATEIO como chave natural — string alfanumérica
(até 6 caracteres). Diferente de cadastros com loja
(SA1/SA2), aqui não há
chave técnica gerada pelo ERP via GetSXENum; o cliente
fornece o código no path. Tentativa de POST com chave já existente
retorna 409.
Verbos no path. O endpoint usa
WSSYNTAX com sufixo descritivo:
POST /WsRateioContabil/INCLUIR/{rateio},
PUT /WsRateioContabil/ALTERAR/{rateio},
DELETE /WsRateioContabil/EXCLUIR/{rateio}. Convenção
legada do framework REST do Protheus — o método HTTP correspondente
continua sendo o canônico; o sufixo apenas atende ao roteador.
Cabeçalho + itens na mesma tabela.
A CTQ guarda cabeçalho e linhas no mesmo alias: o
cabeçalho é a linha com CTQ_SEQUEN em branco; os itens
são as linhas subsequentes com a mesma CTQ_RATEIO. O GET
remonta a estrutura aninhada (data.itens[]) na
serialização REST.
PUT substitui, não mescla. O array
itens enviado em PUT reescreve o conjunto
inteiro de itens do rateio — CTQ_SEQUEN ausentes no
payload são removidos. Para alteração granular, leia o rateio com
GET antes, edite e devolva o array completo.
Bloqueio TOTVS (CTQ_MSBLQL).
Flag SX3 pertence("12") com default "2".
"1" = Inativo (bloqueado), "2" = Ativo
(liberado). A polaridade segue o padrão SA1/
SA2 — outras tabelas TOTVS podem inverter,
consultar SX3 antes de replicar. Esta versão expõe apenas
CTQ_MSBLQL; não há campo CTQ_MSBLQD
(data de vigência) no dicionário da CTQ, então não há
caminho de bloqueio com vigência — apenas o flag administrativo.
Status de implementação. O gate canônico
(U_C980Blq + fSoBlq) que devolve 422
quando o PUT em registro bloqueado toca qualquer campo além de
CTQ_MSBLQL ainda não está implementado no
WSCTQ.prw — slot _prep/wsctq-bloqueio pendente.
Este documento descreve o contrato-alvo (mesmo padrão do WsSA1).
Paginação. /_list usa
page/pageSize (default 50, máx
500). Para sincronização incremental, alterne para
orderBy=recno e use since/cursor
conforme o nextCursor retornado. A listagem devolve um
item por rateio (cabeçalho + count_itens) — sem expandir
os itens.
RateioContabil
CRUD por código do rateio (CTQ_RATEIO)Descrição
Cria um novo rateio na CTQ via
CTBA270 em modo 3
(INSERT). O cliente fornece a chave
CTQ_RATEIO no path; o cabeçalho e o array
itens vão no body. Retorna 409 se
a chave já existir.
- O array
itensé obrigatório e deve ter ao menos 1 elemento — caso contrário responde 422. - Whitelist de campos do cabeçalho: ver
RateioContabilPayload. - Whitelist de campos do item: ver
RateioItem.
Path parameter
Request body
itens (≥1). Schema completo em
RateioContabilPayload.
POST https://erpapi.jetme.com.br/api/99/01/WsRateioContabil/INCLUIR/ZZT Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "CTQ_DESC": "RATEIO ZTEST", "CTQ_TIPO": "1", "CTQ_CTPAR": "11101", "CTQ_CTORI": "31101", "CTQ_PERBAS": 100, "CTQ_MSBLQL": "2", "itens": [ { "CTQ_SEQUEN": "001", "CTQ_CTCPAR": "11301", "CTQ_UM": "AR", "CTQ_VALOR": 1000, "CTQ_PERCEN": 100, "CTQ_INTERC": "2", "CTQ_STATUS": "1" } ] }
POST https://erpapi.jetme.com.br/api/99/01/WsRateioContabil/INCLUIR/RTI Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "CTQ_DESC": "RATEIO TI", "CTQ_TIPO": "1", "CTQ_CTPAR": "11101", "CTQ_CCPAR": "", "CTQ_CTORI": "31101", "CTQ_PERBAS": 100, "CTQ_MSBLQL": "2", "itens": [ { "CTQ_SEQUEN": "001", "CTQ_CTCPAR": "11301", "CTQ_UM": "AR", "CTQ_VALOR": 1000, "CTQ_PERCEN": 100, "CTQ_INTERC": "2", "CTQ_STATUS": "1" } ] }
Respostas
CrudResponse com data = CTQ_RATEIO.CTQ_RATEIO informado. Tier: business-error.itens ausente ou vazio · enum inválido (CTQ_MSBLQL, CTQ_TIPO) · MsExecAuto do CTBA270 rejeitou (contas inexistentes, percentuais inválidos). Tier: business-error.Descrição
Retorna o rateio com seu cabeçalho e o array completo de itens
(data.itens[]). Aplica filtro de filial
(xFilial("CTQ")) e respeita os whitelists
CAMPOS_CAB_GET e CAMPOS_ITEM_GET. O
parâmetro opcional fields reduz o conjunto de
campos retornados no cabeçalho.
Path parameter
Query parameters
CAMPOS_CAB_GET.Chamada de exemplo
GET https://erpapi.jetme.com.br/api/99/01/WsRateioContabil/ZZT Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
GET https://erpapi.jetme.com.br/api/99/01/WsRateioContabil/ZZT?fields=CTQ_RATEIO,CTQ_DESC,CTQ_MSBLQL Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
{ success: true, data: RateioContabil } com data.itens[] populado.fields com campo fora do whitelist. Tier: validation-error.CTQ_RATEIO informado. Tier: not-found.Descrição
Altera o rateio via CTBA270 em modo 4
(UPDATE). PUT substitui o conjunto
inteiro de itens — não há merge por CTQ_SEQUEN:
qualquer item antigo ausente do payload é removido.
Bloqueio TOTVS. Em registro com
CTQ_MSBLQL="1" (Inativo), o PUT só aceita payload
que toque exclusivamente CTQ_MSBLQL
(caminho de desbloqueio). Qualquer outro campo no cabeçalho ou
presença de itens retorna 422.
itensé obrigatório em alteração comum (≥1 elemento).- Para desbloquear, envie apenas
{ "CTQ_MSBLQL": "2" }semitens.
Path parameter
Request body
itens completo (substitui o existente). Em rateio bloqueado, ver convenções.
PUT https://erpapi.jetme.com.br/api/99/01/WsRateioContabil/ALTERAR/ZZT Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "CTQ_DESC": "RATEIO ZTEST ALTERADO", "CTQ_TIPO": "1", "CTQ_CTPAR": "11101", "CTQ_CTORI": "31101", "CTQ_PERBAS": 100, "CTQ_MSBLQL": "2", "itens": [ { "CTQ_SEQUEN": "001", "CTQ_CTCPAR": "11301", "CTQ_UM": "AR", "CTQ_VALOR": 2000, "CTQ_PERCEN": 100, "CTQ_INTERC": "2", "CTQ_STATUS": "1" } ] }
PUT https://erpapi.jetme.com.br/api/99/01/WsRateioContabil/ALTERAR/ZZT Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "CTQ_MSBLQL": "2" }
Respostas
CrudResponse.itens vazio) ou registro bloqueado com payload fora de CTQ_MSBLQL. Tier: business-error.Descrição
Exclui o rateio via CTBA270 em modo 5
(DELETE). A operação remove o cabeçalho e todos os
itens da CTQ em uma chamada. O MsExecAuto
rejeita exclusão de rateio referenciado por outros cadastros
(lançamentos contábeis, esqueletos) — nesse caso retorna
422 com o motivo.
Path parameter
Chamada de exemplo
DELETE https://erpapi.jetme.com.br/api/99/01/WsRateioContabil/EXCLUIR/ZZT Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
CrudResponse.Descrição
Busca o rateio por id técnico — útil para integrações que
persistem recno ou msuid e querem
reconfirmar o registro sem reconstruir a chave natural.
Resolve o cabeçalho e retorna o mesmo schema do GET por código,
com data.itens[] populado.
Query parameters
recnomsuidtipo=recno, string quando tipo=msuid).Chamada de exemplo
GET https://erpapi.jetme.com.br/api/99/01/WsRateioContabil/_byid?tipo=recno&valor=1234 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
GET https://erpapi.jetme.com.br/api/99/01/WsRateioContabil/_byid?tipo=msuid&valor=9f7a3e2c4b8d1a0e Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
{ success: true, data: RateioContabil }.tipo/valor ausentes ou tipo fora do enum.msuid requer índice/coluna não disponível no ambiente.Listagem
Listagem paginada de rateios (um item por cabeçalho)Descrição
Lista os rateios com filtros por prefixo de cod
(CTQ_RATEIO) e desc (CTQ_DESC).
Devolve um item por rateio — apenas o cabeçalho
+ count_itens (contagem de itens), sem expandir o
array de itens. Suporta dois modos de ordenação:
orderBy=chave(default) — paginação porpage/pageSize.orderBy=recno— delta-sync, usasince/cursorcomnextCursorretornado.
Query parameters
CTQ_RATEIO.CTQ_DESC.CAMPOS_CAB_GET.1, mínimo 1).50, máx 500).chave.chaverecnoorderBy=recno).nextCursor de página anterior.Chamada de exemplo
GET https://erpapi.jetme.com.br/api/99/01/WsRateioContabil/_list?desc=RATEIO&page=1&pageSize=50 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
GET https://erpapi.jetme.com.br/api/99/01/WsRateioContabil/_list?orderBy=recno&since=0&pageSize=200 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
data[] contendo CTQ_RATEIO, CTQ_DESC, count_itens, recno; mais page, pageSize, count, opcionalmente nextCursor.orderBy inválido, pageSize > 500).Schemas
Definições canônicas — campos com origemSX3 rastreável
/{rateio},
/_byid). Inclui cabeçalho da CTQ e o
array itens. Campos efetivamente retornados dependem
de CAMPOS_CAB_GET e do filtro fields.
100).pertence("12"), default "2". "1"=Inativo (bloqueado), "2"=Ativo (liberado).12RateioItem.msuid.CTQ
que o cabeçalho, identificada por CTQ_SEQUEN.
Whitelists separadas: leitura por CAMPOS_ITEM_GET,
gravação por CAMPOS_ITEM_ALLOW.
"001")."AR").CTQ_PERBAS).POST e PUT. Whitelist
do cabeçalho em CAMPOS_CAB_ALLOW, dos itens em
CAMPOS_ITEM_ALLOW. O array itens
é obrigatório (≥1 elemento), exceto no caminho de
desbloqueio (PUT com apenas CTQ_MSBLQL).
pertence("12"), default "2"): "1"=Inativo, "2"=Ativo. MsExecAuto do CTBA270 rejeita valores fora do domínio.12RateioItem.data traz o CTQ_RATEIO envolvido na
operação (POST/PUT/DELETE) ou objeto auxiliar quando aplicável.
true em respostas de sucesso.CTQ_RATEIO incluído. Em PUT/DELETE pode ser string vazia ou objeto auxiliar.data pode conter o token interno
da causa (ex: mensagem do NomeAutoLog) para tratamento programático,
quando aplicável.
false em erros.MsExecAuto).