Workspace settings control the fundamental properties of your team’s expense management environment. These settings affect how expenses are categorized, reported, and integrated with your broader financial systems.
General Settings
Workspace Name
The workspace name appears throughout the app and in reports:
Navigate to Settings
Open your workspace and click Settings > Workspace > General .
Edit Name
Click the current workspace name to edit it.
Save
Enter the new name and click Save . Changes apply immediately.
// Update workspace name from src/libs/actions/Policy/Policy.ts
function updateWorkspaceGeneralSettings (
policyID : string ,
workspaceName : string ,
outputCurrency : string ,
) {
const policy = allPolicies [ ` ${ ONYXKEYS . COLLECTION . POLICY }${ policyID } ` ];
const optimisticData : OnyxUpdate [] = [
{
onyxMethod: Onyx . METHOD . MERGE ,
key: ` ${ ONYXKEYS . COLLECTION . POLICY }${ policyID } ` ,
value: {
name: workspaceName ,
outputCurrency ,
pendingFields: {
generalSettings: CONST . RED_BRICK_ROAD_PENDING_ACTION . UPDATE ,
},
errorFields: {
generalSettings: null ,
},
},
},
];
const parameters : UpdateWorkspaceGeneralSettingsParams = {
policyID ,
workspaceName ,
currency: outputCurrency ,
};
API . write (
WRITE_COMMANDS . UPDATE_WORKSPACE_GENERAL_SETTINGS ,
parameters ,
{ optimisticData , successData , failureData }
);
}
Choose a workspace name that clearly identifies the team or organization. This is especially important if users belong to multiple workspaces.
Workspace Avatar
Customize your workspace’s visual identity:
Upload Image
Remove Avatar
Click the avatar circle and select Upload Image : // Update workspace avatar from src/libs/actions/Policy/Policy.ts
function updateWorkspaceAvatar (
policyID : string ,
file : File | CustomRNImageManipulatorResult ,
) {
const optimisticData : OnyxUpdate [] = [
{
onyxMethod: Onyx . METHOD . MERGE ,
key: ` ${ ONYXKEYS . COLLECTION . POLICY }${ policyID } ` ,
value: {
avatarURL: file . uri ,
originalFileName: file . name ,
errorFields: {
avatarURL: null ,
},
pendingFields: {
avatarURL: CONST . RED_BRICK_ROAD_PENDING_ACTION . UPDATE ,
},
},
},
];
const parameters : UpdateWorkspaceAvatarParams = {
policyID ,
file ,
};
API . write (
WRITE_COMMANDS . UPDATE_WORKSPACE_AVATAR ,
parameters ,
{ optimisticData , successData , failureData }
);
}
Supported formats : JPG, PNG, GIF (max 6MB)Reset to default workspace icon: function deleteWorkspaceAvatar ( policyID : string ) {
const optimisticData : OnyxUpdate [] = [
{
onyxMethod: Onyx . METHOD . MERGE ,
key: ` ${ ONYXKEYS . COLLECTION . POLICY }${ policyID } ` ,
value: {
avatarURL: '' ,
pendingFields: {
avatarURL: CONST . RED_BRICK_ROAD_PENDING_ACTION . DELETE ,
},
},
},
];
const parameters : DeleteWorkspaceAvatarParams = { policyID };
API . write (
WRITE_COMMANDS . DELETE_WORKSPACE_AVATAR ,
parameters ,
{ optimisticData , failureData }
);
}
Currency Settings
Default Currency
Set the workspace’s default currency for expenses and reimbursements:
// Currency support check from src/libs/actions/Policy/Policy.ts
function isCurrencySupportedForDirectReimbursement ( currency : string ) {
return currency === CONST . CURRENCY . USD ;
}
function isCurrencySupportedForGlobalReimbursement (
currency : TupleToUnion < typeof CONST . DIRECT_REIMBURSEMENT_CURRENCIES >
) {
return CONST . DIRECT_REIMBURSEMENT_CURRENCIES . includes ( currency );
}
Supported currencies : USD, EUR, GBP, CAD, AUD, and 150+ others.Direct reimbursement : Currently only USD is supported for direct bank reimbursements in the US.
Changing your workspace currency affects:
New expense defaults
Report totals calculation
Integration export formats
Reimbursement processing
Existing expenses retain their original currencies.
Currency Conversion
Expenses in foreign currencies are automatically converted:
Real-time exchange rates from reliable sources
Conversion applied at submission time
Original currency preserved in expense details
Converted amounts shown in workspace currency
Workspace Description
Add context about your workspace’s purpose:
// Update workspace description from src/libs/actions/Policy/Policy.ts
function updateWorkspaceDescription (
policyID : string ,
description : string ,
) {
const parsedDescription = Parser . replace ( description );
const optimisticData : OnyxUpdate [] = [
{
onyxMethod: Onyx . METHOD . MERGE ,
key: ` ${ ONYXKEYS . COLLECTION . POLICY }${ policyID } ` ,
value: {
description: parsedDescription ,
pendingFields: {
description: CONST . RED_BRICK_ROAD_PENDING_ACTION . UPDATE ,
},
errorFields: {
description: null ,
},
},
},
];
const parameters : UpdateWorkspaceDescriptionParams = {
policyID ,
description: parsedDescription ,
};
API . write (
WRITE_COMMANDS . UPDATE_WORKSPACE_DESCRIPTION ,
parameters ,
{ optimisticData , successData , failureData }
);
}
Use the description to explain:
What expenses should be submitted to this workspace
Team or department this workspace serves
Special policies or procedures
Contact info for workspace admins
Address Settings
Configure your business address for compliance and invoicing:
// Update workspace address from src/libs/actions/Policy/Policy.ts
function updatePolicyAddress (
policyID : string ,
address : CompanyAddress ,
) {
const optimisticData : OnyxUpdate [] = [
{
onyxMethod: Onyx . METHOD . MERGE ,
key: ` ${ ONYXKEYS . COLLECTION . POLICY }${ policyID } ` ,
value: {
address: {
addressStreet: address . addressStreet ,
city: address . city ,
state: address . state ,
zipCode: address . zipCode ,
country: address . country ,
},
pendingFields: {
address: CONST . RED_BRICK_ROAD_PENDING_ACTION . UPDATE ,
},
},
},
];
const parameters : UpdatePolicyAddressParams = {
policyID ,
... address ,
};
API . write (
WRITE_COMMANDS . UPDATE_POLICY_ADDRESS ,
parameters ,
{ optimisticData , failureData }
);
}
Address is used for:
Invoice generation
Tax compliance
Accounting integrations
Travel bookings
Fiscal Year Settings
Define your organization’s fiscal year:
Access Settings
Navigate to Settings > Workspace > General .
Set Fiscal Year Start
Select the month your fiscal year begins (e.g., January for calendar year, April for UK fiscal year).
Configure Reporting
Set reporting period preferences (monthly, quarterly, annually).
Fiscal year settings affect:
Report grouping and naming
Year-end processing
Accounting integration mappings
Budget tracking periods
Workspace Features
Enable or disable specific features:
// Feature management from src/libs/actions/Policy/Policy.ts
function enablePolicyWorkflows ( policyID : string , enabled : boolean ) {
const optimisticData : OnyxUpdate [] = [
{
onyxMethod: Onyx . METHOD . MERGE ,
key: ` ${ ONYXKEYS . COLLECTION . POLICY }${ policyID } ` ,
value: {
areWorkflowsEnabled: enabled ,
pendingFields: {
areWorkflowsEnabled: CONST . RED_BRICK_ROAD_PENDING_ACTION . UPDATE ,
},
},
},
];
const parameters : EnablePolicyWorkflowsParams = {
policyID ,
enabled ,
};
API . write (
WRITE_COMMANDS . ENABLE_POLICY_WORKFLOWS ,
parameters ,
{ optimisticData , successData , failureData }
);
}
Available Features
Workflows Enable approval workflows and auto-reporting
Categories Use expense categories for organization
Tags Add tags for detailed expense tracking
Report Fields Custom fields on expense reports
Distance Rates Mileage reimbursement tracking
Per Diem Per diem expense allowances
Taxes Tax code tracking and reporting
Company Cards Corporate card reconciliation
Workspace Status
Understand workspace lifecycle states:
Active
Normal operational state:
Members can submit expenses
Approvals process normally
Integrations sync data
Pending
Workspace is being created or updated:
pendingAction : CONST . RED_BRICK_ROAD_PENDING_ACTION . ADD
Error State
Workspace has configuration errors:
errors : {
generalSettings : 'workspace.editor.genericFailureMessage' ,
}
Identify Error
Red error badge appears on workspace settings.
Review Details
Click the error to see specific issue.
Resolve
Follow prompted actions to fix (e.g., reconnect integration, update payment method).
Advanced Settings
Auto-Harvesting
Automatically capture expenses from email receipts:
function setWorkspaceAutoHarvesting (
policyID : string ,
autoHarvesting : boolean ,
) {
const optimisticData : OnyxUpdate [] = [
{
onyxMethod: Onyx . METHOD . MERGE ,
key: ` ${ ONYXKEYS . COLLECTION . POLICY }${ policyID } ` ,
value: {
autoHarvesting: {
enabled: autoHarvesting ,
},
},
},
];
const parameters : SetWorkspaceAutoHarvestingParams = {
policyID ,
autoHarvesting ,
};
API . write (
WRITE_COMMANDS . SET_WORKSPACE_AUTO_HARVESTING ,
parameters ,
{ optimisticData , failureData }
);
}
Forward receipts to a special email address and they’re automatically added to your workspace.
Client ID
For API integrations, configure a unique client identifier:
function updateWorkspaceClientID (
policyID : string ,
clientID : string ,
) {
const parameters : UpdateWorkspaceClientIDParams = {
policyID ,
clientID ,
};
API . write (
WRITE_COMMANDS . UPDATE_WORKSPACE_CLIENT_ID ,
parameters ,
{ optimisticData , failureData }
);
}
Best Practices
Choose Currency Carefully
Select the currency that most of your team’s expenses will be in. Changing later doesn’t affect existing expenses but can complicate reporting.
Fill out address and description completely. This information is required for some integrations and helps new members understand the workspace.
Review Settings Regularly
Audit workspace settings quarterly, especially after organizational changes like mergers, relocations, or fiscal year changes.
If you have multiple workspaces, use names that clearly distinguish them (“US Operations”, “EMEA Sales”, etc.).
Enable Features Gradually
Don’t enable all features at once. Add them as your team’s needs evolve to avoid overwhelming users.
Troubleshooting
Currency changes may be restricted if:
You have pending expenses in other currencies
An accounting integration is connected
Bank accounts are configured for specific currency
Solution: Disconnect integrations temporarily or contact support.
If settings revert:
Check for error messages
Verify you have admin permissions
Ensure stable internet connection
Try clearing browser cache
Some features require specific plan levels:
Workflows: Collect or Control plan
Advanced integrations: Control plan
Custom fields: Control plan
Upgrade your plan to access these features.
Next Steps
Member Management Add team members and configure roles
Categories & Tags Set up expense organization
Integrations Connect your accounting system
Workflows Configure approval workflows