Explainers

Sitekey e chave de API no reCAPTCHA Enterprise: qual delas enviar

Um envio de reCAPTCHA Enterprise que volta com ERROR_WRONG_CAPTCHA_ID costuma denunciar a variável de ambiente errada, não um problema no desafio. A CaptchaAI só aceita a sitekey, a credencial pública 6L... exposta no HTML da página.

A chave AIzaSy do Google Cloud pertence ao backend do site avaliado. As duas nascem no mesmo Console e acabam no mesmo .env — o pipeline lê a variável errada e o time caça um bug inexistente.

Qual chave vai na requisição: comparação rápida

A tabela resolve a maioria dos casos.

Propriedade Sitekey Chave de API
Formato 6L... (40 caracteres) AIzaSy... (39 caracteres)
Visibilidade Pública (HTML/JS) Privada (só no servidor)
Para que serve Carregar o widget Verificar tokens junto ao Google
Onde fica Código-fonte, JS Config do servidor, env vars
A CaptchaAI precisa? Sim Não

Regra prática: chave que não aparece no código-fonte da página não é sitekey.

A sitekey: a chave pública que carrega o widget

Quatro sinais confirmam que é a sitekey:

  • Prefixo 6L, o mesmo do reCAPTCHA padrão — a versão não muda o formato
  • Fica visível no código-fonte, e isso é intencional
  • No Console do Google Cloud, está amarrada a domínios autorizados
  • É o único valor que a CaptchaAI precisa para gerar o token

No HTML ela chega como parâmetro render do script do Enterprise:

<script src="https://www.google.com/recaptcha/enterprise.js?render=6LcR_RsTAAAAADge..."></script>

Em páginas invisíveis, aparece como primeiro argumento de grecaptcha.enterprise.execute:

grecaptcha.enterprise.execute('6LcR_RsTAAAAADge...', { action: 'login' });

A chave de API do Google Cloud: privada e fora do seu fluxo

É a credencial que o backend do site usa para validar o token no Google:

POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments?key=AIzaSy...

Fácil de reconhecer — e de vazar por engano:

  • Começa com AIzaSy, o formato de chave de API do Google Cloud
  • Não pode aparecer em código do cliente nem em log de pipeline
  • Serve só para o backend validar os tokens que recebe
  • A CaptchaAI não precisa dela, e enviá-la só devolve erro

Como o Enterprise verifica um token (e onde a CaptchaAI entra)

O fluxo completo mostra qual etapa é sua:

  1. Navegador carrega enterprise.js usando a sitekey
  2. Navegador executa o desafio e recebe um token
  3. Backend do site envia token + chave de API ao endpoint assessments do Google
  4. Google devolve a pontuação de risco e os detalhes
  5. Backend do site aceita ou recusa com base na pontuação

A CaptchaAI cobre as etapas 1 e 2 e devolve um token válido gerado a partir da sitekey. Da etapa 3 em diante quem decide é o backend, com a chave dele.

Enterprise x reCAPTCHA padrão: o que realmente muda

Recurso Padrão (gratuito) Enterprise
Origem da sitekey Console do reCAPTCHA Console do Google Cloud
Endpoint de verificação siteverify assessments
Autenticação Chave secreta Chave de API ou conta de serviço
Resposta de pontuação Campo score (0,0–1,0) riskAnalysis.score + motivos
Tipo de tarefa na CaptchaAI RecaptchaV2Task / RecaptchaV3Task RecaptchaV2EnterpriseTask / RecaptchaV3EnterpriseTask

Extrair a sitekey pelo código-fonte da página

Funciona na maioria das páginas com widget visível:

View Source → Ctrl+F → "enterprise.js"

O valor do parâmetro render é a sitekey:

<script src="https://www.google.com/recaptcha/enterprise.js?render=6LcR_RsTAAAAADge..."></script>

Extrair a sitekey pelo console do navegador

Quando o Enterprise roda invisível e não há data-sitekey no HTML estático, pergunte à própria página:

