
Preferences
The Preferences section under Settings allows you to customise certain functions of Zoho Invoice. This section is broadly divided into General, Customers, Items, Projects, Sales and Purchase modules.
IN THIS PAGE…
General
To configure General Settings, click on the Gear Icon found on the top right hand side corner of the screen and click on More Settings. You will be taken to the Preferences section.
Through the General Settings, you can customise your Zoho Invoice account by selecting your preferences for the various options provided below.
Select the modules you would like to enable: Check the modules to enable them. Estimates, Timesheet & Retainer Invoice modules can be enabled from here. After enabling the module, you will be able to use those modules in your Zoho Invoice account. Once Timesheet module is enabled, the options from Timesheet is shown.
Rounding time: This will adjust the time to the nearest, above or below value. This will appear on invoices and reports.
Set max hours/day: This will be the max hours you define as a day in your business.
Attach PDF file with the link while emailing the invoice & estimate?: Check this option if you wish to attach a PDF copy of your invoice & estimate while emailing, leave it unchecked if you wish not to include the PDF file.
Would you like to encrypt the PDF files that you send?: Checking this option will prevent the user from
1. editing the PDF files and
2. converting them into other file formats.Transaction Approval: This allows you to verify and approve the transactions that your employees create. Check the box to enable transaction approval for Sales Transactions.
Once enabled, you can enable or disable the following preferences by checking the box:- Notify when transactions are submitted for approval: Sends an email notification whenever a transaction is submitted for approval. You can send the notification for all approvers or only to one approver based on your preferences.
- Notify the submitter when a transaction is approved: Sends an email notification whenever a transaction approved.
Do you give discounts?: If you offer discounts to your customers, choose whether you offer discount At Individual Item level or At invoice level. Selecting At invoice level will have options from the drop down for Discount Before Tax and Discount After Tax. If you do not offer any discounts, choose I don’t give discounts.
Select any additional charges you’ll like to add: If you wish to add charges related to shipping in the sales modules, check the Shipping Charges option. If there are any other adjustment you like to add, check on the Adjustments option. Leave them unchecked if you wish not to add any.
Do you sell your items at rates inclusive of Tax? Checking this option will let you mark your sales transactions as ‘Tax Exclusive’ or ‘Tax Inclusive.’
I want to add a field for sales person: Check this option, if you would like to have a field for sales person operating your sales modules. Leave it unchecked if you wish not to have any field for the sales person.
Organisation Address Format: Set the address formats for your organisation from the placeholders provided. These will be displayed in the PDF only.
Branding
Personalise your Zoho Invoice account to go with your brand.
The Branding section has three tabs:
General
Under this tab, you can:
Upload your organisation logo that will be visible on all your documents. (Estimates, Invoices, etc.)
Upload the favicon of your choice.
You can choose and apply themes to your Zoho Invoice organisation. If you have multiple organisations, you can differentiate between them by setting a theme for each organisation.
- Would you like to keep Zoho branding on your Invoices and Estimates?: You can enable this option if you wish to have Zoho branding on your invoices & estimates.
Note: The option to upload favicon will be available only if you’d configured a custom domain for your organisation.
Portal Settings
This tab allows you to configure your client portal.
Once you’re in the tab, start with entering a name for your client portal.
You can enter a welcome message in the space provided for Banner Message. This message will be shown to your clients when they log in to the portal for the first time.
Click on the check-box against Send me email notification for every activity that takes place in the portal if you wish to receive email notifications for every activity that your client does in the portal.
Click on the check-box against Allow customers to forward documents from portal if you wish to let your clients forward documents. Please note, the people whom they forward the document to will be added as contact persons in the contact information for that client.
Click on the check-box against Send an email notification to customers when I comment on Invoices/Estimates if you wish to have an email sent to your customers whenever you add a comment for any transaction.
Click on Enable customer review for my services if you wish to receive review from your customers to know how happy they are with your organisation’s services.
Click on the check-box Allow customers to view projects and timesheets if you want to give your clients access to the time logged for each project/task.
Click on the check-box Allow customers to edit their information to permit your customers to edit their billing/shipping address and contact details.
Once done, click on Save.
Customers
Configure preferences related to the Customers module. Learn more.
Items
Configure preferences related to the Items module. Learn more.
Estimates
Configure preferences related to the Estimates module. Learn more.
Invoices
Configure preferences related to the Invoices module. Learn more.
Recurring Invoices
Configure preferences related to the recurring invoices module. Learn more.
Credit Notes
Configure preferences related to Credit Notes. Learn more.
Delivery Note Settings
If you ship or deliver the products you sell to your customers, then you can configure your Delivery Note settings here. A Delivery Note lists the contents of the package, what the recipient has ordered and what has been sent to them. Typically, a Delivery Note includes description and quantity of the items delivered. In some cases, a copy of the Delivery Note is signed by the recipient and then returned to the seller or consignor as a proof that the items have been delivered.
To configure Delivery Note settings, click on the Gear Icon found on the top right hand side corner of the screen and click on More Settings. Click on Preferences and select the Delivery Note Settings tab.
Document Title: By default, the document title will be given as Delivery Note. You can change the name of this field as per your preference.
Transaction Number: This field displays the Transaction Number related to a specific delivery. You can change the name of the field as per your preference.
Date Field: By default, the field where the date is displayed will be shown as Date Field. You may customise it as per your preference.
Item: The field which shows the items which are being delivered will be displayed as Item. You can customise the name of this field as per your preference.
Description: The description of the items being delivered will be provided in this field. You can change the name of this field, as per your preference.
Quantity: The quantity field will display the quantity of the items being delivered. You can change the name of the field as per your preferene.
Reference Field: This field displays the reference number or code for the Delivery Note. By default the preference to display this field in the Delivery Note will be selected. Enter the name under which this field should be displayed. Uncheck the check box next to this field, to exclude it from the Delivery Note.
Bill To: This field will display the name of the person to whom the items are billed. By default this field will be selected and you can change the name of this field. If you wish to exclude this from the Delivery Note, you can uncheck the check box next to this field.
Delivery To: You can enter the name of the person to whom the items will be delivered, in this field. By default this field will be selected and you can change the name of this field. You can exclude this field from the Delivery Note, if you wish, by unchecking the check box next to this field.
Signature: In case you require a signature from the customer on the Delivery Note, as a proof of receipt of the items, you can include this field. You can change the name of this signature field, if you prefer. If you wish to exclude this field in the Delivery Note, uncheck the check box next to this field.
Balance Due: This field displays the balance due from the customer. You can change the name of this field as per your preference. If you wish to exclude this from the Delivery Note, uncheck this field.
Show Customer Notes: If you wish to display the customer notes from the invoice, which is related to a specific Delivery Note, you can select this option.
Click Save once you are done configuring.
Packing Slip Settings
A packing slip will include details of the contents in a package you deliver. The purpose of a packing slip is to inform all the parties, i.e. transport agencies, government authorities and customers, about the contents of the package which is being delivered.
To configure Package Slip settings, click on the Gear Icon found on the top right hand side corner of the screen and click on More Settings. Click on Preferences and select Packing Slip Settings tab.
Document Title: By default, the document title will be given as Packing Slip, you can change this as per your preference.
Transaction Number: This field displays the Transaction Number related to a specific delivery. You can change the name of the field as per your preference.
Date Field: By default, the field where the date is displayed will be shown as Date Field. You may customise the name of this field as per your preference, if you wish.
Item: This field shows the items which are in the package and will be displayed as Item. You can customise the name of this field as per your preference, if you wish.
Description: The description of the items will be under this field. You can change this as per your preference.
Quantity: This field will display the quantity of the items. You may change the name of this field as per your preference.
Reference Field: This field displays the reference number or code. By default the preference to display this field in the Packing Slip will be selected. Enter the name under which this field should be displayed. Uncheck the check box next to this field to exclude it from the Packing Slip.
Bill To: This field will display the name of the person to whom the items are billed. By default this field will be selected and you can change the name of this field. If you wish to exclude this from the Packing Slip, you can uncheck the check box next to this field.
Delivery To: You can enter the name of the person to whom the items will be delivered, in this field. By default this field will be selected and you can change the name of this field. You can exclude this field from the Packing Slip, if you wish, by unchecking the check box next to this field.
Signature: In case you require a signature from the customer on the Packing Slip, as a proof of receiving the items ordered, you can include a signature field. You can change the name of this signature field, if you prefer. If you wish to exclude this field in the Packing Slip, uncheck the check box next to this field.
Balance Due: This field displays the balance due from the customer. You can change the name of this field as per your preference. If you wish to exclude this from the Packing Slip, uncheck this field.
Show Customer Notes: If you wish to display the customer notes from the invoice, which is related to a specific Packing Slip, you can select this option.
Click Save once you are done configuring.
Field Customization
In Zoho Invoice, you can create additional fields called custom fields for different modules. These fields can be used to record additional information for customers and transactions.
When will custom fields be used?
Let’s say you run a business where you wish to record the birthdays of your customer. In such a case, you can create a custom field in the Customers module with an appropriate label name and select the data type as Date.

