Aller au contenu principal

Générer à partir d'un modèle

Générez un document en combinant un modèle stocké avec un objet de données. Toutes les références $data et les liaisons source du modèle sont résolues avec les données fournies avant le rendu. Ajoutez le format souhaité au chemin du point de terminaison.

POST /documents/generate-from-template/{format}​

Point de terminaison​

POST /api/v1/{tenantId}/documents/generate-from-template/{format}
formatSortie
pdfDocument PDF (par défaut)
docxDocument Word
svgImage SVG (première page)

En-têtes​

En-têteValeurRequis
AuthorizationBearer YOUR_API_KEYOui
Content-Typeapplication/jsonOui

Paramètres de chemin​

ParamètreTypeDescription
tenantIdstringVotre identifiant de locataire

Corps de la requête​

ChampTypeRequisDescription
templateIdstring (GUID)OuiID du modèle stocké
dataobjectOuiObjet de données avec les valeurs à injecter dans le modèle
{
"templateId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"data": {
"client": {
"companyName": "Meridian Logistics",
"contactName": "Sarah Mitchell",
"address": "12 Harbor Road",
"city": "Austin, TX"
},
"document": {
"title": "Professional Services Invoice",
"date": "March 30, 2026"
},
"lineItems": [
{ "service": "Platform setup", "hours": "80", "rate": "$150", "total": "$12,000" },
{ "service": "API integration", "hours": "40", "rate": "$175", "total": "$7,000" }
],
"invoice": {
"grandTotal": "$19,000"
},
"paymentTerms": [
"Wire transfer to ShipForge Ltd account",
"Net 30 days from invoice date"
]
}
}

Réponse​

Succès (200 OK)

Retourne les métadonnées du document généré avec une URL de téléchargement.

{
"fileName": "doc-20260330-153045-xyz789.pdf",
"documentId": "d4e5f6a7-b8c9-0123-4567-89abcdef0123",
"status": "Completed",
"fileSizeBytes": 31744,
"contentType": "application/pdf",
"downloadUrl": "https://api.docpayload.com/v1/{tenantId}/assets/docs/doc-20260330-153045-xyz789.pdf"
}

Les champs fileName et contentType reflètent le format demandé.

Erreur (404 Not Found)

Retourné lorsque l'ID du modèle n'existe pas ou n'appartient pas à votre locataire.

{
"message": "Template 'a1b2c3d4-e5f6-7890-abcd-ef1234567890' not found."
}

Erreur (400 Bad Request)

Retourné lorsque le modèle ne contient pas une définition de document valide.

{
"message": "The template does not contain a valid document definition."
}

Exemple​

curl -X POST https://api.docpayload.com/v1/{tenantId}/documents/generate-from-template/pdf \
-H "Authorization: Bearer dp_live_abc123def456" \
-H "Content-Type: application/json" \
-d '{
"templateId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"data": {
"client": {
"companyName": "Meridian Logistics"
},
"document": {
"title": "Delivery Receipt"
}
}
}'

Résolution des données​

Lorsque ce point de terminaison est appelé, les étapes de résolution suivantes se produisent :

  1. Le modèle est récupéré de la base de données par templateId.
  2. Le content du modèle (une chaîne JSON) est analysé en une définition de document.
  3. Toutes les références scalaires $data.path.to.value dans le texte du paragraphe sont remplacées par les valeurs de l'objet data.
  4. Toutes les références $data dans les valeurs par défaut des champs de formulaire (textfield, checkbox, textarea) sont résolues.
  5. Toutes les liaisons source sur les tableaux et les listes sont résolues :
    • Les tableaux source sont mappés aux lignes en utilisant map.
    • Les tableaux source de listes sont convertis en éléments de liste.
  6. La définition de document résolue est rendue au format demandé (PDF, DOCX ou SVG).

Ce qui est résolu​

FonctionnalitéExempleDescription
Texte scalaire$data.client.nameRemplacé par la valeur au chemin donné
Chemins imbriqués$data.client.address.cityTraversée séparée par des points d'objets imbriqués
À l'intérieur du formatage[b]$data.total[/b]Référence résolue, puis formatage appliqué
Valeurs par défaut du formulaire'$data.applicant.email'Pré-remplit les champs de formulaire éditables
Lignes du tableau"source": "$data.items"Les éléments du tableau deviennent des lignes de tableau
Éléments de liste"source": "$data.notes"Les éléments du tableau deviennent des éléments de liste
Références non résolues$data.missing.keyConservées comme texte littéral

Téléchargement du document​

Utilisez l'downloadUrl de la réponse pour récupérer le document généré :

curl -X GET "https://api.docpayload.com/v1/{tenantId}/assets/docs/doc-20260330-153045-xyz789.pdf" \
-H "Authorization: Bearer dp_live_abc123def456" \
-o invoice.pdf