Placeholders
Placeholders are tokens in your template that get replaced with live data when you generate a document (Word or PDF). They use the ${PLACEHOLDER_NAME} syntax.
Viewing available placeholders
On the Templates page, click the Available Placeholders button to open a reference panel. Placeholders are grouped by:
- Data source (e.g., QuickBooks Online) — with connection status
- Entity type (e.g., Invoice, Estimate, Purchase Order) — collapsible sections
- Field group (e.g., Invoice, Customer, Line Items) — organized by category
QuickBooks Online — Invoice
Invoice
| Placeholder | Description |
|---|---|
| ${INVOICE_NUMBER} | The invoice document number |
| ${INVOICE_DATE} | The transaction date |
| ${DUE_DATE} | The payment due date |
| ${SHIP_DATE} | The ship, delivery or supply date |
| ${PAYMENT_TERMS} | Payment terms (e.g. Net 30) |
| ${SUBTOTAL} | Subtotal before tax |
| ${TAX_AMOUNT} | Total tax amount |
| ${TAX_RATE} | The tax rate, such as 18%, when the invoice has a single rate (blank when it has several) |
| ${TOTAL_AMOUNT} | Total invoice amount |
| ${BALANCE_DUE} | Remaining balance due |
| ${MEMO} | Private memo/notes |
| ${CUSTOMER_MESSAGE} | Message displayed on invoice |
Customer
| Placeholder | Description |
|---|---|
| ${CUSTOMER_NAME} | Customer display name |
| ${CUSTOMER_COMPANY} | Customer company name |
| ${CUSTOMER_TAX_ID} | Customer tax registration number |
| ${CUSTOMER_PHONE} | Customer phone number |
| ${CUSTOMER_MOBILE} | Customer mobile number |
| ${CUSTOMER_WEBSITE} | Customer website |
| ${CUSTOMER_NOTES} | Customer notes |
| ${BILLING_ADDRESS} | Full billing address |
| ${BILLING_LINE1} | Billing address line 1 |
| ${BILLING_LINE2} | Billing address line 2 |
| ${BILLING_CITY} | Billing city |
| ${BILLING_STATE} | Billing state/province |
| ${BILLING_ZIP} | Billing postal code |
| ${BILLING_CITY_LINE} | Billing city, state and postal code on one line |
| ${SHIPPING_ADDRESS} | Full shipping address |
| ${SHIPPING_LINE1} | Shipping address line 1 |
| ${SHIPPING_LINE2} | Shipping address line 2 |
| ${SHIPPING_CITY} | Shipping city |
| ${SHIPPING_STATE} | Shipping state/province |
| ${SHIPPING_ZIP} | Shipping postal code |
| ${SHIPPING_CITY_LINE} | Shipping city, state and postal code on one line |
| ${CUSTOMER_EMAIL} | Customer email address |
Line Items — Auto Table
| Placeholder | Description |
|---|---|
| ${LINE_ITEMS} | Generates a complete table with all line items (do not use inside your own table) |
Line Items — Row Placeholders
| Placeholder | Description |
|---|---|
| ${LINE_NUMBER} | Line number as QuickBooks numbers the lines (1 for the first) |
| ${LINE_NAME} | Product/service name (place in a table row — row will be cloned per item) |
| ${LINE_DESCRIPTION} | Description (place in a table row — row will be cloned per item) |
| ${LINE_SERVICE_DATE} | Service date |
| ${LINE_SKU} | SKU |
| ${LINE_QUANTITY} | Quantity |
| ${LINE_RATE} | Unit price |
| ${LINE_AMOUNT} | Total amount |
Your Company
| Placeholder | Description |
|---|---|
| ${COMPANY_NAME} | Your company name |
| ${COMPANY_ADDRESS} | Your company address, formatted on multiple lines |
| ${COMPANY_LINE1} | Your company street address |
| ${COMPANY_LINE2} | Your company address line 2 |
| ${COMPANY_CITY} | Your company city |
| ${COMPANY_STATE} | Your company state or province |
| ${COMPANY_ZIP} | Your company postal code |
| ${COMPANY_CITY_LINE} | Your company city, state and postal code on one line |
| ${COMPANY_PHONE} | Your company phone number |
| ${COMPANY_EMAIL} | Your company email address |
| ${COMPANY_WEBSITE} | Your company website |
| ${COMPANY_TAX_ID} | Your company tax ID, from Team settings |
Box Labels
| Placeholder | Description |
|---|---|
| ${BOX_NUMBER} | This box's number within its line item, 1 for the first (fills on a template set to one label per box) |
| ${BOX_COUNT} | How many boxes the line item ships in |
| ${BOX_QUANTITY} | Units in this box |
| ${BOX_TOTAL_QUANTITY} | Units across all of the line item's boxes |
QuickBooks Online — Estimate
Estimate
| Placeholder | Description |
|---|---|
| ${ESTIMATE_NUMBER} | The estimate document number |
| ${ESTIMATE_DATE} | The transaction date |
| ${EXPIRATION_DATE} | The estimate expiration date |
| ${ESTIMATE_STATUS} | Status (Pending, Accepted, Closed, Rejected) |
| ${PAYMENT_TERMS} | Payment terms (e.g. Net 30) |
| ${SUBTOTAL} | Subtotal before tax |
| ${TAX_AMOUNT} | Total tax amount |
| ${TOTAL_AMOUNT} | Total estimate amount |
| ${MEMO} | Private memo/notes |
| ${CUSTOMER_MESSAGE} | Message displayed on estimate |
Customer
| Placeholder | Description |
|---|---|
| ${CUSTOMER_NAME} | Customer display name |
| ${CUSTOMER_COMPANY} | Customer company name |
| ${CUSTOMER_TAX_ID} | Customer tax registration number |
| ${CUSTOMER_PHONE} | Customer phone number |
| ${CUSTOMER_MOBILE} | Customer mobile number |
| ${CUSTOMER_WEBSITE} | Customer website |
| ${CUSTOMER_NOTES} | Customer notes |
| ${BILLING_ADDRESS} | Full billing address |
| ${BILLING_LINE1} | Billing address line 1 |
| ${BILLING_LINE2} | Billing address line 2 |
| ${BILLING_CITY} | Billing city |
| ${BILLING_STATE} | Billing state/province |
| ${BILLING_ZIP} | Billing postal code |
| ${BILLING_CITY_LINE} | Billing city, state and postal code on one line |
| ${SHIPPING_ADDRESS} | Full shipping address |
| ${SHIPPING_LINE1} | Shipping address line 1 |
| ${SHIPPING_LINE2} | Shipping address line 2 |
| ${SHIPPING_CITY} | Shipping city |
| ${SHIPPING_STATE} | Shipping state/province |
| ${SHIPPING_ZIP} | Shipping postal code |
| ${SHIPPING_CITY_LINE} | Shipping city, state and postal code on one line |
| ${CUSTOMER_EMAIL} | Customer email address |
Line Items — Auto Table
| Placeholder | Description |
|---|---|
| ${LINE_ITEMS} | Generates a complete table with all line items (do not use inside your own table) |
Line Items — Row Placeholders
| Placeholder | Description |
|---|---|
| ${LINE_NUMBER} | Line number as QuickBooks numbers the lines (1 for the first) |
| ${LINE_NAME} | Product/service name (place in a table row — row will be cloned per item) |
| ${LINE_DESCRIPTION} | Description (place in a table row — row will be cloned per item) |
| ${LINE_SERVICE_DATE} | Service date |
| ${LINE_SKU} | SKU |
| ${LINE_QUANTITY} | Quantity |
| ${LINE_RATE} | Unit price |
| ${LINE_AMOUNT} | Total amount |
Your Company
| Placeholder | Description |
|---|---|
| ${COMPANY_NAME} | Your company name |
| ${COMPANY_ADDRESS} | Your company address, formatted on multiple lines |
| ${COMPANY_LINE1} | Your company street address |
| ${COMPANY_LINE2} | Your company address line 2 |
| ${COMPANY_CITY} | Your company city |
| ${COMPANY_STATE} | Your company state or province |
| ${COMPANY_ZIP} | Your company postal code |
| ${COMPANY_CITY_LINE} | Your company city, state and postal code on one line |
| ${COMPANY_PHONE} | Your company phone number |
| ${COMPANY_EMAIL} | Your company email address |
| ${COMPANY_WEBSITE} | Your company website |
| ${COMPANY_TAX_ID} | Your company tax ID, from Team settings |
Box Labels
| Placeholder | Description |
|---|---|
| ${BOX_NUMBER} | This box's number within its line item, 1 for the first (fills on a template set to one label per box) |
| ${BOX_COUNT} | How many boxes the line item ships in |
| ${BOX_QUANTITY} | Units in this box |
| ${BOX_TOTAL_QUANTITY} | Units across all of the line item's boxes |
QuickBooks Online — Purchase Order
Purchase Order
| Placeholder | Description |
|---|---|
| ${PO_NUMBER} | The PO document number |
| ${PO_DATE} | The transaction date |
| ${DUE_DATE} | The expected delivery date |
| ${PO_STATUS} | Status (Open, Closed) |
| ${SUBTOTAL} | Subtotal before tax |
| ${TAX_AMOUNT} | Total tax amount |
| ${TOTAL_AMOUNT} | Total PO amount |
| ${MEMO} | Private memo/notes |
| ${VENDOR_MESSAGE} | Message to vendor |
Vendor
| Placeholder | Description |
|---|---|
| ${VENDOR_NAME} | Vendor display name |
| ${VENDOR_COMPANY} | Vendor company name |
| ${VENDOR_TAX_ID} | Vendor tax registration number |
| ${VENDOR_PHONE} | Vendor phone number |
| ${VENDOR_MOBILE} | Vendor mobile number |
| ${VENDOR_WEBSITE} | Vendor website |
| ${VENDOR_CHECK_NAME} | Vendor print-on-check name |
| ${VENDOR_ACCOUNT_NUMBER} | Your account number with this vendor (their Account no. on the vendor record) |
| ${VENDOR_ADDRESS} | Full vendor address |
| ${VENDOR_LINE1} | Vendor address line 1 |
| ${VENDOR_LINE2} | Vendor address line 2 |
| ${VENDOR_CITY} | Vendor city |
| ${VENDOR_STATE} | Vendor state/province |
| ${VENDOR_ZIP} | Vendor postal code |
| ${VENDOR_CITY_LINE} | Vendor city, state and postal code on one line |
| ${VENDOR_EMAIL} | Vendor email address |
| ${SHIPPING_ADDRESS} | Full ship-to address |
| ${SHIPPING_LINE1} | Ship-to address line 1 |
| ${SHIPPING_LINE2} | Ship-to address line 2 |
| ${SHIPPING_CITY} | Ship-to city |
| ${SHIPPING_STATE} | Ship-to state/province |
| ${SHIPPING_ZIP} | Ship-to postal code |
| ${SHIPPING_CITY_LINE} | Ship-to city, state and postal code on one line |
Line Items — Auto Table
| Placeholder | Description |
|---|---|
| ${LINE_ITEMS} | Generates a complete table with all line items (do not use inside your own table) |
Line Items — Row Placeholders
| Placeholder | Description |
|---|---|
| ${LINE_NUMBER} | Line number as QuickBooks numbers the lines (1 for the first) |
| ${LINE_NAME} | Product/service name (place in a table row — row will be cloned per item) |
| ${LINE_DESCRIPTION} | Description (place in a table row — row will be cloned per item) |
| ${LINE_SERVICE_DATE} | Service date |
| ${LINE_SKU} | SKU |
| ${LINE_QUANTITY} | Quantity |
| ${LINE_RATE} | Unit price |
| ${LINE_AMOUNT} | Total amount |
Your Company
| Placeholder | Description |
|---|---|
| ${COMPANY_NAME} | Your company name |
| ${COMPANY_ADDRESS} | Your company address, formatted on multiple lines |
| ${COMPANY_LINE1} | Your company street address |
| ${COMPANY_LINE2} | Your company address line 2 |
| ${COMPANY_CITY} | Your company city |
| ${COMPANY_STATE} | Your company state or province |
| ${COMPANY_ZIP} | Your company postal code |
| ${COMPANY_CITY_LINE} | Your company city, state and postal code on one line |
| ${COMPANY_PHONE} | Your company phone number |
| ${COMPANY_EMAIL} | Your company email address |
| ${COMPANY_WEBSITE} | Your company website |
| ${COMPANY_TAX_ID} | Your company tax ID, from Team settings |
Box Labels
| Placeholder | Description |
|---|---|
| ${BOX_NUMBER} | This box's number within its line item, 1 for the first (fills on a template set to one label per box) |
| ${BOX_COUNT} | How many boxes the line item ships in |
| ${BOX_QUANTITY} | Units in this box |
| ${BOX_TOTAL_QUANTITY} | Units across all of the line item's boxes |
Purchase orders support both item-based and account-based line items. Account-based lines use the account name as the product/service name.
QuickBooks Online — Bill Payment
A bill payment produces a remittance advice: the document you send a vendor confirming a payment and itemizing the bills it covers.
In the US edition of QuickBooks Online there is no way to send one for a payment you made yourself — pay by ACH from your own bank, by wire, by card, or by plain check and your vendor gets nothing. Payments run through QuickBooks Bill Pay do trigger an automatic notification, but it does not list the bills the payment covers, which is the part your vendor actually needs.
The UK and Canadian editions have a built-in Send remittance option on bill payments. If you're on one of those, use this when you want the document on your own letterhead, in your own format, or with details QuickBooks doesn't include.
Bill payment fields
| Placeholder | Description |
|---|---|
| ${PAYMENT_NUMBER} | The payment reference — the "Ref no." field in QuickBooks |
| ${PAYMENT_DATE} | The date the payment was made |
| ${TOTAL_AMOUNT} | Total amount paid |
| ${PAY_TYPE} | How the payment was made: Check, or Credit Card |
| ${CHECK_NUMBER} | Check number (check payments only) |
| ${BANK_ACCOUNT} | Account the payment was drawn from |
| ${PRINT_STATUS} | Check print status: Need to print, or Printed (check payments only) |
| ${MEMO} | Private memo/notes |
QuickBooks stores the check number in the same field as the payment number, so ${CHECK_NUMBER} is only filled in on check payments. On a credit card payment it is blank while ${PAYMENT_NUMBER} still has a value.
${PRINT_STATUS} is blank on any payment QuickBooks was never asked to print — which is most of them, including every payment made by ACH, card or wire. It only fills in once a check has been queued for printing or printed.
${PAY_TYPE} is worth using with care. QuickBooks records only two payment methods on a bill payment — it has no value for ACH, EFT or wire — so a payment drafted from your bank account arrives as "Check". A template that prints "Payment method: ${PAY_TYPE}" will tell a vendor you sent a check when you sent an ACH. If your remittance advice needs to name the method, write it into the template itself, or put it in the payment's Ref no. or Memo field in QuickBooks.
QuickBooks pre-fills Ref no. with a counter that runs per account rather than per company, so every credit card payment in your company can arrive as 1. Ref no. is editable on the payment in QuickBooks — if you want a reference your vendor can quote back to you, such as an ACH trace number or your own payment-run reference, type it there and it flows straight through to ${PAYMENT_NUMBER}. To see what a particular payment will produce, view it in the app before building your template: each placeholder is listed with its current value.
Ref no. is also how bill payments are listed and searched in the app, so what you see in the Doc # filter is what ${PAYMENT_NUMBER} will print. Where two payments share a Ref no., tell them apart by the vendor, date and amount shown alongside. A payment with no Ref no. at all is listed by its QuickBooks id instead, so the entry is never blank.
Vendor fields
| Placeholder | Description |
|---|---|
| ${VENDOR_NAME} | Vendor display name |
| ${VENDOR_COMPANY} | Vendor company name |
| ${VENDOR_TAX_ID} | Vendor tax registration number |
| ${VENDOR_PHONE} | Vendor phone number |
| ${VENDOR_MOBILE} | Vendor mobile number |
| ${VENDOR_WEBSITE} | Vendor website |
| ${VENDOR_CHECK_NAME} | Vendor print-on-check name |
| ${VENDOR_ACCOUNT_NUMBER} | Your account number with this vendor (their Account no. on the vendor record) |
| ${VENDOR_ADDRESS} | Full vendor address |
| ${VENDOR_LINE1} | Vendor address line 1 |
| ${VENDOR_LINE2} | Vendor address line 2 |
| ${VENDOR_CITY} | Vendor city |
| ${VENDOR_STATE} | Vendor state/province |
| ${VENDOR_ZIP} | Vendor postal code |
| ${VENDOR_CITY_LINE} | Vendor city, state and postal code on one line |
| ${VENDOR_EMAIL} | Vendor email address |
A bill payment carries no address of its own, so every address placeholder is filled from the vendor record in QuickBooks.
${VENDOR_ACCOUNT_NUMBER} is worth putting on a remittance advice. It comes from the Account no. field on the vendor in QuickBooks — the number that vendor uses to identify your company — and it is how their accounts receivable clerk finds you before they even look at your bill numbers. It's blank unless somebody filled that field in on the vendor record.
Line item fields
On a remittance advice, each line is a bill the payment settles rather than a product sold.
Auto table
| Placeholder | Description |
|---|---|
| ${LINE_ITEMS} | Generates a complete table of the bills this payment covers (do not use inside your own table) |
Row placeholders
| Placeholder | Description |
|---|---|
| ${LINE_BILL_NUMBER} | Bill number, or the credit number on a credit row (place in a table row — row will be cloned per line) |
| ${LINE_BILL_DATE} | Date of the bill or credit |
| ${LINE_BILL_DUE_DATE} | Due date of the bill |
| ${LINE_BILL_TOTAL} | Original total of the bill |
| ${LINE_BILL_BALANCE} | Bill balance outstanding today (not as of the payment date) |
| ${LINE_PAYMENT_AMOUNT} | Amount applied to the bill, or negative on a credit row — the column totals the amount paid |
| ${LINE_TXN_TYPE} | What the line settles (Bill, Vendor Credit, Deposit) |
Note that ${LINE_BILL_BALANCE} is the bill's balance as it stands today, not as it stood on the payment date — a fully paid bill shows 0.00. QuickBooks does not keep historical balances, and for the same reason this column is left out of the ${LINE_ITEMS} table. Use ${LINE_PAYMENT_AMOUNT} for the figure this payment contributed.
Your company
These fill in your own company's name and contact details, from your QuickBooks company settings.
| Placeholder | Description |
|---|---|
| ${COMPANY_NAME} | Your company name |
| ${COMPANY_ADDRESS} | Your company address, formatted on multiple lines |
| ${COMPANY_LINE1} | Your company street address |
| ${COMPANY_LINE2} | Your company address line 2 |
| ${COMPANY_CITY} | Your company city |
| ${COMPANY_STATE} | Your company state or province |
| ${COMPANY_ZIP} | Your company postal code |
| ${COMPANY_CITY_LINE} | Your company city, state and postal code on one line |
| ${COMPANY_PHONE} | Your company phone number |
| ${COMPANY_EMAIL} | Your company email address |
| ${COMPANY_WEBSITE} | Your company website |
| ${COMPANY_TAX_ID} | Your company tax ID, from Team settings |
Your remittance advice is only as good as your Bill no.
${LINE_BILL_NUMBER} comes from the Bill no. field on the bill in QuickBooks. That field is where you record the vendor's own invoice number, and it is the column that makes a remittance advice work — it's what lets your vendor match your payment to their invoices without calling you.
QuickBooks does not fill it in for you. Unlike an invoice, a bill is not auto-numbered: if nobody typed a Bill no. when the bill was entered, QuickBooks stores nothing, and ${LINE_BILL_NUMBER} comes out blank on your document. The rest of the row — dates, totals, amount paid — still fills in, so the remittance advice remains usable, but your vendor has more work to do.
If your remittance advice has blank bill numbers, the fix is in QuickBooks, not here: open the bill and enter the vendor's invoice number in Bill no., then generate the document again. Before building your template, view a bill payment in the app — every placeholder is listed with its current value, so you can see straight away whether your bills carry numbers.
Payments that apply a vendor credit
A payment can also apply a vendor credit or a deposit, and those get a row of their own. On such a row:
${LINE_BILL_NUMBER}and${LINE_BILL_DATE}hold the credit's number and date, so the deduction names itself.${LINE_PAYMENT_AMOUNT}is negative, because the credit reduces what you actually paid.${LINE_TXN_TYPE}readsVendor CreditorDepositrather thanBill.${LINE_BILL_DUE_DATE},${LINE_BILL_TOTAL}and${LINE_BILL_BALANCE}are blank — a credit has no due date, bill total or outstanding balance.
Each bill row shows the amount the payment settles that bill for in full, including anything the credit covered, and the credit is then deducted on its own row. So the ${LINE_PAYMENT_AMOUNT} column adds up to ${TOTAL_AMOUNT}, the cash that actually left your account:
| Bill No. | Bill Date | Due Date | Bill Total | Paid |
|---|---|---|---|---|
| NL-4471 | 07/02/2026 | 08/01/2026 | 400.00 | 400.00 |
| NL-4482 | 07/14/2026 | 08/13/2026 | 250.00 | 250.00 |
| NL-CR-119 | 07/20/2026 | -75.00 | ||
| Total paid | 575.00 |
This is what a vendor expects to see: both bills confirmed as settled, the credit shown as the deduction that explains why the payment is smaller than their total.
When the rows don't add up
The rows are a claim that they explain the total at the bottom, and that is the first thing your vendor will check. Occasionally they won't: QuickBooks holds an overpayment as a credit rather than as a line, so a payment can be larger than everything it visibly settles.
When that happens the app tells you before you build the document. View the bill payment and you'll see a warning naming both figures — what the rows come to, and what the payment actually was. Open the payment in QuickBooks and confirm what it settles before sending anything to your vendor.
You may occasionally see a different warning saying a transaction could not be read from QuickBooks. That one is not about your data: the amount paid is still right, but the bill number, dates and totals will be blank on those rows because the records behind them didn't come back. Generate the document again in a moment — it usually clears.
QuickBooks Online — Credit Memo
A credit memo is the document you send a customer when you owe them money back — a return, a billing correction, or a goodwill credit.
QuickBooks Online has no custom form style for one. Under Custom form styles you can build a style for an invoice, estimate, sales receipt, sales order or purchase order, but not for a credit memo, and there is no way to import your own. So a business that has carefully branded its invoices still sends a stock QuickBooks credit note alongside them. Use these placeholders to issue the credit on the same letterhead as the invoice it corrects.
Credit Memo
| Placeholder | Description |
|---|---|
| ${CREDIT_MEMO_NUMBER} | The credit memo document number |
| ${CREDIT_MEMO_DATE} | The transaction date |
| ${PAYMENT_TERMS} | Payment terms (e.g. Net 30) |
| ${SUBTOTAL} | Subtotal before tax |
| ${TAX_AMOUNT} | Total tax amount |
| ${TOTAL_AMOUNT} | Total credit amount |
| ${REMAINING_CREDIT} | Credit still available to apply, as it stands today |
| ${MEMO} | Private memo/notes |
| ${CUSTOMER_MESSAGE} | Message displayed on credit memo |
Customer
| Placeholder | Description |
|---|---|
| ${CUSTOMER_NAME} | Customer display name |
| ${CUSTOMER_COMPANY} | Customer company name |
| ${CUSTOMER_TAX_ID} | Customer tax registration number |
| ${CUSTOMER_PHONE} | Customer phone number |
| ${CUSTOMER_MOBILE} | Customer mobile number |
| ${CUSTOMER_WEBSITE} | Customer website |
| ${CUSTOMER_NOTES} | Customer notes |
| ${BILLING_ADDRESS} | Full billing address |
| ${BILLING_LINE1} | Billing address line 1 |
| ${BILLING_LINE2} | Billing address line 2 |
| ${BILLING_CITY} | Billing city |
| ${BILLING_STATE} | Billing state/province |
| ${BILLING_ZIP} | Billing postal code |
| ${BILLING_CITY_LINE} | Billing city, state and postal code on one line |
| ${SHIPPING_ADDRESS} | Full shipping address |
| ${SHIPPING_LINE1} | Shipping address line 1 |
| ${SHIPPING_LINE2} | Shipping address line 2 |
| ${SHIPPING_CITY} | Shipping city |
| ${SHIPPING_STATE} | Shipping state/province |
| ${SHIPPING_ZIP} | Shipping postal code |
| ${SHIPPING_CITY_LINE} | Shipping city, state and postal code on one line |
| ${CUSTOMER_EMAIL} | Customer email address |
Line Items — Auto Table
| Placeholder | Description |
|---|---|
| ${LINE_ITEMS} | Generates a complete table with all line items (do not use inside your own table) |
Line Items — Row Placeholders
| Placeholder | Description |
|---|---|
| ${LINE_NUMBER} | Line number as QuickBooks numbers the lines (1 for the first) |
| ${LINE_NAME} | Product/service name (place in a table row — row will be cloned per item) |
| ${LINE_DESCRIPTION} | Description (place in a table row — row will be cloned per item) |
| ${LINE_SERVICE_DATE} | Service date |
| ${LINE_SKU} | SKU |
| ${LINE_QUANTITY} | Quantity |
| ${LINE_RATE} | Unit price |
| ${LINE_AMOUNT} | Total amount |
Your Company
| Placeholder | Description |
|---|---|
| ${COMPANY_NAME} | Your company name |
| ${COMPANY_ADDRESS} | Your company address, formatted on multiple lines |
| ${COMPANY_LINE1} | Your company street address |
| ${COMPANY_LINE2} | Your company address line 2 |
| ${COMPANY_CITY} | Your company city |
| ${COMPANY_STATE} | Your company state or province |
| ${COMPANY_ZIP} | Your company postal code |
| ${COMPANY_CITY_LINE} | Your company city, state and postal code on one line |
| ${COMPANY_PHONE} | Your company phone number |
| ${COMPANY_EMAIL} | Your company email address |
| ${COMPANY_WEBSITE} | Your company website |
| ${COMPANY_TAX_ID} | Your company tax ID, from Team settings |
Box Labels
| Placeholder | Description |
|---|---|
| ${BOX_NUMBER} | This box's number within its line item, 1 for the first (fills on a template set to one label per box) |
| ${BOX_COUNT} | How many boxes the line item ships in |
| ${BOX_QUANTITY} | Units in this box |
| ${BOX_TOTAL_QUANTITY} | Units across all of the line item's boxes |
${REMAINING_CREDIT} is how much of the credit the customer has not yet used, as it stands today — not as it stood on the credit memo's date. A credit that has since been applied in full reads 0.00, even on a document dated before it was applied. Use ${TOTAL_AMOUNT} for the value of the credit itself.
A credit memo carries no due date, because there is nothing to pay. ${PAYMENT_TERMS} exists and QuickBooks will copy it across from the customer record, but it rarely means anything on a credit — leave it off unless you know you want it.
QuickBooks Online — Customer Statement
A statement is a summary of what a customer owes you — the document you send at the end of the month so somebody in their accounts department knows what to pay.
QuickBooks Online will produce one, but gives you no say in how it looks. Custom form styles does not offer a statement at all, custom fields are unavailable on them, and the columns are fixed. Most visibly, a statement will not show a purchase order number against each invoice.
QuickBooks Online has no P.O. number field on an invoice either, so companies that need one add a custom field and record it there. Those custom fields are available on a statement as row placeholders: a field named P.O. Number becomes ${LINE_CUSTOM_PO_NUMBER}, which puts it in a column of its own. Use the name you gave your own field.
Statements come in two kinds. An open item statement lists every invoice still carrying a balance, whenever it was raised. A balance forward statement opens with what was owed before the period, lists everything that happened during it, and carries a running balance down the page.
Statement
| Placeholder | Description |
|---|---|
| ${STATEMENT_NUMBER} | Statement number assigned when the statement is generated; each statement gets the next number in your sequence |
| ${STATEMENT_DATE} | The date the statement covers up to |
| ${STATEMENT_START_DATE} | First day of the period, on a balance forward statement |
| ${STATEMENT_END_DATE} | Last day of the period, on a balance forward statement |
| ${STATEMENT_TYPE} | Open item or balance forward |
| ${PAST_DUE_DAYS} | When the statement lists only overdue items, how many days past due; blank otherwise |
| ${PAST_DUE_AMOUNT} | How much of the balance is that far past due; blank when the statement lists everything |
| ${BALANCE_FORWARD} | What was owed before the period began |
| ${TOTAL_CHARGES} | Charges listed on this statement |
| ${TOTAL_PAYMENTS} | Payments and credits listed on this statement |
| ${AMOUNT_DUE} | Total owed as at the statement date, whatever the statement listed, less any transactions chosen to be left off it |
Aging
| Placeholder | Description |
|---|---|
| ${AGING_CURRENT} | Not yet due |
| ${AGING_1_30} | Overdue by 1 to 30 days |
| ${AGING_31_60} | Overdue by 31 to 60 days |
| ${AGING_61_90} | Overdue by 61 to 90 days |
| ${AGING_OVER_90} | Overdue by more than 90 days |
Customer
| Placeholder | Description |
|---|---|
| ${CUSTOMER_NAME} | Customer display name |
| ${CUSTOMER_COMPANY} | Customer company name |
| ${CUSTOMER_EMAIL} | Customer email address |
| ${CUSTOMER_PHONE} | Customer phone number |
| ${BILLING_ADDRESS} | Full billing address |
| ${BILLING_LINE1} | Billing address line 1 |
| ${BILLING_LINE2} | Billing address line 2 |
| ${BILLING_CITY} | Billing city |
| ${BILLING_STATE} | Billing state |
| ${BILLING_ZIP} | Billing postal code |
| ${BILLING_CITY_LINE} | Billing city, state and postal code on one line |
Transaction Rows — Auto Table
| Placeholder | Description |
|---|---|
| ${LINE_ITEMS} | Generates a complete table of the statement rows (do not use inside your own table) |
Transaction Rows — Row Placeholders
| Placeholder | Description |
|---|---|
| ${LINE_DATE} | Date of the transaction (place in a table row — row will be cloned per line) |
| ${LINE_TYPE} | What the transaction is, as QuickBooks names it |
| ${LINE_NUMBER} | Document number of the transaction |
| ${LINE_DUE_DATE} | Date the invoice is due |
| ${LINE_DAYS_OVERDUE} | Days past due as at the statement date, blank if not yet due |
| ${LINE_MEMO} | Message or note on the transaction |
| ${LINE_AMOUNT} | Amount of the transaction; payments and credits are negative |
| ${LINE_OPEN_AMOUNT} | Unpaid balance on an open item statement, or the running balance on a balance forward statement |
Your Company
| Placeholder | Description |
|---|---|
| ${COMPANY_NAME} | Your company name |
| ${COMPANY_ADDRESS} | Your company address, formatted on multiple lines |
| ${COMPANY_LINE1} | Your company street address |
| ${COMPANY_LINE2} | Your company address line 2 |
| ${COMPANY_CITY} | Your company city |
| ${COMPANY_STATE} | Your company state or province |
| ${COMPANY_ZIP} | Your company postal code |
| ${COMPANY_CITY_LINE} | Your company city, state and postal code on one line |
| ${COMPANY_PHONE} | Your company phone number |
| ${COMPANY_EMAIL} | Your company email address |
| ${COMPANY_WEBSITE} | Your company website |
| ${COMPANY_TAX_ID} | Your company tax ID, from Team settings |
The aging placeholders total what is unpaid into the usual receivables buckets, measured as at the statement date from each transaction's due date — or from its own date where it has none, which is how QuickBooks ages receivables. They are the figures a collections call is made from.
| Placeholder | Description |
|---|---|
| ${AGING_CURRENT} | Not yet due |
| ${AGING_1_30} | Overdue by 1 to 30 days |
| ${AGING_31_60} | Overdue by 31 to 60 days |
| ${AGING_61_90} | Overdue by 61 to 90 days |
| ${AGING_OVER_90} | Overdue by more than 90 days |
| Placeholder | Description |
|---|---|
| ${CUSTOMER_NAME} | Customer display name |
| ${CUSTOMER_COMPANY} | Customer company name |
| ${CUSTOMER_EMAIL} | Customer email address |
| ${CUSTOMER_PHONE} | Customer phone number |
| ${BILLING_ADDRESS} | Full billing address |
| ${BILLING_LINE1} | Billing address line 1 |
| ${BILLING_LINE2} | Billing address line 2 |
| ${BILLING_CITY} | Billing city |
| ${BILLING_STATE} | Billing state |
| ${BILLING_ZIP} | Billing postal code |
| ${BILLING_CITY_LINE} | Billing city, state and postal code on one line |
Each row of the statement is one transaction, and every transaction posted to accounts receivable is there — journal entries, deposits, and refunds as well as invoices, payments, and credits. ${LINE_TYPE} names it the way QuickBooks does. On an open item statement ${LINE_AMOUNT} is the transaction total and ${LINE_OPEN_AMOUNT} is what remains unpaid on it. On a balance forward statement ${LINE_OPEN_AMOUNT} is the running balance after that transaction, and payments and credits appear as negative amounts.
| Placeholder | Description |
|---|---|
| ${LINE_ITEMS} | Generates a complete table of the statement rows (do not use inside your own table) |
| Placeholder | Description |
|---|---|
| ${LINE_DATE} | Date of the transaction (place in a table row — row will be cloned per line) |
| ${LINE_TYPE} | What the transaction is, as QuickBooks names it |
| ${LINE_NUMBER} | Document number of the transaction |
| ${LINE_DUE_DATE} | Date the invoice is due |
| ${LINE_DAYS_OVERDUE} | Days past due as at the statement date, blank if not yet due |
| ${LINE_MEMO} | Message or note on the transaction |
| ${LINE_AMOUNT} | Amount of the transaction; payments and credits are negative |
| ${LINE_OPEN_AMOUNT} | Unpaid balance on an open item statement, or the running balance on a balance forward statement |
These fill in your own company's name and contact details, from your QuickBooks company settings.
| Placeholder | Description |
|---|---|
| ${COMPANY_NAME} | Your company name |
| ${COMPANY_ADDRESS} | Your company address, formatted on multiple lines |
| ${COMPANY_LINE1} | Your company street address |
| ${COMPANY_LINE2} | Your company address line 2 |
| ${COMPANY_CITY} | Your company city |
| ${COMPANY_STATE} | Your company state or province |
| ${COMPANY_ZIP} | Your company postal code |
| ${COMPANY_CITY_LINE} | Your company city, state and postal code on one line |
| ${COMPANY_PHONE} | Your company phone number |
| ${COMPANY_EMAIL} | Your company email address |
| ${COMPANY_WEBSITE} | Your company website |
| ${COMPANY_TAX_ID} | Your company tax ID, from Team settings |
QuickBooks Online — Sales Register
A sales register lists every invoice, sales receipt and credit memo in a period, one row each. Credit memos are negative, so the totals are what you actually sold. Amounts are in your home currency; ${LINE_CURRENCY} and ${LINE_DOCUMENT_TOTAL} give each document's own currency and total. See Sales Register.
Custom fields work on each row too. A field on your sales prints as ${LINE_CUSTOM_…}, and a field on the customer as ${LINE_CUSTOMER_CUSTOM_…}, so a customer field named TIN becomes ${LINE_CUSTOMER_CUSTOM_TIN}.
Register
| Placeholder | Description |
|---|---|
| ${PERIOD_START} | First day of the period |
| ${PERIOD_END} | Last day of the period |
| ${ROW_COUNT} | How many documents the register lists |
| ${TOTAL_SUBTOTAL} | Total before tax in your home currency; credit memos are subtracted |
| ${TOTAL_TAX} | Total tax in your home currency; credit memos are subtracted |
| ${TOTAL_AMOUNT} | Total including tax in your home currency; credit memos are subtracted |
| ${GENERATED_DATE} | The date the register was made |
Register Rows — Auto Table
| Placeholder | Description |
|---|---|
| ${LINE_ITEMS} | Generates a complete table of the register rows (do not use inside your own table) |
Register Rows — Row Placeholders
| Placeholder | Description |
|---|---|
| ${LINE_ROW_NUMBER} | Row number, starting at 1 (place in a table row — row will be cloned per document) |
| ${LINE_TYPE} | Invoice, Sales receipt or Credit memo |
| ${LINE_DATE} | Date of the document |
| ${LINE_NUMBER} | Document number |
| ${LINE_CUSTOMER_NAME} | Customer display name |
| ${LINE_CUSTOMER_TAX_ID} | Customer tax ID from the customer record |
| ${LINE_MEMO} | Message on the document, or the first line's description when there is none |
| ${LINE_SUBTOTAL} | Amount before tax in your home currency; negative on a credit memo |
| ${LINE_TAX} | Tax in your home currency; negative on a credit memo |
| ${LINE_TOTAL} | Total including tax in your home currency; negative on a credit memo |
| ${LINE_CURRENCY} | Currency the document was written in, like USD; blank when QuickBooks multicurrency is off |
| ${LINE_DOCUMENT_TOTAL} | Total in the document's own currency, as printed on it; negative on a credit memo |
Your Company
| Placeholder | Description |
|---|---|
| ${COMPANY_NAME} | Your company name |
| ${COMPANY_ADDRESS} | Your company address, formatted on multiple lines |
| ${COMPANY_LINE1} | Your company street address |
| ${COMPANY_LINE2} | Your company address line 2 |
| ${COMPANY_CITY} | Your company city |
| ${COMPANY_STATE} | Your company state or province |
| ${COMPANY_ZIP} | Your company postal code |
| ${COMPANY_CITY_LINE} | Your company city, state and postal code on one line |
| ${COMPANY_PHONE} | Your company phone number |
| ${COMPANY_EMAIL} | Your company email address |
| ${COMPANY_WEBSITE} | Your company website |
| ${COMPANY_TAX_ID} | Your company tax ID, from Team settings |
Custom fields
If you have custom fields on your QuickBooks invoices, estimates, purchase orders, and credit memos, they are automatically available as placeholders. This includes all custom field types: text, number, date, and dropdown lists.
QuickBooks offers no transaction custom fields on bill payments, customer statements, and sales registers, but vendor and customer custom fields are still available on them.
How custom field placeholders are named
All custom field placeholders are prefixed with CUSTOM_ to clearly distinguish them from built-in fields. The rest of the name is converted to UPPER_CASE with underscores replacing spaces, and special characters (periods, commas, etc.) are removed.
Examples:
| Custom field name in QuickBooks | Placeholder to use in template |
|---|---|
| Place of Supply | ${CUSTOM_PLACE_OF_SUPPLY} |
| Customer PO No. | ${CUSTOM_CUSTOMER_PO_NO} |
| Delivery Status | ${CUSTOM_DELIVERY_STATUS} |
| Customer In Charge | ${CUSTOM_CUSTOMER_IN_CHARGE} |
Dropdown fields
Dropdown (list) custom fields are fully supported. When you use a dropdown custom field in QuickBooks, the placeholder is populated with the selected option's display text — not the internal ID. For example, if your "Delivery Status" dropdown has options "Customer Arranged" and "Inclusive", the placeholder will contain the text "Customer Arranged", not a number.
Viewing your custom fields
You can see the exact placeholder name and current value for each custom field by opening any entity detail page in the app. Custom fields appear in their own "Custom Fields" section with a copy button so you can paste placeholder names directly into your template.
If you've recently added or changed custom fields in QuickBooks and they aren't appearing correctly, click the refresh button on the Custom Fields section to update.
Adding new custom fields
Any custom field you add in QuickBooks will automatically be available as a placeholder — no configuration needed. Custom fields work on your invoices, estimates, purchase orders, and credit memos.
Customer and vendor custom fields
Custom fields on customer and vendor records in QuickBooks are also supported. These are extracted automatically when generating a document and use the same CUSTOM_ prefix. For example, if you add a "VAT Number" custom field to a customer in QuickBooks, it will be available as ${CUSTOM_VAT_NUMBER} in your template.
Customer custom fields appear in their own "Customer Custom Fields" section on the entity detail page. When viewing your purchase orders and bill payments, vendor custom fields appear in a "Vendor Custom Fields" section instead.
Shorthands
If a placeholder name is too long for your template layout — especially in narrow table columns — you can create a shorthand. A shorthand is a shorter name that maps to a standard placeholder, so you can use either one in your template.
For example, you could create the shorthand POS for CUSTOM_PLACE_OF_SUPPLY, then use ${POS} in your template instead of ${CUSTOM_PLACE_OF_SUPPLY}. Both will produce the same result.
Creating a shorthand
- Browse to any entity detail page (e.g., view an invoice)
- Find the placeholder you want to shorten
- Click the + button next to it
- Enter your shorthand name and click Save
Shorthands must use uppercase letters, numbers, and underscores, and cannot conflict with existing placeholder names. They are saved per connection and entity type, so you can define different shorthands for invoices and estimates if needed.
You can add filters after a shorthand, just as after any placeholder: ${POS|upper}.
Editing or removing a shorthand
On the entity detail page, shorthands appear as a green-tinted chip next to the standard placeholder. Click the pencil icon to edit or remove it.
Your company tax ID
${COMPANY_TAX_ID} is the one company placeholder that doesn't come from QuickBooks. QuickBooks doesn't share your company's tax number with apps, so you enter it once under Team > Settings > Tax ID.
Date formatting
All date placeholders (including ${LINE_SERVICE_DATE}) respect your team's date format setting. To change the format, go to Team > Settings and select your preferred format from the dropdown.
Filters
A filter changes how one placeholder prints. Add it after the placeholder name with a |:
${TOTAL_AMOUNT|plain}prints1234.50instead of1,234.50${CUSTOMER_NAME|upper}printsACME TRADING${INVOICE_DATE|date:Ymd}prints20261001
You can chain filters. They run left to right, so ${TOTAL_AMOUNT|abs|plain} prints 1234.50 for a credit of -1,234.50.
You don't have to type filters by hand. In the placeholder lists, open a placeholder's menu and choose Format…. Choose the formatting you want, check the preview, and copy the result into your template. On a record's page, the preview uses that record's real value.
Some filters take a setting after a colon, like |round:0. Don't put quotes around settings: write |default:N/A, not |default:"N/A". Filter names can be upper or lower case.
Available filters
| Filter | Use on | Example | Prints |
|---|---|---|---|
plain |
amounts, numbers | ${TOTAL_AMOUNT|plain} |
1234.50 |
round:n |
amounts, numbers | ${TOTAL_AMOUNT|round:0} |
1,235 |
abs |
amounts, numbers | ${TOTAL_AMOUNT|abs} on a credit memo |
1,234.50 |
words |
amounts | ${TOTAL_AMOUNT|words} |
One thousand two hundred thirty-four and 50/100 |
words:CUR |
amounts | ${TOTAL_AMOUNT|words:LKR} |
Rupees one thousand two hundred thirty-four and cents fifty only |
date:format |
dates | ${INVOICE_DATE|date:d/m/Y} |
01/10/2026 |
upper, lower, title |
text | ${CUSTOMER_NAME|upper} |
ACME TRADING |
default:text |
anything | ${CUSTOM_PO|default:N/A} |
N/A when blank |
pad:n |
anything | ${INVOICE_NUMBER|pad:5} |
00042 |
truncate:n |
text | ${LINE_DESCRIPTION|truncate:40} |
The first 40 characters |
quarter:m |
dates | ${INVOICE_DATE|quarter:4} |
3 for October |
month_of_quarter:m |
dates | ${INVOICE_DATE|month_of_quarter:4} |
1 for October |
fiscal_year:m,digits |
dates | ${INVOICE_DATE|fiscal_year:4,2} |
26 for April 2026 to March 2027 |
Filters work in table rows too: ${LINE_AMOUNT|abs} fills every row.
Amounts in words
words spells out an amount. On its own it uses the style printed on US checks. Add a currency code for that currency's wording: USD, LKR, INR, GBP or AUD.
A negative amount starts with "Minus". To spell a credit as a positive amount, put abs first: ${TOTAL_AMOUNT|abs|words:GBP}.
Dates
date takes the same letters PHP uses for dates. The most useful are d (day, 01), j (day, 1), m (month, 10), F (October), M (Oct), Y (year, 2026) and y (26).
The fiscal filters take the month your fiscal year starts, from 1 to 12. A fiscal year is named by the calendar year it starts in. For a year starting in April, ${INVOICE_DATE|fiscal_year:4,2}${INVOICE_DATE|quarter:4} prints 263 for an invoice dated October 2026.
Mistakes
When you upload a template, we check its filters. A misspelled filter, a missing setting, or a filter that doesn't suit its placeholder (like words on a customer name) shows as a warning. Until you fix it, that placeholder prints without the filter.