- Create Custom Field
- Custom Field Limitations
- Custom Fields Usage
- Edit Custom Field
- Mark Field as Inactive/Active
- Delete Custom Field
Create Custom Field
To create a new custom field:
- Go to Settings > Preferences.
- In the left menu, select the module for which you want to add the custom field.
- Select the Field Customization tab on the top of the page.
- Click the + New Custom Field button in the top right corner of the page.

Fill in the following fields:
- Label Name: Enter a name for your custom field. This field will be displayed when you are entering data in the respective module.
- Data Type: Choose the type of data that you’re going to enter for this field. The data types supported in Zoho Invoice are as follows:
Data Type Name | Description |
---|---|
Text Box (Single Line) | You can enter a maximum of 100 characters. |
Text Box (Multi-line) | You can enter a description or note with a maximum of 36,000 characters. |
An email address can be stored using this data type. | |
URL | This data type allows you to enter a URL. |
Phone | You can enter a contact number for this data type. |
Number | You can enter any positive or negative number. |
Decimal | You can enter any positive or negative decimal number. |
Amount | You can enter any amount using this data type. It will be displayed along with the currency symbol. It can be your organisation’s base currency or the currency for that particular transaction. |
Percent | You can enter any positive number as a percentage. |
Date | You can select a date from the date picker. |
Checkbox | You can add a checkbox with a small text or description to explain what the checkbox is for. For example, it may be used to confirm an action or to make a choice. |
Auto-Generate Number | While creating transactions, you can create a custom field with this data type if you wish to generate the data in a series automatically. For example, you can create a custom field called ‘Expense Reference’ and enter the values as shown in the image below,![]() Henceforth, for every expense you create, this field will be generated automatically. |
Drop-down | A list of options can be added and you can select one from them. |
Multi-select | Similar to the drop-down data type where you can provide a list of options, but here you can choose multiple options (a maximum of five) as its values. |
Lookup | You can pull data from one module and access it inside another module. Read more. |
- Help Text: Enter a short text describing the purpose of this custom field. This will be displayed as a help text when this custom field is used in the corresponding module.
- Is this PII?: Personally Identifiable Information (PII) is confidential information and is used to identify a person. PII can be sensitive (transmitted in an encrypted form) or non-sensitive (not encrypted) data. Fields such as Text, Email, URL, Phone, Number and Date can be marked as PII. You can choose the following options for your fields:
- Yes it’s PII. Encrypt and store it: Data is sensitive and should be encrypted. This data can be viewed only by users who have permission to access PII.
- Yes it’s PII but not sensitive. Store it without encryption: Data is sensitive but not encrypted.
- No it’s not PII: Data which is not sensitive and doesn’t need to be encrypted.
- Default Value: Enter a value which should be displayed by default for this field. You can always change it while creating the transaction.
- Is Mandatory: Mark this option as Yes, if you want the custom field to be a mandatory one, i.e, it shouldn’t be left blank.
- Show in all PDF: Mark this option as Yes, if you want the custom field to be displayed in the transaction’s PDF.
- Preview: You will be able to see what the custom field will look like, when creating a transaction.
After entering all the details, click Save. From now on, when you enter data in the respective module, the custom field will be displayed.
Custom Fields - Limitations
There are certain limitations to the number of custom fields that can be created for each data type. Based on the limitations, custom fields are split into five sections:
String
Data Type | Maximum Custom Fields |
---|---|
Text Box (Single Line) | 20 |
2 | |
URL | 2 |
Phone | 2 |
Auto-Generate Number | 1 |
Dropdown | 5 |
Multi-select | 2 |
The sum of the custom fields created for the data types mentioned above should not exceed 20.
Numerical
Data Type | Maximum Custom Fields |
---|---|
Number | 8 |
Date | 4 |
Lookup | 5 |
The sum of the custom fields created for the data types mentioned above should not exceed 12.
Decimal
Data Type | Maximum Custom Fields |
---|---|
Amount | 4 |
Decimal | 4 |
Percent | 2 |
The sum of the custom fields created for the data types mentioned above should not exceed 4.
Boolean
Data Type | Maximum Custom Fields |
---|---|
Checkbox | 3 |
Long Text
Data Type | Maximum Custom Fields |
---|---|
Text Box (Multi-line) | 5 |
Custom Fields Usage
You can keep track of the number of custom fields created in your organisation using the Custom Fields Usage option. This will help you to create custom fields based on their availability.
- Go to Settings > Preferences.
- Select the module for which you want to edit the custom field.
- Select the Field Customization tab.
- Click the Custom Fields Usage option at the top.


