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.uploadedfile.validatedfile.refusedfile.expiredfile.archivedfile.signed
Clientes y autenticación
client.createdclient.archivedclient.taggedclient.loginclient.logoutclient.password_reset
Recorridos y puertas (gates)
parcours.enrolledstep.unlockedstep.completedquiz.submittedcertificate.issuedparcours.finished
Comunidad y compromiso
comment.postedannouncement.publishedtrophy.unlockedevent.createdevent.rsvpreplay.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) → trueConfiguració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_uploadedcv_after_file_validatedcv_after_step_completedcv_after_client_createdcv_after_audit_log
Filtros principales
cv_email_subjectcv_email_bodycv_max_upload_sizecv_storage_quota_gbcv_token_lifetime
Capacidades y roles
cv_user_can_view_clientcv_user_can_validatecv_user_can_exportcv_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.