PerfilTribProduto
Gerencia o grid de produtos (F24) de um Perfil Tributário via wrapper FISA166. Cada produto pode ter múltiplas origens tributárias (F25). O perfil-pai (F20) deve existir com tipo 04 antes de qualquer operação. Não há PUT — alterações exigem DELETE + POST.
F24_CDPROD). Não há PUT neste endpoint.Vinculação com o ERP
Convenções
Envelope canônico. { success, message, data }. POST retorna data.perfil, data.F24_CDPROD e data.origens.
Chave no path. POST usa {perfil} = código do perfil (F24_CODIGO). DELETE usa {perfil}/{cdprod} — 2 segmentos finais da URL.
Origens opcionais. Campo origens no body do POST aceita array de strings (["0","1"]) ou array de objetos ([{"F25_ORIGEM":"0"}]). Omitir = sem origens.
Consulta por recno. GET /{perfil}/_byid/{recno} acessa via DbGoTo(nRecno) — útil para recarregamento após POST.
Sem PUT. Não existe método PUT neste endpoint. Para alterar origens de um produto: DELETE + POST.
Sem bloqueio TOTVS. F24/F25 não possuem MSBLQL/MSBLQD. Sem lógica de bloqueio neste endpoint.
PerfilTribProduto — mutação
Adição e remoção de produtos via FISA166.Descrição
Adiciona um produto ao grid do perfil. O perfil-pai (F20 com tipo "04") deve existir. F24_CDPROD é obrigatório. origens é opcional.
Path parameter
Cenário
Request body
["0","1"] ou [{"F25_ORIGEM":"0"}].POST https://erpapi.jetme.com.br/api/99/01/WsF24/P001 { "F24_CDPROD": "P0001" }
{
"success": true,
"message": "Produto adicionado ao perfil.",
"data": {
"perfil": "P001",
"F24_CDPROD": "P0001",
"origens": []
}
}POST https://erpapi.jetme.com.br/api/99/01/WsF24/P001 { "F24_CDPROD": "P0001", "origens": ["0", "1"] }
{
"success": true,
"message": "Produto adicionado ao perfil.",
"data": {
"perfil": "P001",
"F24_CDPROD": "P0001",
"origens": ["0", "1"]
}
}Respostas
data.perfil, data.F24_CDPROD, data.origens.Descrição
Remove o produto {cdprod} do grid do perfil {perfil} via FISA166 op=5. Retorna 404 quando o erro contém "nao encontrado", senão 422.
Path parameters
Cenário
Exemplo
DELETE https://erpapi.jetme.com.br/api/99/01/WsF24/P001/P0001
{
"success": true,
"message": "Produto P0001 removido do perfil P001.",
"data": ""
}Respostas
Consulta
Listagem do grid do perfil e consulta por recno.Descrição
Varre F24 pelo índice F24_CODIGO. Cada item inclui os campos CAMPOS_GET (F24_FILIAL|F24_CODIGO|F24_CDPROD|F24_TIPOPF), o recno físico e o array origens de F25 ([{"F25_ORIGEM":"0"}]).
Path parameter
Cenário
Exemplo
GET https://erpapi.jetme.com.br/api/99/01/WsF24/P001
{
"success": true,
"message": "OK",
"data": {
"items": [
{
"F24_FILIAL": "01",
"F24_CODIGO": "P001",
"F24_CDPROD": "P0001",
"F24_TIPOPF": "04",
"recno": 42,
"origens": [
{ "F25_ORIGEM": "0" },
{ "F25_ORIGEM": "1" }
]
}
],
"perfil": "P001",
"count": 1
}
}Descrição
Acessa F24 via DbGoTo(nRecno). Retorna campos CAMPOS_GET + recno. Sem origens (usar listagem para dados completos). 404 quando recno inválido ou de outra filial.
Path parameters
Cenário
Exemplo
GET https://erpapi.jetme.com.br/api/99/01/WsF24/P001/_byid/42
{
"success": true,
"message": "OK",
"data": {
"F24_FILIAL": "01",
"F24_CODIGO": "P001",
"F24_CDPROD": "P0001",
"F24_TIPOPF": "04",
"recno": 42
}
}Respostas
Schemas
Componentes do contrato OpenAPI["0","1"] ou objetos [{"F25_ORIGEM":"0"}]. Omitir = sem origens.CAMPOS_GET: F24_FILIAL|F24_CODIGO|F24_CDPROD|F24_TIPOPF + recno + origens (apenas no GET listagem).[{"F25_ORIGEM":"0"}].{ perfil, F24_CDPROD, origens }. GET lista: { items, perfil, count }. GET byid: objeto F24. DELETE: string vazia.success=false + message com a causa.Cenários
1-pra-1 comexamples: do YAML.items[] com origens F25 aninhadas.Pendências conhecidas (rev2)
Nenhuma aberta. Endpoint de grid; sem bloqueio TOTVS, sem serialização Date pendente.