Caja fuerte de clientes soberana. En tu WordPress. Instalado en 3 minutos.

API y desarrolladores

Toda la caja fuerte se opera mediante código. Sin tocar el núcleo.

API REST completa, más de 28 webhooks firmados con HMAC, hooks de WordPress nativos, integraciones Fluent de configuración cero. Si tiene un equipo de TI, conectarán su stack en una tarde.

Anti-SSRF

Firma HMAC SHA-256

AES-256-CBC en reposo

Auditoría con marca de tiempo ejecutable

TLS 1.3 obligatorio

Anti-tamper para plugins

01

API REST completa

Todo es exponible en REST: clientes, archivos, tarjetas, enlaces, elementos incrustados (embeds), etiquetas, recorridos, certificados, auditoría. Autenticación mediante clave API, listas de control de acceso (ACL) granulares y registro de llamadas.

Endpoints de clientes

  • GET /wp-json/cv/v1/clients
  • POST /wp-json/cv/v1/clients
  • PUT /wp-json/cv/v1/clients/{id}
  • DEL /wp-json/cv/v1/clients/{id}

Endpoints de archivos

  • POST /cv/v1/files/upload
  • GET /cv/v1/files/{id}/token
  • POST /cv/v1/files/{id}/archive
  • POST /cv/v1/files/{id}/expiry

Endpoints tarjetas / enlaces / embeds

  • GET /cv/v1/cards
  • POST /cv/v1/links
  • POST /cv/v1/embeds
  • GET /cv/v1/tags

Endpoints transversales

  • GET /cv/v1/search
  • GET /cv/v1/audit
  • GET /cv/v1/parcours
  • GET /cv/v1/certificates

Ejemplo: recuperar la lista de clientes

curl -X GET https://votre-site.fr/wp-json/cv/v1/clients 
  -H "Authorization: Bearer YOUR_API_KEY" 
  -H "Accept: application/json"

# Respuesta JSON:
# {
#   "data": [
#     {"id": 12, "name": "M. Bertrand", "email": "...", "tier": 1},
#     {"id": 13, "name": "SCI Verdun", "email": "...", "tier": 2}
#   ],
#   "meta": { "total": 124, "page": 1, "per_page": 20 }
# }

Autenticación y registro: claves API por usuario (roles WP), ACL por endpoint, registro completo de llamadas (método, URL, IP, operador, duración). Cuotas y rate-limit configurables.

02

Webhooks (más de 28 eventos)

Cada acción significativa activa un POST firmado con HMAC hacia sus endpoints. Multi-target, secretos independientes, anti-SSRF, reintento exponencial.

Caja fuerte y documentos

  • file.uploaded
  • file.validated
  • file.refused
  • file.expired
  • file.archived
  • file.signed

Clientes y autenticación

  • client.created
  • client.archived
  • client.tagged
  • client.login
  • client.logout
  • client.password_reset

Recorridos y puertas (gates)

  • parcours.enrolled
  • step.unlocked
  • step.completed
  • quiz.submitted
  • certificate.issued
  • parcours.finished

Comunidad y compromiso

  • comment.posted
  • announcement.published
  • trophy.unlocked
  • event.created
  • event.rsvp
  • replay.viewed

Ejemplo: payload + firma HMAC

POST https://votre-stack.fr/webhooks/cv-receiver
Headers:
  X-CV-Event: file.validated
  X-CV-Signature: sha256=8b1cde…
  Content-Type: application/json

{
  "event": "file.validated",
  "occurred_at": "2026-05-02T10:34:21.842Z",
  "data": {
    "file_id": 4521,
    "client_id": 12,
    "operator_id": 3,
    "name": "Bilan 2024 SARL VERDIA.pdf",
    "audit_url": "https://votre-site.fr/cv/audit/4521"
  }
}

# Verificar la firma del lado del receptor:
# computed = "sha256=" + hmac_sha256(secret, raw_body)
# hmac.compare_digest(computed, header) → true

Configuración: múltiples URLs destino, cada una con su secreto. Filtrado anti-SSRF (RFC 1918, link-local). Reintento exponencial hasta 24 h. Logs de entregas.

03

Hooks nativos de WordPress

Client Vault es un plugin de WordPress; toda la cadena es extensible mediante add_action / add_filter sin necesidad de modificar el núcleo. Es compatible con su código existente y sus plugins personalizados.

