Template Language

The Invoiced Template Language is a powerful, easy way to customize the invoices, statements, emails, text messages, and more on Invoiced. Our template language is built on the popular Twig template language with custom extensions designed for the unique requirements of billing.

Usage

Invoiced Template Language can be used to generate personalized emails, messages, and documents. In this document you will learn about all of the capabilities and features of the template language.

Variables

The most common use of the template language is to output variables. In order to use a variable, the name is wrapped in {{ and }}.

{{ customer.name }}

Tags

Tags allow you to implement logic within your template, like branching and looping.

Here is an example of an if statement:

{% if invoice.status == "past_due" %}
    <div class="past-due-label">PAST DUE</div>
{% endif %}

Available tags: (click to learn more)

Filters

Filters allow you to modify variables before they are output into the document.

Here is an example of a filter that formats the invoice variable as a money amount and output in your document:

{{ invoice.balance|money }}

Available filters: (click to learn more)

Functions

You can call a functions to generate content. Functions are called by their name followed by parentheses and optional arguments.

For example this will show the maximum of the two values:

{{ max(invoice.subtotal, invoice.total) }}

Functions can be combined with filters:

{{ max(invoice.subtotal, invoice.total)|money }}

Available functions: (click to learn more)

  • cycle
  • date
  • dump
  • dump_scope - Dumps all of the variables available within the template in a readable format.

    Example: {{ dump_scope() }}

  • max
  • min
  • random
  • range
  • trans - Translates a string in the customer's locale.

    Example: {{ trans('labels.balance_due') }}

  • transchoice - Translates a string in the customer's locale with pluralization rules.

    Example: {{ transchoice('labels.invoice', invoices|length) }}