Customizing an Invoice or Receipt
Customizing your invoice and receipt templates allows you to generate documents that reflect your practice's branding, include information customers may need for reimbursement, and use terminology that is familiar to your customers.
Unlike letter templates, invoice and receipt templates use ledger-generated content. As a result, not all placeholders available from the Format menu are supported. We recommend using the placeholders documented in this article or those already included in an existing invoice or receipt template to ensure your templates display correctly.
Best Practice
We recommend duplicating an existing invoice or receipt template rather than creating one from scratch. Existing templates already contain the correct ledger tables and supported placeholders.
If you want to use placeholders from another template, open both templates at the same time so you can easily copy and paste supported placeholders between them.
Finally, check out our Webinar and Videos category and look for Quick Tips and Videos for letters to gain familiarity with creating templates.
Opening an Existing Invoice or Receipt Template
- From TopsOrtho>Practice Set-up>Letters/Forms, select the Forms tab.
- Locate the Transactions/Ledger Forms section.
- Select the invoice or receipt template you want to view.
- Click Edit.

- (Optional) To add a background image, select the field next to Background and choose the desired background. For more information, see the related Knowledge Base article listed at the bottom of this page.
- Click Edit Layout

Template Components
Invoice and receipt templates consist of several different elements.
- Text Boxes contain information displayed on the template. Text boxes contain placeholders and static data. Some text boxes are fixed in position and should not be resized or moved.
- Placeholders (highlighted in yellow) automatically populate patient and ledger information. Some placeholders use string values, while a select few can be inserted from Format>Show Placeholders. Only supported placeholders should be used.
- Transaction Tables automatically display ledger transactions. Right-click a table and select Change Table to modify its properties.
- Static Text includes items such as practice information, column headings, and balance labels. Double-click a text box to edit this text.

Example Components
|
Text Boxes Text boxes are used to display both static text and dynamic content throughout the receipt. Some text boxes are intentionally fixed in size and position and should not be moved or resized. They are designed to display their contents without requiring adjustment. Other text boxes are dynamic. Depending on the placeholder data they contain, they may automatically expand, shrink, or reposition to accommodate the merged content. Use the Inspector (available from the Format menu) to view and manage a text box's positioning and resizing properties. This helps maintain proper alignment when placeholder data is merged into the document. |
|
|
Placeholders Placeholders (highlighted in yellow) automatically pull information from the patient's chart. Whenever a placeholder is available, it is recommended to use it to ensure the receipt always displays the most current information, such as the assigned orthodontist, treating office location, patient balance, and more. Some placeholders display information using string values, while others are inserted directly from From>Placeholders, such as Letter: Short Date. Double-clicking a placeholder displays its associated string value. For a list of string values that are unique to invoices and receipts, see the Invoice and Receipt String Values section later in this article. Example String Value <string value="letterDate" type="short date"/> |
|
|
Transaction Table Customizable transaction tables display information from a patient's ledger. To modify a transaction table:
|
|
|
Static Text Static text includes fixed labels such as column headers, practice information, and balance identifiers.
|
|
Ready to Get Started? Customize an Invoice or Receipt.
- Select the invoice or receipt template you want to modify.
- Click Duplicate
- Rename the duplicated template.
-
Click Edit Layout

- The template will display; you will notice it contains a lot of yellow placeholders. These placeholders pull information automatically from the patient chart.
- To remove a placeholder, click on it in the template and press Delete on your keyboard.
- To draw a text box where the placeholder was, click the tool within the Letters Toolbar that looks like a script A. Draw your text box where you would like it to appear on the template.
- Add static text and placeholders where you want the information to popoulate.
- When you are satisfied with your edits, go to File > Save and close your template.
Review your invoice or receipt for necessary changes. Below are helpful placeholders that can be used to accomplish the receipt details.
**Pro Tip: Use Command-S to save your work as you modify or create a custom receipt.**
Receipt String Values/Placeholders
| Practice and Provider Placeholders | String Value |
| Practice Name | <string value="systemDefaults.practiceName"/> |
| Provider Pay-to NPI Number | <string value="patient.orthodontistOfficeInsuranceEntity.payToEntityNPINumber"/> |
| Rendering Orthodontist License Number | <string value="patient.orthodontistOfficeInsuranceEntity.renderingEntityLicenseNumber"/> |
| Rendering Orthodontist NPI | <string value="orthodontist.npiNumber"/> |
| Office Street Address | <string value="patient.office.streetAddress"/> |
| Office City | <string value="patient.office.city"/> |
| Office State | <string value="patient.office.stateProvince"/> |
| Postal Code | <string value="patient.office.postCode"/> |
| Office Phone | <string value="patient.mailingOffice.phone"/> |
| Financial Placeholders | Account 1 String Value | Account 2 String Value |
| Contract Amount | <string value="patient.patientAccountBalances.contract_amount_a" type="money"/> | <string value="patient.patientAccountBalances.contract_amount_b" type="money"/> |
| Remaining Expected Insurance | <string value="patient.patientAccountBalances.expected_insurance_a" type="money"/> | <string value="patient.patientAccountBalances.expected_insurance_b" type="money"/> |
| Remaining Total Balance | <string value="patient.patientAccountBalances.total_balance_a" type="money"/> | <string value="patient.patientAccountBalances.total_balance_b" type="money"/> |
| Remaining CoPay Balance | <string value="patient.patientAccountBalances.copay_balance_a" type="money"/> | <string value="patient.patientAccountBalances.copay_balance_b" type="money"/> |
| Remaining Future Due | <string value="patient.patientAccountBalances.future_due_a" type="money"/> | <string value="patient.patientAccountBalances.future_due_b" type="money"/> |
| Due Now as of the last transaction on the Receipt | <string value="endingAltDueNow" type="money"/> |
|
| Previous Account Due |
<if not="" value="voidedReceipt"> <string value="beginningAltDueNow" type="money"/> |
|
| Total Payments | <string value="totalAmountPaid" type="money"/> |
|
| Total Fees | <string value="totalAltFee" type="money"/> |
|
| Patient HealthFund Code (Australia Only) | <string value="patient.healthFundCodeTypeLabelOnEarliestDate"/> |
|
| Patient Placeholder Name | String Value |
|---|---|
| Patient Full Name | <string value="patient.fullName"/> |
| Patient Chart ID | <string value="patient.chartNumber"/> |
| Patient Custom Chart ID | <string value= “patient. customIdentifier”/> |
| Patient Address | <string value="patient.address"/> |
| Account Holder Full Name | <string value="accountHolder.titledFullName"/> |
| Account Holder Street Address | <string value="accountHolder.streetAddress"/> |
| Account Holder City | <string value="accountHolder.city"/> |
| Account Holder State | <string value="accountHolder.stateProvince"/> |
| Account Holder Postal Code | <string value="accountHolder.postCode"/> |
| Case Start Date | <string value="patient.activeTreatmentCase.treatmentStartDate" type="medium date"/> |
| Case End Date | <string value="patient.activeTreatmentCase.treatmentEndDate" type="medium date"/ |
| Receipt Date short | <string value="receiptDate" type="short date"/> |
| Page Number | <string value="pageNumber"/> |
| Total Pages | <string value="totalPages"/> |
Transaction Table
Examples:

| Identifier - | Title - Customizable |
|---|---|
| accountTransactionDate | Date |
| insCodeA | Dental Code |
| transactionLabel | Fee/Payment Type |
| altFee | Fee |
| altAmountPaid | Paid |
| notes | Ledger/Transaction Notes |







