# Approval Rule inheritance A company-wide policy, "every order over AUD 50,000 needs finance sign-off," should apply across every Division without being re-created five times. But a single Division might also need controls the parent does not. Approval Rule inheritance lets a Division pick up its parent Company's rules while still defining its own, and a single Business Unit setting governs the behavior. ## The inheritance mode The [BusinessUnitApprovalRuleMode](/urn?urn=ctp%3Aapi%3Atype%3ABusinessUnitApprovalRuleMode) determines whether a Business Unit applies only its own Approval Rules or also rules inherited from its parent. Use `Explicit` when a Division must govern itself, and `ExplicitAndFromParent` when a Division should combine parent rules with its own stricter local rules. Only Business Units of type `Division` can inherit Approval Rules from a parent. A top-level Company has no parent to inherit from, so it is always `Explicit`. This follows the same parent-child structure you designed in [Model buyer organizations](/learning-model-b2b-commerce/model-buyer-organizations/business-units-company-and-division.md), and aligns with the inheritance behavior for associates and stores you traced in [Configure associate access](/learning-model-b2b-commerce/configure-associate-access/inheritance-modes.md). ## Setting the mode You change the mode with the `changeApprovalRuleMode` update action on the Division's Business Unit. ```http POST /{projectKey}/business-units/key=atlas-apac HTTP/1.1 Content-Type: application/json { "version": 3, "actions": [ { "action": "changeApprovalRuleMode", "approvalRuleMode": "ExplicitAndFromParent" } ] } ``` With the APAC Division set to `ExplicitAndFromParent`, every Approval Rule defined on the `atlas` parent Company now also governs APAC orders, in addition to any rule defined on APAC directly. The action generates a `BusinessUnitApprovalRuleModeChanged` message, which downstream systems can react to. ## Layering division-specific rules Inheritance is additive, so a Division under `ExplicitAndFromParent` can tighten governance without weakening the inherited baseline. Suppose the `atlas` Company defines the AUD 50,000 finance rule. The APAC Division handles sensitive government contracts and additionally wants compliance sign-off on any controlled product, at any value. APAC adds its own controlled-product rule directly. APAC orders are then governed by **both** the inherited 50,000 rule and its own compliance rule; an order can trigger several rules at once, and each contributes its approvers. Inheritance only adds rules; it never removes or loosens a parent rule. A Division cannot use inheritance to exempt itself from a company-wide control. To make a Division stricter, add rules; to make it independent, change its mode. ## Preventing unintended inheritance Sometimes a Division must govern itself entirely, for example, a separately regulated entity whose controls differ from the parent's. Set that Division's mode to `Explicit`, and it stops inheriting parent rules and applies only its own. Use this setting when an inherited rule would be wrong for a Division, rather than trying to write a parent rule that carves out exceptions. Keep company-wide rules for genuinely universal controls, and use `Explicit` Divisions for the parts of the organization that must stand apart. ## Worked example: Atlas mixed governance Atlas Corporate has a parent Company (`atlas`) and two Divisions, APAC (`atlas-apac`) and EU (`atlas-eu`). Design inheritance so one division is stricter than the parent and the other is independent. 1. **Company baseline.** On `atlas`, define the universal rule: orders over AUD 50,000 require `finance-director`. Every part of Atlas should share this control. 2. **Stricter Division (APAC).** Set `atlas-apac` to `ExplicitAndFromParent` so it inherits the 50,000 rule, then add an APAC-only rule requiring `compliance-reviewer` on any controlled product. APAC is now governed by both. 3. **Independent Division (EU).** The EU entity operates under different regulations and must not inherit the AUD-denominated company rule. Set `atlas-eu` to `Explicit` and define its own rules in euros. EU governs itself. 4. **Verify.** Place a qualifying order in each Division and confirm the matched rules: APAC shows the inherited finance rule plus its compliance rule; EU shows only its own rules. ## Key takeaways - `BusinessUnitApprovalRuleMode` is `Explicit` (own rules only) or `ExplicitAndFromParent` (own plus inherited); only `Division` Business Units can inherit. - Set the mode with the `changeApprovalRuleMode` update action on the Division; it emits a `BusinessUnitApprovalRuleModeChanged` message. - Inheritance is additive: a Division can add stricter rules but cannot use inheritance to exempt itself from a parent rule. - Use `Explicit` on a Division that must govern itself, rather than writing carve-outs into company-wide rules. ## Related pages - [Area overview page with navigation](/learning-model-b2b-commerce.md) - [Previous page: Approval Flows in action](/learning-model-b2b-commerce/configure-approval-workflows/approval-flows-in-action.md) - [Next page: Learning check](/learning-model-b2b-commerce/configure-approval-workflows/learning-check.md)