Stitchflow
Expensify logo

Expensify User Management Guide

Manual workflow

How to add, remove, and manage users with operational caveats that matter in production.

UpdatedMar 11, 2026

Summary and recommendation

Expensify user management can be run manually, but complexity usually increases with role models, licensing gates, and offboarding dependencies. This guide gives the exact mechanics and where automation has the biggest impact.

Expensify organizes access across two levels: domain and policy. A Domain Admin controls SSO enforcement, domain group membership, and which policies domain members can access. Policy Admins manage day-to-day membership, approval workflows, and accounting integrations within a specific policy.

A single user can hold different roles across different policies simultaneously.

The Auditor role - read-only access to all policy reports - is only available on the Control plan. Collect plan customers have no equivalent read-only role for finance reviewers.

There are no custom role definitions; every app in your stack that relies on Expensify for expense data inherits these four fixed roles (Domain Admin, Policy Admin, Auditor, Employee) with no per-permission toggles available.

Quick facts

Admin console pathexpensify.com > Settings > Policies > [Policy Name] > Members (for policy-level management); Settings > Domains > [Domain Name] > Members (for domain-level management)
Admin console URLOfficial docs
SCIM availableYes
SCIM tier requiredControl Plan
SSO prerequisiteYes

User types and roles

Role Permissions Cannot do Plan required Seat cost Watch out for
Domain Admin Full control over the verified domain: manage domain members, enforce SSO, configure domain groups, set default policy, view all domain member accounts, manage SAML settings, and control which policies domain members can access. Cannot approve or submit expense reports on behalf of other users; cannot access report content unless also a Policy Admin on the relevant policy. Control plan (domain verification required) $9/user/month (Control without Expensify Card) or $5/member/month (with Expensify Card); April 2025 flat per-member pricing applies Domain Admin role is granted per domain, not per policy. A user must have a verified domain to access domain-level controls. Only one domain can be verified per Expensify account.
Policy Admin Manage policy settings, invite/remove members from the policy, approve reports, configure approval workflows, set expense rules, connect accounting integrations, and export reports. Cannot manage domain-level settings (SSO, domain groups) unless also a Domain Admin. Cannot delete another admin's account. Collect or Control plan Counts as an active member; billed at policy plan rate A policy must always have at least one Policy Admin. Removing the last admin is blocked by the UI.
Auditor Read-only access to all reports on the policy. Can view but not approve, edit, or export reports. Cannot approve reports, change policy settings, invite or remove members, or access domain controls. Control plan Counts as an active member if they submit or have activity; billing behavior follows active member rules Auditor role is only available on the Control plan. On Collect plan, this role does not exist.
Employee (Policy Member) Submit expense reports, SmartScan receipts, use Expensify Card (if issued), chat via Expensify Chat, and view their own reports. Cannot view other members' reports, change policy settings, approve reports (unless designated as an approver in the workflow), or manage billing. Any paid plan (Collect or Control); free individual plans exist but lack policy features Billed as active member if they have any activity in the billing period An employee added to a policy but who never submits a report or takes action may still be counted as active depending on billing cycle. Expensify bills based on 'active members' not seats reserved.

Permission model

  • Model type: role-based
  • Description: Expensify uses a fixed set of roles at two levels: domain-level (Domain Admin) and policy-level (Policy Admin, Auditor, Employee). Roles are assigned per policy; a user can be an Employee on one policy and a Policy Admin on another. There are no custom role definitions or granular permission toggles beyond these fixed roles.
  • Custom roles: No
  • Custom roles plan: Not documented
  • Granularity: Coarse - four fixed roles with no per-permission customization. Approval workflow rules (multi-level, random, or manual approval) provide some behavioral customization within the Employee role but do not constitute custom permissions.

How to add users

  1. Log in to expensify.com as a Policy Admin or Domain Admin.
  2. Navigate to Settings > Policies > [Policy Name] > Members.
  3. Click 'Invite' in the Members tab.
  4. Enter the user's email address (or multiple addresses separated by commas).
  5. Select the role to assign: Employee, Policy Admin, or Auditor (Auditor only on Control plan).
  6. Optionally set a custom approval workflow for the new member.
  7. Click 'Invite'. The user receives an email invitation to join Expensify and the policy.
  8. If the user does not yet have an Expensify account, they are prompted to create one upon accepting the invitation.

Required fields: Email address of the invitee, Role selection (defaults to Employee if not changed)

Watch out for:

  • Users must accept the invitation to become active; pending invitations still appear in the Members list.
  • If domain control is enforced, users with the verified domain email are automatically added to the domain and may be auto-assigned to a default policy.
  • Adding a user to a policy does not automatically grant them an Expensify Card; card issuance is a separate step.
  • On the Control plan with SAML SSO enforced, new domain members may be auto-provisioned on first SSO login without a manual invite.
  • Billing begins when a member becomes 'active' (submits a report, uses SmartScan, etc.) within the billing period, not at the moment of invitation.
