API & sviluppatori
L’intero caveau si gestisce via codice. Senza toccare il nucleo.
API REST completa, 28+ webhook firmati HMAC, hook WordPress nativi, integrazioni Fluent zero-config. Se avete un team IT, integrano il vostro stack in un pomeriggio.
Anti-SSRF
Firma HMAC SHA-256
AES-256-CBC a riposo
Audit con marcatura temporale opponibile
TLS 1.3 obbligatorio
Anti-tamper plugin
01
API REST completa
Tutto è esponibile via REST: clienti, file, schede, link, embed, tag, percorsi, certificati, audit. Autenticazione tramite chiave API, ACL granulari, registro chiamate.
Endpoint clienti
- 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}
Endpoint file
- POST
/cv/v1/files/upload - GET
/cv/v1/files/{id}/token - POST
/cv/v1/files/{id}/archive - POST
/cv/v1/files/{id}/expiry
Endpoint schede / link / embed
- GET
/cv/v1/cards - POST
/cv/v1/links - POST
/cv/v1/embeds - GET
/cv/v1/tags
Endpoint trasversali
- GET
/cv/v1/search - GET
/cv/v1/audit - GET
/cv/v1/parcours - GET
/cv/v1/certificates
Esempio: recupero dell’elenco clienti
curl -X GET https://votre-site.fr/wp-json/cv/v1/clients
-H "Authorization: Bearer YOUR_API_KEY"
-H "Accept: application/json"
# Risposta 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 }
# }Autenticazione e logging: chiavi API per utente (Ruoli WP), ACL per endpoint, registro completo delle chiamate (metodo, URL, IP, operatore, durata). Quote e rate-limit configurabili.
02
Webhooks (28+ eventi)
Ogni azione significativa attiva un POST firmato HMAC verso i vostri endpoint. Multi-target, secret indipendenti, anti-SSRF, retry esponenziale.
Cassaforte & documenti
file.uploadedfile.validatedfile.refusedfile.expiredfile.archivedfile.signed
Clienti & auth
client.createdclient.archivedclient.taggedclient.loginclient.logoutclient.password_reset
Percorsi & gates
parcours.enrolledstep.unlockedstep.completedquiz.submittedcertificate.issuedparcours.finished
Comunità e impegno
comment.postedannouncement.publishedtrophy.unlockedevent.createdevent.rsvpreplay.viewed
Esempio: 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"
}
}
# Verificare la firma lato ricevente:
# computed = "sha256=" + hmac_sha256(secret, raw_body)
# hmac.compare_digest(computed, header) → trueConfigurazione: molteplici URL target, ciascuno con il proprio secret. Filtraggio anti-SSRF (RFC 1918, link-local). Retry esponenziale fino a 24 ore. Log delle consegne.
03
Hook WordPress nativi
Client Vault è un plugin WordPress: l’intera catena è estensibile tramite add_action / add_filter senza modificare il core. Compatibile con il codice esistente e i plugin personalizzati.
Azioni principali
cv_after_file_uploadedcv_after_file_validatedcv_after_step_completedcv_after_client_createdcv_after_audit_log
Filtri principali
cv_email_subjectcv_email_bodycv_max_upload_sizecv_storage_quota_gbcv_token_lifetime
Capabilities & ruoli
cv_user_can_view_clientcv_user_can_validatecv_user_can_exportcv_user_capabilities_map
Esempio: inviare uno Slack dopo la convalida
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 convalidato "%s" per %s',
wp_get_user( $operator_id )->display_name,
$file->name,
$client->name
),
] ),
] );
}, 10, 3 );04
Sicurezza & audit
Se il vostro DPO (Responsabile della protezione dei dati) effettua una validazione, questi sono i punti che analizzerà. Tutto è documentato, configurabile e tracciato.
Cifratura AES‑256‑CBC
Chiave per spazio cliente, IV univoco per file, cifratura a riposo su disco. La chiave master risiede nel file wp‑config.php, mai nel database.
Anti‑SSRF (webhooks)
Blocca l’invio di webhook verso reti interne (RFC 1918), localhost, link-local, IPv6 privato e metadati cloud (169.254.x.x). Allowlist opzionale disponibile.
Anti‑tamper plugin
Hash dei file chiave verificato all’avvio del plugin. Se un file critico è stato modificato (possibile compromissione), il plugin rifiuta di avviarsi in modalità sensibile.
Audit con data e ora completo
Ogni chiamata API, azione UI o webhook inviato viene registrato: operatore, IP, metodo, destinazione, durata, stato. Esportazione PDF o CSV opponibile a terzi.
Filtraggio IP admin
Limita l’accesso admin a un set di IP / CIDR (ufficio, VPN, telelavoro). Compatibile con IPv4 e IPv6.
RGPD: esportazione & cancellazione
Esportazione selettiva dei dati di un cliente (JSON/ZIP), diritto all’oblio con un clic, conservazione configurabile per categoria di dati.
05
Integrazioni Fluent native
Per lo stack Fluent, la configurazione è azzerata. Client Vault rileva la presenza del plugin e attiva il gateway.
FluentCRM
Tag automatico dei contatti dagli eventi del caveau, sequenze attivate per fase del percorso, segmenti dinamici.
FluentPlayer
Lettore video integrato per i replay / media del caveau, tracciamento della visione per cliente.
FluentCart
Pagamenti Stripe integrati nei percorsi: una fase “pagamento” convalida automaticamente alla ricezione del webhook Stripe.
Fluent Community
Mappatura N × N percorsi / spazi, 21 widget contestualizzati, ricerca multi-fonte, classifiche e trofei.
Oltre Fluent: tutto il resto passa tramite webhook o API REST. Stripe diretto, Calendly, Cal.com, Zapier, n8n, Make, il vostro CRM personalizzato — nessuna limitazione.
06
Risorse per sviluppatori
La documentazione completa, raccolte pronte all’uso e un canale di supporto.
Documentazione completa
Endpoint, payload, esempi, codici di errore, rate-limit, changelog.
Collezione Postman
Tutti gli endpoint pre-configurati, ambienti dev/staging/prod, esempi di payload.
OpenAPI / Swagger
Specifica YAML / JSON per generare i vostri client in TypeScript, Python, Go, ecc.
Community sviluppatori
Spazio riservato agli integratori: esempi, casi d’uso, feedback su hook utili.
Pronto a collegare il tuo stack?
Te lo mostriamo in videochiamata.
Demo CTO di 30 minuti: analizziamo il tuo stack, elenchiamo i punti di connessione e rispondiamo in diretta alle domande su sicurezza / GDPR.