API & développeurs
Tout le coffre s’opère en code. Sans toucher au cœur.
API REST complète, 28+ webhooks signés HMAC, hooks WordPress natifs, intégrations Fluent zero‑config. Si vous avez un IT, il branche votre stack en une après‑midi.
Anti‑SSRF
Signature HMAC SHA‑256
AES‑256‑CBC au repos
Audit horodaté opposable
TLS 1.3 obligatoire
Anti‑tamper plugin
01
API REST complète
Tout est exposable en REST — clients, fichiers, cartes, liens, embeds, tags, parcours, certificats, audit. Auth par clé API, ACL granulaires, journal des appels.
Endpoints clients
- 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 fichiers
- POST
/cv/v1/files/upload - GET
/cv/v1/files/{id}/token - POST
/cv/v1/files/{id}/archive - POST
/cv/v1/files/{id}/expiry
Endpoints cartes / liens / embeds
- GET
/cv/v1/cards - POST
/cv/v1/links - POST
/cv/v1/embeds - GET
/cv/v1/tags
Endpoints transverses
- GET
/cv/v1/search - GET
/cv/v1/audit - GET
/cv/v1/parcours - GET
/cv/v1/certificates
Exemple : récupérer la liste des clients
curl -X GET https://votre-site.fr/wp-json/cv/v1/clients \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
# Réponse 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 }
# }Authentification & logging : clés API par utilisateur (Rôles WP), ACL par endpoint, journal complet des appels (méthode, URL, IP, opérateur, durée). Quotas et rate‑limit configurables.
02
Webhooks (28+ événements)
Chaque action significative déclenche un POST signé HMAC vers vos endpoints. Multi-targets, secrets indépendants, anti‑SSRF, retry exponentiel.
Coffre & documents
file.uploadedfile.validatedfile.refusedfile.expiredfile.archivedfile.signed
Clients & auth
client.createdclient.archivedclient.taggedclient.loginclient.logoutclient.password_reset
Parcours & gates
parcours.enrolledstep.unlockedstep.completedquiz.submittedcertificate.issuedparcours.finished
Communauté & engagement
comment.postedannouncement.publishedtrophy.unlockedevent.createdevent.rsvpreplay.viewed
Exemple : payload + signature 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"
}
}
# Vérifier la signature côté receveur :
# computed = "sha256=" + hmac_sha256(secret, raw_body)
# hmac.compare_digest(computed, header) → trueConfiguration : plusieurs URLs cibles, chacune avec son secret. Filtrage anti-SSRF (RFC 1918, link-local). Retry exponentiel jusqu’à 24 h. Logs des délivrances.
03
Hooks WordPress natifs
Le coffre est un plugin WordPress — toute la chaîne est extensible via add_action / add_filter sans toucher au coeur. Compatible avec votre code existant et vos plugins maison.
Actions principales
cv_after_file_uploadedcv_after_file_validatedcv_after_step_completedcv_after_client_createdcv_after_audit_log
Filtres principaux
cv_email_subjectcv_email_bodycv_max_upload_sizecv_storage_quota_gbcv_token_lifetime
Capabilities & rôles
cv_user_can_view_clientcv_user_can_validatecv_user_can_exportcv_user_capabilities_map
Exemple : envoyer un Slack après validation
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 a validé "%s" pour %s',
wp_get_user( $operator_id )->display_name,
$file->name,
$client->name
),
] ),
] );
}, 10, 3 );04
Sécurité & audit
Si votre RSSI / DPO valide, c’est sur ces points qu’il regardera. Tout est documenté, configurable, journalisé.
Chiffrement AES‑256‑CBC
Clé par espace client, IV unique par fichier, chiffrement au repos sur disque. La clé maître vit dans wp‑config.php, jamais en BDD.
Anti‑SSRF (webhooks)
Bloque l’envoi de webhooks vers les réseaux internes (RFC 1918), localhost, link-local, IPv6 privé, métadonnées cloud (169.254.x.x). Allowlist optionnelle.
Anti‑tamper plugin
Hash des fichiers clés vérifié au boot du plugin. Si un fichier critique a été modifié (compromission ?), le plugin refuse de démarrer en mode sensible.
Audit horodaté complet
Chaque appel API, chaque action UI, chaque webhook envoyé consignés : opérateur, IP, méthode, cible, durée, statut. Export PDF ou CSV opposable.
Filtrage IP admin
Restreindre l’accès admin à un set d’IP / CIDR (cabinet, VPN, télétravail). Compatible IPv4 et IPv6.
RGPD : export & effacement
Export sélectif des données d’un client (JSON/ZIP), droit à l’oubli en un clic, rétention configurable par catégorie de données.
05
Intégrations Fluent natives
Pour la stack Fluent, c’est zero‑config. Client Vault détecte la présence du plugin et active la passerelle.
FluentCRM
Auto-tag des contacts depuis les événements coffre, séquences déclenchées par étape de parcours, segments dynamiques.
FluentPlayer
Lecteur vidéo intégré pour les replays / pièces media du coffre, tracking de visionnage par client.
FluentCart
Paiements Stripe intégrés aux parcours : une étape « paiement » valide automatiquement à la réception du webhook Stripe.
Fluent Community
Mapping N × N parcours / spaces, 21 widgets contextualisés, recherche multi-source, classement et trophées.
Au-delà de Fluent : tout le reste passe par les webhooks ou l’API REST. Stripe direct, Calendly, Cal.com, Zapier, n8n, Make, votre CRM custom — aucune limite.
06
Ressources développeur
La doc complète, des collections prêtes à l’emploi, et un canal d’entraide.
Documentation complète
Endpoints, payloads, exemples, codes d’erreur, rate-limits, changelog.
Collection Postman
Tous les endpoints pré-configurés, environnements dev/staging/prod, exemples de payloads.
OpenAPI / Swagger
Spécification YAML / JSON pour générer vos clients en TypeScript, Python, Go, etc.
Communauté développeurs
Espace privé pour les intégrateurs : exemples, cas d’usage, retours sur les hooks utiles.
Prêt à brancher votre stack ?
On vous montre en visio.
Démo CTO 30 minutes : on prend votre stack, on liste les points de branchement, on répond en live aux questions sécurité / RGPD.