Documentation développeur · Spécification partenaire

Intégrer Consentr dans une plateforme de rencontres.

Cette documentation décrit le flux d'intégration cible pour créer, faire signer, suivre et auditer un accord de consentement mutuel via widget, API REST ou parcours co-brandé. Elle sert de base de cadrage technique avant contractualisation.

Base URL
https://api.consentr.fr/v1
Format
JSON · HTTPS
Auth
Bearer API key
Statuts
pending · signed · revoked · expired

Flux d'intégration

Un accord signé sans sortir votre utilisateur de son parcours.

Consentr intervient comme couche de confiance entre votre produit, vos membres et vos équipes de conformité. Le contenu détaillé reste confidentiel; votre plateforme consomme surtout des statuts, des preuves et des événements.

  1. 01Votre app identifie deux membres qui souhaitent préparer une rencontre.
  2. 02Votre backend crée un accord Consentr avec les identifiants partenaires et le contexte minimal.
  3. 03Consentr génère deux liens de signature privés, un par partie, puis les transmet par email, SMS ou deep link côté partenaire.
  4. 04Chaque partie signe, modifie ou révoque son consentement librement. Le statut est synchronisable via API ou webhook.
  5. 05Votre équipe peut vérifier une preuve horodatée sans accéder au détail intime de l'accord.

3 modes d'intégration

Démarrer vite, puis approfondir l'intégration.

Front-end léger

Widget marque blanche

Consentr fournit un composant embarquable dans votre app web ou mobile web. Il affiche le parcours de création/signature sans exposer vos utilisateurs à une rupture d'expérience.

  • ✓Thème couleur + logo partenaire
  • ✓Callbacks JS pour suivre le statut
  • ✓Aucune donnée sensible stockée côté client
Contrôle total

API REST

Votre backend pilote la création d'accords, l'envoi des liens de signature et la récupération d'un statut horodaté. C'est le mode recommandé pour une intégration native mobile.

  • ✓JSON sur HTTPS
  • ✓Clés API serveur
  • ✓Idempotence et preuves auditables
Partenariat safety

Co-branding

Consentr héberge le parcours avec vos éléments de marque et un badge « Safety by Consentr ». L'intégration est plus rapide, tout en restant présentable aux équipes Trust & Safety.

  • ✓URL dédiée par partenaire
  • ✓Badge et textes co-brandés
  • ✓Reporting mensuel des usages

Snippet widget

Embed marque blanche

Le widget reçoit une clé publique partenaire et un contexte non sensible. Les actions critiques restent confirmées côté serveur via clé API privée.

<script src="https://cdn.consentr.fr/widget/v1.js" async></script>

<div
  id="consentr-widget"
  data-public-key="pk_live_partner_xxxxxxxxx"
  data-theme="dark"
  data-locale="fr-FR"
  data-partner-user-id="usr_123"
></div>

<script>
  window.Consentr?.mount("#consentr-widget", {
    agreementTemplate: "first_date_v1",
    partnerAgreementId: "meet_9f8b2c",
    onStatusChange: (event) => {
      console.log("Consentr status", event.status);
    }
  });
</script>

Authentification

Une clé serveur par environnement.

Les appels API utilisent une clé privée transmise dans l'en-tête Authorization. Les clés publiques du widget ne permettent jamais de créer seules une preuve définitive.

curl -X POST https://api.consentr.fr/v1/agreements \
  -H "Authorization: Bearer cstr_live_xxxxxxxxx" \
  -H "Idempotency-Key: meet_9f8b2c" \
  -H "Content-Type: application/json" \
  -d @agreement.json
  • • Préfixes recommandés : cstr_test_ pour sandbox, cstr_live_ pour production.
  • • Rotation de clés sur demande et révocation immédiate en cas d'incident.
  • • En-tête Idempotency-Key conseillé pour toute création d'accord.

Endpoints REST envisagés

Créer, notifier, vérifier et auditer.

Les exemples ci-dessous décrivent le contrat d'API cible. Les noms de champs exacts peuvent être figés dans le contrat partenaire, mais le flux et les garanties restent ceux présentés ici.

POST/agreements

Créer un accord

Crée un accord de consentement à partir d'un contexte minimal. Les champs personnels restent limités à ce qui est nécessaire au parcours de signature.

Requête
POST https://api.consentr.fr/v1/agreements
Authorization: Bearer cstr_live_xxxxxxxxx
Idempotency-Key: meet_9f8b2c
Content-Type: application/json

{
  "partner_agreement_id": "meet_9f8b2c",
  "template": "first_date_v1",
  "locale": "fr-FR",
  "expires_at": "2026-09-21T18:00:00Z",
  "context": {
    "platform": "exemple-dating-app",
    "meeting_type": "first_date",
    "scheduled_at": "2026-09-18T20:30:00+02:00"
  },
  "participants": [
    {
      "role": "initiator",
      "partner_user_id": "usr_123",
      "display_name": "Alex",
      "contact": { "email": "alex@example.com" }
    },
    {
      "role": "recipient",
      "partner_user_id": "usr_456",
      "display_name": "Sam",
      "contact": { "email": "sam@example.com" }
    }
  ]
}
Réponse
201 Created

