# Invoice and job sheet templates

Step 3: adjusting the Bas configuration · Updated: 2026-02-07 · Bas Software
Web version: https://www.bas.software/en/onboarding/step-3-adjusting-the-bas-configuration/invoice-and-job-sheet-templates

Create invoice and job sheet templates by copying and adapting your quote template. Learn the differences between a quote and an invoice.

The invoice template is largely the same as the quote template, but with a few important differences. The job sheet is an internal document for your removal crew with all the information they need on moving day.

---

## Creating a new template using "Based on"

Instead of starting completely from scratch, you copy an existing template and only adjust the differences.

### Smart approach

1. First **create a perfect quote template**
2. Logo in the right place
3. Colours correct
4. Text correct
5. Variables filled in
6. Click **New template**
7. Choose **"Based on"** and select your quote template
8. The system copies the entire template (layout, logo, colours, structure)
9. Only adjust the specific elements that need to be different

**Benefit:** you don't have to set up your branding from scratch every time. The header, footer, logo and colours are already correct.

`Tip:` Don't create a separate template for every small difference. It's better to use conditional text in your template (see article 15d).

---

## Difference between the quote template and invoice template

The invoice template looks like the quote template, but with important differences:

| Element | Quote template | Invoice template |
| --- | --- | --- |
| **Line item block** | QUOTE LINES | INVOICE LINES |
| **Document number** | Quote number | Invoice number |
| **Date** | Quote date | Invoice date |
| **Expiry date** | Quote validity | Invoice payment term |
| **Payment terms** | Not needed | "Pay within 14 days" (private) or 30 days (business) |
| **IBAN** | **Never show** | Always show in the footer |
| **Optional lines** | Yes (customer chooses) | No (everything is final) |

### Important: use the INVOICE LINES block

In your invoice template, you use the **INVOICE LINES** block instead of the QUOTE LINES block. This block shows the final invoice lines instead of the quote items.

Drag the **INVOICE LINES** block from the right-hand menu into your template, at the spot where the price table should go.

### IBAN on the invoice, never on the quote

Your IBAN **must** be on the invoice template, so customers can pay. In the footer, you add the variable:

```
IBAN: #####{{ identity.iban }}
```

`Note:` Only put your IBAN **on invoice templates**, NEVER on quote templates. If customers see your IBAN on the quote, they sometimes pay immediately instead of waiting for the invoice. This creates administrative hassle.

---

## Payment terms

### Private customers

Standard payment term: **14 days**

Example text for the invoice:

```
We kindly request that you transfer the amount due within 14 daysto IBAN #####{{ identity.iban }} quoting invoice number#####{{ invoice.number }}.
```

### Business customers

Standard payment term: **30 days**

Example text for the invoice:

```
Payment within 30 days of the invoice date to account number#####{{ identity.iban }} quoting invoice number #####{{ invoice.number }}.
```

`Tip:` Do you have both private and business customers? Then create two invoice templates: "Invoice private" and "Invoice business". The difference lies in the payment term (14 vs 30 days) and possibly a reference field for business customers.

---

## Job sheet template

The job sheet is an internal document for your removal crew. It contains all the information they need on moving day.

### What's on a job sheet?

- **Addresses**: Loading address and unloading address (with variables)
- **Date and time**: When does the job start?
- **Customer details**: Contact person's name and phone number
- **Inventory**: What needs to be moved (optional)
- **Special instructions**: Furniture hoist, parking suspension, narrow staircase, etc.

### Difference from the quote and invoice

The job sheet contains **no prices**. It's purely a work order for your removal crew. They don't need to know what the customer is paying, only what needs to be done.

### How do you create a job sheet template?

1. Click **New template**
2. Choose **"Based on"** and select your quote template
3. Remove the **QUOTE LINES** block (no prices on the job sheet)
4. Add the most important information:
5. Loading address: `#####{{ quote.loadAddresses|trans }}`
6. Unloading address: `#####{{ quote.unloadingAddresses|trans }}`
7. Date: `#####{{ project.moving_date }}`
8. Time: `#####{{ project.moving_time }}`
9. Contact person: `#####{{ contact.first_name }} #####{{ contact.last_name }}`
10. Phone number: `#####{{ contact.phone }}`
11. Optionally add a text block for notes/instructions
12. Give the template a clear name: "Job sheet"

`Tip:` The job sheet is an internal document. You can safely put information on it that isn't intended for the customer, such as internal notes or crew allocation.

---

## English-language templates

For international customers, you create separate templates in English.

### Process

1. Click **New template**
2. Choose **"Based on"** and select your Dutch template
3. Translate all the **body text** into English
4. The **variables stay the same** - they automatically pull in the correct data
5. Give the template an English name: "Quote" or "Invoice"

### What do you translate?

| Element | Translate? |
| --- | --- |
| "Geachte" &rarr; "Dear" | Yes |
| "Offerte" &rarr; "Quotation" | Yes |
| "Totaal incl. BTW" &rarr; "Total incl. VAT" | Yes |
| Variables (`#####{{ contact.last_name }}`) | **No** |

---

## Template per type of move

Some removal companies create separate templates per type of job:

| Type | When a separate template? |
| --- | --- |
| **Private vs. business** | Yes - different payment term (14 vs 30 days) |
| **Domestic vs. international** | Optional - different terms/text |
| **Private A-B vs. storage** | Not needed - use conditional text (article 15d) |

`Tip:` Don't create too many templates. It's better to use **conditional text** (if-statements) in your template to turn text on/off based on the services chosen.

---

## Tips

- **Create a perfect quote template first.** Invest time in your first template. You copy all your other templates from it using "Based on".
- **Test with a real scenario.** Create a test case file, generate an invoice, and check the PDF. Is everything correct?
- **INVOICE LINES for invoices.** Don't accidentally use the QUOTE LINES block.
- **IBAN only on the invoice.** Never on the quote - otherwise customers pay too early.
- **Adjust the payment term per customer type.** 14 days private, 30 days business.
- **Job sheet without prices.** Your removal crew doesn't need to see what the customer is paying.
- **"Based on" = copy function.** Saves a lot of formatting work.

---

## Note

- **IBAN on the quote = problem.** Customers then pay too early, before the job has been carried out.
- **Using the wrong line item block.** The quote template has QUOTE LINES, the invoice template has INVOICE LINES.
- **Creating too many templates.** Use conditional text instead of 10 different templates.
- **Not testing before use.** Always test with a test case file before going live.
- **Dummy data is normal.** The editor shows example data that is automatically replaced during real use.

---

**Next step:** [Conditional text in templates](https://www.bas.software/en/onboarding/step-3-adjusting-the-bas-configuration/conditional-text-in-templates)