Edit Custom Field
You can change the details of a custom field at any time. Here’s how:
- Go to Settings > Preferences.
- Select the module for which you want to edit the custom field.
- Select the Field Customization tab on the top of the page.
- Hover over the custom field that you want to edit.
- Click Edit.
- Make the required changes.
- Click Save.

Mark Field as Inactive/Active
If you’d like to stop using a custom field temporarily, you can choose to mark it as inactive.
To mark a custom field as inactive:
- Go to Settings > Preferences.
- Select the module for which you want to mark a custom field as inactive.
- Select the Field Customization tab.
- Hover over the custom field you want to mark inactive and click the Dropdown icon.
- Select Mark as Inactive.

If you have marked a custom field as inactive, you can make it active again by following the same steps as above and selecting Mark as Active.
Delete Custom Field
You can delete a custom field you have created in Zoho Invoice. Here’s how:
- Go to Settings > Preferences.
- Select the module for which you want to delete the custom field.
- Select the Field Customization tab.
- Hover over the custom field you want to mark active and click the Dropdown icon.
- Select Delete Custom Field.

If you have added data in a custom field which is associated with a transaction, you cannot delete the custom field. If you want to delete the custom field, you would have to delete the corresponding transaction.
Alternatively, you can mark the custom field as inactive.
API Field Name
Once you save a custom field, you can edit it to find the API Field Name. This name will be used when referring to this custom field for an API call.

