Via the expense rules, you can set up rules to automatically flag expenses that violate your company's expense policy or even automate the approval flow.

Below you can find a detailed article about the different options you have when creating an expense rule.

To access the rules, go to Admin settings > Expense rules. You can add a rule by clicking on the button in the top right corner.


The first setting is to which users this rule should apply, you can filter on branches, groups, and users, or you can leave the drop-down at 'everyone' so the rule will apply to the entire company.


The next step in the setup is the conditions that have to be met to trigger the rule.

The first option is categories: here you can select the categories to which the rule should apply. We show the categories per branch, so you can easily see for which branch you have selected the category.

Secondly, you have the option to set a rule on a custom field. These will apply to the different custom fields: group, user, expense, trip of expense or project of expense. 

After selecting the type of custom field, you have to select the specific custom field you want the rule to apply to.

In the example below, we've chosen to set a rule on our custom field 'project type' for the custom field values 'Internal' and 'External'.

Note that at least one custom field value should be selected to create the rule.

The next condition is the amount, you can select 'more than, less than, or equal to'. You can enter one amount in one of the currencies you have enabled in the account.

If you have caps based on the country where the expense was incurred, you can add as many countries as you like with the 'add country' button. Here you can add countries, amounts, and currencies as a limit. Note: the country field must be enabled on the expense level to be able to identify in which country a certain expense was made.

We also have some other options to calculate the amount:

  • per individual expense: we check on an expense level if the rule has been violated

  • per night: if the check-in/ check-out date feature is enabled on the hotel category, we will calculate the amount per night and check if this is within the limit in the rule

  • per day: same logic as for the check-in/check-out date feature, but per day instead of per night

  • per week: the sum of the expenses that were made over the period of a week

  • per month: the sum of the expenses that were made over the period of a month

  • per year: the sum of the expenses that were made over the period of a year

You can also enable the 'per attendee' checkbox, so if a meal expense has 3 people @mentioned in it, we calculate the amount per attendee.

Rules can also be triggered based on the fact if there is a receipt attached or not:

Rules can also be triggered based on whether the expense was during the weekend or workweek:

And, last but not least, you can also trigger rules based on how long after the expense date an expense was submitted:


When the conditions are completed, you can enter what actions should happen when the rule is triggered.

Show warning in expense: the user/approver/controller/finance will see that the expense is marked and a warning message will be shown to explain what rule has been triggered.

To the user, the warning will show with a ⚠️ icon and the warning message displayed in a yellow banner. 

Auto approve and/or control: you can select if the expenses should be auto approved, auto controlled or both.

Create counter expense with excess amount: you can automatically create a counter negative expense for expenses that are above budget.

Create counter expense with fixed amount: you can deduct a fixed amount from all expenses triggered by this rule (for meal voucher deductions for example). The deduction will only happen once a day (based on the date the expense was made).

Name & status

Lastly, you can give a name, description and status to the rule. If you are not ready with the setup of the rule, and you want to keep the progress you already made, you can save the rule as 'inactive', so you can finish the setup later on.

Did this answer your question?