Create a New Document Based on a Template documentgenerator.document.add
Scope:
documentgeneratorWho can execute the method: user with permission to create documents
The method documentgenerator.document.add creates a new document based on a template.
Method Parameters
Required parameters are marked with *
|
Name |
Description |
|
templateId* |
Template identifier. You can obtain the template identifier after creating a template or by using the get template list method. |
|
providerClassName |
Data provider class. Defaults to |
|
value* |
External identifier of the object for which the document is being generated. The Recommended format:
Examples of
Examples of
|
|
values |
Field values of the document in the format |
|
stampsEnabled |
Seal and signature mode:
Defaults to the value from the template |
|
fields |
Description of how to interpret and format values from The key of the If you are only passing plain text, this parameter can be omitted. Example structure of
|
Parameter fields
|
Name |
Description |
|
TYPE |
Field type. Types for which formatting can be specified:
|
|
FORMAT |
Formatting parameters for the field type.
For For
User Documentation |
|
PROVIDER |
Provider class |
|
TITLE |
Field title |
Code Examples
How to Use Examples in Documentation
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"templateId":53,"value":"SUPPLY_CONTRACT_2026_015","values":{"DocumentNumber":"SC-2026-001","CurrentDate":"2026-03-18T00:00:00+02:00","ClientName":"Ltd. Daisy","ClientPhone":"+1 999 123-45-67","Total":"125000","Comment":"Payment within 5 business days after signing","UserName":"John Smith"},"fields":{"CurrentDate":{"TYPE":"DATE","FORMAT":{"format":"d.m.Y"},"TITLE":"Contract Date"}},"stampsEnabled":1}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/documentgenerator.document.add
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"templateId":53,"value":"SUPPLY_CONTRACT_2026_015","values":{"DocumentNumber":"SC-2026-001","CurrentDate":"2026-03-18T00:00:00+02:00","ClientName":"Ltd. Daisy","ClientPhone":"+1 999 123-45-67","Total":"125000","Comment":"Payment within 5 business days after signing","UserName":"John Smith"},"fields":{"CurrentDate":{"TYPE":"DATE","FORMAT":{"format":"d.m.Y"},"TITLE":"Contract Date"}},"stampsEnabled":1,"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/documentgenerator.document.add
try
{
const response = await $b24.callMethod(
'documentgenerator.document.add',
{
templateId: 53,
value: 'SUPPLY_CONTRACT_2026_015',
values: {
DocumentNumber: 'SC-2026-001',
CurrentDate: '2026-03-18T00:00:00+02:00',
ClientName: 'Ltd. Daisy',
ClientPhone: '+1 999 123-45-67',
Total: '125000',
Comment: 'Payment within 5 business days after signing',
UserName: 'John Smith'
},
fields: {
CurrentDate: {
TYPE: 'DATE',
FORMAT: {
format: 'd.m.Y'
},
TITLE: 'Contract Date'
}
},
stampsEnabled: 1
}
);
const result = response.getData().result;
console.log(result);
}
catch (error)
{
console.error(error);
}
try {
$response = $b24Service->core->call(
'documentgenerator.document.add',
[
'templateId' => 53,
'value' => 'SUPPLY_CONTRACT_2026_015',
'values' => [
'DocumentNumber' => 'SC-2026-001',
'CurrentDate' => '2026-03-18T00:00:00+02:00',
'ClientName' => 'Ltd. Daisy',
'ClientPhone' => '+1 999 123-45-67',
'Total' => '125000',
'Comment' => 'Payment within 5 business days after signing',
'UserName' => 'John Smith',
],
'fields' => [
'CurrentDate' => [
'TYPE' => 'DATE',
'FORMAT' => [
'format' => 'd.m.Y',
],
'TITLE' => 'Contract Date',
]
],
'stampsEnabled' => 1,
]
);
$result = $response->getResponseData()->getResult();
print_r($result);
} catch (Throwable $e) {
echo $e->getMessage();
}
BX24.callMethod(
'documentgenerator.document.add',
{
templateId: 53,
value: 'SUPPLY_CONTRACT_2026_015',
values: {
DocumentNumber: 'SC-2026-001',
CurrentDate: '2026-03-18T00:00:00+02:00',
ClientName: 'Ltd. Daisy',
ClientPhone: '+1 999 123-45-67',
Total: '125000',
Comment: 'Payment within 5 business days after signing',
UserName: 'John Smith'
},
fields: {
CurrentDate: {
TYPE: 'DATE',
FORMAT: {
format: 'd.m.Y'
},
TITLE: 'Contract Date'
}
},
stampsEnabled: 1
},
function(result)
{
if (result.error())
{
console.error(result.error());
}
else
{
console.log(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'documentgenerator.document.add',
[
'templateId' => 53,
'value' => 'SUPPLY_CONTRACT_2026_015',
'values' => [
'DocumentNumber' => 'SC-2026-001',
'CurrentDate' => '2026-03-18T00:00:00+02:00',
'ClientName' => 'Ltd. Daisy',
'ClientPhone' => '+1 999 123-45-67',
'Total' => '125000',
'Comment' => 'Payment within 5 business days after signing',
'UserName' => 'John Smith',
],
'fields' => [
'CurrentDate' => [
'TYPE' => 'DATE',
'FORMAT' => [
'format' => 'd.m.Y',
],
'TITLE' => 'Contract Date',
]
],
'stampsEnabled' => 1,
]
);
print_r($result);
Response Handling
HTTP status: 200
{
"result": {
"document": {
"downloadUrl": "/bitrix/services/main/ajax.php?action=documentgenerator.api.document.getfile&SITE_ID=s1&id=51&ts=1773844068",
"publicUrl": null,
"title": "SUPPLY_CONTRACT Template 1773843147554 SC-2026-001",
"number": "SC-2026-001",
"id": 51,
"createTime": "2026-03-18T17:27:48+02:00",
"createdBy": 503,
"updateTime": "2026-03-18T17:27:48+02:00",
"updatedBy": null,
"stampsEnabled": true,
"isTransformationError": false,
"value": "SUPPLY_CONTRACT_2026_015",
"values": {
"productsTableVariant": "",
"_creationMethod": "rest",
"stampsEnabled": true,
"DocumentNumber": "SC-2026-001",
"CurrentDate": "2026-03-18T00:00:00+02:00",
"ClientName": "Ltd. Daisy",
"ClientPhone": "+1 999 123-45-67",
"Total": "125000",
"Comment": "Payment within 5 business days after signing",
"UserName": "John Smith"
},
"templateId": "53",
"provider": "Bitrix\\DocumentGenerator\\DataProvider\\Rest",
"pullTag": "TRANSFORMDOCUMENT51",
"emailDiskFile": 5569,
"downloadUrlMachine": "https://**put_your_bitrix24_address**/rest/documentgenerator.api.document.getfile.json?auth=a0bfba690000071b00000844000001f7f0f1075f240da39bb5ea0e42c08c5fa182f3ed&token=documentgenerator%7CYWN0aW9uPWRvY3VtZW50Z2VuZXJhdG9yLmFwaS5kb2N1bWVudC5nZXRmaWxlJlNJVEVfSUQ9czEmaWQ9NTEmdHM9MTc3Mzg0NDA2OCZfPXZMVUFDSGMwQkY1QVpRbGQzTlNhV2ZIemNzMW5IZ1lM%7CImRvY3VtZW50Z2VuZXJhdG9yLmFwaS5kb2N1bWVudC5nZXRmaWxlfGRvY3VtZW50Z2VuZXJhdG9yfFlXTjBhVzl1UFdSdlkzVnRaVzUwWjJWdVpYSmhkRzl5TG1Gd2FTNWtiMk4xYldWdWRDNW5aWFJtYVd4bEpsTkpWRVZmU1VROWN6RW1hV1E5TlRFbWRITTlNVGMzTXpnME5EQTJPQ1pmUFhaTVZVRkRTR013UWtZMVFWcFJiR1F6VGxOaFYyWkllbU56TVc1SVoxbE18YTBiZmJhNjkwMDAwMDcxYjAwMDAwODQ0MDAwMDAxZjdmMGYxMDc1ZjI0MGRhMzliYjVlYTBlNDJjMDhjNWZhMTgyZjNlZCI%3D.6lsKyiThwQT0n4UyMQfXdyS%2BnBVTG08%2FpGguggYNGLE%3D"
}
},
"time": {
"start": 1773844068,
"finish": 1773844068.572038,
"duration": 0.572037935256958,
"processing": 0,
"date_start": "2026-03-18T17:27:48+02:00",
"date_finish": "2026-03-18T17:27:48+02:00",
"operating_reset_at": 1773844668,
"operating": 0.9536302089691162
}
}
Returned Data
|
Name |
Description |
|
result |
Root element of the response (detailed description) |
|
time |
Information about the request execution time |
Object result
|
Name |
Description |
|
document |
Data of the created document (detailed description) |
Object document
|
Name |
Description |
|
id |
Document identifier |
|
title |
Document title |
|
number |
Document number |
|
templateId |
Template identifier |
|
provider |
Data provider class |
|
value |
External identifier of the object |
|
values |
Field values of the document (detailed description) |
|
stampsEnabled |
Indicator of enabled seals and signatures |
|
downloadUrl |
Link to download DOCX for the user |
|
downloadUrlMachine |
Link to download DOCX for the application |
|
publicUrl |
Public link to the document, if enabled |
|
isTransformationError |
Indicator of document conversion error |
|
pullTag |
Tag for subscribing to conversion status updates |
|
emailDiskFile |
File identifier on Drive for sending by e-mail |
|
createTime |
Document creation time |
|
updateTime |
Time of the last document update |
|
createdBy |
Identifier of the document author |
|
updatedBy |
Identifier of the user who updated the document |
Object values
|
Name |
Description |
|
_creationMethod |
Method of document creation |
|
stampsEnabled |
Indicator of enabled seals and signatures |
|
<field_code> |
Field value from the template by its code |
File conversion to PDF is performed asynchronously. If the pdfUrl field is not filled immediately after creation, execute the documentgenerator.document.get method after 20-30 seconds.
Error Handling
HTTP status: 400, 403
{
"error": "0",
"error_description": "Cannot create document on deleted template"
}
|
Name |
Description |
|
error |
String error code. It may consist of digits, Latin letters, and underscores |
|
error_description |
Textual description of the error. The description is not intended to be shown to the end user in its raw form |
Possible Error Codes
|
Status |
Code |
Description |
Value |
|
|
|
Bitrix\DocumentGenerator\Template constructor must be public |
Required parameter |
|
|
|
Empty required parameter "value" |
Required parameter |
|
|
|
Cannot create document on deleted template |
Cannot create a document based on a deleted template |
|
|
|
Template not found |
No template exists with the specified |
|
|
|
Cannot create document |
Failed to create document |
|
|
|
You do not have permissions to view documents |
Insufficient permissions to view documents |
|
|
|
Maximum count of documents has been reached |
Document limit reached on the plan |
|
|
|
Access denied |
Insufficient permissions to create document |
Statuses and System Error Codes
HTTP Status: 20x, 40x, 50x
The errors described below may occur when calling any method.
|
Status |
Code |
Description |
|
|
|
An internal server error has occurred, please contact the server administrator or Bitrix24 technical support |
|
|
|
An internal server error has occurred, please contact the server administrator or Bitrix24 technical support |
|
|
|
The request intensity limit has been exceeded |
|
|
|
The current method is not allowed to be called using batch |
|
|
|
The maximum length of parameters passed to the batch method has been exceeded |
|
|
|
Invalid access token or webhook code |
|
|
|
The methods must be called using the HTTPS protocol |
|
|
|
The REST API is blocked due to overload. This is a manual individual block, to remove it you need to contact Bitrix24 technical support |
|
|
|
The REST API is available only on commercial plans |
|
|
|
The user whose access token or webhook was used to call the method lacks permissions |
|
|
|
The manifest is not available |
|
|
|
The request requires higher privileges than those provided by the webhook token |
|
|
|
The provided access token has expired |
|
|
|
The user does not have access to the application. This means that the application is installed, but the account administrator has allowed access to this application only for specific users |
|
|
|
The public part of the site is closed. To open the public part of the site on an on-premise installation, disable the option "Temporary closure of the public part of the site". Path to the setting: Desktop > Settings > Product Settings > Module Settings > Main Module > Temporary closure of the public part of the site |
Continue Learning
- Update Existing Document documentgenerator.document.update
- Get Document by ID documentgenerator.document.get
- Get the list of documents documentgenerator.document.list
- Delete document documentgenerator.document.delete
- Enable or disable public link for document documentgenerator.document.enablepublicurl
- Get the list of fields for the document documentgenerator.document.getfields