Validation Rules
Validation Rules in Zoho Invoice help you create new rules that set restrictions for the data being recorded. So, when a user tries to enter data in a field that you have set a restriction for, it passes through the validation rule. If the value you enter in the field violates the condition you’ve set, an alert message is displayed and the transaction is not created. The user will also be able to set multiple criteria for a single validation rule.
Currently, Validation Rules are available only for the Estimates module.
Note: This feature is available only for the users in the Premium Plan (India) and Professional Plan (all other editions) of Zoho Invoice.
Let us understand how validation rules work with the help of few scenarios.
Scenario 1: Peter runs a catering business where he takes orders from his clients and provides them services. When customers enquire for the details, he sends out an estimate to the customer and also provides a small discount. When Peter is unavailable, his team reaches out to the customers. Sometimes, his staff tends to quote a higher discount that Peter might not really approve of. Peter wonders how he can prevent this, and immediately sets up a validation rule to not create an estimate with more than 10% discount.
Scenario 2: Peter also wants his employees to enter the terms and conditions of an ongoing-offer in the transaction. He creates a rule and ensures that the users are not able to create a transaction without entering the terms and conditions.
In this section:
- Create Validation Rule
- Multiple Criteria and Subrules
- Execute Validation Rules
- Other Actions for Validation Rules
Create Validation Rule
You can create a validation rule by setting certain criteria for the fields in a transaction. Here’s how:
- Go to Settings > Preferences.
- Select the module for which you would like to create a validation rule (for example, Estimates).
- Go to the Validation Rules tab and click + New Validation Rule.
- Choose the field for which you want to create a validation rule. This can either be a custom field or any of the default fields in a transaction.
- Add the condition to be met in the adjacent drop-down menus.
- Enter the Alert Message to be displayed when the transaction violates the validation rule.
- Click Continue and in the page that follows, click Save.
If you want to create a new validation rule for the same field:
- Select the field for which you had created a validation rule (from the list page).
- Click + Add Another Validation and repeat the steps mentioned above.
Multiple Criteria and Subrules
A validation rule is applicable for all transactions. However, if you would like to apply it for specific transactions based on multiple criteria, or create a new rule with the same condition, refer the following:
Adding Multiple Criteria
When you create a validation rule, it will be applicable for all transactions by default. You can also choose the rule to be applied to transactions based on specific criteria.
Scenario: (Based on Scenario 1) Peter had created a validation rule where the Discount cannot exceed 10% for the transactions created. However, he would like to customise this further as all transactions cannot have a maximum discount of only 10%. So he sets the criteria that the rule should be applicable only when the transaction total is under 100 and when there are shipping charges too.
Here’s how you can add multiple criteria:
- Go to Settings > Preferences.
- Select the particular module and go to the Validation Rules tab.
- For new rules: While creating a validation rule, enter the details and click Continue. In the page that follows, click the Pencil icon near the rule.
For existing rules: Click the Edit option in the validation rules list page and in the details page, click the Pencil icon near the rule. - Click the option Based on specific criteria in the pop-up that appears.
- Set the criteria using the options provided.
- Click + Add Criteria for more options and use the
-
sign to remove criteria. - Click Edit Pattern to change the criteria pattern based on your preferences and click Save.
- Click Done.
Adding Subrules
If you would like to include an additional rule to your existing condition, you can add Subrules. This is applicable only when you’ve chosen to apply the rule to transactions based on specific criteria.
Scenario: Peter had created a rule where the Discount cannot exceed 10% while creating transactions and had also customised it by adding certain criteria. Now, he’d like to use the same condition (<= 10% discount) but create a new rule that this condition is applicable only during off-seasons (July-Nov). So he creates a new subrule with the transaction date to be > July 1.
Here’s how you can create subrules:
- Go to Settings > Preferences.
- Select the particular module and go to the Validation Rules tab.
- Select the field for which you have created a validation rule.
- Click + Add Subrule and a pop-up appears.
- Enter the Criteria and the Alert Message.
- Click Done.
- Verify the subrule you had created and click Save for the changes to reflect.
Execute Validation Rules
Once a Validation Rule is created and saved, it will be applicable for all transactions created henceforth. When any new transaction violates a validation rule, an alert message will be displayed to the users.
Other Actions for Validation Rules
Once you’ve created a validation rule you will be able to edit, mark it as inactive or delete them. Here’s how:
- Go to Settings > Preferences.
- Select the module for which you’ve enabled validation rules.
- Hover over the validation field to perform the following actions:
- Edit: Change the message or the criteria of a validation rule.
- Mark as Inactive: Temporarily disable the validation rule. You can enable it again by clicking Mark as Active.
- Delete: Permanently delete a validation rule by clicking the Trash icon.
Custom Buttons
Zoho Invoice allows you to create new button actions with the help of an advanced feature called Custom Buttons.
Users can create new buttons and define a set of actions based on their requirements.
For example, You wish to apply a discount of 10% to your regular customers, on their monthly purchase amount. You can define this action in a function and create a button Discount10. Likewise, you can create new buttons and define a set of actions based on your necessity.
Create Custom Button
To create a custom button:
- Go to Preferences by clicking the gear icon on the top-right of your screen.
- Select Invoices tab under the preferences section.
- Click the Custom Buttons tab.
- Click + New Custom Button
In the following screen, you need to:
- Enter the name of the button. The button name should not exceed 25 characters.
- Select an option for Who can view this button?
- Write a custom function to trigger an action when a user clicks the custom button.
- Click Save.
Note:
- Custom Buttons are restricted based on user permissions. User creating the custom button can share each custom button with everyone or restrict it to self alone.
- Custom Button is currently available only for the Invoice Module.
- You can view the custom button in the invoice details page, under the More dropdown.
- A maximum of 10 custom buttons can be added.
- Custom Button feature is available only for users under the professional plan.
Related Lists
The Related Lists feature allows you to fetch and view data from within the app as well as from other third-party services. This comes in handy when you want to cross-reference data from different entities.
Note: This feature is available only for the users in the Professional Plan of Zoho Invoice.
You can create related lists for:
- Items
- Customers
- Sales - Estimates, Invoices, Retainer Invoices and Credit Notes
- Expenses
- Projects
Insight: You can create a maximum of 10 related lists for each module. For example, 10 for invoices, 10 for estimates, and so on.
In this section:
Create Related Lists
There are two ways to create a related list:
By creating a lookup custom field
The lookup custom field allows you to pull data from one module and access it inside another module in Zoho Invoice. When you create a lookup field in one module, its associated details will be available as a related list in the other module.
Scenario 1: Patricia wants to track the efficiency of users in her organisation. So, she decides to track the invoices the sales team create for a customer. For this, she creates a Lookup custom field in the Invoices module and for the module whose data she wants to access (in this case, Users).
By writing a deluge script
With deluge scripts, you can connect Zoho Invoice with other third-party services to access their data.
Scenario 2: Zylker uses Zoho Invoice for their sales, and Zoho Desk to address their customer queries. Now, the admin can write and execute a deluge script to fetch the customer happiness rating from Zoho Desk, and show the consolidated data in a tabular form under each customer in Zoho Invoice.
To create a related list using deluge:
- Go to Settings > Preferences.
- Go to the module for which you wish to create a related list. In this case, Customers.
- Navigate to the Related Lists tab.
- Click the New Related List button.

