BaixaPagar
Baixa e cancelamento de titulos do Contas a Pagar (tabela SE2)
via rotina automatica FINA080 do Protheus. Aceita uma lista de
titulos num unico POST e processa cada um individualmente,
retornando um detalhamento por posicao do array. Duas operacoes:
3 = Baixa e 5 = Cancelamento de baixa.
https://erpapi.jetme.com.br/api/99/01
Empresa 99 . Filial 01
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).
Convencoes
Lista de titulos por chamada. O endpoint sempre recebe
Titulos[] com pelo menos um item. Cada titulo e processado
individualmente pelo wrapper; uma falha num item nao aborta os demais. O
status HTTP final consolida o resultado:
200 (todos ok), 207 (parcial),
422 (todos falharam).
Operacao 3 (Baixa) vs 5 (Cancelamento). Em
Operacao=3 os campos AUT* de pagamento sao
esperados (motivo de baixa, valor, datas, banco). Em Operacao=5
basta a chave do titulo (campos E2_*); os AUT*
presentes sao ignorados pelo FINA080.
Valor pago e AUTVLRPG. Quando ausente,
zero ou negativo, o wrapper calcula automaticamente o valor pelo saldo
aberto do titulo (E2_SALDO). Util quando o consumidor quer
baixar o titulo inteiro sem conhecer o saldo previo.
Formato de datas. AUTDTBAIXA e
AUTDTCREDITO aceitam string ISO YYYY-MM-DD. O
wrapper converte para Date AdvPL via
sToD(StrTran(...,"-","")) antes de empurrar para o
MsExecAuto.
Identificacao do titulo. A chave da SE2 e
composta - E2_PREFIXO+E2_NUM+E2_PARCELA+E2_TIPO+E2_FORNECE+E2_LOJA.
Os seis campos sao obrigatorios em ambas as operacoes; E2_PARCELA
pode vir vazio em titulos sem parcelamento (valor padrao em branco).
Baixa
Baixa e cancelamento via FINA080Descricao
Processa uma lista de titulos do Contas a Pagar via FINA080. O
campo Operacao seleciona o modo do MsExecAuto:
3 para baixa, 5 para cancelamento de baixa.
Cada titulo do array e processado isoladamente; o resultado consolidado
e retornado em data.detalhe, chaveado por posicao
(1-based) no array de entrada.
Status HTTP consolidado.
200- todos os titulos processados com sucesso.207- parcial: ao menos um ok e ao menos um com erro.422- falha de validacao do payload ou todos os titulos falharam.400- body ausente, JSON malformado ou estrutura invalida.500- excecao nao tratada (capturada porBegin Sequence).
Request body
POST https://erpapi.jetme.com.br/api/99/01/WsBaixaPagar/ Authorization: Bearer eyJhbGciOiJIUzI1NiIs... Content-Type: application/json Accept: application/json { "Filial": "01", "Operacao": 3, "Titulos": [ { "E2_PREFIXO": "A01", "E2_NUM": "000001", "E2_PARCELA": "001", "E2_TIPO": "NF", "E2_FORNECE": "000001", "E2_LOJA": "01", "AUTMOTBX": "DEB", "AUTVLRPG": 1000.00, "AUTDTBAIXA": "2026-05-04", "AUTDTCREDITO": "2026-05-04", "AUTBANCO": "001", "AUTAGENCIA": "00001", "AUTCONTA": "000001", "AUTJUROS": 0, "AUTDESCONT": 0, "AUTMULTA": 0, "AUTOUTGAS": 0, "AUTVLRME": 0, "AUTCHEQUE": "" } ] }
POST https://erpapi.jetme.com.br/api/99/01/WsBaixaPagar/ Authorization: Bearer eyJhbGciOiJIUzI1NiIs... Content-Type: application/json Accept: application/json { "Filial": "01", "Operacao": 5, "Titulos": [ { "E2_PREFIXO": "A01", "E2_NUM": "000001", "E2_PARCELA": "001", "E2_TIPO": "NF", "E2_FORNECE": "000001", "E2_LOJA": "01" } ] }
POST https://erpapi.jetme.com.br/api/99/01/WsBaixaPagar/ Authorization: Bearer eyJhbGciOiJIUzI1NiIs... Content-Type: application/json Accept: application/json { "Filial": "01", "Operacao": 3, "Titulos": [ { "E2_PREFIXO": "A01", "E2_NUM": "000002", "E2_PARCELA": "", "E2_TIPO": "NF", "E2_FORNECE": "000001", "E2_LOJA": "01", "AUTMOTBX": "PIX", "AUTDTBAIXA": "2026-05-04", "AUTDTCREDITO": "2026-05-04", "AUTBANCO": "001", "AUTAGENCIA": "00001", "AUTCONTA": "000001" } ] }
Respostas
BaixaPagarResponse com data.ok == data.total.data.detalhe[i] traz ok + msg por titulo. Tier: edge-valid.Operacao, Titulos nao e array, etc). Tier: validation-error.Operacao fora de {3,5}, Titulos vazio, ou todos os titulos falharam no MsExecAuto. Tier: business-error.MsExecAuto (capturada por Begin Sequence). Tier: business-error.Exemplo de resposta
{
"success": true,
"message": "Todos os titulos processados com sucesso.",
"data": {
"total": 1,
"ok": 1,
"erros": 0,
"detalhe": {
"1": {
"titulo": 1,
"ok": true,
"msg": "OK"
}
}
}
}
{
"success": true,
"message": "Processamento parcial: 1 ok, 1 com erro.",
"data": {
"total": 2,
"ok": 1,
"erros": 1,
"detalhe": {
"1": {
"titulo": 1,
"ok": true,
"msg": "OK"
},
"2": {
"titulo": 2,
"ok": false,
"msg": "Titulo nao localizado na SE2."
}
}
}
}
Schemas
Definicoes canonicas - campos com origemSX3 rastreavel
"01"). Aplicado como filtro de xFilial("SE2").3 = Baixa, 5 = Cancelamento de baixa. Outros valores retornam 422.35Titulos[]. Em Operacao=3 (Baixa),
os campos AUT* de pagamento sao esperados. Em
Operacao=5 (Cancelamento), apenas os identificadores
E2_* sao necessarios; AUT* presentes sao
ignorados pelo FINA080.
NF, DP, FT).SA2.A2_COD).SA2.A2_LOJA).DEB, TED, PIX). Consultado pelo FINA080 para definir o lancamento financeiro.E2_SALDO).YYYY-MM-DD. Default: data-base do ambiente.YYYY-MM-DD.AUTBANCO+AUTAGENCIA+AUTCONTA identifica a conta corrente (SA6).data consolida totais
e expoe o detalhamento por posicao do array de entrada, chaveado por
indice 1-based.
true em respostas 200 e 207 (parcial conta como sucesso parcial).Titulos[].lMsErroAuto = .T. no wrapper).TituloResult.FINA080.
Em caso de erro, msg traz a primeira linha do log do
NomeAutoLog capturado pelo wrapper.
true se o MsExecAuto retornou sem lMsErroAuto."OK" em sucesso, ou mensagem do NomeAutoLog em erro (ex.: "Titulo nao localizado na SE2.").data pode trazer o
token interno da causa (por exemplo, log do NomeAutoLog)
para tratamento programatico, quando aplicavel.
false em erros.MsExecAuto).