@lunch-money/developer-docs 2.11.1-preview.6 → 2.11.1-preview.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,22 +1,17 @@
1
1
  # Branding your App
2
2
 
3
- Building a tool, plugin, or integration on top of Lunch Money? Official brand assets and usage guidelines are available so you can credit Lunch Money clearly without reinventing logos or guessing at naming.
3
+ Building a tool, plugin, or integration on top of Lunch Money? Use the official **Powered by Lunch Money** badge to credit the connection clearly — without implying that your app *is* Lunch Money.
4
4
 
5
- Everything lives in the <a href="https://lunchmoney.app/media-kit/" target="_blank" rel="noopener noreferrer">Lunch Money Media Kit</a>. Use that page as the source of truth for downloads, colors, typography, and the latest guidelines.
6
-
7
- ## What you'll find in the media kit
8
-
9
- For developers, the most useful sections are:
10
-
11
- - **Logos** — horizontal, two-row, vertical, and emblem variants (PNG)
12
- - **Powered by** — a lockup and an embeddable badge for crediting Lunch Money in your app or README
13
- - **Colors & typography** — brand palette and typefaces (primary: Avenir; monospace: Inconsolata)
14
- - **Usage guidelines** — clear do's and don'ts for how marks may be used
15
- - **Product screenshots** — optional visuals if you're writing about or promoting an integration
5
+ <a href="https://lunchmoney.app/assets/images/media-kit/powered-by-lunch-money-badge.png" download="powered-by-lunch-money-badge.png" target="_blank" rel="noopener noreferrer" title="Download Powered by Lunch Money badge">
6
+ <img src="/v2/images/powered-by-lunch-money-badge.png" alt="Powered by Lunch Money badge" />
7
+ </a>
16
8
 
17
9
  > [!TIP]
18
- > Prefer the **Powered by** assets when your project connects to Lunch Money. They make the relationship clear without implying that your app *is* Lunch Money.
10
+ > Click the badge to download it (or open the PNG in a new tab).
11
+ >
12
+ > Link it to <a href="https://lunchmoney.app/" target="_blank" rel="noopener noreferrer">lunchmoney.app</a> when you place it in a README, docs page, or app footer.
19
13
 
14
+ For additional logos, colors, typography, screenshots, and full brand usage guidelines, see the <a href="https://lunchmoney.app/media-kit/" target="_blank" rel="noopener noreferrer">Lunch Money Media Kit</a>.
20
15
  ## Naming
21
16
 
22
17
  - Refer to the product as **Lunch Money**
@@ -30,7 +25,7 @@ Avoid nicknames, abbreviations, or stylized spellings of the product name in use
30
25
  ### Do
31
26
 
32
27
  - Use official logos without alteration
33
- - Use the provided **Powered by** lockup or badge when acknowledging Lunch Money
28
+ - Use the **Powered by** badge when acknowledging Lunch Money
34
29
  - Keep enough clear space around logos so they stay readable
35
30
  - Download assets from the media kit rather than cropping screenshots of the logo
36
31
 
@@ -49,7 +44,7 @@ Avoid nicknames, abbreviations, or stylized spellings of the product name in use
49
44
  A few common, low-friction ways to brand an integration:
50
45
 
51
46
  1. **README or docs** — a short "Built with Lunch Money" line plus the Powered by badge linking to <a href="https://lunchmoney.app/" target="_blank" rel="noopener noreferrer">lunchmoney.app</a>
52
- 2. **App footer or about screen** — the Powered by lockup next to your own branding
47
+ 2. **App footer or about screen** — the Powered by badge next to your own branding
53
48
  3. **Onboarding or connect flow** — official logo when prompting users to authorize or paste an access token
54
49
  4. **Community listings** — consistent naming ("My Tool for Lunch Money") so users can find and trust your project
55
50
 
@@ -57,7 +52,7 @@ Keep your own product name primary. Lunch Money branding should signal the conne
57
52
 
58
53
  ## Need help?
59
54
 
60
- If you're unsure whether a use is appropriate, or you need a format that isn't in the media kit:
55
+ If you're unsure whether a use is appropriate, or you need a format that isn't listed here:
61
56
 
62
57
  - Start with the <a href="https://lunchmoney.app/media-kit/" target="_blank" rel="noopener noreferrer">Media Kit</a>
63
58
  - Ask in the <a href="https://lunchmoney.app/discord" target="_blank" rel="noopener noreferrer">Lunch Money Discord</a> **#developer-api** channel