Bulk option Availability Notes
CSV import Yes Settings > Policies > [Policy Name] > Members > Invite > 'Import from CSV' option; CSV must contain at minimum an 'email' column
Domain whitelisting Yes Automatic domain-based user add
IdP provisioning Yes Control plan (SCIM via Okta only; must request activation via concierge@expensify.com; SAML SSO and domain verification required)

How to remove or deactivate users

  • Can delete users: No
  • Delete/deactivate behavior: Expensify does not allow deletion of user accounts from the admin console. Admins can remove a member from a policy (which revokes their access to that policy's reports and settings) but the user's Expensify account itself persists. At the domain level, a Domain Admin can remove a user from the domain, which enforces SSO restrictions and removes domain group membership, but does not delete the account. Account deletion must be requested by the account holder directly through Expensify support.
  1. Log in as a Policy Admin or Domain Admin.
  2. Navigate to Settings > Policies > [Policy Name] > Members.
  3. Locate the member to remove.
  4. Click the remove/delete icon (trash icon) next to the member's name.
  5. Confirm the removal. The user loses access to the policy immediately.
  6. For domain-level removal: navigate to Settings > Domains > [Domain Name] > Members, locate the user, and click 'Remove'.
  7. If SAML SSO is enforced, also deprovision the user in the IdP (Okta or Entra ID) to prevent re-provisioning on next login.
Data impact Behavior
Owned records Expense reports submitted by the removed member remain visible to Policy Admins on the policy. Historical reports are retained and accessible for audit and export purposes.
Shared content Shared reports and receipts remain in the policy's report history. The removed user loses access to view or edit those reports from their account.
Integrations Accounting integration exports (QuickBooks, Xero, NetSuite, Sage Intacct) that have already been completed are unaffected. Pending or draft reports belonging to the removed user may need to be reassigned or finalized before removal to avoid export gaps.
License freed Removing a member from a policy stops future active-member billing for that user on that policy, effective the next billing cycle. Mid-cycle removals do not result in prorated refunds under annual subscription terms.

Watch out for:

  • Removing a user from a policy does not close or delete their Expensify account; they can still log in and use Expensify independently.
  • If the user has open, unsubmitted, or unapproved reports at the time of removal, those reports remain in a pending state and must be handled by an admin.
  • Under an annual subscription, the seat count is based on the number of active members at the subscription start; removing members mid-year does not reduce the committed seat count until renewal.
  • If SAML SSO is enforced at the domain level, failing to also deprovision in the IdP may allow the user to re-authenticate and regain domain membership.
  • Domain Admins cannot remove themselves from the domain without first assigning another Domain Admin.

License and seat management

Seat type Includes Cost
Active Member – Collect Plan Expense report submission, SmartScan, basic approval workflows, Expensify Card access (if issued), accounting integrations (limited) $5/member/month with Expensify Card; $10/user/month without Expensify Card (pre-April 2025 pricing); April 2025 flat pricing: contact Expensify for current rates
Active Member – Control Plan All Collect features plus multi-level approval workflows, Auditor role, SAML SSO, SCIM provisioning (via Okta), domain control, advanced accounting integrations (NetSuite, Sage Intacct), custom reporting $9/user/month with Expensify Card; $18/user/month without Expensify Card (pre-April 2025 pricing); April 2025 flat pricing: contact Expensify for current rates
Individual / Free 25 SmartScans/month, basic expense tracking, no policy features Free (individual use only; not applicable to company policy management)
  • Where to check usage: Settings > Policies > [Policy Name] > Members (shows current member count); Settings > Account > Billing (shows active member count and current invoice)
  • How to identify unused seats: Policy Admins can review the Members list and filter by last activity date. Members with no report submissions or activity in the current billing period may not be counted as 'active' for billing, but Expensify does not provide a built-in 'inactive member' report in the UI. Admins must manually cross-reference member list against submitted reports.
  • Billing notes: Expensify bills based on 'active members' - users who take a billable action (submit a report, SmartScan a receipt, use the Expensify Card) within the billing period. Invited but inactive members are not billed. Annual subscriptions lock in a committed member count; exceeding that count results in overage charges at the per-member rate. Monthly subscriptions are billed at a higher per-member rate with no commitment. As of April 2025, Expensify moved to flat per-member pricing; bundling with the Expensify Card reduces the per-member cost. UK pricing: £5/member/month; Australia: A$8/member/month.

The cost of manual management

Expensify bills on active members - users who submit a report, SmartScan a receipt, or use the Expensify Card within the billing period. Invited but inactive members are not billed.

Annual subscriptions lock in a committed member count at the start of the term; removing members mid-year does not reduce that committed count or generate a prorated credit until renewal.

There is no built-in inactive member report in the UI. Admins must manually cross-reference the Members list against submitted reports to identify unused seats.

Expensify does not allow admins to delete user accounts - account deletion must be requested by the account holder directly through Expensify support, which creates a hard dependency on the departing employee during offboarding.

What IT admins are saying

The most consistent friction point reported by admins is SCIM activation: it requires a manual email to concierge@expensify.com and is not self-serve even on the Control plan. Teams expecting to configure automated provisioning at contract signing should factor in activation lead time.

SSO enforcement without SCIM creates a deprovisioning gap. Removing a user from the IdP does not automatically remove them from Expensify policies; a manual removal step in the Expensify admin console is still required unless SCIM is also active.

Admins who miss this step risk leaving former employees with residual policy access.

The absence of a prorated refund on annual seat reductions and the lack of an inactive member report are the two billing complaints that appear most frequently in community threads.

Common complaints:

  • SCIM requires manual activation request via concierge@expensify.com and is not self-serve even on the Control plan.
  • Account deletion is not available to admins; users must request deletion themselves, creating offboarding friction.
  • No built-in inactive member report makes it difficult to identify and remove unused seats before billing cycles.
  • Removing a member mid-year under an annual subscription does not reduce the committed seat count or provide a prorated refund.
  • SAML SSO enforcement does not automatically deprovision users when removed from the IdP unless SCIM is also configured; manual removal in Expensify is still required.
  • The Auditor role is restricted to the Control plan, meaning Collect plan customers have no read-only access option for finance reviewers.
  • CSV import for bulk member invites requires a specific column format that is not prominently documented, leading to import errors.
  • Domain verification is a prerequisite for SSO and SCIM, but the verification process can be slow if DNS propagation is delayed.

The decision

Manual administration is viable for teams under roughly 25–50 members with low turnover, or for organizations that cannot yet meet the Control plan and SAML prerequisites required for SCIM. The invite flow is straightforward, and bulk invites via comma-separated email addresses reduce per-user effort at onboarding.

Every app that handles expense data carries offboarding risk proportional to how long former employees retain access, and Expensify's architecture makes that window longer than most admins expect.

For any team where offboarding speed matters, the manual path carries real risk. The inability to delete accounts from the admin console, combined with the SSO-without-SCIM deprovisioning gap, means offboarding requires coordinated steps across Expensify, the IdP, and potentially Expensify support.

Teams on the Control plan with Okta already deployed should prioritize SCIM activation over manual workflows. The manual path remains a fallback for Collect plan customers and for organizations using an IdP other than Okta, where SCIM support is not confirmed.

Bottom line

Expensify's manual admin experience is functional but requires deliberate process design around two gaps: there is no admin-initiated account deletion, and SSO enforcement alone does not deprovision users from policies.

Every app that handles expense data carries offboarding risk proportional to how long former employees retain access, and Expensify's architecture makes that window longer than most admins expect.

Teams on the Control plan with Okta should treat SCIM activation as a prerequisite for any automated provisioning workflow - but they should also plan for the activation lead time, since it is not self-serve.

Automate Expensify workflows without one-off scripts

Stitchflow builds and maintains end-to-end IT automation across your SaaS stack, including apps without APIs. Built for exactly how your company works, with human approvals where they matter.

Every app coverage, including apps without APIs
60+ app integrations plus browser automation for apps without APIs
IT graph reconciliation across apps and your IdP
Less than a week to launch, maintained as APIs and admin consoles change
SOC 2 Type II. ~2 hours of your team's time

UpdatedMar 11, 2026

* Details sourced from official product documentation and admin references.

Keep exploring

Related apps

15Five logo

15Five

Full API + SCIM
AutomationAPI + SCIM
Last updatedFeb 2026

15Five uses a fixed role-based permission model with six predefined roles: Account Admin, HR Admin, Billing Admin, Group Admin, Manager, and Employee. No custom roles can be constructed. User management lives at Settings gear → People → Manage people p

1Password logo

1Password

Full API + SCIM
AutomationAPI + SCIM
Last updatedFeb 2026

1Password's admin console at my.1password.com covers the full user lifecycle — invitations, group assignments, vault access, suspension, and deletion — without any third-party tooling. Like every app that mixes role-based and resource-level permissions

8x8 logo

8x8

Full API + SCIM
AutomationAPI + SCIM
Last updatedFeb 2026

8x8 Admin Console supports full lifecycle user management — create, deactivate, and delete — across its X Series unified communications platform. Every app a user can access (8x8 Work desktop, mobile, web, Agent Workspace) is gated by license assignmen