xMatix
Sign in Request demo
xMatix
PRODUCTS
SalesField Sales & SFACRMRewardsClaimsInventoryProcurementWarehouse ManagementField ServiceServiceSupportTelephony & MessagingFinance & AccountingPayrollExpense ManagementCommercePortalsAnalytics & ReportingData StudioMobile AppSee all products →
PLATFORM
Platform overviewApp BuilderAutomationIntegrationsSecurity & GovernanceChange ManagementDevelopers
SENSE AI
Sense AI overviewSense AssistSense ControlSense VisionAI StudioTrust & governanceIn Claude & ChatGPTUse cases
SOLUTIONS
Auto DMSConsumer Goods DMSSales Force Automation (SFA) FMCG & DistributionManufacturing & Dealer NetworksAutomotive & DealershipsPharma & HealthcareConsumer DurablesAgri-InputsBuilding MaterialsService NetworksWarehousing & 3PLFinancial AccountingERP SoftwareIndia GST ComplianceUAE VAT & e-InvoicingSaudi ZATCA & VATAll solutions →
RESOURCES
Knowledge CenterDeveloper & CLIBlogGuidesWhat is xMatix?Company facts
COMPANY
AboutCareersPartnersEventsContactAuthorsLegal
Sign in Request demo
Home/Docs/Entity Reference/Expense Policy Rule — entity reference
REFERENCE · Last reviewed

Expense Policy Rule — entity reference

One check inside an expense policy. Evaluate Policy on an expense claim runs every active rule of every policy that applies to the claim (same Partner Account as the claim, the claimant's grade, claim date inside the policy's effective window). The rule type is typed as text and must be one of the exact codes CategoryLimit, GradeHotelLimit, ReceiptMandatoryAbove, BlockedCategory, LateSubmissionDays or DuplicateDetection; any other text, including the codes CityClassLimit, ForeignTravelCap and MileageRate or a spaced version such as Category Limit, is saved but checks nothing. Each breach is recorded as an expense policy violation on the claim. The standard rule forms have no Action field, so a rule created from them records Warning findings only and never deducts; an administrator adds Action to the rule's form to use HardBlock, RequireHigherApproval or AutoDisallow.

Fields

FieldLabelTypeRequiredWhat it does
ActionActionTextWhat a breach does: HardBlock records the violation with severity Block, Warn and RequireHigherApproval record it with severity Warning, and AutoDisallow records it and adds the excess to the line's Disallowed Amount so it is not posted or reimbursed. Matched exactly as typed. None of the actions stops submission, approval or posting, and RequireHigherApproval adds no approval step. Not on the standard rule forms, so it stays empty unless an administrator adds it; an empty or unrecognised action records a Warning and deducts nothing.
CityClassCity ClassTextNot read by policy evaluation. Kept for information only.
CountryCountryTextNot read by policy evaluation. Kept for information only.
CreatedByIdCreated ByLookup → UserAccountYes
CreatedDateTimeCreated DateDateAndTimeYes
ExpenseCategoryIdExpense CategoryLookup → ExpenseCategoryYesThe expense category the rule checks. Required on the form, so every rule is tied to one category; to cover several categories, add one rule per category. LateSubmissionDays and DuplicateDetection ignore it and check every line of the claim.
ExpensePolicyIdExpense PolicyLookup → ExpensePolicyThe policy the rule belongs to. Filled automatically when the rule is added from the policy's Rules tab. A rule with no policy is never evaluated.
GLAccountNameNameText, uniqueYesNot stored for expense policy rules.
IdIdGuidYes
IsActiveIs ActiveBooleanWhether the rule takes part in evaluation. Only an explicit untick switches it off; an empty value counts as active. Shown on the rule's record page, not on the new-rule form. Switching a rule off releases any deduction it made the next time the claim is evaluated.
ModifiedByIdModified ByLookup → UserAccountYes
NameNameTextThe rule's number, assigned automatically from the expense policy rule numbering setting when the rule is saved.
OwnerIdOwnerLookup → UserAccountYes
PartnerAccountIdPartner AccountLookup → AccountThe company recorded on the rule. Not read by policy evaluation: which company a rule applies to comes from its policy's Partner Account.
RecordTypeIdRecord TypeGuid, hidden
RuleTypeRule TypeTextWhich check the rule runs. Typed as free text and matched exactly, including capital letters and without spaces: CategoryLimit and GradeHotelLimit (line amount plus tax above the threshold; the two work identically), ReceiptMandatoryAbove (line amount plus tax above the threshold with no receipt attached), BlockedCategory (every line in the rule's category), LateSubmissionDays (expense date more than the threshold in days before the claim date) and DuplicateDetection (same merchant, invoice number and amount on another line of the claim or on any earlier claim of the same employee). Anything else is stored but never checked.
ThresholdThresholdCurrencyThe trigger value, read according to the rule type: the amount cap (compared with line amount plus tax) for CategoryLimit and GradeHotelLimit, the amount above which a receipt is required for ReceiptMandatoryAbove, and a number of days for LateSubmissionDays. Not used by BlockedCategory or DuplicateDetection. Left empty, the amount and day rules never fire. The new-rule form shows a dollar prefix in this box whatever the meaning or currency.
UIPropsUI PropsText
UpdatedDateTimeModified DateDateAndTimeYes

Actions

ActionLabelTypeWhat it does
BulkDeleteDeleteDeleteDelete the selected records.
CloneCloneServerAction (Clone)Create a copy of this record
DeleteDeleteDeleteDelete this ExpensePolicyRule.
DeleteRecordDeleteDeleteDelete
EditEditEditEdit this ExpensePolicyRule.
EditInLineEditEditInlineEditInLine
EditRecordEditEditEdit
NewNewNewCreate a ExpensePolicyRule.
NewInLineNewNewInlineNewInLine
ViewViewViewView this ExpensePolicyRule.