# Document templates

Document templates let you give quotes a more branded look as well as include contract language, product information and images. You can define multiple templates and tailor them to new deals, amendments and renewals for example.

<figure><img src="/files/KNnWE9E1iqLNyzAF4Ei2" alt=""><figcaption><p>Document template builder</p></figcaption></figure>

### Header and footer

Headers and footers can appear on every page, but you have the option to skip the first page. You can also upload a background image that you can overlay text on. Bunny will try to auto-size the image to the width of the document, but you may need to fine-tune this manually.&#x20;

{% hint style="info" %}
Background images should be rectangular and **1200px** wide
{% endhint %}

<figure><img src="/files/kmQhs1z7qbPBRmtvhTWw" alt=""><figcaption><p>Header configuration</p></figcaption></figure>

You can overlay some text on the image. In the example above, we have added some text with merge field that will show the customer's name.

You can also adjust the margin bottom for headers (and margin top for footers) to create some spacing between the document body and the header and footer.

### Body components

The body of a template can be comprised of a number of different components, which can all be customized.

* **Account** – The customer account information as well as the details of contact on the quote
* **Body text** - A rich text field that can contain anything from contract language to introductions. You can also render this in two columns.
* **Header** - A headering for the following components.
* **Image** - Any image
* **Page break** - Causes the following component to start on a new page. This can be useful for a cover page or right before a quote or signature page.
* **Quote** - The details of the quote, i.e. the line items with pricing as well as totals.
* **Signatures** - The signature fields for e-signing integration with [Docusign](/guide/advanced-guides/integrations/docusign.md), [PandaDoc](/guide/advanced-guides/integrations/pandadoc.md) or [Dropbox Sign](/guide/advanced-guides/integrations/dropbox-sign.md).
* **Spacer** – A horizontal line that separates the compomnents immediately before and after it.

### Fonts and sizes

To make it easier to create a visually consistent and appealing document, Bunny will attempt to size all text to the default size: **13 px**. The fonts supported are:

* Arial, Courier New, Georgia, Impact, Inter, Lato, MarkPro, Montserrat, Open Sans, Roboto, Times New Roman and Trebuchet

You can override fonts in some components, but changing the overall font setting will update all components.

### Preview

The Preview tab lets you preview what the template will look like as  PDF. Bunny provides sample values for the account, quote and signature components, but all other components will look exactly as shown.

<figure><img src="/files/Gn6Or7us1yeBecAcQWko" alt=""><figcaption><p>Document template preview</p></figcaption></figure>

You can also download the PDF and inspect it in your favorite PDF viewer.

### Merge fields

There are cases where text needs to dynamic, such as dates and customer details. When inserted as {{current\_date}}, Bunny will merge in the relevant values in the final PDF.

| Merge field                              | Example          |
| ---------------------------------------- | ---------------- |
| current\_date                            | 31 March 2025    |
| current\_day                             | 31               |
| current\_month                           | March            |
| current\_month\_number                   | 3                |
| current\_year                            | 2025             |
| **Quote**                                |                  |
| quote.number                             | 123456           |
| quote.expiry\_date                       | 31 March 2025    |
| quote.start\_date                        | 1 April 2025     |
| quote.end\_date                          | 31 March 2026    |
| quote.notes                              | This is a note   |
| quote.name                               | Acme, Inc. quote |
| quote.amount                             | $123.45          |
| quote.net\_payment\_days                 | 30               |
| quote.evergreen                          | true             |
| quote.po\_number                         | ABC123           |
| quote.currency                           | USD              |
| quote.amount                             |                  |
| quote.sub\_total                         |                  |
| quote.tax\_amount                        |                  |
| quote.first\_plan.trial\_start\_date     | 1 March 2026     |
| quote.first\_plan.trial\_end\_date       | 15 March 2026    |
| quote.first\_plan.renewal\_term\_months  | 6                |
| quote.second\_plan.trial\_start\_date    | 1 March 2026     |
| quote.second\_plan.trial\_end\_date      | 15 March 2026    |
| quote.second\_plan.renewal\_term\_months | 12               |
| **Account**                              |                  |
| account.name                             | Acme, Inc.       |
| account.customer\_billing\_street        |                  |
| account.customer\_billing\_city          |                  |
| account.customer\_billing\_state         |                  |
| account.customer\_billing\_country       |                  |
| account.customer\_billing\_zip           |                  |
| account.currency                         | USD              |
| account.tax\_number                      |                  |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.bunny.com/guide/tour/quoting/document-templates.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
