> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.monite.com/v-2024-05-25/advanced/pdf-templates/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.monite.com/_mcp/server. # PDF templates ## Overview Monite offers several built-in PDF templates for [receivables](../accounts-receivable/index) and [purchase orders](../accounts-payable/purchase-orders), and entities can choose the default template for their documents. The templates can also be customized to include the entity logo. ## PDF translation and localization \[#localization] Monite supports the translation and localization of PDF templates. PDF translation defines the language used on all Monite PDFs. PDF translation depends on both the entity's and counterpart's assigned language. For example, the `original_file_language` and `file_language` fields on Invoice and Quote objects represent the languages into which the PDF will be translated for entities and counterparts, respectively. Monite provides translation of PDFs for counterparts in English, French, German, Spanish, and Dutch. The `language` field in the `POST /counterparts` and `PATCH /counterparts/{counterpart_id}` payloads accepts the ISO 639-1 standard and defines the language translation for all PDFs sent to the counterpart. If not provided, all PDFs sent to the counterpart are in English. For more information, see [Create a counterpart](../common/counterparts/index#create). Monite handles the formatting of delimiters and decimal separators on amounts displayed on the PDFs based on the entity's country. ## List the available templates \[#list-all] To get a list of available supported templates, call [`GET /document_templates`](/api/pdf-templates/get-document-templates): ```sh curl -X GET 'https://api.sandbox.monite.com/v1/document_templates' \ -H 'X-Monite-Version: 2024-05-25' \ -H 'X-Monite-Entity-Id: ENTITY_ID' \ -H 'Authorization: Bearer ACCESS_TOKEN' ``` The response contains a list of all PDF templates with their language codes and some other internal metadata. The fields of note are `id` (template ID), `name` (template name), `preview.url` (link to a preview image), and `template` (HTML content of the template). The template ID can be used later to [set the default template](#default). ```json { "data": [ { "id": "94f9280b-d7d2-48ca-8290-3727d1b61861", "created_at": "2024-01-08T11:47:35.451048", "updated_at": "2024-01-08T11:47:35.451054", "blocks": [], "document_type": "receivable", "is_default": false, "language": "en", "name": "classic", "preview": { "id": "d7a112ef-0ef7-4ea7-ba1b-cbbb99990d81", "created_at": "2025-03-10T09:49:57.726721+00:00", "updated_at": "2025-03-10T09:49:57.726729+00:00", "file_type": "receivables", "md5": "4ac4b4238fa2fb93746c0a1eee98ed74", "mimetype": "image/png", "name": "218fc898-ff4f-4783-af36-86f41a918738", "region": "eu-central-1", "s3_bucket": "monite-file-saver-sandbox-eu-central-1", "s3_file_path": "sandbox/receivables/12345/67890.png", "size": 235016, "url": "https://.s3.amazonaws.com/sandbox/receivables/12345/67890.png" }, "template": "\n\n...........", "template_type": "source_object" }, ... ] } ``` ## Get all system templates \[#system] System templates refer to Monite's built-in PDF templates. To retrieve all Monite's built-in PDF templates, call [`GET /document_templates/system`](/api/pdf-templates/get-document-templates-system): ```sh curl -X GET 'https://api.sandbox.monite.com/v1/document_templates/system' \ -H 'X-Monite-Version: 2024-05-25' \ -H 'X-Monite-Entity-Id: ENTITY_ID' \ -H 'Authorization: Bearer ACCESS_TOKEN' ``` ## Customize the templates with entity logo \[#logo] PDFs templates for receivables include the entity logo. You can upload the logo by using [`PUT /entities/{entity_id}/logo`](/api/entities/put-entities-id-logo): ```sh curl -X PUT 'https://api.sandbox.monite.com/v1/entities/aea39...912/logo' \ -H 'X-Monite-Version: 2024-05-25' \ -H 'Authorization: Bearer ACCESS_TOKEN' \ -F file=@path/to/image.png ``` ## Preview the templates \[#preview] You can preview invoice templates as PDF or PNG. To get the previews as PNG images, use the `preview.url` field of each template: **`GET /document_templates`** ```json {8, 17} title="GET /document_templates" { "data": [ { ... "name": "classic", "preview": { ... "url": "https://.s3.amazonaws.com/sandbox/receivables/12345/67890.png" }, ... }, { ... "name": "standard", "preview": { ... "url": "https://.s3.amazonaws.com/sandbox/receivables/09876/54321.png" }, ... }, ... ] } ``` To get the previews as PDF files, call [GET /document\_templates/\{document\_template\_id}/preview](/api/pdf-templates/get-document-templates-id-preview) with the template ID passed in the request URL. The response is a sample PDF invoice generated using the specified template. ```sh curl 'https://api.sandbox.monite.com/document_templates/94f9280b-d7d2-48ca-8290-3727d1b61861/preview' \ -H 'X-Monite-Version: 2024-05-25' \ -H 'X-Monite-Entity-Id: ENTITY_ID' \ -H 'Authorization: Bearer ACCESS_TOKEN' \ -o ./file.pdf ``` ## Set the default template \[#default] Entities can set or change the default PDF template at any time. The specified template will be used for all [new receivables](../accounts-receivable/index) and [purchase orders](../accounts-payable/purchase-orders) created by the entity. Existing PDFs previously generated by the entity are not affected. To set the default template call [POST /document\_templates/\{document\_template\_id}/make\_default](/api/pdf-templates/post-document-templates-id-make-default), replacing `{document_template_id}` with the ID of the desired template: ```sh curl -X POST 'https://api.sandbox.monite.com/v1/document_templates/{document_template_id}/make_default' \ -H 'X-Monite-Version: 2024-05-25' \ -H 'X-Monite-Entity-Id: ENTITY_ID' \ -H 'Authorization: Bearer ACCESS_TOKEN' ``` > Learn about Monite's built-in PDF templates.