Skip to content

SDK Web

El SDK Web es compatible con todos los navegadores modernos y ofrece múltiples métodos de integración.

Míralo funcionar en 30 segundos

demo-v1.captcha.la — HTML + PHP puro, licencia MIT, ver el código fuente en cada página.

Inicio rápido

html
<!-- 1. Load via CDN (or npm install captchala) -->
<script src="https://cdn.captcha-cdn.net/captchala-loader.js"></script>

<button id="login-btn">Sign in</button>

<script>
loadCaptchala(function () {
  Captchala.init({
    appKey: 'YOUR_APP_KEY',
    product: 'bind',
    action: 'login',
    lang: 'auto',
  })
  .onSuccess(res => sendToBackend(res.token))
  .onError(err => console.error(err.message))
  .bindTo('#login-btn');
});
</script>

Instalación

CDN

html
<!-- Recommended: auto-fallback loader, ~6 KB gzip -->
<script src="https://cdn.captcha-cdn.net/captchala-loader.js"></script>

NPM

bash
npm install captchala
# or framework wrappers
npm install @captcha-la/vue
npm install @captcha-la/react
js
import Captchala from 'captchala';
import 'captchala/dist/captchala.css';

Modos

Modo popup

js
Captchala.init({ appKey: 'YOUR_APP_KEY', product: 'popup', action: 'login' })
  .bindTo('#login-btn')
  .onSuccess(res => sendToBackend(res.token));

Modo flotante

js
Captchala.init({ appKey: 'YOUR_APP_KEY', product: 'float', action: 'browse' })
  .appendTo('#captcha-container')
  .onSuccess(res => sendToBackend(res.token));

Modo bind

js
Captchala.init({ appKey: 'YOUR_APP_KEY', product: 'bind', action: 'login' })
  .bindTo('#submit-button')
  .onSuccess(res => submitForm(res.token));   // fires only after challenge passes

Modo embed

js
Captchala.init({ appKey: 'YOUR_APP_KEY', product: 'embed', action: 'register' })
  .appendTo('#captcha-container')
  .onSuccess(res => sendToBackend(res.token));

Opciones comunes

ParámetroTipoPor defectoDescripción
appKeystringApplication Key (obligatorio)
productstringpopupModo de visualización: popup
actionstringdefaultEscenario de negocio (p. ej. login, register, pay). El servidor aplica diferentes políticas de seguridad según el escenario.
langstringautoEtiqueta BCP-47 (p. ej. en, ja, pt-BR) o auto para seguir navigator.language. Consulta Idiomas soportados — 54 idiomas.
serverTokenstringToken de un solo uso (sct_xxx) emitido por tu servidor. Muy recomendado en producción — evita el abuso por refresco ilimitado de desafíos.
onServerTokenExpired() => Promise<string>Se invoca cuando caduca el serverToken; devuelve uno nuevo para que el SDK pueda continuar sin interrumpir el flujo.
enableVoicebooleantrueMuestra el acceso al CAPTCHA por audio (soporte de accesibilidad para personas con discapacidad visual).

Validación en el servidor

Tras onSuccess, envía res.token (prefijo pt_) a tu propio backend y luego valídalo en el servidor:

bash
POST https://apiv1.captcha.la/v1/validate
X-App-Key: YOUR_APP_KEY
X-App-Secret: YOUR_APP_SECRET
Content-Type: application/json

{ "pass_token": "<token>", "client_ip": "<end-user IP>" }

Consulta la Referencia de la API para conocer el endpoint completo de validación.

MIT-licensed examples · CaptchaLa is operated independently