{
  "id": "agr_01J8K7M4VQ9W2H6PZ3F2A1B8C0",
  "status": "pending_signatures",
  "created_at": "2026-08-16T17:42:10Z",
  "signature_links": [
    {
      "participant_role": "initiator",
      "url": "https://consentr.fr/s/sgn_a8R...",
      "expires_at": "2026-09-21T18:00:00Z"
    },
    {
      "participant_role": "recipient",
      "url": "https://consentr.fr/s/sgn_B2p...",
      "expires_at": "2026-09-21T18:00:00Z"
    }
  ],
  "receipt_url": "https://consentr.fr/r/rcpt_7Yk..."
}
POST/agreements/{id}/signature-links/send

Envoyer les liens de signature

Déclenche l'envoi des liens privés par Consentr, ou retourne les URLs si le partenaire préfère gérer la notification dans son propre canal.

Requête
POST https://api.consentr.fr/v1/agreements/agr_01J8K7M4VQ9W2H6PZ3F2A1B8C0/signature-links/send
Authorization: Bearer cstr_live_xxxxxxxxx
Content-Type: application/json

{
  "channels": ["email"],
  "sender_name": "Exemple Dating App",
  "redirect_after_signature": "https://app.example.com/consent/return",
  "notification_copy": {
    "subject": "Votre accord Consentr est prêt à signer",
    "intro": "Prenez 2 minutes pour clarifier le cadre de votre rencontre."
  }
}
Réponse
202 Accepted

{
  "agreement_id": "agr_01J8K7M4VQ9W2H6PZ3F2A1B8C0",
  "delivery_status": "queued",
  "queued_at": "2026-08-16T17:43:02Z",
  "recipients": [
    { "participant_role": "initiator", "channel": "email", "status": "queued" },
    { "participant_role": "recipient", "channel": "email", "status": "queued" }
  ]
}
GET/agreements/{id}

Vérifier le statut

Retourne l'état courant sans exposer le contenu privé au-delà des métadonnées nécessaires à votre produit ou à votre équipe Trust & Safety.

Requête
GET https://api.consentr.fr/v1/agreements/agr_01J8K7M4VQ9W2H6PZ3F2A1B8C0
Authorization: Bearer cstr_live_xxxxxxxxx
Réponse
200 OK

{
  "id": "agr_01J8K7M4VQ9W2H6PZ3F2A1B8C0",
  "partner_agreement_id": "meet_9f8b2c",
  "status": "signed",
  "created_at": "2026-08-16T17:42:10Z",
  "signed_at": "2026-08-16T17:49:31Z",
  "revoked_at": null,
  "participants": [
    { "role": "initiator", "status": "signed", "signed_at": "2026-08-16T17:47:08Z" },
    { "role": "recipient", "status": "signed", "signed_at": "2026-08-16T17:49:31Z" }
  ],
  "proof": {
    "receipt_id": "rcpt_7Yk9P2",
    "timestamp_authority": "Consentr EU audit log",
    "event_hash": "sha256:0f8b5a6e9b...",
    "receipt_url": "https://consentr.fr/r/rcpt_7Yk..."
  }
}
GET/agreements/{id}/proof

Récupérer la preuve horodatée

Fournit une preuve technique exploitable en audit : chronologie, empreintes, statut de révocation et URL de reçu partageable.

Requête
GET https://api.consentr.fr/v1/agreements/agr_01J8K7M4VQ9W2H6PZ3F2A1B8C0/proof
Authorization: Bearer cstr_live_xxxxxxxxx
Réponse
200 OK

{
  "agreement_id": "agr_01J8K7M4VQ9W2H6PZ3F2A1B8C0",
  "proof_generated_at": "2026-08-16T18:02:44Z",
  "current_status": "signed",
  "events": [
    { "type": "created", "at": "2026-08-16T17:42:10Z", "hash": "sha256:18a8..." },
    { "type": "signed", "participant_role": "initiator", "at": "2026-08-16T17:47:08Z", "hash": "sha256:4fb2..." },
    { "type": "signed", "participant_role": "recipient", "at": "2026-08-16T17:49:31Z", "hash": "sha256:0f8b..." }
  ],
  "revocation": {
    "is_revocable": true,
    "revoked_at": null,
    "revocation_url": "https://consentr.fr/r/rcpt_7Yk...#revoquer"
  }
}

Sécurité & RGPD

Conçu pour limiter l'exposition de votre plateforme.

Consentr est pensé comme un sous-traitant de confiance : peu de données, des preuves techniques, une révocation visible et des durées de conservation contractualisées.

Hébergement EU

Données hébergées dans l'Union européenne, avec séparation logique par partenaire et journalisation des accès administratifs.

Chiffrement

HTTPS obligatoire, chiffrement au repos des données sensibles et empreintes cryptographiques pour les événements de preuve.

Minimisation RGPD

Les identifiants partenaires remplacent les données personnelles dès que possible. Les champs libres sont limités et configurables par modèle.

Révocabilité

Chaque partie conserve un lien de révocation. Toute révocation change immédiatement le statut et reste visible dans la preuve horodatée.

Auditabilité

Chaque événement critique est horodaté, signé côté serveur et associé à une empreinte pour faciliter les revues Trust & Safety.

Droits utilisateurs

Export, suppression et limitation de conservation sont prévus dans le contrat de traitement avec chaque plateforme partenaire.

Prêt pour un cadrage technique ?

Partagez cette page avec votre CTO, DPO ou équipe Trust & Safety.

La prochaine étape consiste à choisir le mode d'intégration, valider le modèle de données minimal et ouvrir un environnement sandbox partenaire.