Custom PDF Templates
Invoiced ships with multiple default templates for invoices, statements, and receipts, however, it's possible these templates do not match your business or branding needs. In this guide we will show you how to change the layout and appearance of the default PDF templates.
The PDF templates are HTML and CSS rendered using Invoiced Template Language.
The first step is to head over to Settings → Appearance → Custom Templates. Then select the template type you want to create under New Template. You can also edit or duplicate an existing custom template from the list on the same screen. Within each template, it is possible to adjust margins and create custom headers and footers. Template bodies, headers and footers are separate HTML/CSS file pairs
Once a custom template for a certain document type is created, it can be selected for use from the corresponding drop-down menu in Settings → Appearance → Design.
After saving any changes you can download a PDF preview by clicking the Preview button near the top right of the page. You can also see the generated HTML on a live invoice that has your customizations applied by opening the client view and appending /html to the URL, i.e. https://dundermifflin.invoiced.com/invoices/IZmXbVOPyvfD3GPBmyd6FwXX/html.
If you want an output of what variables are available to your template you can use this for your HTML template to get a JSON encoded output: <pre>{{ dump_scope() }}</pre>
If you want to reset any of the specific templates to the default then simply delete all of the text for that template and click Save. This will revert that template back to the default value.
These variables can be used in the Twig templates.
- company - A hash representing the business. See Company Object.
- customer - A hash representing the customer. See Customer Object.
- invoice - A hash representing the invoice. See Invoice Object.
- company - A hash representing the business. See Company Object.
- customer - A hash representing the customer. See Customer Object.
- transaction - A hash representing the transaction. See Transaction Object.
- company - A hash representing the business. See Company Object.
- customer - A hash representing the customer. See Customer Object.
- statement - A hash representing the statement. See Statement Object.
- company - A hash representing the business. See Company Object.
- customer - A hash representing the customer. See Customer Object.
- estimate - A hash representing the estimate. See Estimate Object.
The company object has these variables:
- address
- country
- currency
- email
- highlight_color
- language
- logo
- name
- tax_id
- username
- url
The customer object has these variables:
- address
- attention_to
- autopay
- chase
- country
- email
- language
- metadata
- name
- number
- payment_terms
- phone
- tax_id
- taxable
- type
The invoice object has these variables:
- amount_paid
- autopay
- balance
- custom_fields - An array of custom fields. See Custom Field Object
- date
- due_date
- items - An array of line items. See Line Item Object.
- metadata
- notes
- number
- payment_terms
- payment_url
- rates - An array of discounts and taxes applied to the invoice. See Rate Object.
- ship_to
- status
- subtotal
- terms
- total
- url
Line items contain these properties:
- amount
- billing_period
- description
- metadata
- name
- rates
- unit_cost
Rates represent a summary of discounts or taxes applied to the subtotal. These properties are available:
- name
- total
Custom fields have these properties:
- name
- value
The transaction object has these variables:
- amount
- amount_credited
- amount_refunded
- check_no
- credit_notes
- date
- invoices
- metadata
- method
- payment_source
If it is a Balance Forward statement then the statement object has these variables:
- type - set to balance_forward
- start
- end
- previousBalance
- totalInvoiced
- totalPaid
- totalOverpaid
- totalAdjustments
- balance
- creditBalance
- accountDetail - array of objects each with these properties:
- date
- number
- invoiced
- paid
- balance
- hasCredits
- previousCreditBalance
- totalCreditsIssued
- totalCreditsSpent
- creditDetail - array of objects each with these properties: of objects with each these properties:
- date
- description
- issued
- charged
- creditBalance
- unifiedDetail - array of objects each with these properties:
- date
- description
- issued
- charged
- balance
- creditBalance
- aging
If it is an Open Item statement then the statement object has these variables:
- type - set to open_item
- end
- totalInvoiced
- totalPaid
- balance
- accountDetail - array of objects each with these properties:
- date
- number
- dueDate
- total
- balance
- aging
The estimate object has these variables:
- custom_fields - An array of custom fields. See Custom Field Object
- date
- expiration_date
- items - An array of line items. See Line Item Object.
- metadata
- notes
- number
- payment_terms
- rates - An array of discounts and taxes applied to the invoice. See Rate Object.
- ship_to
- status
- subtotal
- terms
- total
- url