@@ -0,0 +1,124 @@
1
+ # Supported Locales
2
+
3
+ Lunch Money uses locale tags to format numbers and currency amounts in the web
4
+ and mobile apps. Date presentation is controlled separately by the user-level
5
+ date-format settings. See
6
+ [GET /me/user/settings](/v2/docs#tag/me/GET/me/user/settings) for those settings.
7
+ Set the `locale` account setting to one of the supported tags below. The locale
8
+ controls presentation details such as decimal separators, digit grouping, and
9
+ currency symbol or code placement and rendering. It does not change the
10
+ account's selected currency, numeric values, or the representation of dates,
11
+ numbers, and amounts in API responses.
12
+
13
+ ## Locale Tag Format
14
+
15
+ Each supported value combines a language code and a region code, separated by a
16
+ hyphen. For example, `en-US` selects English formatting conventions for the
17
+ United States, while `en-GB` selects English formatting conventions for the
18
+ United Kingdom.
19
+
20
+ ## Supported Locales
21
+
22
+ The examples format `123456789` as USD. An account's primary currency determines
23
+ the currency symbol and number of fraction digits. Exact spacing and symbol
24
+ rendering may vary slightly by platform and its internationalization
25
+ implementation.
26
+
27
+ | Tag | Language | Region | USD `123456789` example |
28
+ |-----|----------|--------|-------------------------|
29
+ | `sq-AL` | Albanian | Albania | `123 456 789,00 US$` |
30
+ | `be-BY` | Belarusian | Belarus | `123 456 789,00 $` |
31
+ | `bg-BG` | Bulgarian | Bulgaria | `123 456 789,00 щ.д.` |
32
+ | `ca-ES` | Catalan | Spain | `123.456.789,00 USD` |
33
+ | `zh-CN` | Chinese (Simplified) | China | `US$123,456,789.00` |
34
+ | `zh-HK` | Chinese (Traditional) | Hong Kong | `US$123,456,789.00` |
35
+ | `zh-TW` | Chinese (Traditional) | Taiwan | `US$123,456,789.00` |
36
+ | `hr-HR` | Croatian | Croatia | `123.456.789,00 USD` |
37
+ | `cs-CZ` | Czech | Czech Republic | `123 456 789,00 US$` |
38
+ | `da-DK` | Danish | Denmark | `123.456.789,00 US$` |
39
+ | `nl-BE` | Dutch | Belgium | `US$ 123.456.789,00` |
40
+ | `nl-NL` | Dutch | Netherlands | `US$ 123.456.789,00` |
41
+ | `en-AU` | English | Australia | `USD 123,456,789.00` |
42
+ | `en-CA` | English | Canada | `US$123,456,789.00` |
43
+ | `en-IN` | English | India | `$12,34,56,789.00` |
44
+ | `en-IE` | English | Ireland | `US$123,456,789.00` |
45
+ | `en-MT` | English | Malta | `US$123,456,789.00` |
46
+ | `en-NZ` | English | New Zealand | `US$123,456,789.00` |
47
+ | `en-PH` | English | Philippines | `$123,456,789.00` |
48
+ | `en-SG` | English | Singapore | `US$123,456,789.00` |
49
+ | `en-ZA` | English | South Africa | `US$123 456 789,00` |
50
+ | `en-GB` | English | United Kingdom | `US$123,456,789.00` |
51
+ | `en-US` | English | United States | `$123,456,789.00` |
52
+ | `et-EE` | Estonian | Estonia | `123 456 789,00 $` |
53
+ | `fi-FI` | Finnish | Finland | `123 456 789,00 $` |
54
+ | `fr-BE` | French | Belgium | `123 456 789,00 $US` |
55
+ | `fr-CA` | French | Canada | `123 456 789,00 $ US` |
56
+ | `fr-FR` | French | France | `123 456 789,00 $US` |
57
+ | `fr-LU` | French | Luxembourg | `123.456.789,00 $US` |
58
+ | `fr-CH` | French | Switzerland | `123'456'789.00 $US` |
59
+ | `de-AT` | German | Austria | `$ 123.456.789,00` |
60
+ | `de-DE` | German | Germany | `123.456.789,00 $` |
61
+ | `de-LU` | German | Luxembourg | `123.456.789,00 $` |
62
+ | `de-CH` | German | Switzerland | `$ 123'456'789.00` |
63
+ | `el-CY` | Greek | Cyprus | `123.456.789,00 $` |
64
+ | `el-GR` | Greek | Greece | `123.456.789,00 $` |
65
+ | `iw-IL` | Hebrew | Israel | `‏123,456,789.00 ‏$` |
66
+ | `hi-IN` | Hindi | India | `$12,34,56,789.00` |
67
+ | `hu-HU` | Hungarian | Hungary | `123 456 789,00 USD` |
68
+ | `is-IS` | Icelandic | Iceland | `123.456.789,00 USD` |
69
+ | `in-ID` | Indonesian | Indonesia | `US$123.456.789,00` |
70
+ | `ga-IE` | Irish | Ireland | `$123,456,789.00` |
71
+ | `it-IT` | Italian | Italy | `123.456.789,00 USD` |
72
+ | `it-CH` | Italian | Switzerland | `USD 123'456'789.00` |
73
+ | `ja-JP` | Japanese | Japan | `$123,456,789.00` |
74
+ | `ko-KR` | Korean | South Korea | `US$123,456,789.00` |
75
+ | `lv-LV` | Latvian | Latvia | `123 456 789,00 $` |
76
+ | `lt-LT` | Lithuanian | Lithuania | `123 456 789,00 USD` |
77
+ | `mk-MK` | Macedonian | Macedonia | `123.456.789,00 US$` |
78
+ | `ms-MY` | Malay | Malaysia | `USD 123,456,789.00` |
79
+ | `mt-MT` | Maltese | Malta | `US$123,456,789.00` |
80
+ | `no-NO` | Norwegian | Norway | `123 456 789,00 USD` |
81
+ | `pl-PL` | Polish | Poland | `123 456 789,00 USD` |
82
+ | `pt-BR` | Portuguese | Brazil | `US$ 123.456.789,00` |
83
+ | `pt-PT` | Portuguese | Portugal | `123 456 789,00 US$` |
84
+ | `ro-RO` | Romanian | Romania | `123.456.789,00 USD` |
85
+ | `ru-RU` | Russian | Russia | `123 456 789,00 $` |
86
+ | `sk-SK` | Slovak | Slovakia | `123 456 789,00 USD` |
87
+ | `sl-SI` | Slovenian | Slovenia | `123.456.789,00 $` |
88
+ | `es-AR` | Spanish | Argentina | `US$ 123.456.789,00` |
89
+ | `es-BO` | Spanish | Bolivia | `USD 123.456.789,00` |
90
+ | `es-CL` | Spanish | Chile | `US$123.456.789,00` |
91
+ | `es-CO` | Spanish | Colombia | `US$ 123.456.789,00` |
92
+ | `es-CR` | Spanish | Costa Rica | `USD 123 456 789,00` |
93
+ | `es-DO` | Spanish | Dominican Republic | `US$123,456,789.00` |
94
+ | `es-EC` | Spanish | Ecuador | `$123.456.789,00` |
95
+ | `es-SV` | Spanish | El Salvador | `$123,456,789.00` |
96
+ | `es-GT` | Spanish | Guatemala | `USD 123,456,789.00` |
97
+ | `es-HN` | Spanish | Honduras | `USD 123,456,789.00` |
98
+ | `es-MX` | Spanish | Mexico | `USD 123,456,789.00` |
99
+ | `es-NI` | Spanish | Nicaragua | `USD 123,456,789.00` |
100
+ | `es-PA` | Spanish | Panama | `USD 123,456,789.00` |
101
+ | `es-PY` | Spanish | Paraguay | `USD 123.456.789,00` |
102
+ | `es-PE` | Spanish | Peru | `USD 123,456,789.00` |
103
+ | `es-PR` | Spanish | Puerto Rico | `$123,456,789.00` |
104
+ | `es-ES` | Spanish | Spain | `123.456.789,00 US$` |
105
+ | `es-US` | Spanish | United States | `$123,456,789.00` |
106
+ | `es-UY` | Spanish | Uruguay | `US$ 123.456.789,00` |
107
+ | `es-VE` | Spanish | Venezuela | `USD 123.456.789,00` |
108
+ | `sv-SE` | Swedish | Sweden | `123 456 789,00 US$` |
109
+ | `th-TH` | Thai | Thailand | `US$123,456,789.00` |
110
+ | `tr-TR` | Turkish | Turkey | `$123.456.789,00` |
111
+ | `uk-UA` | Ukrainian | Ukraine | `123 456 789,00 USD` |
112
+ | `vi-VN` | Vietnamese | Vietnam | `123.456.789,00 US$` |
113
+
114
+ ## Legacy Locale Tags
115
+
116
+ The supported list retains two legacy language codes for compatibility:
117
+
118
+ - Use `iw-IL` for Hebrew (Israel). The modern language code is `he`, but
119
+ `he-IL` is not currently accepted by the API.
120
+ - Use `in-ID` for Indonesian (Indonesia). The modern language code is `id`, but
121
+ `id-ID` is not currently accepted by the API.
122
+
123
+ Use the values listed in the table when reading or updating `locale` through the
124
+ API.
package/manifest.json CHANGED
@@ -41,6 +41,14 @@
41
41
  "type": "markdown",
42
42
  "aliases": ["/v2/currencies"]
43
43
  },
