Transferencia
Inclusão e consulta de Solicitação de Transferência Financeira
(tabela SE6) via rotina automática FINA621
(MsExecAuto). Endpoint apenas de criação e leitura:
alteração / aprovação / rejeição / estorno vão pelo endpoint irmão
AprovacaoTransf (rotina FINA631). O identificador externo
é o numsol (E6_NUMSOL), gerado pela FINA621 e devolvido
na resposta do POST. A solicitação nasce com E6_SITSOL='1'
(em aberto) e aguarda aprovação para virar transferência efetiva.
AprovacaoTransf (FINA631). Esta separação reflete a separação de papéis do Protheus: quem solicita ≠ quem aprova.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).
Vinculação com o ERP
Convenções
Identificador externo — numsol. O número da solicitação
(E6_NUMSOL) é gerado pelo FINA621 e devolvido na resposta
do POST via data.numsol. Após a criação, use o numsol como
chave de leitura: GET /WsTransfFin/{numsol}.
Chave JSON do valor: vlrTransf. Não use
valor — a WSDATA valor está reservada ao parâmetro
_byid?valor=N. Build 240223P resolve oJson["valor"]
case-insensitive contra WSDATA e devolveria o default. Use sempre
vlrTransf no body do POST.
Sem PUT/DELETE. Esta API é apenas de criação e consulta. Para
alterar (raro) ou cancelar uma solicitação, use o endpoint
AprovacaoTransf (FINA631) — ele expõe
_aprovar, _rejeitar, _excluir,
_estornar conforme o ciclo de vida.
Status (E6_SITSOL). A solicitação nasce em
"1" (Em aberto). Após processamento pelo aprovador, vira "2"
(Aprovada) ou "3" (Rejeitada). O endpoint WsTransfFin
só cria solicitações em "1" — mudanças de status pertencem ao
AprovacaoTransf.
Formato de data. Campo data no payload aceita
formato ISO YYYY-MM-DD. Quando omitido, o servidor usa
dDataBase (data corrente do Protheus).
Paginação e delta-sync. /_list usa
page/pageSize (default 50, máx
500). Para sincronização incremental, alterne para
orderBy=recno e use cursor conforme o
nextCursor retornado.
Solicitação de Transferência (SE6)
Inclusão e consulta — aprovação vai pelo AprovacaoTransf (FINA631)Descrição
Cria nova solicitação de transferência via FINA621 nOper 3 (única
operação suportada pela rotina). Retorna o numsol gerado e o
recno SE6. A solicitação nasce com E6_SITSOL='1'
(Em aberto) e aguarda processamento pelo endpoint
AprovacaoTransf.
- Obrigatórios:
filDeb,cliente,loja,vlrTransf(> 0). - Opcionais:
data(defaultdDataBase),histDeb. - Schema completo em
TransferenciaPayload.
Request body
TransferenciaPayload.
vlrTransf, não valor.YYYY-MM-DD. Default = dDataBase.POST https://erpapi.jetme.com.br/api/99/01/WsTransfFin/INCLUIR Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "filDeb": "0101", "cliente": "000001", "loja": "01", "data": "2026-05-16", "vlrTransf": 1000.00, "histDeb": "Transferencia teste smoke" }
{
"success": true,
"message": "Solicitacao de transferencia incluida com sucesso.",
"data": {
"recno": 12345,
"numsol": "000001",
"filial": "0101",
"valor": 1000.00,
"data": "20260516"
}
}
Respostas
filDeb, cliente, loja), vlrTransf ≤ 0. Tier: validation-error.MV_NATTRFF ausente, motivo TRF não cadastrado, regra de negócio violada. Mensagem editorial em message. Tier: business-error.Descrição
Retorna o cabeçalho da solicitação posicionada pelo E6_NUMSOL
(índice 3 da SE6: E6_FILIAL+E6_NUMSOL). Aplica whitelist de
CAMPOS_GET + ids técnicos.
Path parameter
Cenario
Exemplo da requisicao (cenario ativo)
GET https://erpapi.jetme.com.br/api/99/01/WsTransfFin/000001 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
{ success: true, data: Transferencia }.Descrição
Busca a solicitação por RecNo() — útil para integrações
que persistem o id técnico e querem reconfirmar o registro sem decompor
numsol. Apenas tipo=recno nesta revisão
— SE6 nesta base não expõe E6_MSUID.
Query parameters
recnoCenario
Exemplo da requisicao (cenario ativo)
GET https://erpapi.jetme.com.br/api/99/01/WsTransfFin/_byid?tipo=recno&valor=12345 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
{ success: true, data: Transferencia }.tipo/valor ausentes, tipo fora do enum, valor não inteiro.Listagem
Paginação por filtros e delta-syncDescrição
Lista solicitações com filtros por filial, cliente,
loja, numero em dois modos:
orderBy=numsol(default) — usa o índice 3 da SE6 (E6_FILIAL+E6_NUMSOL); paginação porpage/pageSize.orderBy=recno— varre fisicamente; paginação por keyset comcursor/nextCursor. Indicado para sync incremental.
Query parameters
xFilial("SE6").CAMPOS_GET.1, mínimo 1). Só faz sentido com orderBy=numsol.50, máx 500).numsol.numsolrecnoorderBy=numsol, descarta RecNo() < since.orderBy=recno, retoma após este RecNo.Cenario
Exemplo da requisicao (cenario ativo)
GET https://erpapi.jetme.com.br/api/99/01/WsTransfFin/_list?page=1&pageSize=50 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
data (array de Transferencia), orderBy, pageSize, count, opcionalmente page ou nextCursor.fields com campo fora do whitelist, pageSize > 500).Schemas
Definições canônicas — campos com origemSX3 rastreável
/{numsol}, /_list,
/_byid). Cabeçalho da SE6 + ids técnicos.
YYYYMMDD).1 Em aberto · 2 Aprovada · 3 Rejeitada.E6_MSUID.POST /WsTransfFin/INCLUIR. Whitelist da FINA621.
O servidor gera numsol internamente — não enviar.
vlrTransf, não valor.YYYY-MM-DD. Default = dDataBase.data na resposta do POST.
YYYYMMDD).data traz
TransferenciaRef.
true em sucesso.message traz a
mensagem do NomeAutoLog da FINA621.
false em erros.Cenários
Catálogo de combinações reconhecidas. Tier semântico no slug; endpoint notype-pill.
numsol sequencial. Pré-requisitos: cliente cadastrado em SA1 não
bloqueado, MV_NATTRFF configurado, motivo TRF disponível em
SX5/05.
Quando usar: caso de uso padrão — integração cria solicitação que depois será processada pelo endpoint
AprovacaoTransf.
Próximos passos: aguardar aprovação via FINA631 (status vira
"2") ou rejeição ("3").
DbSeek pelo índice 3 da SE6 (E6_FILIAL+E6_NUMSOL). Retorna
envelope { success, data: Transferencia }. Use após o POST
para reconferir o registro gravado, ou em qualquer momento para checar o
status atual (E6_SITSOL).
RecNo() via tipo=recno&valor=N. Identificador
técnico sempre disponível — útil quando o consumer persistiu o
recno na criação e não precisa retransmitir o
numsol.
orderBy=numsol + page/pageSize.
Paginação por offset sobre o índice 3 da SE6. O filtro por status
(E6_SITSOL) é aplicado pelo consumer pós-resposta — o endpoint não tem
query param dedicado para status nesta revisão.
Pendências conhecidas (rev1)
Sem PUT/DELETE neste endpoint. A separação de papéis exige
que alteração / aprovação / rejeição / estorno / exclusão venham pelo endpoint
irmão AprovacaoTransf (FINA631). O smoke test não consegue limpar
a sentinela criada porque depende desse outro endpoint — o trap chama
AprovacaoTransf/_excluir em best-effort.
Sem filtro nativo por status (E6_SITSOL). O _list
não expõe status/sitsol como query param. Para listar
apenas em aberto, o consumer aplica o filtro pós-resposta. Próxima revisão
considera adicionar query param dedicado.
Bloqueio MSBLQL/MSBLQD não aplicável a SE6. A tabela
SE6 não expõe campos administrativos de bloqueio — o que
conta é o status (E6_SITSOL) e o estado do cliente
(SA1.A1_MSBLQL). O bloqueio do cliente é enforcado pelo
FINA621 — este endpoint só propaga a mensagem 422.
_byid só com tipo=recno. O endpoint
aceita o parâmetro tipo=msuid no schema, mas a SE6 nesta base não
tem E6_MSUID — comportamento default fica em 400/501 conforme
enums. Aguarda UPDDISTR de MVC para SE6.
Pré-requisitos ambientais sensíveis. FINA621 depende de
MV_NATTRFF (natureza default de transferência) e do cadastro do
motivo TRF em SX5/05 via rotina FINA490.
Sem qualquer um desses, o POST retorna 422 com mensagem do
NomeAutoLog — nem sempre auto-explicativa.