Replace the template file
/document-templates/{id}/fileReplaces the file, keeping the template's id, name and placements, and returns the template. Send multipart/form-data with the file in document. It must be the template's kind, else 422 on document. A PDF too short for a placement is 409 conflict; details lists each {reference, page}. dry_run in any form is 422. Needs only the scope. Emits document_template.updated with changed_fields ["original_filename", "validated"] after commit; no email. The old file can't be restored.
Path parameters
The record's id.
Headers
Makes a retry safe. Send a new UUID for each new request and reuse it only to retry that request; the first response is replayed for 24 hours.
Request body
multipart/form-data, required
The replacement file, a PDF or a DOCX of the template's kind.
Responses
{
"data": {
"id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
"name": "string",
"type": "subscription_document",
"kind": "docx",
"original_filename": "string",
"validated": true,
"variable_count": 1,
"variables": [
"string"
],
"page_metadata": [
{
"page": 1,
"width_pt": 1,
"height_pt": 1
}
],
"positions_count": 1,
"mapped_field_refs": [
"string"
],
"validated_at": "2026-06-12T10:00:00+00:00",
"created_at": "2026-06-12T10:00:00+00:00",
"updated_at": "2026-06-12T10:00:00+00:00"
}
}Authorization failed. error.code is one of org_disabled,
ip_blocked, missing_scope, scope_disabled, user_disabled.
The replacement PDF has fewer pages than a placement needs (error.code = conflict). details names each placement that would be orphaned.
The request can't be processed (HTTP 422): validation_failed with one ErrorDetail per
problem, or a code documented on the operation.
Examples
curl -X PUT https://your-org-domain/kong/core/api/v2/document-templates/{id}/file\
-H "Authorization: Bearer $HELM_API_KEY"\
-H "Content-Type: application/json"