Aller au contenu

Générer une lettre du catalogue

Chaque lettre du catalogue cite la règle de droit exacte et, quand il est connu, l’adresse du destinataire. Vous fournissez les valeurs, l’API rend la lettre : en JSON structuré, en texte ou en PDF A4. Ces appels sont gratuits.

Parcourir le catalogue

GET/v1/cataloguecatégories, lettres, fournisseurs, calculateurs, outils IA

Requête
curl "https://app.vitef.com/v1/catalogue" \
  -H "Authorization: Bearer $VITEF_API_KEY"

Lire les champs d’une lettre

GET/v1/letters/{slug}?provider={fournisseur}

Les champs dépendent du fournisseur : pour Free, dont l’adresse varie selon le contrat, recipientAddress est demandée ; pour SFR, elle est déjà connue.

Requête
curl "https://app.vitef.com/v1/letters/resiliation-box?provider=free" \
  -H "Authorization: Bearer $VITEF_API_KEY"
Réponse 200
{
  "slug": "resiliation-box",
  "category": "resiliation",
  "title": "Résilier sa box internet",
  "h1": "Lettre de résiliation Free",
  "badge": "Conforme loi Chatel",
  "url": "https://vitef.com/lettres/resiliation-box",
  "providerLabel": "Votre fournisseur",
  "providers": [
    {
      "slug": "free",
      "name": "Free",
      "address": null,
      "url": "https://vitef.com/lettres/resiliation-box/free"
    },
    {
      "slug": "sfr",
      "name": "SFR",
      "address": [
        "SFR Résiliation",
        "TSA 30103",
        "69947 Lyon Cedex 20"
      ],
      "url": "https://vitef.com/lettres/resiliation-box/sfr"
    }
  ],
  "fields": [
    {
      "key": "recipientAddress",
      "label": "Adresse de Free",
      "type": "text",
      "optional": false,
      "placeholder": "Adresse complète",
      "hint": "Adresse indiquée dans vos conditions générales, sur votre contrat ou dans votre espace client.",
      "autocomplete": "address"
    },
    {
      "key": "ref",
      "label": "Identifiant client",
      "type": "text",
      "optional": false,
      "placeholder": "12345678",
      "hint": "Il figure en haut de votre facture ou dans votre espace abonné."
    },
    {
      "key": "motif",
      "label": "Motif",
      "type": "radio",
      "optional": false,
      "options": [
        {
          "value": "Sans motif"
        },
        {
          "value": "Déménagement"
        },
        {
          "value": "Fin d’engagement"
        }
      ]
    }
  ],
  "senderFields": [
    {
      "key": "name",
      "label": "Prénom et nom",
      "type": "text",
      "optional": false,
      "placeholder": "Camille Martin"
    },
    {
      "key": "street",
      "label": "Adresse",
      "type": "text",
      "optional": false,
      "placeholder": "12 rue des Lilas",
      "autocomplete": "address"
    },
    {
      "key": "city",
      "label": "Code postal et ville",
      "type": "text",
      "optional": false,
      "placeholder": "69003 Lyon"
    }
  ],
  "…": "intro, explain, tip, faq, provider"
}

Rendre la lettre

POST/v1/letters/{slug}/render

Corps : provider, values (clés des champs) et sender (name, street, city). La réponse contient plain (lettre découpée en blocs), text (texte brut), doc (segments, avec les trous à compléter), missing et complete.

Requête
curl -X POST "https://app.vitef.com/v1/letters/resiliation-box/render" \
  -H "Authorization: Bearer $VITEF_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "provider": "sfr",
  "values": {
    "ref": "0612345678",
    "motif": "Déménagement"
  },
  "sender": {
    "name": "Camille Martin",
    "street": "12 rue des Lilas",
    "city": "69003 Lyon"
  }
}'
Réponse 200
{
  "letter": "resiliation-box",
  "provider": "sfr",
  "plain": {
    "title": "Lettre de résiliation SFR",
    "sender": [
      "Camille Martin",
      "12 rue des Lilas",
      "69003 Lyon"
    ],
    "recipient": [
      "SFR Résiliation",
      "TSA 30103",
      "69947 Lyon Cedex 20"
    ],
    "place": "Lyon",
    "date": "23 septembre 2026",
    "subject": "Résiliation de mon abonnement SFR",
    "body": [
      "Madame, Monsieur,",
      "Par la présente, je vous informe de ma décision de résilier mon abonnement internet SFR, identifiant client 0612345678, en raison de mon déménagement.",
      "Conformément à l’article L224-39 du Code de la consommation, cette résiliation prendra effet dans un délai de 10 jours à compter de la réception de ce courrier.",
      "Je vous remercie de m’en accuser réception et de m’indiquer les modalités de restitution du matériel.",
      "Je vous prie d’agréer, Madame, Monsieur, l’expression de mes salutations distinguées."
    ],
    "signature": "Camille Martin"
  },
  "text": "Camille Martin\n12 rue des Lilas\n69003 Lyon\n\nSFR Résiliation\nTSA 30103\n69947 Lyon Cedex 20\n\nLyon, le 23 septembre 2026\n\nObjet : Résiliation de mon abonnement SFR\n\nMadame, Monsieur,\n\nPar la présente, je vous informe de ma décision de résilier mon abonnement internet SFR, identifiant client 0612345678, en raison de mon déménagement.\n\nConformément à l’article L224-39 du Code de la consommation, cette résiliation prendra effet dans un délai de 10 jours à compter de la réception de ce courrier.\n\nJe vous remercie de m’en accuser réception et de m’indiquer les modalités de restitution du matériel.\n\nJe vous prie d’agréer, Madame, Monsieur, l’expression de mes salutations distinguées.\n\nCamille Martin",
  "missing": [],
  "complete": true,
  "doc": "… (segments)"
}

Lettre incomplète : même statut 200, mais la liste des champs manquants.

Extrait, sans valeurs
{
  "missing": [
    {
      "key": "sender.name",
      "label": "Prénom et nom"
    },
    {
      "key": "sender.street",
      "label": "Adresse"
    },
    {
      "key": "sender.city",
      "label": "Code postal et ville"
    },
    {
      "key": "recipientAddress",
      "label": "Adresse de Free"
    },
    {
      "key": "ref",
      "label": "Identifiant client"
    }
  ],
  "complete": false
}

Obtenir le PDF

POST/v1/letters/{slug}/pdfmême corps, réponse application/pdf

Requête
curl -X POST "https://app.vitef.com/v1/letters/resiliation-box/pdf" \
  -H "Authorization: Bearer $VITEF_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "provider": "sfr",
  "values": {
    "ref": "0612345678",
    "motif": "Déménagement"
  },
  "sender": {
    "name": "Camille Martin",
    "street": "12 rue des Lilas",
    "city": "69003 Lyon"
  }
}' \
  -o lettre.pdf

Un service vous manque ? Demandez-le avec POST /v1/requests et suivez son statut avec GET /v1/requests (gratuit ; schéma dans la référence).

Étape suivante : envoyer la lettre