@lunch-money/developer-docs 2.11.1-preview.4 → 2.11.1-preview.6
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.
- package/docs/README.md +1 -0
- package/docs/beta-introduction.md +9 -0
- package/docs/branding-your-app.md +64 -0
- package/manifest.json +10 -1
- package/package.json +1 -1
- package/v2/docs/AGENTS.md +48 -0
- package/v2/docs/version-history.md +20 -19
- package/v2/spec/AGENTS.md +75 -0
- package/v2/spec/lunch-money-api-v2.yaml +511 -359
package/docs/README.md
CHANGED
|
@@ -5,6 +5,7 @@ This directory contains documentation that applies across all API versions.
|
|
|
5
5
|
## Current Documents
|
|
6
6
|
|
|
7
7
|
- `pagination.md` - Pagination guidelines
|
|
8
|
+
- `branding-your-app.md` - Brand assets and usage guidelines for apps built on Lunch Money
|
|
8
9
|
- (To be added) Other version-independent documentation
|
|
9
10
|
|
|
10
11
|
## Version-Specific Documentation
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
**Beta Preview Portal** — This developer portal previews planned changes including:
|
|
2
|
+
- Beta versions of new [v2 API](/v2/docs) endpoints:
|
|
3
|
+
- [GET /me/account/settings](v2/docs#tag/me/GET/me/account/settings)
|
|
4
|
+
- [PUT /me/account/settings](v2/docs#tag/me/PUT/me/account/settings)
|
|
5
|
+
- [GET /me/user/settings](v2/docs#tag/me/GET/me/user/settings)
|
|
6
|
+
- [PUT /me/user/settings](v2/docs#tag/me/PUT/me/user/settings)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
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).
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Branding your App
|
|
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.
|
|
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
|
|
16
|
+
|
|
17
|
+
> [!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.
|
|
19
|
+
|
|
20
|
+
## Naming
|
|
21
|
+
|
|
22
|
+
- Refer to the product as **Lunch Money**
|
|
23
|
+
- Refer to the company as **Lunchbag Labs, Inc.** when a legal or company name is needed
|
|
24
|
+
- Link to <a href="https://lunchmoney.app/" target="_blank" rel="noopener noreferrer">lunchmoney.app</a> when you mention the product
|
|
25
|
+
|
|
26
|
+
Avoid nicknames, abbreviations, or stylized spellings of the product name in user-facing copy.
|
|
27
|
+
|
|
28
|
+
## Usage guidelines
|
|
29
|
+
|
|
30
|
+
### Do
|
|
31
|
+
|
|
32
|
+
- Use official logos without alteration
|
|
33
|
+
- Use the provided **Powered by** lockup or badge when acknowledging Lunch Money
|
|
34
|
+
- Keep enough clear space around logos so they stay readable
|
|
35
|
+
- Download assets from the media kit rather than cropping screenshots of the logo
|
|
36
|
+
|
|
37
|
+
### Don't
|
|
38
|
+
|
|
39
|
+
- Stretch, rotate, or recolor logos
|
|
40
|
+
- Add effects, shadows, or outlines to the logo
|
|
41
|
+
- Modify the smiling coin mascot character
|
|
42
|
+
- Imply endorsement, partnership, or official status without permission
|
|
43
|
+
|
|
44
|
+
> [!NOTE]
|
|
45
|
+
> The Lunch Money name, logo, and mascot character are trademarks of Lunchbag Labs, Inc. All rights reserved.
|
|
46
|
+
|
|
47
|
+
## Suggested placements
|
|
48
|
+
|
|
49
|
+
A few common, low-friction ways to brand an integration:
|
|
50
|
+
|
|
51
|
+
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
|
|
53
|
+
3. **Onboarding or connect flow** — official logo when prompting users to authorize or paste an access token
|
|
54
|
+
4. **Community listings** — consistent naming ("My Tool for Lunch Money") so users can find and trust your project
|
|
55
|
+
|
|
56
|
+
Keep your own product name primary. Lunch Money branding should signal the connection, not compete with your identity.
|
|
57
|
+
|
|
58
|
+
## Need help?
|
|
59
|
+
|
|
60
|
+
If you're unsure whether a use is appropriate, or you need a format that isn't in the media kit:
|
|
61
|
+
|
|
62
|
+
- Start with the <a href="https://lunchmoney.app/media-kit/" target="_blank" rel="noopener noreferrer">Media Kit</a>
|
|
63
|
+
- Ask in the <a href="https://lunchmoney.app/discord" target="_blank" rel="noopener noreferrer">Lunch Money Discord</a> **#developer-api** channel
|
|
64
|
+
- [Email our developer advocate](mailto:jp@lunchmoney.app)
|
package/manifest.json
CHANGED
|
@@ -57,6 +57,14 @@
|
|
|
57
57
|
"type": "markdown",
|
|
58
58
|
"aliases": ["/v2/using-with-ai"]
|
|
59
59
|
},
|
|
60
|
+
{
|
|
61
|
+
"path": "/branding-your-app",
|
|
62
|
+
"file": "docs/branding-your-app.md",
|
|
63
|
+
"title": "Branding your App",
|
|
64
|
+
"section": "GUIDES",
|
|
65
|
+
"type": "markdown",
|
|
66
|
+
"aliases": ["/v2/branding-your-app"]
|
|
67
|
+
},
|
|
60
68
|
{
|
|
61
69
|
"path": "/v2/overview",
|
|
62
70
|
"file": "v2/docs/intro-to-v2.md",
|
|
@@ -191,7 +199,8 @@
|
|
|
191
199
|
{ "label": "Pagination", "path": "/pagination" },
|
|
192
200
|
{ "label": "Rate Limiting", "path": "/rate-limits" },
|
|
193
201
|
{ "label": "Supported Currencies", "path": "/currencies" },
|
|
194
|
-
{ "label": "Using the API with AI", "path": "/using-with-ai" }
|
|
202
|
+
{ "label": "Using the API with AI", "path": "/using-with-ai" },
|
|
203
|
+
{ "label": "Branding your App", "path": "/branding-your-app" }
|
|
195
204
|
]},
|
|
196
205
|
{ "section": "REFERENCE", "items": [
|
|
197
206
|
{ "label": "v2 API Overview", "path": "/v2/overview" },
|
package/package.json
CHANGED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# V2 documentation instructions
|
|
2
|
+
|
|
3
|
+
Follow these rules when editing files under `v2/docs` or documenting changes to `v2/spec/lunch-money-api-v2.yaml`.
|
|
4
|
+
|
|
5
|
+
## Version history
|
|
6
|
+
|
|
7
|
+
For every consumer-visible spec change, update `v2/docs/version-history.md` under the version being prepared.
|
|
8
|
+
|
|
9
|
+
Keep entries brief and high level. The version history records what changed; the OpenAPI endpoint documentation describes how to use it.
|
|
10
|
+
|
|
11
|
+
Include:
|
|
12
|
+
|
|
13
|
+
- New, renamed, deprecated, or removed endpoints
|
|
14
|
+
- Changes to path or query parameters
|
|
15
|
+
- Changes to request-body properties
|
|
16
|
+
- Changes to response-body properties or shapes
|
|
17
|
+
- Changed status codes, accepted values, defaults, limits, or validation behavior
|
|
18
|
+
- Breaking changes
|
|
19
|
+
|
|
20
|
+
Do not include:
|
|
21
|
+
|
|
22
|
+
- Product or implementation rationale
|
|
23
|
+
- Internal implementation details
|
|
24
|
+
- Detailed usage instructions or examples
|
|
25
|
+
- Full schema descriptions
|
|
26
|
+
- Testing, rollout, or cross-repository implementation details
|
|
27
|
+
- Editorial changes that do not alter the documented API contract
|
|
28
|
+
|
|
29
|
+
### Style
|
|
30
|
+
|
|
31
|
+
- Name endpoints using the HTTP method and path, such as `GET /balance_history`.
|
|
32
|
+
- Format endpoints, parameter names, property names, schema names, and literal values with backticks.
|
|
33
|
+
- Start bullets with a present-tense verb such as `Add`, `Change`, `Remove`, `Rename`, or `Deprecate`.
|
|
34
|
+
- Prefer one concise bullet for each logical change.
|
|
35
|
+
- Use nested bullets only to list endpoints or closely related property changes.
|
|
36
|
+
- Do not explain why the change was made or provide instructions for adapting to it.
|
|
37
|
+
- Keep unreleased versions marked `TBD`; do not assign a release date without confirmation.
|
|
38
|
+
- Clearly label breaking changes.
|
|
39
|
+
|
|
40
|
+
## Other documentation
|
|
41
|
+
|
|
42
|
+
- Do not routinely update `v2/docs/migration-guide.md` or `v2/docs/intro-to-v2.md` for individual spec changes.
|
|
43
|
+
- Determine whether a spec change makes an existing guide factually incorrect, including guides in the shared `docs` directory.
|
|
44
|
+
- Correct an existing guide when it would otherwise contradict the spec.
|
|
45
|
+
- Consider broader documentation only for a reusable cross-endpoint concept that cannot be documented adequately on the affected endpoints.
|
|
46
|
+
- If broader documentation might be useful but is not required for correctness, identify the candidate page and ask the user before expanding it or adding a page.
|
|
47
|
+
- Prefer endpoint descriptions over general guides for endpoint-specific behavior.
|
|
48
|
+
- Do not add detail to the migration guide merely because V2 differs from V1.
|
|
@@ -10,25 +10,26 @@ The Lunch Money API spec uses a modified version of SEMVER for its versioning me
|
|
|
10
10
|
- Add `GET /me/user/settings` and `PUT /me/user/settings` for user-level display and formatting preferences
|
|
11
11
|
- Document `GET /budgets/settings` response schema publicly; change `budget_period_quantity` to integer
|
|
12
12
|
|
|
13
|
-
## v2.11.0 -
|
|
14
|
-
- Add `
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
13
|
+
## v2.11.0 - Jul 31, 2026
|
|
14
|
+
- Add `/balance_history` endpoints:
|
|
15
|
+
- `GET /balance_history`
|
|
16
|
+
- `GET /balance_history/{account_type}/{account_id}`
|
|
17
|
+
- `GET /balance_history/crypto_synced/{account_id}/{symbol}`
|
|
18
|
+
- `PUT /balance_history/{account_type}/{account_id}`
|
|
19
|
+
- `PUT /balance_history/crypto_synced/{account_id}/{symbol}`
|
|
20
|
+
- `DELETE /balance_history/entries/{id}`
|
|
21
|
+
- `DELETE /balance_history/{account_type}/{account_id}`
|
|
22
|
+
- `DELETE /balance_history/crypto_synced/{account_id}/{symbol}`
|
|
23
|
+
- `PUT /balance_history/deleted/{account_id}/details`
|
|
24
|
+
- Remove `rollover_pool` from category objects in the `GET /summary` response
|
|
25
|
+
- Allow setting `external_id` on Plaid-account transactions
|
|
26
|
+
- Allow `null` for `category_id` and `notes` on split children to clear those values instead of inheriting from the parent
|
|
27
|
+
|
|
28
|
+
## v2.10.0 - Jul 31, 2026
|
|
29
|
+
- Add crypto endpoints:
|
|
30
|
+
- `GET /cryptocurrencies`
|
|
31
|
+
- `GET /crypto/manual`, `POST /crypto/manual`, `GET /crypto/manual/{id}`, `PUT /crypto/manual/{id}`, `DELETE /crypto/manual/{id}`
|
|
32
|
+
- `GET /crypto/synced`, `GET /crypto/synced/{id}`, `GET /crypto/synced/{id}/{symbol}`, `POST /crypto/synced/{id}/refresh`
|
|
32
33
|
|
|
33
34
|
## v2.9.4 - May 23, 2026
|
|
34
35
|
- Increase allowable length for transaction `notes`.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Repository instructions
|
|
2
|
+
|
|
3
|
+
## V2 OpenAPI conventions
|
|
4
|
+
|
|
5
|
+
Follow these rules whenever editing `v2/spec/lunch-money-api-v2.yaml`:
|
|
6
|
+
|
|
7
|
+
### Component schemas
|
|
8
|
+
|
|
9
|
+
- Define request and response object payloads as named schemas under `components.schemas`.
|
|
10
|
+
- Reference those component schemas from path operations with `$ref`; do not define object payload schemas inline under `paths`.
|
|
11
|
+
- Give every property in a referenced component schema a description, including wrapper properties, nested objects, array properties, and properties whose shape is supplied by `$ref`.
|
|
12
|
+
- Use a property's description to explain its role in the containing object; do not assume the referenced schema's description provides that context.
|
|
13
|
+
- Give every schema displayed in Scalar's Models section a top-level description.
|
|
14
|
+
- A schema hidden from the Models section does not require a top-level description when its purpose is already clear at every reference site. Add one when it defines reusable semantics or constraints not explained by the referencing property, request body, or response.
|
|
15
|
+
- Remove unreferenced component schemas unless they are intentionally retained for a documented reason.
|
|
16
|
+
|
|
17
|
+
### Scalar model visibility
|
|
18
|
+
|
|
19
|
+
`x-internal: true` hides a component schema from Scalar's Models section. It does not mean the endpoint, payload, or data is private.
|
|
20
|
+
|
|
21
|
+
- Keep primary response-body schemas public by omitting `x-internal` or setting it to `false`.
|
|
22
|
+
- Set `x-internal: true` on request-only schemas and supporting schemas that are not useful as independently browsable models.
|
|
23
|
+
- Keep a shared schema public when it is a useful response model, even if requests or other schemas also reference it.
|
|
24
|
+
- Decide visibility from how the schema is used, not from its name.
|
|
25
|
+
|
|
26
|
+
### Endpoint documentation
|
|
27
|
+
|
|
28
|
+
- Give every operation a concise `summary` and a `description`.
|
|
29
|
+
- Give every path, query, and header parameter a description.
|
|
30
|
+
- Give every response entry a meaningful description.
|
|
31
|
+
- Document endpoint-specific behavior, defaults, side effects, and request or response semantics on the operation or relevant field rather than in a general guide.
|
|
32
|
+
|
|
33
|
+
### Description style
|
|
34
|
+
|
|
35
|
+
- Use direct, neutral, present-tense language from the API consumer's perspective.
|
|
36
|
+
- Use a sentence fragment for a short label or noun phrase, without a terminal period.
|
|
37
|
+
- Use complete sentences for behavior or semantics, with terminal punctuation.
|
|
38
|
+
- When a description contains multiple sentences, punctuate every sentence.
|
|
39
|
+
- Use backticks for property names, parameter names, enum values, and literal values such as `true`, `false`, and `null`.
|
|
40
|
+
- Do not repeat type information unless it clarifies a format, unit, constraint, or semantic detail.
|
|
41
|
+
- Add links when they materially help consumers discover a related endpoint or relevant guide.
|
|
42
|
+
- Do not add links that merely restate obvious navigation.
|
|
43
|
+
|
|
44
|
+
### Examples
|
|
45
|
+
|
|
46
|
+
Examples are selective documentation aids, not a required artifact for every spec change.
|
|
47
|
+
|
|
48
|
+
- Audit affected examples whenever an endpoint, schema, or behavior changes, but edit them only when they become invalid, inaccurate, or misleading.
|
|
49
|
+
- Add an example when it illustrates a new endpoint, a materially different payload shape, or behavior not already clear from the schema and descriptions.
|
|
50
|
+
- Do not add examples mechanically for changes that widen accepted values, such as allowing an optional property to be `null`, when existing examples remain valid and the schema and description explain the behavior.
|
|
51
|
+
- Changes to a type, format, enum, requiredness, default, or representation require examining every affected example. Edit only examples that use or imply the old contract.
|
|
52
|
+
- A new endpoint should normally include a minimal valid request example when it accepts a JSON body and a representative success example when it returns a JSON body. Ask the user before omitting examples when the reason is unclear.
|
|
53
|
+
- When uncertain whether a change benefits from a new example, ask the user rather than adding one speculatively.
|
|
54
|
+
- Put request examples under the request media type, response examples under the applicable status code and media type, and parameter examples on the parameter.
|
|
55
|
+
- Use schema-property examples sparingly for unusual formats or values that are difficult to infer.
|
|
56
|
+
- Use `example` for one representative scenario and `examples` for materially different scenarios.
|
|
57
|
+
- Keep examples concise, fictional, internally consistent, and valid against the applicable schema.
|
|
58
|
+
- Include required properties. Include optional properties only when they help explain the scenario.
|
|
59
|
+
- Give named examples concise, accurate scenario keys. Add a `summary` or `description` only when it contributes information beyond the key and payload.
|
|
60
|
+
- Add endpoint-specific error examples only when the error shape or behavior differs meaningfully from shared standard errors.
|
|
61
|
+
|
|
62
|
+
#### Paired request and response examples
|
|
63
|
+
|
|
64
|
+
Pair request and response examples when seeing the result helps explain a synchronous create or update operation.
|
|
65
|
+
|
|
66
|
+
- Use the same scenario key under the request and corresponding response.
|
|
67
|
+
- Carry submitted values through consistently; use the response to show generated IDs, timestamps, defaults, conversions, inherited values, or other returned fields.
|
|
68
|
+
- Pair invalid request examples with the applicable error response using the same scenario key.
|
|
69
|
+
- Do not pair every request scenario. Add a pair only when the response teaches something useful.
|
|
70
|
+
- Treat singular request and response `example` blocks as an implicit pair and keep shared values consistent.
|
|
71
|
+
- Do not pair examples when the response has no body, processing is asynchronous, or the result does not directly correspond to the submitted payload.
|
|
72
|
+
|
|
73
|
+
When planning or reviewing a spec change, identify the affected schemas, verify their Scalar visibility and descriptions, and audit related request, response, parameter, and error examples. Record example changes only when existing examples become inaccurate or a new scenario materially improves the documentation. When in doubt, ask the user.
|
|
74
|
+
|
|
75
|
+
Before finishing a consumer-visible spec change, follow `../docs/AGENTS.md` to add a concise version-history entry and check whether an existing guide has become factually incorrect.
|