- Enter a suitable title for the related list, and choose who can see this list.
- Write a deluge script to fetch data from the connected third-party service. In this case, from Zoho Desk.

- Click Save, or Save and Execute to run the function.
The lists will be displayed under the Related Lists tab in the respective modules.

Note:
- The deluge script must return a map that contains ‘header_context’ and ‘data’ in the following format:
{
header_context: [
{
key: 'customer_name',
value: 'Customer Name'
},
{
key: 'invoice_number',
value: 'Invoice Number
}
],
data: [
{
customer_name: <customer_name>,
invoice_number: <invoice_number>
}
]
}
There are two ways to specify the value of the data node:
- To display a customer name as a string:
customer_name: <customer_name>
- To display a customer name as a hyperlink
customer_name: {
"value": <customer_name>,
"isExternal":true, // To open the link in separate tab.
"link": <web_url_path>
}
Edit/Delete Related Lists
To edit/delete a related list that you had created:
- Go to Settings > Preferences.
- Select the module which has the related list you wish to delete.
- Click the Related Lists tab.
- Hover over the list that you wish to delete/edit.
- Click Edit to make changes to the list or click the down arrow and select Delete to permanently delete.

Pro Tip: If you want to temporarily disable the related list, click the down arrow and select Mark as Inactive.
Sample Function
Here’s a sample function for Scenario 2 that allows Zoho Invoice users to access customer details in Zoho Desk:
searchMap = Map();
searchMap.put('fullName', customer.get("contact_name"));
searchMap.put('orgId', XXXXX); //Zoho desk orgId
searchList = invokeurl
[
url : "https://desk.zoho.com/api/v1/contacts/search"
type : GET
parameters: searchMap
connection: "zohodesk"
];
contacts = searchList.get('data').toList();
contact = contacts.get('0');
contactId = contact.get('id');
paramsMap = Map();
paramsMap.put('orgId', XXXXX);
paramsMap.put('include','owner');
contactInfo = invokeurl
[
url : "https://desk.zoho.com/api/v1/contacts/" + contactId
type : GET
parameters: paramsMap
connection: "zohodesk"
];
owner = contactInfo.get('owner');
happiness = contactInfo.get('customerHappiness');
headerData = List();
headerData.add({"key":"owner_name", "value":"Owner Name"});
headerData.add({"key":"good_percent", "value":"Good Percentage"});
headerData.add({"key":"bad_percent", "value":"Bad Percentage"});
headerData.add({"key":"desk_url", "value":"Desk Url"});
details = Map();
details.put("owner_name", owner.get('firstName') + owner.get('lastName'));
details.put("good_percent", happiness.get('goodPercentage'));
details.put("bad_percent", happiness.get('badPercentage'));
details.put("desk_url", {"value":contact.get('lastName'), "isExternal":true, "link":contactInfo.get('webUrl')});
listData = List();
listData.add(details);
resultMap = Map();
resultMap.put("header_context", headerData);
resultMap.put("data", listData);
return resultMap;