Acciones principales

  • cv_after_file_uploaded
  • cv_after_file_validated
  • cv_after_step_completed
  • cv_after_client_created
  • cv_after_audit_log

Filtros principales

  • cv_email_subject
  • cv_email_body
  • cv_max_upload_size
  • cv_storage_quota_gb
  • cv_token_lifetime

Capacidades y roles

  • cv_user_can_view_client
  • cv_user_can_validate
  • cv_user_can_export
  • cv_user_capabilities_map

Ejemplo: enviar un Slack tras la validación

add_action( 'cv_after_file_validated', function ( $file_id, $client_id, $operator_id ) {
    $file   = cv_get_file( $file_id );
    $client = cv_get_client( $client_id );

    wp_remote_post( 'https://hooks.slack.com/services/T0…', [ 
        'headers' => [ 'Content-Type' => 'application/json' ],
        'body'    => wp_json_encode( [
            'text' => sprintf(
                '✅ %s ha validado "%s" para %s',
                wp_get_user( $operator_id )->display_name,
                $file->name,
                $client->name
            ),
        ] ),
    ] );
}, 10, 3 );

04

Seguridad y auditoría

Si su DPO o responsable de seguridad lo valida, estos son los puntos que examinará. Todo está documentado, configurable y registrado.

Cifrado AES-256-CBC

Clave por espacio de cliente, vector de inicialización (IV) único por archivo, cifrado en reposo en disco. La clave maestra reside en wp-config.php, nunca en la base de datos.

Anti-SSRF (webhooks)

Bloquea el envío de webhooks hacia redes internas (RFC 1918), localhost, link-local, IPv6 privada y metadatos en la nube (169.254.x.x). Lista de permitidos opcional.

Anti-tamper del plugin

Hash de los archivos clave verificado al arrancar el plugin. Si un archivo crítico ha sido modificado (posible compromiso), el plugin rechaza iniciarse en modo sensible.

Auditoría con marca de tiempo completa

Cada llamada a la API, cada acción de la interfaz de usuario, cada webhook enviado queda registrado: operador, IP, método, destino, duración, estado. Exportación en PDF o CSV con validez legal.

Filtrado de IP para administradores

Restrinja el acceso de administración a un conjunto de IPs / CIDR (oficina, VPN, teletrabajo). Compatible con IPv4 e IPv6.

RGPD: exportación y borrado

Exportación selectiva de datos de un cliente (JSON/ZIP), derecho al olvido con un clic, retención configurable por categoría de datos.

05

Integraciones nativas con Fluent

Para la suite Fluent, la configuración es nula. Client Vault detecta la presencia del plugin y activa la pasarela.

FluentCRM

Etiquetado automático de contactos desde los eventos de la caja fuerte, secuencias activadas por etapa del recorrido, segmentos dinámicos.

FluentPlayer

Reproductor de vídeo integrado para las repeticiones / archivos multimedia de la caja fuerte, seguimiento de visionado por cliente.

FluentCart

Pagos de Stripe integrados en los recorridos: un paso de «pago» valida automáticamente al recibir el webhook de Stripe.

Fluent Community

Mapeo N×N de recorridos / espacios, 21 widgets contextualizados, búsqueda multifuente, clasificación y trofeos.

Más allá de Fluent: todo lo demás se gestiona mediante webhooks o la API REST. Stripe directo, Calendly, Cal.com, Zapier, n8n, Make, su CRM personalizado: sin límites.

06

Recursos para desarrolladores

Documentación completa, colecciones listas para usar y un canal de ayuda.

Documentación completa

Endpoints, payloads, ejemplos, códigos de error, límites de tasa, registro de cambios.

Colección Postman

Todos los endpoints preconfigurados, entornos de dev/staging/prod, ejemplos de payloads.

OpenAPI / Swagger

Especificación YAML / JSON para generar sus clientes en TypeScript, Python, Go, etc.

Comunidad de desarrolladores

Espacio privado para integradores: ejemplos, casos de uso, comentarios sobre los hooks útiles.

¿Listo para conectar su stack?
Se lo mostramos por videollamada.

Demo CTO de 30 minutos: analizamos su stack, enumeramos los puntos de conexión y respondemos en directo a las dudas sobre seguridad / RGPD.