// Check for Enterprise grecaptcha
if (window.grecaptcha && window.grecaptcha.enterprise) {
  console.log('reCAPTCHA Enterprise detected');
}

// Find site key from rendered widgets
document.querySelectorAll('[data-sitekey]').forEach(el => {
  console.log('Site key:', el.getAttribute('data-sitekey'));
});

Extrair a sitekey pela aba Rede

Para páginas que montam o widget dinamicamente, filtre as requisições por enterprise.js ou recaptcha/enterprise: a sitekey aparece na URL ou no corpo.

Como enviar a sitekey para a CaptchaAI

Com a chave em mãos, é uma requisição só:

POST https://ocr.captchaai.com/in.php

Parâmetros obrigatórios:

Parâmetro Valor
key Sua chave de API CaptchaAI (YOUR_API_KEY)
method userrecaptcha
googlekey A sitekey da página (6LcR_Rs...)
pageurl A URL completa do CAPTCHA
enterprise 1 (sinaliza Enterprise)

Os três parâmetros opcionais do Enterprise:

  • enterprise_typev2 ou v3 Enterprise
  • action — o nome da ação, no v3
  • score_qa — pontuação mínima desejada, no v3

Repare que key e googlekey vêm de mundos diferentes: a primeira é sua na CaptchaAI, a segunda pertence ao site testado.

Cenário real: o checkout de homologação que passava no navegador

Um time de QA em São Paulo testa https://staging.example.com/checkout, protegido por reCAPTCHA Enterprise v3, com workers em sa-east-1. No clique manual a suíte passava; na automação, todo envio voltava com erro de chave inválida.

O payload entregou o diagnóstico: o pipeline lia RECAPTCHA_KEY, e essa variável guardava a chave AIzaSy do endpoint assessments. Duas correções resolveram — extrair a sitekey da URL de homologação, não a de produção, e acrescentar enterprise=1. Use dados fictícios; havendo dado pessoal real no fluxo, considere as obrigações da LGPD antes de gravar logs.

Erros comuns e como corrigir

Problema Causa Correção
"ERROR_WRONG_CAPTCHA_ID" Chave de API no lugar da sitekey Use a 6L... da página, nunca a AIzaSy...
Token recusado Tipo de Enterprise errado (v2 x v3) Defina enterprise=1 e corrija enterprise_type
"Invalid sitekey" Chave de outro ambiente Extraia a chave da URL exata em teste
Sem sinalização de Enterprise Enviado como reCAPTCHA padrão Acrescente enterprise=1

Se a API devolve o token e a quebra só acontece no navegador automatizado, a falha está na entrega do token ao formulário, não nas chaves.

Perguntas frequentes

Dá para pegar a sitekey sem abrir o DevTools?

Sim. O HTML é público: um curl na URL seguido de busca por enterprise.js costuma bastar. O console só é necessário quando o widget é montado via JavaScript.

Preciso do PROJECT_ID ou de uma conta de serviço do Google Cloud?

Não. PROJECT_ID, conta de serviço e chave AIzaSy pertencem à verificação do lado do site. Do seu lado entram só a sitekey, a pageurl e sua credencial da CaptchaAI.

Enviei a sitekey certa e o token continua sendo recusado. O que verificar?

Confira, nessa ordem: pageurl precisa ser a URL exata do desafio, enterprise=1 precisa estar presente e enterprise_type precisa bater com a versão do widget. No v3, o action também tem que corresponder ao usado em execute().

A mesma chave da CaptchaAI serve para Enterprise e reCAPTCHA padrão?

Sim. Uma única credencial cobre todos os tipos suportados, e a cobrança é por threads simultâneas — o BASIC (US$ 15/mês, 5 threads) atende os dois casos.

Artigos relacionados

Próximas etapas

Abra o código-fonte da sua página de homologação, copie a sitekey 6L..., crie sua chave de API e envie a primeira tarefa com enterprise=1.

Os comentários estão desativados para este artigo.