Worker v3 — Versão Definitiva 2026

Cloudflare Worker — Proxy OMIE

Código v3 simplificado, com health-check integrado e diagnóstico em tempo real.

Diagnóstico do Worker em Tempo Real

Testar o Worker agora (antes de qualquer outro passo)

Informe a URL do seu Worker e clique em Diagnosticar para verificar se ele está ativo e com o código correto

Causa Raiz do Problema

Por que o erro 405 persiste mesmo após o deploy?
  • Cache do Cloudflare: O Cloudflare mantém a versão antiga em cache por alguns minutos após o deploy. Aguarde 2 min e tente novamente.
  • Versão errada implantada: O editor pode parecer atualizado, mas se o botão "Deploy" não foi clicado após colar o código, a versão antiga continua ativa.
  • URL incorreta no FinSight: A URL salva pode ter uma barra extra (/) no final, ou estar apontando para o Worker errado.
  • Dois Workers diferentes: Criou dois workers (ex: finsight-omie-proxy e finsight) e o FinSight está apontando para o errado.
Solução: Worker v3 com health-check integrado

O novo código (v3) responde a um GET /health retornando {"ok":true,"version":"FINSIGHT_WORKER_V3"}. Isso permite verificar, sem login nem chaves OMIE, se o Worker está com o código certo. Use o diagnóstico acima para confirmar antes de testar a integração.

Passo a Passo — Deploy do Worker v3

1

Abrir o Worker existente no Cloudflare

Worker já criado — só atualizar o código

~1 min
1

Acesse dash.cloudflare.com e faça login na sua conta.

2

No menu lateral, clique em "Workers & Pages".

3

Na lista, clique no Worker finsight-omie-proxy.

Se não aparecer, verifique se está na conta correta (canto superior direito do painel).
4

Clique em "Edit Code" (ícone de lápis ou botão azul no canto superior direito).

Abrir Cloudflare Dashboard
2

Substituir o código — Worker v3

Apagar tudo e colar o novo código simplificado

~2 min
Importante: verifique que o editor está 100% vazio antes de colar

Qualquer resquício do código anterior causará conflito. Use Ctrl+ADelete para garantir.

1

Clique dentro da área de código do editor.

2

Pressione Ctrl+A (Windows/Linux) ou Cmd+A (Mac) para selecionar tudo.

3

Pressione Delete ou Backspace.

O editor deve ficar completamente vazio — sem nenhuma linha.
4

Clique em "Copiar código v3" abaixo e cole no editor (Ctrl+V / Cmd+V).

5

Clique no botão azul "Deploy" (canto superior direito do editor) e aguarde a mensagem de sucesso.

Mensagem esperada: "Deployed successfully" ou "Your Worker has been deployed".
✅ Worker v3 — FINSIGHT_WORKER_V3 (código definitivo)
/**
 * FinSight — Cloudflare Worker v3 (DEFINITIVO)
 * Proxy CORS para API OMIE ERP — Prospecta
 *
 * FORMATO: Service Worker clássico — sem "export default", sem módulos ES.
 * Funciona em 100% das contas Cloudflare sem configuração adicional.
 *
 * VERSÃO: 3.0 — 2026-03-31
 * IDENTIFICADOR: FINSIGHT_WORKER_V3
 */

var OMIE_BASE = 'https://app.omie.com.br/api/v1';

addEventListener('fetch', function (event) {
  event.respondWith(handleRequest(event.request));
});

async function handleRequest(request) {

  // 1. Preflight CORS
  if (request.method === 'OPTIONS') {
    return new Response(null, { status: 204, headers: corsH() });
  }

  // 2. Health-check: GET / retorna JSON de status
  if (request.method === 'GET') {
    var u = new URL(request.url);
    var path = u.pathname.replace(/^\/+|\/+$/g, '');
    if (!path || path === 'health') {
      return json({ ok: true, version: 'FINSIGHT_WORKER_V3', ts: Date.now() }, 200);
    }
    return json({ error: 'Use POST para chamadas OMIE.' }, 405);
  }

  // 3. Apenas POST daqui em diante
  if (request.method !== 'POST') {
    return json({ error: 'Método não permitido. Use POST.' }, 405);
  }

  // 4. Extrai o endpoint do path
  var url      = new URL(request.url);
  var endpoint = url.pathname.replace(/^\/+|\/+$/g, '');

  if (!endpoint) {
    return json({ error: 'Endpoint OMIE não informado. Exemplo: POST /geral/categorias' }, 400);
  }

  var omieUrl = OMIE_BASE + '/' + endpoint + '/';

  // 5. Lê o body
  var body;
  try {
    body = await request.text();
    JSON.parse(body);
  } catch (e) {
    return json({ error: 'Body inválido ou não é JSON.', detail: e.message }, 400);
  }

  // 6. Encaminha para OMIE
  var omieRes;
  try {
    omieRes = await fetch(omieUrl, {
      method:  'POST',
      headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' },
      body:    body,
    });
  } catch (e) {
    return json({ error: 'Falha ao conectar com OMIE.', detail: e.message, url: omieUrl }, 502);
  }

  // 7. Repassa resposta com headers CORS
  var respBody = await omieRes.text();
  var ct       = omieRes.headers.get('Content-Type') || 'application/json';

  return new Response(respBody, {
    status:  omieRes.status,
    headers: Object.assign({ 'Content-Type': ct, 'X-Worker-Version': 'FINSIGHT_WORKER_V3' }, corsH()),
  });
}

