LancamentoContabil
CRUD de lançamento contábil (tabela CT2) via
MsExecAuto da rotina padrão CTBA102.
Substitui a User Function de desktop Gaiz_CargaCT2.prw
(interativa, lia de view SQL Server). O identificador externo é a
chave composta natural da CT2 —
filial-data(YYYYMMDD)-lote-sublote-doc; em POST sem
doc, o servidor gera por SOMA1 sobre o
último documento da combinação filial/data/lote/sublote.
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. O identificador externo é a chave
de negócio <filial>-<YYYYMMDD>-<lote>-<sublote>-<doc>,
separada por hífens. Exemplo: 01-20991231-999-999-999999.
O pattern aceito é ^[^-]+-\d{8}-[^-]+-[^-]+-[^-]+$.
A data dentro da chave é sempre no formato
YYYYMMDD (8 dígitos, sem separadores).
Documento gerado pelo servidor. Em
POST /INCLUIR (sem {key} no path), o servidor
gera o doc automaticamente via SOMA1 sobre o
último CT2_DOC da combinação filial/data/lote/sublote. Em
POST /INCLUIR/{key} o cliente força o documento — duplicata
retorna 409.
Cabeçalho lógico, persistência por linha. A
CT2 é uma tabela de linhas; o "lançamento" é um
documento (CT2_DOC) cujas linhas compartilham a chave
composta. O payload aceita um cabeçalho (filial,
data, lote, sublote,
padrao) + array itens[] com no mínimo 1
item — o CTBA102 persiste linha a linha.
Tipo de débito/crédito (dc).
"1"=Débito (exige debito),
"2"=Crédito (exige credito),
"3"=Partida dobrada (exige debito +
credito). Valores fora desse enum retornam 422.
Pré-requisitos ambientais. O CTBA102
é sensível à parametrização contábil. Para qualquer POST/PUT funcionar
é preciso ter CT1 com as contas usadas, CTH
com a combinação filial/lote/sublote, CTO com a moeda
(moedlc, default "01") e o calendário
contábil aberto na data. Sem isso, o MsExecAuto
retorna 422 com a mensagem do NomeAutoLog.
Paginação e delta-sync no /_list.
Default orderBy=chave com paginação por
page/pageSize (default 50, máx
500). Para sincronização incremental, use
orderBy=recno com paginação keyset via cursor
(recno do último item da página anterior) — a resposta inclui
nextCursor.
LancamentoContabil
CRUD por chave compostadoc
Descrição
Inclui um lançamento contábil via CTBA102 em modo
3. O servidor calcula o próximo CT2_DOC
por SOMA1 sobre o último documento da combinação
filial/data/lote/sublote — o cliente não envia doc.
A resposta 201 traz a chave composta gerada em
data.
Request body
itens[] com no mínimo 1 linha. Schema completo em
LancamentoPayload.
POST https://erpapi.jetme.com.br/api/99/01/WsLancamentoContabil/INCLUIR Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "filial": "01", "data": "20991231", "lote": "999", "sublote": "999", "padrao": "", "itens": [ { "moedlc": "01", "dc": "3", "debito": "1102001", "credito": "2101001", "valor": 100.00, "origem": "TESTE_REST CT2", "conver": "15555", "hist": "Teste smoke REST linha 1" }, { "moedlc": "01", "dc": "3", "debito": "1102002", "credito": "2101002", "valor": 50.00, "origem": "TESTE_REST CT2", "conver": "15555", "hist": "Teste smoke REST linha 2" } ] }
Respostas
CrudResponse com data = chave composta gerada (filial-data-lote-sublote-doc).filial, data, lote, sublote) ou data fora do pattern ^\d{8}$. Tier: validation-error.MsExecAuto do CTBA102 — conta não cadastrada (CT1), sublote ausente (CTH), moeda inválida (CTO), calendário fechado, dc fora de 1|2|3. Tier: business-error.doc forçado pelo cliente
Descrição
Mesmo comportamento do POST sem chave, mas o cliente fixa o
doc via path param. Útil para migração / carga
com numeração externa preservada. Documento já existente para
a chave retorna 409.
Path parameter
<filial>-<YYYYMMDD>-<lote>-<sublote>-<doc>. Pattern: ^[^-]+-\d{8}-[^-]+-[^-]+-[^-]+$.Request body
POST https://erpapi.jetme.com.br/api/99/01/WsLancamentoContabil/INCLUIR/01-20991231-999-999-999998 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "filial": "01", "data": "20991231", "lote": "999", "sublote": "999", "itens": [ { "dc": "3", "debito": "1102001", "credito": "2101001", "valor": 100.00, "hist": "Carga numeracao externa" } ] }
Respostas
CrudResponse.MsExecAuto do CTBA102. Tier: business-error.Descrição
Retorna o documento contábil completo — cabeçalho lógico
(filial, data, lote, sublote, doc, contagem de linhas) e
array linhas[] com os campos CT2_*
de CAMPOS_GET de cada linha. Aplica filtro de
filial via xFilial("CT2").
Path parameter
<filial>-<YYYYMMDD>-<lote>-<sublote>-<doc>.Chamada de exemplo
GET https://erpapi.jetme.com.br/api/99/01/WsLancamentoContabil/01-20991231-999-999-999999 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
{ success: true, data: LancamentoConsulta }.Descrição
Altera as linhas do lançamento via CTBA102 em
modo 4. O cabeçalho lógico (chave composta) não
muda — para mudar a chave, exclua e reinsira. As linhas vêm
novamente no payload; o MsExecAuto substitui o
conjunto.
Path parameter
<filial>-<YYYYMMDD>-<lote>-<sublote>-<doc>.Request body
PUT https://erpapi.jetme.com.br/api/99/01/WsLancamentoContabil/ALTERAR/01-20991231-999-999-999999 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "filial": "01", "data": "20991231", "lote": "999", "sublote": "999", "padrao": "", "itens": [ { "moedlc": "01", "dc": "3", "debito": "1102001", "credito": "2101001", "valor": 200.00, "origem": "TESTE_REST CT2 ALTERADO", "conver": "15555", "hist": "Teste smoke REST ALTERADO linha 1" }, { "moedlc": "01", "dc": "3", "debito": "1102002", "credito": "2101002", "valor": 75.00, "origem": "TESTE_REST CT2 ALTERADO", "conver": "15555", "hist": "Teste smoke REST ALTERADO linha 2" } ] }
Respostas
CrudResponse.MsExecAuto do CTBA102 (conta, sublote, moeda, calendário, dc). Tier: business-error.Descrição
Exclui todas as linhas do lançamento via CTBA102
em modo 5. Lançamento já contabilizado /
conciliado pode ser rejeitado pelo MsExecAuto
com 422.
Path parameter
<filial>-<YYYYMMDD>-<lote>-<sublote>-<doc>.Chamada de exemplo
DELETE https://erpapi.jetme.com.br/api/99/01/WsLancamentoContabil/EXCLUIR/01-20991231-999-999-999999 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
CrudResponse.CTBA102. Tier: business-error.Descrição
Resolve o lançamento por id técnico em vez da chave de
negócio. tipo=recno faz DbGoTo com
defesa multi-filial via xFilial;
tipo=msuid resolve via campo CT2_MSUID
(scan full, sem índice nativo) e retorna 501 quando o campo
não existe no dicionário.
Query parameters
recnomsuidtipo=recno; literal quando tipo=msuid.Chamada de exemplo
GET https://erpapi.jetme.com.br/api/99/01/WsLancamentoContabil/_byid?tipo=recno&valor=1234 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
GET https://erpapi.jetme.com.br/api/99/01/WsLancamentoContabil/_byid?tipo=msuid&valor=9f7a3e2c4b8d1a0e Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
{ success: true, data: LancamentoConsulta }.tipo/valor ausentes ou tipo fora do enum.msuid requer campo CT2_MSUID não presente no dicionário deste ambiente.Listagem
Listagem paginada por filtrosDescrição
Lista documentos contábeis distintos (uma entrada por
filial+data+lote+sublote+doc) filtrados por
filial, data, lote,
sublote. Cada item inclui recno
sempre, e msuid/msuidt quando o
dicionário tem os campos.
orderBy=chave(default) — paginação offset porpage/pageSize.orderBy=recno— paginação keyset viacursorcomnextCursorretornado.since=<recno>— válido emorderBy=chave; cacheia "último recno visto".
Query parameters
xFilial("CT2")).YYYYMMDD.1); aplicável apenas em orderBy=chave.50, máx 500).chave.chaverecnoRecNo() >= since. Aplicável em orderBy=chave.RecNo > cursor. Aplicável em orderBy=recno; cliente envia o nextCursor da página anterior.Chamada de exemplo
GET https://erpapi.jetme.com.br/api/99/01/WsLancamentoContabil/_list?data=20991231&lote=999&page=1&pageSize=50 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
GET https://erpapi.jetme.com.br/api/99/01/WsLancamentoContabil/_list?orderBy=recno&cursor=0&pageSize=200 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
data[] (ListItem), orderBy, pageSize, count, e page (em orderBy=chave) ou nextCursor (em orderBy=recno).orderBy inválido, pageSize > 500, data mal formada).Schemas
Definições canônicas — campos com origemSX3 rastreável
itens[] de LancamentoPayload.
"01" (moeda padrão da empresa)."1"=Débito, "2"=Crédito, "3"=Partida dobrada.123dc ∈ {1, 3}.dc ∈ {2, 3}.> 0 (exclusiveMinimum).YYYYMMDD. Pattern: ^\d{8}$.CTH).CPADRAO). Vazio = lançamento livre.minItems: 1). Schema em ItemLancamento.CT2_* filtrados por CAMPOS_GET no
.prw.
YYYYMMDD).CT2_* (campos do CAMPOS_GET) + recno/msuid/msuidt quando disponíveis./_list — uma entrada por documento
distinto (chave composta), sem o array de linhas.
YYYYMMDD).data traz a chave composta gerada (POST) ou string vazia
(PUT/DELETE).
true em respostas de sucesso."01-20991231-999-999-999999"). Em PUT/DELETE pode ser string vazia.data pode conter o
token interno da causa (ex: mensagem do NomeAutoLog
do CTBA102) para tratamento programático.
false em erros.MsExecAuto).