44
+ {
45
+ "path": "/locales",
46
+ "file": "docs/locales.md",
47
+ "title": "Supported Locales",
48
+ "section": "GUIDES",
49
+ "type": "markdown",
50
+ "aliases": ["/v2/locales"]
51
+ },
44
52
  {
45
53
  "path": "/amounts-and-balances",
46
54
  "file": "docs/amounts-and-balances.md",
@@ -199,6 +207,7 @@
199
207
  { "label": "Pagination", "path": "/pagination" },
200
208
  { "label": "Rate Limiting", "path": "/rate-limits" },
201
209
  { "label": "Supported Currencies", "path": "/currencies" },
210
+ { "label": "Supported Locales", "path": "/locales" },
202
211
  { "label": "Using the API with AI", "path": "/using-with-ai" },
203
212
  { "label": "Branding your App", "path": "/branding-your-app" }
204
213
  ]},
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lunch-money/developer-docs",
3
- "version": "2.11.1-preview.6",
3
+ "version": "2.11.1-preview.8",
4
4
  "description": "Developer documentation content for Lunch Money APIs",
5
5
  "exports": {
6
6
  ".": "./package.json",
@@ -8,6 +8,10 @@ The Lunch Money API spec uses a modified version of SEMVER for its versioning me
8
8
  ## v2.11.1 - TBD
9
9
  - Add `GET /me/account/settings` and `PUT /me/account/settings` for account-level settings
10
10
  - Add `GET /me/user/settings` and `PUT /me/user/settings` for user-level display and formatting preferences
11
+ - Add `GET /me/user/account/settings` and `PUT /me/user/account/settings` for settings specific to a user and budgeting account
12
+ from `GET /me/account/settings` and `PUT /me/account/settings` to `GET /me/user/account/settings` and `PUT /me/user/account/settings`
13
+ - Add `include_pending_in_totals` to `GET /me/account/settings` and `PUT /me/account/settings`
14
+ - Add `default_manual_account_id` to `GET /me/user/account/settings` and `PUT /me/user/account/settings`
11
15
  - Document `GET /budgets/settings` response schema publicly; change `budget_period_quantity` to integer
12
16
 
13
17
  ## v2.11.0 - Jul 31, 2026
@@ -6,36 +6,19 @@ info:
6
6
 
7
7
  Welcome to the Lunch Money v2 API reference. This is the **v2.11.1** spec.
8
8
 
9
- > [!warning]
10
- > **Preview endpoints (subject to change)**
11
- >
12
- > - [`GET /v2/me/account/settings`](#tag/me/GET/me/account/settings)
13
- > - [`PUT /v2/me/account/settings`](#tag/me/PUT/me/account/settings)
14
- > - [`GET /v2/me/user/settings`](#tag/me/GET/me/user/settings)
15
- > - [`PUT /v2/me/user/settings`](#tag/me/PUT/me/user/settings)
16
- >
17
- > <p class="preview-endpoints-footer" style="margin:0.85em 0 0;padding:0;text-align:left;width:100%;box-sizing:border-box">Do not release production apps using these endpoints. Feedback is welcome. <a href="mailto:dev-support@lunchmoney.app">Email dev-support@lunchmoney.app</a> or join us in the <a href="https://discord.com/channels/842337014556262411/1134594318414389258">developers channel</a> on the <a href="https://lunchmoney.app/discord">Lunch Money Discord</a>.</p>
18
-
19
- The most recent stable version of the API is v2.11.0 and is available at:
20
- `https://api.lunchmoney.dev/v2`
21
-
22
- See the [stable Developer Portal](https://lunchmoney.dev/v2).
23
-
24
- ------------------------------------------------------------------------------------------------
25
-
26
- The API is available at `https://api-beta.lunchmoney.app/v2`. Get your access token from the [Lunch Money developers page](https://my.lunchmoney.app/developers).
9
+ The API is available at `https://api.lunchmoney.dev/v2`. Get your access token from the [Lunch Money developers page](https://my.lunchmoney.app/developers).
27
10
 
28
11
 
29
12
  **Try it from these docs**
30
13
 
31
14
  These docs are interactive — use **Test request** on any endpoint to call the API from this page.
32
15
  Choose a LIVE or MOCK service from the Server dropdown.
33
- Requests sent to `https://api-beta.lunchmoney.app/v2` can <span class="red-text"><strong>change or delete</strong></span> your data and are <span class="red-text"><strong>permanent</strong></span>.
34
- See the [Getting Started Guide](https://beta.lunchmoney.dev/v2/getting-started) before using the live API.
16
+ Requests sent to `https://api.lunchmoney.dev/v2` can <span class="red-text"><strong>change or delete</strong></span> your data and are <span class="red-text"><strong>permanent</strong></span>.
17
+ See the [Getting Started Guide](https://lunchmoney.dev/v2/getting-started) before using the live API.
35
18
 
36
19
  **Static mock server**
37
20
 
38
- Explore without risk to real data. Select `https://beta-mock.lunchmoney.dev/v2` in the Server dropdown to work with static mock data.
21
+ Explore without risk to real data. Select `http://mock.lunchmoney.dev/v2` in the Server dropdown to work with static mock data.
39
22
  POST, PUT, and DELETE requests will return realistic responses, but do not change the mock data.
40
23
 
41
24
 
@@ -45,14 +28,14 @@ info:
45
28
 
46
29
  **Migrating from v1**
47
30
 
48
- The v2 API is not backwards compatible with v1. See the [Migration Guide](https://beta.lunchmoney.dev/v2/migration-guide) for details.
31
+ The v2 API is not backwards compatible with v1. See the [Migration Guide](https://lunchmoney.dev/v2/migration-guide) for details.
49
32
 
50
33
  **Useful links**
51
- - [Getting Started Guide](https://beta.lunchmoney.dev/v2/getting-started)
52
- - [v2 API Overview](https://beta.lunchmoney.dev/v2/overview)
53
- - [Version History](https://beta.lunchmoney.dev/v2/version-history)
54
- - [Migration Guide](https://beta.lunchmoney.dev/v2/migration-guide)
55
- - [Rate Limits](https://beta.lunchmoney.dev/v2/rate-limits)
34
+ - [Getting Started Guide](https://lunchmoney.dev/v2/getting-started)
35
+ - [v2 API Overview](https://lunchmoney.dev/v2/overview)
36
+ - [Version History](https://lunchmoney.dev/v2/version-history)
37
+ - [Migration Guide](https://lunchmoney.dev/v2/migration-guide)
38
+ - [Rate Limits](https://lunchmoney.dev/v2/rate-limits)
56
39
  termsOfService: https://lunchmoney.dev/#current-status
57
40
  contact:
58
41
  email: devsupport@lunchmoney.app
@@ -62,17 +45,19 @@ info:
62
45
  version: 2.11.1
63
46
 
64
47
  servers:
65
- - url: https://api-beta.lunchmoney.app/v2
48
+ - url: https://api.lunchmoney.dev/v2
66
49
  description: ⚠ LIVE — changes real Lunch Money data
67
- - url: https://beta-mock.lunchmoney.dev/v2
50
+ - url: http://mock.lunchmoney.dev/v2
68
51
  description: MOCK — static demo data, no API key required
69
52
 
70
53
  tags:
71
54
  - name: me
72
55
  description: View details and settings for the current user and account.<p>
73
- Use [/me/account/settings](#tag/me/GET/me/account/settings) and
74
- [/me/user/settings](#tag/me/GET/me/user/settings) for account- and
75
- user-level preferences.
56
+ Use [/me/user/settings](#tag/me/GET/me/user/settings) for user-wide
57
+ preferences, [/me/account/settings](#tag/me/GET/me/account/settings) for
58
+ account-wide preferences, and
59
+ [/me/user/account/settings](#tag/me/GET/me/user/account/settings) for
60
+ preferences specific to the current user and budgeting account.
76
61
  - name: categories
77
62
  description: Work with categories
78
63
  externalDocs:
@@ -3073,7 +3058,7 @@ components:
3073
3058
  currency:
3074
3059
  description: Three-letter lowercase currency code of the transaction
3075
3060
  in ISO 4217 format. Must match one of the [supported
3076
- currencies](https://beta.lunchmoney.dev/v2/currencies). If not set
3061
+ currencies](https://lunchmoney.dev/v2/currencies). If not set
3077
3062
  defaults to the user account's primary currency.
3078
3063
  allOf:
3079
3064
  - $ref: "#/components/schemas/currencyEnum"
@@ -3815,6 +3800,7 @@ components:
3815
3800
  - budget_rollover_left_to_budget
3816
3801
 
3817
3802
  weekStartsOnEnum:
3803
+ x-internal: true
3818
3804
  type: string
3819
3805
  title: week starts on enum
3820
3806
  enum:
@@ -3823,6 +3809,7 @@ components:
3823
3809
  description: The day on which a calendar week begins.
3824
3810
 
3825
3811
  monthYearFormatEnum:
3812
+ x-internal: true
3826
3813
  type: string
3827
3814
  title: month and year format enum
3828
3815
  description: Format string for displaying month and year values
@@ -3849,6 +3836,7 @@ components:
3849
3836
  - "YYYY/MM"
3850
3837
 
3851
3838
  monthDayYearFormatEnum:
3839
+ x-internal: true
3852
3840
  type: string
3853
3841
  title: month, day and year format enum
3854
3842
  description: Format string for displaying full dates in the
@@ -3906,6 +3894,7 @@ components:
3906
3894
  - "M/DD/YYYY"
3907
3895
 
3908
3896
  monthDayFormatEnum:
3897
+ x-internal: true
3909
3898
  type: string
3910
3899
  title: month and day format enum
3911
3900
  description: Format string for displaying month and day values
@@ -3948,6 +3937,98 @@ components:
3948
3937
  - "DD.M"
3949
3938
  - "DD/M"
3950
3939
 
3940
+ localeEnum:
3941
+ type: string
3942
+ title: locale enum
3943
+ description: Locale used for formatting numbers and currency amounts in
3944
+ the Lunch Money app.
3945
+ example: en-US
3946
+ enum:
3947
+ - sq-AL # Albanian (Albania)
3948
+ - be-BY # Belarusian (Belarus)
3949
+ - bg-BG # Bulgarian (Bulgaria)
3950
+ - ca-ES # Catalan (Spain)
3951
+ - zh-CN # Chinese (Simplified) (China)
3952
+ - zh-HK # Chinese (Traditional) (Hong Kong)
3953
+ - zh-TW # Chinese (Traditional) (Taiwan)
3954
+ - hr-HR # Croatian (Croatia)
3955
+ - cs-CZ # Czech (Czech Republic)
3956
+ - da-DK # Danish (Denmark)
3957
+ - nl-BE # Dutch (Belgium)
3958
+ - nl-NL # Dutch (Netherlands)
3959
+ - en-AU # English (Australia)
3960
+ - en-CA # English (Canada)
3961
+ - en-IN # English (India)
3962
+ - en-IE # English (Ireland)
3963
+ - en-MT # English (Malta)
3964
+ - en-NZ # English (New Zealand)
3965
+ - en-PH # English (Philippines)
3966
+ - en-SG # English (Singapore)
3967
+ - en-ZA # English (South Africa)
3968
+ - en-GB # English (United Kingdom)
3969
+ - en-US # English (United States)
3970
+ - et-EE # Estonian (Estonia)
3971
+ - fi-FI # Finnish (Finland)
3972
+ - fr-BE # French (Belgium)
3973
+ - fr-CA # French (Canada)
3974
+ - fr-FR # French (France)
3975
+ - fr-LU # French (Luxembourg)
3976
+ - fr-CH # French (Switzerland)
3977
+ - de-AT # German (Austria)
3978
+ - de-DE # German (Germany)
3979
+ - de-LU # German (Luxembourg)
3980
+ - de-CH # German (Switzerland)
3981
+ - el-CY # Greek (Cyprus)
3982
+ - el-GR # Greek (Greece)
3983
+ - iw-IL # Hebrew (Israel); modern replacement: he-IL
3984
+ - hi-IN # Hindi (India)
3985
+ - hu-HU # Hungarian (Hungary)
3986
+ - is-IS # Icelandic (Iceland)
3987
+ - in-ID # Indonesian (Indonesia); modern replacement: id-ID
3988
+ - ga-IE # Irish (Ireland)
3989
+ - it-IT # Italian (Italy)
3990
+ - it-CH # Italian (Switzerland)
3991
+ - ja-JP # Japanese (Japan)
3992
+ - ko-KR # Korean (South Korea)
3993
+ - lv-LV # Latvian (Latvia)
3994
+ - lt-LT # Lithuanian (Lithuania)
3995
+ - mk-MK # Macedonian (Macedonia)
3996
+ - ms-MY # Malay (Malaysia)
3997
+ - mt-MT # Maltese (Malta)
3998
+ - no-NO # Norwegian (Norway)
3999
+ - pl-PL # Polish (Poland)
4000
+ - pt-BR # Portuguese (Brazil)
4001
+ - pt-PT # Portuguese (Portugal)
4002
+ - ro-RO # Romanian (Romania)
4003
+ - ru-RU # Russian (Russia)
4004
+ - sk-SK # Slovak (Slovakia)
4005
+ - sl-SI # Slovenian (Slovenia)
4006
+ - es-AR # Spanish (Argentina)
4007
+ - es-BO # Spanish (Bolivia)
4008
+ - es-CL # Spanish (Chile)
4009
+ - es-CO # Spanish (Colombia)
4010
+ - es-CR # Spanish (Costa Rica)
4011
+ - es-DO # Spanish (Dominican Republic)
4012
+ - es-EC # Spanish (Ecuador)
4013
+ - es-SV # Spanish (El Salvador)
4014
+ - es-GT # Spanish (Guatemala)
4015
+ - es-HN # Spanish (Honduras)
4016
+ - es-MX # Spanish (Mexico)
4017
+ - es-NI # Spanish (Nicaragua)
4018
+ - es-PA # Spanish (Panama)
4019
+ - es-PY # Spanish (Paraguay)
4020
+ - es-PE # Spanish (Peru)
4021
+ - es-PR # Spanish (Puerto Rico)
4022
+ - es-ES # Spanish (Spain)
4023
+ - es-US # Spanish (United States)
4024
+ - es-UY # Spanish (Uruguay)
4025
+ - es-VE # Spanish (Venezuela)
4026
+ - sv-SE # Swedish (Sweden)
4027
+ - th-TH # Thai (Thailand)
4028
+ - tr-TR # Turkish (Turkey)
4029
+ - uk-UA # Ukrainian (Ukraine)
4030
+ - vi-VN # Vietnamese (Vietnam)
4031
+
3951
4032
  accountSettingsObject:
3952
4033
  type: object
3953
4034
  title: account settings object
@@ -3971,13 +4052,19 @@ components:
3971
4052
  description: Display name of the budgeting account in the Lunch Money
3972
4053
  app.
3973
4054
  locale:
3974
- type: string
3975
- description: Locale used for formatting dates and numbers in the
3976
- Lunch Money app (for example, `en-US`). When no locale is explicitly
3977
- stored for the account, the effective locale is derived from the
3978
- `default_locale` associated with `primary_currency` in the
3979
- currencies table (for example, `usd` → `en-US`, `cad` → `en-CA`,
3980
- `gbp` → `en-GB`).
4055
+ allOf:
4056
+ - $ref: "#/components/schemas/localeEnum"
4057
+ example: en-US
4058
+ description: Locale used for formatting numbers and currency amounts
4059
+ in the Lunch Money app (for example, `en-US`). See
4060
+ [Supported Locales](https://lunchmoney.dev/v2/locales) for accepted
4061
+ values. Date presentation is configured separately through
4062
+ [GET /me/user/settings](#tag/me/GET/me/user/settings) and
4063
+ [PUT /me/user/settings](#tag/me/PUT/me/user/settings). When no
4064
+ locale is explicitly stored for the account, the effective locale
4065
+ is derived from the `default_locale` associated with
4066
+ `primary_currency` in the currencies table (for example, `usd` →
4067
+ `en-US`, `cad` → `en-CA`, `gbp` → `en-GB`).
3981
4068
  auto_create_category_rules:
3982
4069
  type: boolean
3983
4070
  default: true
@@ -3988,16 +4075,11 @@ components:
3988
4075
  default: true
3989
4076
  description: If `true`, suggested transaction rules are created
3990
4077
  automatically.
3991
- auto_review_transaction_on_update:
3992
- type: boolean
3993
- default: true
3994
- description: If `true`, transactions are marked as reviewed when
3995
- updated.
3996
- auto_review_transaction_on_creation:
4078
+ include_pending_in_totals:
3997
4079
  type: boolean
3998
4080
  default: true
3999
- description: If `true`, transactions are marked as reviewed when
4000
- created.
4081
+ description: If `true`, pending transactions are included in account
4082
+ totals.
4001
4083
  required:
4002
4084
  - primary_currency
4003
4085
  - supported_currencies
@@ -4005,13 +4087,13 @@ components:
4005
4087
  - locale
4006
4088
  - auto_create_category_rules
4007
4089
  - auto_create_suggested_transaction_rules
4008
- - auto_review_transaction_on_update
4009
- - auto_review_transaction_on_creation
4090
+ - include_pending_in_totals
4010
4091
 
4011
4092
  updateAccountSettingsRequestObject:
4012
4093
  x-internal: true
4013
4094
  type: object
4014
4095
  additionalProperties: false
4096
+ minProperties: 1
4015
4097
  description: Request body for updating account settings. Include at least
4016
4098
  one property to update.
4017
4099
  properties:
@@ -4033,9 +4115,15 @@ components:
4033
4115
  description: If set, updates the display name of the budgeting account.
4034
4116
  x-updatable: true
4035
4117
  locale:
4036
- type: string
4037
- description: If set, updates the locale used for formatting dates and
4038
- numbers in the Lunch Money app.
4118
+ allOf:
4119
+ - $ref: "#/components/schemas/localeEnum"
4120
+ example: en-US
4121
+ description: If set, updates the locale used for formatting numbers
4122
+ and currency amounts in the Lunch Money app. See
4123
+ [Supported Locales](https://lunchmoney.dev/v2/locales) for accepted
4124
+ values. Date presentation is configured separately through
4125
+ [GET /me/user/settings](#tag/me/GET/me/user/settings) and
4126
+ [PUT /me/user/settings](#tag/me/PUT/me/user/settings).
4039
4127
  x-updatable: true
4040
4128
  auto_create_category_rules:
4041
4129
  type: boolean
@@ -4047,15 +4135,70 @@ components:
4047
4135
  description: If set, updates whether suggested transaction rules are
4048
4136
  created automatically.
4049
4137
  x-updatable: true
4138
+ include_pending_in_totals:
4139
+ type: boolean
4140
+ description: If set, updates whether pending transactions are included
4141
+ in account totals.
4142
+ x-updatable: true
4143
+
4144
+ userAccountSettingsObject:
4145
+ type: object
4146
+ title: user account settings object
4147
+ additionalProperties: false
4148
+ description: Settings specific to the authorized user within the current
4149
+ budgeting account.
4150
+ properties:
4151
+ auto_review_transaction_on_update:
4152
+ type: boolean
4153
+ default: true
4154
+ description: If `true`, transactions are marked as reviewed when their
4155
+ date, category, payee, amount, account, or notes are changed.
4156
+ auto_review_transaction_on_creation:
4157
+ type: boolean
4158
+ default: true
4159
+ description: If `true`, new manual transactions start as reviewed. If
4160
+ `false`, they start as unreviewed.
4161
+ default_manual_account_id:
4162
+ type: integer
4163
+ nullable: true
4164
+ description: Manual account selected by default when the user creates a
4165
+ manual transaction in the current budgeting account. Must identify a
4166
+ manual account returned by
4167
+ [GET /manual_accounts](#tag/manual_accounts/GET/manual_accounts) for
4168
+ the current budgeting account. Set to `null` to clear the selection.
4169
+ required:
4170
+ - auto_review_transaction_on_update
4171
+ - auto_review_transaction_on_creation
4172
+ - default_manual_account_id
4173
+
4174
+ updateUserAccountSettingsRequestObject:
4175
+ x-internal: true
4176
+ type: object
4177
+ additionalProperties: false
4178
+ minProperties: 1
4179
+ description: Request body for updating settings specific to the authorized
4180
+ user within the current budgeting account. Include at least one property
4181
+ to update.
4182
+ properties:
4050
4183
  auto_review_transaction_on_update:
4051
4184
  type: boolean
4052
4185
  description: If set, updates whether transactions are marked as reviewed
4053
- when updated.
4186
+ when their date, category, payee, amount, account, or notes are
4187
+ changed.
4054
4188
  x-updatable: true
4055
4189
  auto_review_transaction_on_creation:
4056
4190
  type: boolean
4057
- description: If set, updates whether transactions are marked as reviewed
4058
- when created.
4191
+ description: If set, updates whether new manual transactions start as
4192
+ reviewed or unreviewed.
4193
+ x-updatable: true
4194
+ default_manual_account_id:
4195
+ type: integer
4196
+ nullable: true
4197
+ description: If set, updates the manual account selected by default when
4198
+ the user creates a manual transaction in the current budgeting
4199
+ account. Must identify a manual account returned by
4200
+ [GET /manual_accounts](#tag/manual_accounts/GET/manual_accounts) for
4201
+ the current budgeting account. Set to `null` to clear the selection.
4059
4202
  x-updatable: true
4060
4203
 
4061
4204
  userSettingsObject:
@@ -4131,6 +4274,7 @@ components:
4131
4274
  x-internal: true
4132
4275
  type: object
4133
4276
  additionalProperties: false
4277
+ minProperties: 1
4134
4278
  description: Request body for updating user settings. Include at least one
4135
4279
  property to update.
4136
4280
  properties:
@@ -4967,11 +5111,14 @@ paths:
4967
5111
  summary: Get current user
4968
5112
  description: |-
4969
5113
  Get details about the user associated with the supplied authorization
4970
- token.<p> For account- and user-level preferences, prefer
4971
- [/me/account/settings](#tag/me/GET/me/account/settings) and
4972
- [/me/user/settings](#tag/me/GET/me/user/settings). Properties such as
4973
- `primary_currency` and `budget_name` remain on this response for
4974
- backwards compatibility.
5114
+ token.<p> Use [/me/user/settings](#tag/me/GET/me/user/settings) for
5115
+ user-wide preferences,
5116
+ [/me/account/settings](#tag/me/GET/me/account/settings) for account-wide
5117
+ preferences, and
5118
+ [/me/user/account/settings](#tag/me/GET/me/user/account/settings) for
5119
+ preferences specific to the current user and budgeting account.
5120
+ Properties such as `primary_currency` and `budget_name` remain on this
5121
+ response for backwards compatibility.
4975
5122
  operationId: getMe
4976
5123
  parameters: []
4977
5124
  responses:
@@ -5000,13 +5147,9 @@ paths:
5000
5147
  tags:
5001
5148
  - me
5002
5149
  summary: Get account settings
5003
- description: |-
5004
- > [!warning]
5005
- > **Preview endpoint** — behavior is subject to change. This endpoint is available in the mock server but not implemented yet on the live api service. Design feedback is welcome. [Email dev-support@lunchmoney.app](mailto:dev-support@lunchmoney.app) or join us in the [developers channel](https://discord.com/channels/842337014556262411/1134594318414389258) on the [Lunch Money Discord](https://lunchmoney.app/discord).
5006
-
5007
-
5008
- Returns account-level settings for the budgeting account associated with the authorized API token.<p>
5009
- These settings apply only to this budgeting account; a user with access to multiple budgets has separate account settings for each.
5150
+ description: >-
5151
+ Returns settings for the current budgeting account. These settings apply
5152
+ regardless of which user is accessing the account.
5010
5153
  operationId: getAccountSettings
5011
5154
  responses:
5012
5155
  "200":
@@ -5025,8 +5168,7 @@ paths:
5025
5168
  locale: en-US
5026
5169
  auto_create_category_rules: true
5027
5170
  auto_create_suggested_transaction_rules: true
5028
- auto_review_transaction_on_update: true
5029
- auto_review_transaction_on_creation: true
5171
+ include_pending_in_totals: true
5030
5172
  "401":
5031
5173
  $ref: "#/components/responses/unauthorizedToken"
5032
5174
  "429":
@@ -5038,18 +5180,11 @@ paths:
5038
5180
  - me
5039
5181
  summary: Update account settings
5040
5182
  description: |-
5041
- > [!warning]
5042
- > **Preview endpoint** — behavior is subject to change. This endpoint is available in the mock server but not implemented yet on the live api service. Design feedback is welcome. [Email dev-support@lunchmoney.app](mailto:dev-support@lunchmoney.app) or join us in the [developers channel](https://discord.com/channels/842337014556262411/1134594318414389258) on the [Lunch Money Discord](https://lunchmoney.app/discord).
5043
-
5044
-
5045
5183
  Updates account-level settings for the budgeting account
5046
- associated with the authorized API token.<p>
5047
- These settings apply only to this budgeting account; a user with access to multiple budgets has separate account settings for each.<p>
5048
- You may submit the response from a
5049
- `GET /me/account/settings` as the request body; however, only certain
5050
- properties can be updated.<p> It is also possible to provide only the
5051
- properties to be updated in the request body, as long as the request
5052
- includes at least one updatable property.
5184
+ associated with the authorized API token. Submit the full response from
5185
+ `GET /me/account/settings` with one or more properties changed, or
5186
+ provide only the properties to update. The request body must include at
5187
+ least one property.
5053
5188
  operationId: updateAccountSettings
5054
5189
  requestBody:
5055
5190
  required: true
@@ -5064,7 +5199,7 @@ paths:
5064
5199
  Update automation preferences:
5065
5200
  value:
5066
5201
  auto_create_category_rules: false
5067
- auto_review_transaction_on_creation: false
5202
+ include_pending_in_totals: false
5068
5203
  responses:
5069
5204
  "200":
5070
5205
  description: Account settings updated successfully
@@ -5089,13 +5224,10 @@ paths:
5089
5224
  tags:
5090
5225
  - me
5091
5226
  summary: Get user settings
5092
- description: |-
5093
- > [!warning]
5094
- > **Preview endpoint** — behavior is subject to change. This endpoint is available in the mock server but not implemented yet on the live api service. Design feedback is welcome. [Email dev-support@lunchmoney.app](mailto:dev-support@lunchmoney.app) or join us in the [developers channel](https://discord.com/channels/842337014556262411/1134594318414389258) on the [Lunch Money Discord](https://lunchmoney.app/discord).
5095
-
5096
-
5097
- Returns user-level display and formatting preferences for the user associated with the authorized API token.<p>
5098
- User settings belong to the user and apply across all budgets they can access.
5227
+ description: >-
5228
+ Returns display and formatting preferences for the authorized user.
5229
+ These settings apply across every budgeting account the user owns or
5230
+ collaborates on.
5099
5231
  operationId: getUserSettings
5100
5232
  responses:
5101
5233
  "200":
@@ -5125,18 +5257,11 @@ paths:
5125
5257
  - me
5126
5258
  summary: Update user settings
5127
5259
  description: |-
5128
- > [!warning]
5129
- > **Preview endpoint** — behavior is subject to change. This endpoint is available in the mock server but not implemented yet on the live api service. Design feedback is welcome. [Email dev-support@lunchmoney.app](mailto:dev-support@lunchmoney.app) or join us in the [developers channel](https://discord.com/channels/842337014556262411/1134594318414389258) on the [Lunch Money Discord](https://lunchmoney.app/discord).
5130
-
5131
-
5132
5260
  Updates user-level display and formatting preferences for the user
5133
- associated with the authorized API token.<p>
5134
- User settings belong to the user and apply across all budgets they can access.<p>
5135
- You may submit the response from a
5136
- from a `GET /me/user/settings` as the request body; however, only
5137
- certain properties can be updated.<p> It is also possible to provide
5138
- only the properties to be updated in the request body, as long as the
5139
- request includes at least one updatable property.<p> Updating
5261
+ associated with the authorized API token. Submit the full response from
5262
+ `GET /me/user/settings` with one or more properties changed, or provide
5263
+ only the properties to update. The request body must include at least
5264
+ one property.<p> Updating
5140
5265
  `show_debits_as_negative` affects display in the Lunch Money app only.
5141
5266
  Amount fields in API responses always use positive values for debits and
5142
5267
  negative values for credits.
@@ -5176,6 +5301,88 @@ paths:
5176
5301
  $ref: "#/components/responses/rateLimited"
5177
5302
  "500":
5178
5303
  $ref: "#/components/responses/serverError"
5304
+ /me/user/account/settings:
5305
+ get:
5306
+ tags:
5307
+ - me
5308
+ summary: Get user account settings
5309
+ description: >-
5310
+ Returns settings specific to the authorized user within the current
5311
+ budgeting account. These settings do not affect other users or the
5312
+ authorized user's settings in other budgeting accounts.
5313
+ operationId: getUserAccountSettings
5314
+ responses:
5315
+ "200":
5316
+ description: Settings for the authorized user in the current budgeting
5317
+ account
5318
+ content:
5319
+ application/json:
5320
+ schema:
5321
+ $ref: "#/components/schemas/userAccountSettingsObject"
5322
+ example:
5323
+ auto_review_transaction_on_update: true
5324
+ auto_review_transaction_on_creation: true
5325
+ default_manual_account_id: null
5326
+ "401":
5327
+ $ref: "#/components/responses/unauthorizedToken"
5328
+ "429":
5329
+ $ref: "#/components/responses/rateLimited"
5330
+ "500":
5331
+ $ref: "#/components/responses/serverError"
5332
+ put:
5333
+ tags:
5334
+ - me
5335
+ summary: Update user account settings
5336
+ description: |-
5337
+ Updates settings specific to the authorized user within the current
5338
+ budgeting account. Submit the full response from
5339
+ `GET /me/user/account/settings` with one or more properties changed, or
5340
+ provide only the properties to update. The request body must include at
5341
+ least one property.
5342
+ operationId: updateUserAccountSettings
5343
+ requestBody:
5344
+ required: true
5345
+ content:
5346
+ application/json:
5347
+ schema:
5348
+ $ref: "#/components/schemas/updateUserAccountSettingsRequestObject"
5349
+ examples:
5350
+ Update review preference:
5351
+ value:
5352
+ auto_review_transaction_on_creation: false
5353
+ Clear default manual account:
5354
+ value:
5355
+ default_manual_account_id: null
5356
+ responses:
5357
+ "200":
5358
+ description: User account settings updated successfully
5359
+ content:
5360
+ application/json:
5361
+ schema:
5362
+ $ref: "#/components/schemas/userAccountSettingsObject"
5363
+ examples:
5364
+ Update review preference:
5365
+ value:
5366
+ auto_review_transaction_on_update: true
5367
+ auto_review_transaction_on_creation: false
5368
+ default_manual_account_id: null
5369
+ Clear default manual account:
5370
+ value:
5371
+ auto_review_transaction_on_update: true
5372
+ auto_review_transaction_on_creation: true
5373
+ default_manual_account_id: null
5374
+ "400":
5375
+ description: Invalid request body
5376
+ content:
5377
+ application/json:
5378
+ schema:
5379
+ $ref: "#/components/schemas/errorResponseObject"
5380
+ "401":
5381
+ $ref: "#/components/responses/unauthorizedToken"
5382
+ "429":
5383
+ $ref: "#/components/responses/rateLimited"
5384
+ "500":
5385
+ $ref: "#/components/responses/serverError"
5179
5386
  /summary:
5180
5387
  get:
5181
5388
  tags:
@@ -9253,19 +9460,19 @@ paths:
9253
9460
  description: Sets the maximum number of transactions to return. If
9254
9461
  more match the filter criteria, the response will include a
9255
9462
  `has_more` attribute set to `true`. See
9256
- [Pagination](https://beta.lunchmoney.dev/v2/pagination)
9463
+ [Pagination](https://lunchmoney.dev/v2/pagination)
9257
9464
  - name: offset
9258
9465
  in: query
9259
9466
  schema:
9260
9467
  type: integer
9261
9468
  description: Sets the offset for the records returned. This is
9262
9469
  typically set automatically in the header. See
9263
- [Pagination](https://beta.lunchmoney.dev/v2/pagination)
9470
+ [Pagination](https://lunchmoney.dev/v2/pagination)
9264
9471
  responses:
9265
9472
  "200":
9266
9473
  description: Returns an array of transactions. <br><br>The `has_more`
9267
9474
  property is set to `true` if more transactions are available. See
9268
- [Pagination](https://beta.lunchmoney.dev/v2/pagination)
9475
+ [Pagination](https://lunchmoney.dev/v2/pagination)
9269
9476
  content:
9270
9477
  application/json:
9271
9478
  schema: