TCL / PandaDoc API Reference / Create Document from PandaDoc Template
Back to Collection Items
load ./chilkat.dll
# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
set http [new_CkHttp]
# Use this online tool to generate code from sample JSON: Generate Code to Create JSON
# The following JSON is sent in the request body.
# {
# "name": "Simple API Sample Document from PandaDoc Template",
# "template_uuid": "{{template_id}}",
# "recipients": [
# {
# "email": "{{recipient_email}}",
# "first_name": "Josh",
# "last_name": "Ron",
# "role": "user"
# }
# ],
# "tokens": [
# {
# "name": "Favorite.Pet",
# "value": "Panda"
# }
# ],
# "fields": {
# "Favorite.Color": {
# "value": "PandaDoc green"
# },
# "Delivery": {
# "value": "Same Day Delivery"
# },
# "Like": {
# "value": true
# },
# "Date": {
# "value": "2019-12-31T00:00:00.000Z"
# }
# },
# "metadata": {
# "my_favorite_pet": "Panda"
# },
# "tags": [
# "created_via_api",
# "test_document"
# ],
# "images": [
# {
# "name": "Image 1",
# "urls": [
# "https://s3.amazonaws.com/pd-static-content/public-docs/pandadoc-panda-bear.png"
# ]
# }
# ],
# "pricing_tables": [
# {
# "name": "Pricing Table 1",
# "options": {
# "discount": {
# "type": "absolute",
# "name": "Discount",
# "value": 2.26
# }
# },
# "sections": [
# {
# "title": "Sample Section",
# "default": true,
# "rows": [
# {
# "options": {
# "optional": true,
# "optional_selected": true,
# "qty_editable": true
# },
# "data": {
# "name": "Toy Panda",
# "description": "Fluffy!",
# "price": 10,
# "qty": 3,
# "tax_first": {
# "value": 7.5,
# "type": "percent"
# }
# },
# "custom_fields": {
# "Fluffiness": "5 / 5"
# }
# }
# ]
# }
# ]
# }
# ]
# }
set json [new_CkJsonObject]
CkJsonObject_UpdateString $json "name" "Simple API Sample Document from PandaDoc Template"
CkJsonObject_UpdateString $json "template_uuid" "{{template_id}}"
CkJsonObject_UpdateString $json "recipients[0].email" "{{recipient_email}}"
CkJsonObject_UpdateString $json "recipients[0].first_name" "Josh"
CkJsonObject_UpdateString $json "recipients[0].last_name" "Ron"
CkJsonObject_UpdateString $json "recipients[0].role" "user"
CkJsonObject_UpdateString $json "tokens[0].name" "Favorite.Pet"
CkJsonObject_UpdateString $json "tokens[0].value" "Panda"
CkJsonObject_UpdateString $json "fields.\"Favorite.Color\".value" "PandaDoc green"
CkJsonObject_UpdateString $json "fields.Delivery.value" "Same Day Delivery"
CkJsonObject_UpdateBool $json "fields.Like.value" 1
CkJsonObject_UpdateString $json "fields.Date.value" "2019-12-31T00:00:00.000Z"
CkJsonObject_UpdateString $json "metadata.my_favorite_pet" "Panda"
CkJsonObject_UpdateString $json "tags[0]" "created_via_api"
CkJsonObject_UpdateString $json "tags[1]" "test_document"
CkJsonObject_UpdateString $json "images[0].name" "Image 1"
CkJsonObject_UpdateString $json "images[0].urls[0]" "https://s3.amazonaws.com/pd-static-content/public-docs/pandadoc-panda-bear.png"
CkJsonObject_UpdateString $json "pricing_tables[0].name" "Pricing Table 1"
CkJsonObject_UpdateString $json "pricing_tables[0].options.discount.type" "absolute"
CkJsonObject_UpdateString $json "pricing_tables[0].options.discount.name" "Discount"
CkJsonObject_UpdateNumber $json "pricing_tables[0].options.discount.value" "2.26"
CkJsonObject_UpdateString $json "pricing_tables[0].sections[0].title" "Sample Section"
CkJsonObject_UpdateBool $json "pricing_tables[0].sections[0].default" 1
CkJsonObject_UpdateBool $json "pricing_tables[0].sections[0].rows[0].options.optional" 1
CkJsonObject_UpdateBool $json "pricing_tables[0].sections[0].rows[0].options.optional_selected" 1
CkJsonObject_UpdateBool $json "pricing_tables[0].sections[0].rows[0].options.qty_editable" 1
CkJsonObject_UpdateString $json "pricing_tables[0].sections[0].rows[0].data.name" "Toy Panda"
CkJsonObject_UpdateString $json "pricing_tables[0].sections[0].rows[0].data.description" "Fluffy!"
CkJsonObject_UpdateInt $json "pricing_tables[0].sections[0].rows[0].data.price" 10
CkJsonObject_UpdateInt $json "pricing_tables[0].sections[0].rows[0].data.qty" 3
CkJsonObject_UpdateNumber $json "pricing_tables[0].sections[0].rows[0].data.tax_first.value" "7.5"
CkJsonObject_UpdateString $json "pricing_tables[0].sections[0].rows[0].data.tax_first.type" "percent"
CkJsonObject_UpdateString $json "pricing_tables[0].sections[0].rows[0].custom_fields.Fluffiness" "5 / 5"
CkHttp_SetRequestHeader $http "Authorization" "API-Key {{api_key}}"
CkHttp_SetRequestHeader $http "Content-Type" "application/json"
# resp is a CkHttpResponse
set resp [CkHttp_PostJson3 $http "https://api.pandadoc.com/public/v1/documents" "application/json" $json]
if {[CkHttp_get_LastMethodSuccess $http] == 0} then {
puts [CkHttp_lastErrorText $http]
delete_CkHttp $http
delete_CkJsonObject $json
exit
}
puts [CkHttpResponse_get_StatusCode $resp]
puts [CkHttpResponse_bodyStr $resp]
delete_CkHttpResponse $resp
delete_CkHttp $http
delete_CkJsonObject $json
Curl Command
curl -X POST
-H "Authorization: Bearer {{access_token}}"
-H "Authorization: API-Key {{api_key}}"
-H "Content-Type: application/json"
-d '{
"name": "Simple API Sample Document from PandaDoc Template",
"template_uuid": "{{template_id}}",
"recipients": [
{
"email": "{{recipient_email}}",
"first_name": "Josh",
"last_name": "Ron",
"role": "user"
}
],
"tokens": [
{
"name": "Favorite.Pet",
"value": "Panda"
}
],
"fields": {
"Favorite.Color": {
"value": "PandaDoc green"
},
"Delivery": {
"value": "Same Day Delivery"
},
"Like": {
"value": true
},
"Date": {
"value": "2019-12-31T00:00:00.000Z"
}
},
"metadata": {
"my_favorite_pet": "Panda"
},
"tags": [
"created_via_api",
"test_document"
],
"images": [
{
"name": "Image 1",
"urls": [
"https://s3.amazonaws.com/pd-static-content/public-docs/pandadoc-panda-bear.png"
]
}
],
"pricing_tables": [
{
"name": "Pricing Table 1",
"options": {
"discount": {
"type": "absolute",
"name": "Discount",
"value": 2.26
}
},
"sections": [
{
"title": "Sample Section",
"default": true,
"rows": [
{
"options": {
"optional": true,
"optional_selected": true,
"qty_editable": true
},
"data": {
"name": "Toy Panda",
"description": "Fluffy!",
"price": 10,
"qty": 3,
"tax_first": {
"value": 7.5,
"type": "percent"
}
},
"custom_fields": {
"Fluffiness": "5 / 5"
}
}
]
}
]
}
]
}'
https://api.pandadoc.com/public/v1/documents
Postman Collection Item JSON
{
"name": "Create Document from PandaDoc Template",
"event": [
{
"listen": "test",
"script": {
"exec": [
"var jsonData = JSON.parse(responseBody);",
"if (jsonData.uuid !== undefined) {",
" postman.setEnvironmentVariable(\"document_id\", jsonData.uuid);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "Authorization",
"value": "Bearer {{access_token}}",
"disabled": true
},
{
"key": "Authorization",
"value": "API-Key {{api_key}}",
"type": "text"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"name\": \"Simple API Sample Document from PandaDoc Template\",\n \"template_uuid\": \"{{template_id}}\",\n \"recipients\": [\n {\n \"email\": \"{{recipient_email}}\",\n \"first_name\": \"Josh\",\n \"last_name\": \"Ron\",\n \"role\": \"user\"\n }\n ],\n \"tokens\": [\n {\n \"name\": \"Favorite.Pet\",\n \"value\": \"Panda\"\n }\n ],\n \"fields\": {\n \"Favorite.Color\": {\n \"value\": \"PandaDoc green\"\n },\n \"Delivery\": {\n \"value\": \"Same Day Delivery\"\n },\n \"Like\": {\n \"value\": true\n },\n \"Date\": {\n \"value\": \"2019-12-31T00:00:00.000Z\"\n }\n },\n \"metadata\": {\n \"my_favorite_pet\": \"Panda\"\n },\n \"tags\": [\n \"created_via_api\",\n \"test_document\"\n ],\n \"images\": [\n {\n \"name\": \"Image 1\",\n \"urls\": [\n \"https://s3.amazonaws.com/pd-static-content/public-docs/pandadoc-panda-bear.png\"\n ]\n }\n ],\n \"pricing_tables\": [\n {\n \"name\": \"Pricing Table 1\",\n \"options\": {\n \"discount\": {\n \"type\": \"absolute\",\n \"name\": \"Discount\",\n \"value\": 2.26\n }\n },\n \"sections\": [\n {\n \"title\": \"Sample Section\",\n \"default\": true,\n \"rows\": [\n {\n \"options\": {\n \"optional\": true,\n \"optional_selected\": true,\n \"qty_editable\": true\n },\n \"data\": {\n \"name\": \"Toy Panda\",\n \"description\": \"Fluffy!\",\n \"price\": 10,\n \"qty\": 3,\n \"tax_first\": {\n \"value\": 7.5,\n \"type\": \"percent\"\n }\n },\n \"custom_fields\": {\n \"Fluffiness\": \"5 / 5\"\n }\n }\n ]\n }\n ]\n }\n ]\n}"
},
"url": {
"raw": "https://api.pandadoc.com/public/v1/documents",
"protocol": "https",
"host": [
"api",
"pandadoc",
"com"
],
"path": [
"public",
"v1",
"documents"
]
},
"description": "Provide value to variable: template_id ([Postman environments](https://www.getpostman.com/docs/postman/environments_and_globals/manage_environments) is great for it).\n\nFor details and the sample template go to [https://developers.pandadoc.com/v1/reference#create-document-from-pandadoc-template](https://developers.pandadoc.com/v1/reference#create-document-from-pandadoc-template).\n\nFor details of document creation in general go to [https://developers.pandadoc.com/v1/reference#new-document](https://developers.pandadoc.com/v1/reference#new-document)."
},
"response": [
]
}