# Portal Fornecedor - contrato do endpoint intermediario ## Objetivo A widget publica nao deve chamar diretamente: - `/process-management/api/v2/processes/FlowEssentials_LancamentodeDocumento/start` - `/api/public/ecm/dataset/datasets` Ela deve chamar um endpoint intermediario no servidor, por exemplo: - `POST /api/public/portalfornecedor/enviar` Esse endpoint e quem usa `fluig_rest` no backend. ## Request esperado da widget ```json { "targetState": 5, "comment": "Envio via portal fornecedor", "formFields": { "data_abertura": "2026-03-13", "emitido_por": "fornecedor", "entidade_responsavel": "Empresa X", "tipo_cadastro": "cpf", "emailSolicitante": "email@empresa.com.br", "cpf": "12345678900", "tipo_documento": "danfe", "numero_documento": "123456", "valor": "10,00", "justificativa": "Descricao do servico" } } ``` ## Response de sucesso ```json { "success": true, "message": "Solicitacao enviada com sucesso.", "processInstanceId": "12345", "content": { "processInstanceId": "12345" } } ``` ## Response de erro ```json { "success": false, "message": "Descricao do erro" } ``` ## Logica esperada no backend 1. Receber o JSON da widget. 2. Validar os campos obrigatorios. 3. Usar `fluigAPI.getAuthorizeClientService()`. 4. Invocar o servico `fluig_rest`. 5. Chamar o endpoint final: `/process-management/api/v2/processes/FlowEssentials_LancamentodeDocumento/start` 6. Retornar para a widget somente o resultado final. ## Exemplo de chamada server-side ```javascript var clientService = fluigAPI.getAuthorizeClientService(); var requestData = { companyId: String(getValue("WKCompany") || "1"), serviceCode: "fluig_rest", endpoint: "/process-management/api/v2/processes/FlowEssentials_LancamentodeDocumento/start", method: "post", timeoutService: "100", headers: { "Content-Type": "application/json", "Accept": "application/json" }, options: { encoding: "UTF-8", mediaType: "application/json", useSSL: true }, params: payloadRecebidoDaWidget }; var vo = clientService.invoke(JSON.stringify(requestData)); var raw = String(vo.getResult() || ""); var response = JSON.parse(raw); ``` ## Configuracao da widget Por padrao a widget usa: - `https://api.grupoginseng.com.br/v2/portalfornecedor/enviar_api_public_portalfornecedor_enviar_post` Se necessario, sobrescreva antes de carregar a widget: ```html ``` ## Observacao importante `apiKey` no front nao substitui OAuth 1.0 do Fluig. Se existir um header como `apiKey`, ele deve ser validado apenas no endpoint intermediario. O endpoint intermediario continua sendo o responsavel por usar `fluig_rest` no servidor.