Skip to main content
Configure expense report approval workflows through the Findity Admin API — based on departments, dimensions, or a combination of both. Configure approval structures for an organization through the Findity Admin API — controlling how expense reports are routed to the correct approvers based on departments, dimensions, or a combination of both.

Key Concepts

An approval structure defines the rules for who approves expense reports within an organization. Findity supports two approval models that can be used independently or combined:
  • Department-based approval — Approvers are assigned to departments in the organization structure. When a user submits an expense report, it is routed to the approver of the user’s department.
  • Dimension-based approval — Approvers are assigned to specific dimension values (e.g., a cost center or project). When a user selects a dimension value on an expense, the report is routed to the approver of that value.
Each approver assignment has the following properties:

Approval Steps

Findity supports up to 3 approval steps per structure. Each step is a level in the approval chain: When an expense report is submitted, it passes through each step in order. If an approver’s amountLimit is exceeded, the report moves to the next step automatically.
Approval must be activated in the admin web client (Marketplace) before it can be configured via the API. The API manages approver assignments but does not enable or disable approval itself.

API Endpoints

Approval structures are managed through two sets of endpoints depending on the approval model:

Department-Based Approval

Approvers are configured as part of the organization structure. All endpoints use the Admin API base URL:

Dimension-Based Approval

Approvers are assigned to specific dimension values:

Required Headers

Include these headers with every request:

Step 1 — Choose an Approval Model

Decide which approval model fits your organization:
When combining department and dimension approval, the priority order determines where Findity looks first for an approver. Configure this in the admin web client by ordering the approval structure boxes — the box on top is checked first. API endpoints for managing priority order programmatically are not yet publicly available but are under development.

Step 2 — Set Up Department-Based Approval

Assign approvers to departments by updating the organization structure. Each department in the tree has an approvers array.
bash

Approver Object Properties

Example: Assign Approvers to a Department

This example updates a department with two approval steps — a manager who can approve up to 5000, and a director with no limit:
When a user in the Sales department submits an expense report:
  1. If the total is 5000 or less, the manager (sortOrder: 0) approves it
  2. If the total exceeds 5000, the report moves to the director (sortOrder: 1) after the manager approves

Step 3 — Set Up Dimension-Based Approval

Assign approvers to specific dimension values. This requires a dimension with controlType set to LIST_SEARCHABLE and values already populated.
bash

Example: Assign Approvers to a Cost Center Value

In this example:
  • Expenses tagged with cost center CC-100 are approved by EMP-MGR-001 with no amount limit
  • Expenses tagged with cost center CC-200 go through two approval steps: EMP-MGR-002 up to 10,000, then EMP-DIR-001 for any amount

Step 4 — Retrieve the Current Approval Configuration

Get Department Approvers

Retrieve the full organization structure, which includes the approvers array on each department:
bash

Get Dimension Approvers

Retrieve approvers assigned to a specific dimension’s values:
bash

Default Approver

If Findity cannot determine the correct approver — for example, a department’s approver has been removed, or a user selects a dimension value with no approver assigned — the expense report is routed to the default approver. Configure the default approver in the admin web client under Approval settings. This acts as a safety net to prevent expense reports from getting stuck in the approval queue.

Temporary Approvers

Temporary approvers handle vacations and time off. When an approver is unavailable, a temporary replacement can be appointed to receive expense reports in their place. There are three settings for temporary approver configuration: Configure this setting in the admin web client under Approval settings.
No extra authorization is required for a user to act as an approver. Any user in the organization can be assigned as an approver — they gain the ability to approve and reject reports but receive no additional administrative permissions.

Common Integration Patterns

To keep department-based approval in sync with your HR system:
  1. Export the current department-to-manager mappings from your HR system
  2. Call GET /organizations/externalid/{externalId}/organizationalunits/ to retrieve the current organization structure
  3. Update each department’s approvers array with the correct personId values from the HR export
  4. Call PUT /organizations/externalid/{externalId}/organizationalunits/ with the updated structure
  5. Run this sync on a schedule (e.g., nightly) to reflect manager changes automatically
To set up approval routing based on projects:
  1. Create a dimension named “Project” with controlType set to LIST_SEARCHABLE and level set to EXPENSE (see Dimensions)
  2. Populate the dimension with project values (e.g., “Project Alpha”, “Project Beta”)
  3. For each project value, assign the project manager as approver using PUT /organizations/externalid/{externalId}/customdimensions/{dimensionId}/approvers/
  4. When users create expenses and select a project, the expense report routes to that project’s manager for approval
To use both department and dimension approval together:
  1. Set up department-based approval as a baseline — every user’s department has a designated approver
  2. Create a dimension (e.g., “Cost Center” or “Project”) and assign approvers to its values
  3. In the admin web client, order the approval structure boxes to set the priority — place the dimension box above the department box if dimension approvers should be checked first
  4. When a user submits an expense with a dimension value that has an approver, that approver handles it. If no dimension approver is found, Findity falls back to the department approver
  5. If neither is found, the expense routes to the default approver
To configure escalating approval based on expense amount:
  1. Identify the approval thresholds for your organization (e.g., manager up to 5,000, director up to 25,000, CFO for any amount)
  2. Assign three approvers to the department or dimension value with ascending sortOrder values (0, 1, 2) and corresponding amountLimit values (5000, 25000, null)
  3. When a user submits an expense report, Findity routes it through each step — the first approver with a sufficient amountLimit handles the approval
  4. If the amount exceeds an approver’s limit, the report continues to the next step after that approver approves
Last modified on August 31, 2026