AprovacaoTransf
Serviço REST para mudança de status de solicitações de
transferência financeira (tabela SE6) via
rotina automática FINA631. Não é CRUD.
Três operações expostas por verbo no path: _aprovar,
_excluir e _estornar. A inclusão da
solicitação acontece no endpoint Transferencia
(FINA621); a consulta de status, idem.
E6_SITSOL (Em aberto / Aprovada).Endpoint OAuth2
Sem credenciais? Rode ./src/scripts/get-token.sh e
cole o access_token aqui.
Vinculação com o ERP
Convenções
Endpoint de processo, não CRUD. Só muda status
de solicitações SE6 já existentes. A inclusão é feita em outro
endpoint (Transferencia — FINA621). Consulta
também é via Transferencia/{numsol}.
Dispatcher por verbo no path. Único método HTTP
é POST; o último segmento da URL (_aprovar,
_excluir, _estornar) seleciona o
nOper do FINA631 (3, 5, 6).
Pré-validação de status. Antes do
MsExecAuto, o endpoint posiciona SE6 e valida
E6_SITSOL:
_aprovare_excluirexigemE6_SITSOL='1'(Em aberto)_estornarexigeE6_SITSOL='2'(Aprovada)
Se o status não bate, retorna 422 com mensagem clara antes de chamar o FINA631.
Ciclo de vida.
[em aberto E6_SITSOL=1]
|
| _aprovar ----> [aprovada E6_SITSOL=2]
| |
| | _estornar
| v
| [em aberto novamente E6_SITSOL=1]
|
| _excluir ----> (registro removido)
Body uniforme. Os três verbos compartilham o
mesmo schema NumSolRequest
— apenas numsol (E6_NUMSOL, máx. 6 chars).
Não há campos opcionais por operação.
Resposta enriquecida. Após sucesso, o endpoint
re-localiza o registro e devolve sitsol atualizado
(útil pra confirmar o novo estado sem nova chamada GET).
Aprovação / Rejeição
Mudança de status de solicitação SE6 via FINA631Descrição
Executa FINA631 nOper=3 (Aprovação) sobre a
solicitação identificada por numsol (E6_NUMSOL).
E6_SITSOL transita de 1 (Em
aberto) para 2 (Aprovada).
Pré-condição: E6_SITSOL='1'.
Caso contrário retorna 422.
Cenário
Request body
Exemplo da requisição (cenário ativo)
POST https://erpapi.jetme.com.br/api/99/01/WsAprovaTransf/_aprovar Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "numsol": "000001" }
Respostas
data.sitsol="2" + recno + op=3.numsol ausente.numsol na filial.E6_SITSOL ≠ '1' (não está em aberto) ou FINA631 rejeitou (ex.: MV_NATTRFF ausente, motivo TRF não cadastrado). Tier: business-error.Descrição
Executa FINA631 nOper=5 (Exclusão) sobre a
solicitação identificada por numsol. O registro
é removido do SE6.
Pré-condição: E6_SITSOL='1'
(apenas solicitações em aberto podem ser excluídas).
Aprovadas devem ser estornadas antes de excluir.
Cenário
Request body
Exemplo da requisição (cenário ativo)
POST https://erpapi.jetme.com.br/api/99/01/WsAprovaTransf/_excluir Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "numsol": "000001" }
Respostas
data.op=5 + numsol + recno.numsol ausente.E6_SITSOL ≠ '1' ou FINA631 rejeitou. Tier: business-error.Descrição
Executa FINA631 nOper=6 (Estorno) sobre a
solicitação identificada por numsol. Reverte
aprovação: E6_SITSOL volta de 2
(Aprovada) para 1 (Em aberto).
Pré-condição: E6_SITSOL='2'.
Caso contrário retorna 422.
Cenário
Request body
Exemplo da requisição (cenário ativo)
POST https://erpapi.jetme.com.br/api/99/01/WsAprovaTransf/_estornar Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "numsol": "000001" }
Respostas
data.sitsol="1" + op=6.numsol ausente.E6_SITSOL ≠ '2' (não está aprovada) ou FINA631 rejeitou. Tier: business-error.Schemas
Definições canônicas — campos com origemSX3 rastreável
numsol;
não há campos opcionais por operação — o verbo no path já
determina o que vai acontecer.
_aprovar/_estornar,
data.sitsol traz o novo estado pós-operação
(re-localizado após o MsExecAuto).
true em sucesso.nOper FINA631: 3=aprovar, 5=excluir, 6=estornar.E6_SITSOL (vazio quando a operação remove o registro).false.Cenários
Catálogo de combinações de payload reconhecidas pelos métodos.Quando usar: aprovador (gestor/financeiro) confirma a transferência depois que o solicitante registrou em
Transferencia (FINA621).
Pré-condição:
E6_SITSOL='1',
MV_NATTRFF definido, motivo TRF
cadastrado.
Resultado:
E6_SITSOL='2';
FINA631 gera baixa do título origem.
Próximo passo: consultar status via
GET Transferencia/{numsol} ou registrar em sistema
do solicitante.
000001Quando usar: solicitação criada indevidamente, ou rejeição definitiva antes da aprovação.
Pré-condição:
E6_SITSOL='1'.
Aprovadas devem ser estornadas (volta para "em aberto") antes
de excluir.
Resultado: registro removido do SE6.
000001Quando usar: aprovação feita por engano; necessidade de revisar a transferência antes da efetivação financeira.
Pré-condição:
E6_SITSOL='2'.
Resultado:
E6_SITSOL='1';
títulos associados voltam ao estado anterior à aprovação.
Próximo passo: re-aprovar via
_aprovar ou excluir via _excluir.
000001Pendências conhecidas (rev1)
Sem GET próprio. Estado da solicitação é
consultado via endpoint Transferencia/{numsol}
(mesmo serviço que faz a inclusão). Documentação cruzada nesta
biblioteca aguarda o endpoint Transferencia ser
formalizado.
Dependência externa de MV_NATTRFF.
Sem o parâmetro definido, o FINA631 rejeita com
mensagem "Natureza não encontrada". O endpoint não valida a
existência do parâmetro previamente — só captura o erro do
MsExecAuto e devolve 422.
Smoke depende de fixture pré-criada.
test-aprovacao-transf.sh usa
Transferencia/INCLUIR no pre-flight; se aquele
endpoint não estiver de pé, o smoke falha em set-up (não em
execução).
Mensagens do FINA631 não traduzidas. Em
rejeição (422), o aRet[2] do wrapper traz a mensagem
bruta do MsExecAuto (português técnico do AdvPL). Tradução
editorial uniforme pendente.