Currency settings
GET /api/v1/settings/currency reads the active account’s settings and currency catalog.
PATCH /api/v1/settings/currency updates only the supplied settings.
Both require a Sanctum bearer token. Reading requires manage-currency-settings;
updating requires edit-currency-settings. The existing token ability guard also applies.
Settings use the existing active workspace owner (creatorId) scope, just like the dashboard;
workspaces belonging to the same owner share these settings. Clients cannot choose a settings owner in the payload.
Change the default currency
config/default_currency.php. Its symbol is saved
automatically, other formatting settings are preserved, and settings caches are invalidated.
This changes the default used by the app; it does not convert existing monetary amounts or exchange rates.
Formatting fields
Use
space to request a space separator without HTTP whitespace trimming; it is stored and returned as a literal space.
currencySymbol is read-only. Empty settings and unknown nested keys are rejected.
Response and errors
Both operations return HTTP 200 withsettings and currencies at the top level.
settings contains the fields above plus currencySymbol; decimalFormat is a string,
and the two boolean fields are JSON booleans. Unset fields use dashboard defaults (USD,
2 decimal places, dot decimal separator, comma thousands separator, floating numbers enabled,
no symbol space, symbol on the left).
Each catalog item retains id, name, code, and symbol; is_default reflects the
account’s saved default. The existing GET /api/v1/currencies static catalog remains unchanged.
Errors are JSON: 401 for missing authentication, 403 for missing permissions or owner context,
and 422 with field errors for invalid settings.