Pourquoi mes données n’apparaissent-elles pas dans un Document PDFMonkey ?
Dernière mise à jour le 23 mars 2026
Lorsque les données dynamiques n’apparaissent pas dans un document généré, la cause est presque toujours une différence entre les noms de variables du template et les clés du payload JSON envoyé. Cette page couvre chaque cause courante et comment y remédier.
Les noms de variables ne correspondent pas aux clés du payload
C’est la cause la plus fréquente. Le nom de variable dans votre template doit correspondre exactement à la clé correspondante dans votre payload JSON.
Si votre template contient :
{{ someVariable }}
Le payload de votre Document doit inclure une clé correspondante :
{
"someVariable": "Une valeur"
}
Si la clé est absente, mal orthographiée ou utilise une casse différente, la variable s’affiche en blanc.
Comment corriger
- Ouvrez votre template et notez les noms exacts des variables utilisées.
- Comparez-les aux clés du payload JSON que vous envoyez lors de la création du document.
- Corrigez toute différence d’orthographe ou de structure.
Utilisez l’onglet de données de test pour vérifier
Les noms de variables sont sensibles à la casse
Les noms de variables sont sensibles à la casse dans les templates Code (Liquid) comme dans les templates Builder (Vue). firstName, firstname et FirstName sont trois variables différentes.
Template :
{{ firstName }}
Payload (incorrect) :
{
"firstname": "Jane"
}
Payload (correct) :
{
"firstName": "Jane"
}
Comment corriger
Adoptez une convention de nommage cohérente (le camelCase est courant) et utilisez-la dans votre template comme dans votre intégration API. Vérifiez les différences subtiles telles que orderId vs orderID ou fullName vs fullname.
Les données imbriquées nécessitent la notation par points
Si votre payload contient des objets imbriqués, vous devez parcourir la structure avec la notation par points dans votre template.
Payload :
{
"client": {
"name": "Jane Doe",
"address": {
"city": "Paris"
}
}
}
Template (Code/Liquid) :
{{ client.name }}
{{ client.address.city }}
Écrire {{ name }} ou {{ city }} seul ne fonctionne pas, car ces clés existent dans des objets imbriqués, pas au niveau racine.
Comment corriger
Assurez-vous que le chemin utilisé dans le template suit la structure d’imbrication complète de votre payload. Consultez Utiliser les données dynamiques pour en savoir plus sur l’accès aux valeurs imbriquées et aux tableaux.
Le payload est vide ou mal formé
Si vous créez un document sans payload (ou avec "payload": {}), chaque variable s’évalue à blanc. De même, si le JSON est mal formé, le payload entier peut être ignoré.
Comment corriger
Vérifiez que votre requête API inclut un objet payload valide avec les données attendues par votre template :
{
"document": {
"document_template_id": "YOUR_TEMPLATE_ID",
"status": "pending",
"payload": {
"name": "Jane Doe",
"items": [{ "description": "Widget", "price": 9.99 }]
}
}
}
Vérifiez votre syntaxe JSON
Les templates Builder utilisent Vue, pas Liquid
Les templates Builder utilisent des expressions Vue, pas Liquid. Le même principe s’applique (les noms de variables doivent correspondre aux clés du payload), mais la syntaxe est différente.
Dans un template Builder, les données dynamiques sont accessibles via l’objet $docPayload. Les variables simples ressemblent à Liquid :
{{ name }}
Mais si un nom de variable commence par un chiffre ou contient des caractères spéciaux, ce n’est pas un identifiant JavaScript valide et il ne peut pas être utilisé directement. Utilisez la notation entre crochets :
{{ $docPayload['123varname'] }}
Comment corriger
- Confirmez que les noms de variables dans vos expressions Builder correspondent aux clés de vos données de test ou du payload API.
- Pour les clés qui ne sont pas des identifiants JavaScript valides, utilisez la notation
$docPayload['clé']. - Vérifiez que les conditions et répétitions sur vos composants référencent des clés existantes du payload.
Consultez Builder vs. templates Code pour plus de détails sur les différences de syntaxe.
Le template n’est pas publié
Si vous avez récemment modifié les noms de variables dans votre template sans le publier, le document généré utilise toujours l’ancienne version publiée. Cela peut donner l’impression que des données manquent alors que le vrai problème est que le template publié attend des noms de variables différents.
Comment corriger
Cliquez sur Publish dans l’éditeur de template après vos modifications, puis régénérez le document. Consultez Pourquoi mon Document est-il vide ? pour une explication détaillée de la distinction entre brouillon et version publiée.
Questions fréquentes
Je vois les données dans l’aperçu mais elles sont absentes du document généré.
L’aperçu utilise la version brouillon de votre template et les données de test que vous avez définies. Le document généré utilise la version publiée et le payload envoyé via l’API. Assurez-vous d’avoir publié le template et que le payload API correspond à la structure des données de test.
Ma variable affiche le texte littéral {{ someVariable }} au lieu de sa valeur.
Dans les templates Code, cela signifie que le moteur Liquid n’a pas traité la variable. Vérifiez que les doubles accolades ne contiennent pas de caractères supplémentaires (comme un antislash ou des accolades mal appariées). Dans les templates Builder, cela ne devrait pas se produire sauf si le texte se trouve dans un bloc HTML brut qui contourne le rendu Vue.
Comment savoir quelles données PDFMonkey a reçues ?
Créez un document avec "status": "pending" puis récupérez-le via l’API. La réponse inclut le champ payload, qui montre les données exactes reçues par PDFMonkey. Comparez-les avec ce qu’attend votre template.
Les tableaux et objets sont-ils pris en charge dans le payload ?
Oui. Vous pouvez transmettre des tableaux et des objets imbriqués dans votre payload et y accéder dans votre template. Consultez Utiliser les données dynamiques pour des exemples de syntaxe Liquid avec les tableaux et objets.
Pages associées
- Utiliser les données dynamiques — définir les données de test, accéder aux valeurs imbriquées et nommer correctement les variables
- Nommer les variables — conventions et règles de nommage
- Builder vs. templates Code — comprendre les différences de syntaxe entre Liquid et Vue
- Pourquoi mon Document est-il vide ? — quand le document entier est vide, pas seulement certaines données
- Générer des Documents via l’API — exemples complets de payload API
- Statuts et cycle de vie d’un Document — comprendre quand la génération a lieu
Questions fréquentes
- Pourquoi mes données n’apparaissent-elles pas dans le document PDFMonkey ?
- Les noms de variables dans votre template doivent correspondre exactement aux clés de votre payload JSON, y compris la casse. Par exemple, si votre template utilise {{firstName}}, votre payload doit contenir une clé "firstName" — pas "firstname" ni "FirstName".
- Comment accéder aux données imbriquées dans un template PDFMonkey ?
- Dans les templates Code (Liquid), utilisez la notation par points : {{client.name}}. Dans les templates Builder (Vue), la même notation s’applique : {{client.name}}. Votre payload JSON doit contenir la structure imbriquée : {"client": {"name": "Jane Doe"}}.
- Les noms de variables PDFMonkey sont-ils sensibles à la casse ?
- Oui. Les noms de variables sont sensibles à la casse dans les templates Code (Liquid) comme dans les templates Builder (Vue). La clé dans votre payload JSON doit correspondre exactement au nom de la variable, y compris les majuscules et minuscules.