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