---
title: WHMCS
---

# WHMCS

Módulo addon oficial da CaptchaLa para WHMCS. Adiciona verificação CAPTCHA à área do cliente do WHMCS — login, cadastro, recuperação de senha, formulário de contato, envio de tickets e checkout do carrinho — sem escrever uma linha de código.

Diferente de um simples widget com site-key, cada desafio é respaldado por um **token de uso único emitido pelo servidor** (anti-replay), e nenhum rastreador de terceiros é carregado.

## O que ele cobre

Cada superfície abaixo é um toggle individual nas configurações do módulo — habilite só as que você quer proteger.

- Login
- Cadastro
- Recuperação de senha
- Formulário de contato
- Envio de tickets
- Checkout do carrinho

## Requisitos

- WHMCS 8.x e 9.x (testado na área do cliente 8.3 e 9.0; funciona com os temas `six` e `twenty-one`, com ou sem Friendly URLs)
- PHP 8.0+ (o próprio WHMCS 9.0 exige PHP 8.2+)
- Uma conta CaptchaLa — obtenha sua **App Key** + **App Secret** em [`dash.captcha.la`](https://dash.captcha.la)

## Instalação

### 1. Instale o módulo

1. Baixe o `whmcs-x.y.z.zip` mais recente nas [releases](https://github.com/Captcha-La/captchala-whmcs/releases).
2. Extraia-o no diretório **raiz do WHMCS**. Isso adiciona `modules/addons/captchala/`.
3. No admin do WHMCS, vá em **Setup → Addon Modules**, encontre **CaptchaLa** e clique em **Activate**.

### 2. Configure

Clique em **Configure** e então:

1. Cole sua **App Key** e seu **App Secret**.
2. Escolha um **Widget mode** e um **Theme**.
3. Ative os formulários que deseja proteger.
4. Clique em **Save Changes**.

Abra a página **CaptchaLa** no menu lateral do admin para rodar um teste de conexão ao vivo contra o painel.

::: tip
Após ativar, se o widget não aparecer, salve as configurações do módulo novamente uma vez — o WHMCS só registra o `hooks.php` de um módulo quando ele é (re)ativado/salvo.
:::

## Configuração

Todas as configurações ficam em **Setup → Addon Modules → CaptchaLa → Configure**.

| Configuração | Tipo | Padrão | Descrição |
| --- | --- | --- | --- |
| App Key | string | — | Chave pública do painel da CaptchaLa. Obrigatória. |
| App Secret | string | — | Segredo do servidor, usado para emitir e validar tokens. Obrigatório; nunca exposto ao navegador. |
| Widget mode | enum | `popup` | `popup` (barra disparadora → desafio em tela cheia), `float` (painel inline), `embed` (checkbox inline), `bind` (invisível, intercepta o envio). |
| Theme | enum | `default` | Preset de cor: `default`, `dark`, `slate`, `emerald`, `amber`, `rose`. |
| Language | string | `auto` | Código BCP-47 (ex. `en`, `zh`, `de`) ou `auto` para seguir o navegador. |
| Protect login | bool | on | Aplica o desafio ao login da área do cliente. |
| Protect registration | bool | on | Aplica o desafio ao cadastro de novas contas. |
| Protect password reset | bool | on | Aplica o desafio ao formulário de recuperação de senha. |
| Protect contact form | bool | off | Aplica o desafio ao formulário de contato. |
| Protect ticket submission | bool | off | Aplica o desafio à etapa final de envio de tickets. |
| Protect cart checkout | bool | off | Aplica o desafio ao checkout do carrinho. |
| Skip for logged-in users | bool | on | Não aplica o desafio a visitantes que já têm uma sessão de cliente. |
| Failure message | string | — | Mensagem exibida quando a verificação falha. |

## Como funciona

Em cada página de formulário protegido, o módulo emite um novo **token de servidor (`sct_`)** do painel, escopado para a action daquele formulário, e renderiza o widget vinculado a ele. Depois que o visitante resolve o desafio, o SDK escreve um **token de passe de uso único (`pt_`)** no formulário. No envio, o módulo valida esse `pt_` do lado do servidor antes que o WHMCS processe o formulário; replays e divergências de action são rejeitados.

Se o painel estiver temporariamente inacessível, o módulo **falha em aberto** (deixa o envio passar) para que sua área do cliente nunca fique bloqueada por uma falha pontual upstream.

## FAQ

**O módulo é gratuito?**

Sim. O módulo é gratuito. O plano gratuito da CaptchaLa cobre 10.000 verificações por mês — planos pagos só se aplicam se você precisar de mais volume.

**Funciona tanto no WHMCS 8 quanto no 9?**

Sim — testado na área do cliente 8.3 e 9.0, com os temas `six` e `twenty-one`, com ou sem Friendly URLs.

**O widget não aparece.**

Salve as configurações do módulo novamente uma vez (Configure → Save Changes). O WHMCS só registra o `hooks.php` quando o módulo é (re)ativado/salvo.

## Código-fonte

- Repositório do módulo: [`github.com/Captcha-La/captchala-whmcs`](https://github.com/Captcha-La/captchala-whmcs)
- Issues / pedidos de funcionalidade: abertos no repositório acima
- Relacionados: [SDK Web](/pt-BR/web-sdk) · [SDK PHP Server](/pt-BR/sdk/server-php) · [Referência da API](/pt-BR/api-reference)