function corsH() {
  return {
    'Access-Control-Allow-Origin':  '*',
    'Access-Control-Allow-Methods': 'GET, POST, OPTIONS',
    'Access-Control-Allow-Headers': 'Content-Type, X-Proxy-Token',
    'Access-Control-Max-Age':       '86400',
  };
}

function json(obj, status) {
  return new Response(JSON.stringify(obj), {
    status: status || 200,
    headers: Object.assign({ 'Content-Type': 'application/json' }, corsH()),
  });
}
3

Verificar a URL do Worker

Confirmar e copiar a URL gerada pelo Cloudflare

~1 min
1

Após o deploy, feche o editor clicando em "← finsight-omie-proxy" no topo.

2

Na seção "Preview" da página do Worker, você verá a URL. Ela terá este formato:

https://finsight-omie-proxy.SEU-USUARIO.workers.dev
3

Copie essa URL e use o Diagnóstico no topo desta página para confirmar que o Worker v3 está ativo antes de continuar.

Deve aparecer: {"ok":true,"version":"FINSIGHT_WORKER_V3"}
4

Configurar e Testar no FinSight

Salvar URL e testar conexão com o OMIE

~1 min
1

No FinSight, clique em Configurações ⚙️ no menu lateral.

2

Confirme que os campos estão preenchidos:

App Key: 2853300480030
App Secret: (preenchido — não exibido)
URL do Worker: https://finsight-omie-proxy.SEU-USUARIO.workers.dev
3

Clique em "Salvar", depois em "Testar Conexão".

Resultado esperado: badge 🟢 "Conectado" + mensagem de sucesso.
4

Clique em "Sincronizar 🔄" na barra superior para importar os dados financeiros reais.

Integração concluída!

Sidebar verde "OMIE: Conectado" e dashboards com dados reais da Prospecta.

Tabela de erros e soluções

Guia de diagnóstico rápido para cada mensagem de erro

Mensagem de erro Causa provável Solução
405 — não é JSON Worker com código antigo (export default) Substituir pelo Worker v3 (Passo 2)
405 — logo após deploy Cache do Cloudflare (versão antiga ainda ativa) Aguardar 2 min e testar novamente. Se persistir, refazer o deploy.
400 — Endpoint não informado URL do Worker sem o path do endpoint URL correta no FinSight: sem barra no final (/)
401 — Credenciais inválidas App Key ou App Secret incorretos Verificar as chaves no painel OMIE → Configurações → API
403 — Acesso negado Permissões insuficientes no App OMIE Verificar permissões do App no painel OMIE
502 — Falha ao conectar OMIE OMIE instável ou fora do ar Aguardar alguns minutos e tentar novamente
"Proxy indisponível" URL do Worker vazia ou incorreta no FinSight Copiar a URL correta do Cloudflare e salvar no FinSight
Diagnóstico: versão diferente de FINSIGHT_WORKER_V3 Worker com código v1 ou v2 ainda implantado Repetir o Passo 2 (apagar tudo e colar o código v3)

Checklist de verificação

Confirme cada item antes de considerar a integração concluída

Conta Cloudflare criada e verificada
Worker "finsight-omie-proxy" criado
Código v3 colado e Deploy realizado ← faça agora
Diagnóstico retornou FINSIGHT_WORKER_V3 (verde)
URL do Worker salva no FinSight (sem barra no final)
Teste de conexão no FinSight retornou "Conectado" 🟢
Sincronização importou os dados reais do OMIE