@lunch-money/v2-api-spec 2.11.0-preview.3 → 2.11.0-preview.5
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/lunch-money-api-v2.yaml +184 -172
- package/package.json +1 -1
- package/version-history.md +1 -0
package/lunch-money-api-v2.yaml
CHANGED
|
@@ -1364,7 +1364,9 @@ components:
|
|
|
1364
1364
|
- $ref: "#/components/schemas/accountTypeEnum"
|
|
1365
1365
|
subtype:
|
|
1366
1366
|
type: string
|
|
1367
|
-
|
|
1367
|
+
nullable: true
|
|
1368
|
+
description: If set, an optional account subtype. Set to `null` to clear it.
|
|
1369
|
+
Examples include<br>
|
|
1368
1370
|
- retirement - checking - savings - prepaid credit card
|
|
1369
1371
|
minLength: 1
|
|
1370
1372
|
maxLength: 100
|
|
@@ -1791,7 +1793,10 @@ components:
|
|
|
1791
1793
|
deleted: "#/components/schemas/balanceHistorySourceDeleted"
|
|
1792
1794
|
balances:
|
|
1793
1795
|
type: array
|
|
1794
|
-
description:
|
|
1796
|
+
description: >
|
|
1797
|
+
Monthly balance history entries for the source account. On GET responses,
|
|
1798
|
+
this includes all entries in the requested range. On PUT upsert responses,
|
|
1799
|
+
this includes only the entries modified by that request.
|
|
1795
1800
|
items:
|
|
1796
1801
|
$ref: "#/components/schemas/balanceHistoryObject"
|
|
1797
1802
|
required:
|
|
@@ -1816,7 +1821,7 @@ components:
|
|
|
1816
1821
|
balance:
|
|
1817
1822
|
type: string
|
|
1818
1823
|
pattern: ^-?\d+(\.\d{1,4})?$
|
|
1819
|
-
description: Historical balance stored for this entry. For manual and Plaid accounts this is in the account currency. For crypto accounts this is in the user's primary currency.
|
|
1824
|
+
description: Historical balance stored for this entry, as a numeric string with up to four decimal places. Trailing zeros and decimal places are not guaranteed in responses. For manual and Plaid accounts this is in the account currency. For crypto accounts this is in the user's primary currency.
|
|
1820
1825
|
currency:
|
|
1821
1826
|
allOf:
|
|
1822
1827
|
- $ref: "#/components/schemas/currencyEnum"
|
|
@@ -1863,7 +1868,7 @@ components:
|
|
|
1863
1868
|
date:
|
|
1864
1869
|
type: string
|
|
1865
1870
|
format: date
|
|
1866
|
-
description: Month to update, in YYYY-MM-DD format. This must be the first day of a month and must
|
|
1871
|
+
description: Month to update, in YYYY-MM-DD format. This must be the first day of a month and must be in a past month.
|
|
1867
1872
|
balance:
|
|
1868
1873
|
oneOf:
|
|
1869
1874
|
- type: number
|
|
@@ -1914,37 +1919,6 @@ components:
|
|
|
1914
1919
|
required:
|
|
1915
1920
|
- balances
|
|
1916
1921
|
|
|
1917
|
-
balanceHistoryUpdateErrorObject:
|
|
1918
|
-
type: object
|
|
1919
|
-
x-internal: true
|
|
1920
|
-
additionalProperties: true
|
|
1921
|
-
properties:
|
|
1922
|
-
request_balances_index:
|
|
1923
|
-
type: integer
|
|
1924
|
-
format: int32
|
|
1925
|
-
description: Zero-based index into the `balances` request array
|
|
1926
|
-
message:
|
|
1927
|
-
type: string
|
|
1928
|
-
description: Error message describing why the row could not be updated
|
|
1929
|
-
required:
|
|
1930
|
-
- request_balances_index
|
|
1931
|
-
- message
|
|
1932
|
-
|
|
1933
|
-
upsertBalanceHistoryResponseObject:
|
|
1934
|
-
type: object
|
|
1935
|
-
x-internal: true
|
|
1936
|
-
additionalProperties: false
|
|
1937
|
-
properties:
|
|
1938
|
-
updated_balance_history:
|
|
1939
|
-
$ref: "#/components/schemas/balanceHistoryAccountObject"
|
|
1940
|
-
errors:
|
|
1941
|
-
type: array
|
|
1942
|
-
items:
|
|
1943
|
-
$ref: "#/components/schemas/balanceHistoryUpdateErrorObject"
|
|
1944
|
-
required:
|
|
1945
|
-
- updated_balance_history
|
|
1946
|
-
- errors
|
|
1947
|
-
|
|
1948
1922
|
updateBalanceHistoryDetailsRequestObject:
|
|
1949
1923
|
type: object
|
|
1950
1924
|
x-internal: true
|
|
@@ -2483,14 +2457,9 @@ components:
|
|
|
2483
2457
|
external_id:
|
|
2484
2458
|
type: string
|
|
2485
2459
|
nullable: true
|
|
2486
|
-
description: A user-defined external ID
|
|
2487
|
-
|
|
2488
|
-
|
|
2489
|
-
transactions associated with synced accounts, and they cannot be
|
|
2490
|
-
added. For transactions associated with manual accounts, the
|
|
2491
|
-
external ID must be unique as attempts to add a subsequent
|
|
2492
|
-
transaction with the same external_id and manual_account_id will be
|
|
2493
|
-
flagged as duplicates and fail.
|
|
2460
|
+
description: A user-defined external ID associated with the transaction.
|
|
2461
|
+
For transactions belonging to manual accounts, the
|
|
2462
|
+
external ID must be unique for each transaction associated with the account.
|
|
2494
2463
|
minLength: 0
|
|
2495
2464
|
maxLength: 75
|
|
2496
2465
|
tag_ids:
|
|
@@ -2887,14 +2856,9 @@ components:
|
|
|
2887
2856
|
external_id:
|
|
2888
2857
|
type: string
|
|
2889
2858
|
nullable: true
|
|
2890
|
-
description: A user-defined external ID
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
transactions associated with synced accounts, and they cannot be
|
|
2894
|
-
added. For transactions associated with manual accounts, the
|
|
2895
|
-
external ID must be unique as attempts to add a subsequent
|
|
2896
|
-
transaction with the same external_id and manual_account_id will be
|
|
2897
|
-
flagged as duplicates and fail.
|
|
2859
|
+
description: A user-defined external ID associated with the transaction.
|
|
2860
|
+
For transactions belonging to manual accounts, the
|
|
2861
|
+
external ID must be unique for each transaction associated with the account.
|
|
2898
2862
|
minLength: 0
|
|
2899
2863
|
maxLength: 75
|
|
2900
2864
|
plaid_metadata:
|
|
@@ -4013,7 +3977,9 @@ components:
|
|
|
4013
3977
|
while processing the request.<br> If multiple errors were
|
|
4014
3978
|
encountered, the list will contain multiple objects.<br> Each
|
|
4015
3979
|
`error` object is guaranteed to have an `errMsg`, but it may also
|
|
4016
|
-
contain other error
|
|
3980
|
+
contain other error-specific properties such as `code` (for example
|
|
3981
|
+
`VALIDATION_ERROR`), or other properties that are useful to map
|
|
3982
|
+
the error to the relevant part of the request.
|
|
4017
3983
|
type: array
|
|
4018
3984
|
items:
|
|
4019
3985
|
type: object
|
|
@@ -5990,11 +5956,22 @@ paths:
|
|
|
5990
5956
|
examples:
|
|
5991
5957
|
missing required properties:
|
|
5992
5958
|
value:
|
|
5993
|
-
message: Request
|
|
5959
|
+
message: Invalid Request Body
|
|
5994
5960
|
errors:
|
|
5995
5961
|
- errMsg: "Missing required property 'name' in request body."
|
|
5996
5962
|
- errMsg: "Missing required property 'balance' in request body."
|
|
5997
5963
|
- errMsg: "Missing required property 'symbol' in request body."
|
|
5964
|
+
invalid balance:
|
|
5965
|
+
value:
|
|
5966
|
+
message: Invalid Request Body
|
|
5967
|
+
errors:
|
|
5968
|
+
- errMsg: "Invalid value for property 'balance'. 'abc' cannot be converted to a number"
|
|
5969
|
+
- errMsg: "Invalid value for property 'balance'. Invalid input"
|
|
5970
|
+
invalid property:
|
|
5971
|
+
value:
|
|
5972
|
+
message: Invalid Request Body
|
|
5973
|
+
errors:
|
|
5974
|
+
- errMsg: "Invalid property 'coingecko_id' in request body."
|
|
5998
5975
|
unsupported symbol:
|
|
5999
5976
|
value:
|
|
6000
5977
|
message: Request Validation Failure
|
|
@@ -6742,7 +6719,7 @@ paths:
|
|
|
6742
6719
|
value:
|
|
6743
6720
|
message: Request Validation Failure
|
|
6744
6721
|
errors:
|
|
6745
|
-
- errMsg: "`start_date` must be
|
|
6722
|
+
- errMsg: "`start_date` must be before or equal to `end_date`."
|
|
6746
6723
|
not first of month:
|
|
6747
6724
|
value:
|
|
6748
6725
|
message: Request Validation Failure
|
|
@@ -6868,7 +6845,7 @@ paths:
|
|
|
6868
6845
|
value:
|
|
6869
6846
|
message: Request Validation Failure
|
|
6870
6847
|
errors:
|
|
6871
|
-
- errMsg: "`start_date` must be
|
|
6848
|
+
- errMsg: "`start_date` must be before or equal to `end_date`."
|
|
6872
6849
|
"401":
|
|
6873
6850
|
$ref: "#/components/responses/unauthorizedToken"
|
|
6874
6851
|
"404":
|
|
@@ -6887,7 +6864,7 @@ paths:
|
|
|
6887
6864
|
value:
|
|
6888
6865
|
message: Not Found
|
|
6889
6866
|
errors:
|
|
6890
|
-
- errMsg: "
|
|
6867
|
+
- errMsg: "Deleted balance history source 99999999 was not found."
|
|
6891
6868
|
"429":
|
|
6892
6869
|
$ref: "#/components/responses/rateLimited"
|
|
6893
6870
|
"500":
|
|
@@ -6898,29 +6875,29 @@ paths:
|
|
|
6898
6875
|
summary: Upsert balance history for an account
|
|
6899
6876
|
description: >-
|
|
6900
6877
|
Upsert one or more historical balance entries for a single manual, Plaid,
|
|
6901
|
-
manual crypto, or deleted
|
|
6878
|
+
manual crypto, or deleted account. Crypto synced accounts require an additional `symbol` path parameter.<br><br>
|
|
6902
6879
|
|
|
6903
|
-
The `account_type` path parameter identifies the
|
|
6880
|
+
The `account_type` path parameter identifies the type of account and the
|
|
6904
6881
|
`account_id` path parameter identifies the specific id for that account type.<br><br>
|
|
6905
6882
|
|
|
6906
6883
|
Submit one or more entries in the `balances` array. Each entry must specify
|
|
6907
6884
|
a `date` and `balance` value.<br><br>
|
|
6908
6885
|
|
|
6909
6886
|
Balance history is monthly. Each entry's `date` must be the first day of
|
|
6910
|
-
a month and must
|
|
6887
|
+
a month and must be in a past month.<br><br>
|
|
6911
6888
|
|
|
6912
6889
|
`currency` may be provided for any balance entry. If omitted, it defaults
|
|
6913
6890
|
to the account currency for manual/Plaid accounts, or the user's primary
|
|
6914
6891
|
currency for crypto/deleted accounts.<br><br>
|
|
6915
6892
|
|
|
6916
|
-
`symbol`
|
|
6917
|
-
|
|
6893
|
+
`symbol` may only be set when `account_type` is `crypto_manual` or
|
|
6894
|
+
`crypto_synced`. It is optional for `crypto_manual` accounts and tolerated
|
|
6895
|
+
for `deleted` accounts.<br><br>
|
|
6918
6896
|
|
|
6919
|
-
`crypto_balance` may be provided for `crypto_manual` and
|
|
6920
|
-
and is invalid for `manual` or `plaid` accounts.<br><br>
|
|
6897
|
+
`crypto_balance` may be provided for `crypto_manual`, `crypto_synced`, and
|
|
6898
|
+
`deleted` accounts, and is invalid for `manual` or `plaid` accounts.<br><br>
|
|
6921
6899
|
|
|
6922
|
-
|
|
6923
|
-
deleted-source metadata.
|
|
6900
|
+
The response contains only the balance entries that were submitted in this request.
|
|
6924
6901
|
operationId: upsertBalanceHistoryForAccount
|
|
6925
6902
|
parameters:
|
|
6926
6903
|
- name: account_type
|
|
@@ -6965,7 +6942,7 @@ paths:
|
|
|
6965
6942
|
symbol: btc
|
|
6966
6943
|
crypto_balance: "0.020000000000000000"
|
|
6967
6944
|
currency: usd
|
|
6968
|
-
balance: "1255
|
|
6945
|
+
balance: "1255"
|
|
6969
6946
|
get-shaped balance entry input:
|
|
6970
6947
|
value:
|
|
6971
6948
|
balances:
|
|
@@ -6975,60 +6952,71 @@ paths:
|
|
|
6975
6952
|
currency: usd
|
|
6976
6953
|
to_base: 41500
|
|
6977
6954
|
crypto_balance: null
|
|
6978
|
-
partial success request:
|
|
6979
|
-
value:
|
|
6980
|
-
balances:
|
|
6981
|
-
- date: "2026-03-01"
|
|
6982
|
-
balance: "41500.0000"
|
|
6983
|
-
- date: "2026-04-01"
|
|
6984
|
-
balance: "41625.5000"
|
|
6985
|
-
symbol: btc
|
|
6986
6955
|
responses:
|
|
6987
6956
|
"200":
|
|
6988
|
-
description:
|
|
6957
|
+
description: Returns the modified balance entries only. Other historical
|
|
6958
|
+
entries for the account are omitted from `balances`.
|
|
6989
6959
|
content:
|
|
6990
6960
|
application/json:
|
|
6991
6961
|
schema:
|
|
6992
|
-
$ref: "#/components/schemas/
|
|
6962
|
+
$ref: "#/components/schemas/balanceHistoryAccountObject"
|
|
6993
6963
|
examples:
|
|
6994
|
-
|
|
6964
|
+
manual account bulk upsert:
|
|
6965
|
+
summary: Two upserted rows returned (not full account history)
|
|
6995
6966
|
value:
|
|
6996
|
-
|
|
6997
|
-
|
|
6998
|
-
|
|
6999
|
-
|
|
7000
|
-
|
|
7001
|
-
|
|
7002
|
-
|
|
7003
|
-
|
|
7004
|
-
|
|
7005
|
-
|
|
7006
|
-
|
|
7007
|
-
|
|
7008
|
-
|
|
7009
|
-
|
|
7010
|
-
|
|
7011
|
-
|
|
7012
|
-
|
|
7013
|
-
|
|
7014
|
-
|
|
7015
|
-
|
|
7016
|
-
|
|
7017
|
-
|
|
7018
|
-
|
|
7019
|
-
|
|
7020
|
-
|
|
7021
|
-
|
|
7022
|
-
|
|
7023
|
-
|
|
7024
|
-
|
|
7025
|
-
|
|
7026
|
-
|
|
7027
|
-
|
|
7028
|
-
|
|
7029
|
-
|
|
6967
|
+
source:
|
|
6968
|
+
type: manual
|
|
6969
|
+
manual_account_id: 119807
|
|
6970
|
+
balances:
|
|
6971
|
+
- id: 601
|
|
6972
|
+
date: "2026-03-01"
|
|
6973
|
+
balance: "41500.0000"
|
|
6974
|
+
currency: usd
|
|
6975
|
+
to_base: 41500
|
|
6976
|
+
crypto_balance: null
|
|
6977
|
+
- id: 602
|
|
6978
|
+
date: "2026-04-01"
|
|
6979
|
+
balance: "41625.5000"
|
|
6980
|
+
currency: usd
|
|
6981
|
+
to_base: 41625.5
|
|
6982
|
+
crypto_balance: null
|
|
6983
|
+
crypto manual balance with symbol:
|
|
6984
|
+
summary: Single upserted row returned
|
|
6985
|
+
value:
|
|
6986
|
+
source:
|
|
6987
|
+
type: crypto_manual
|
|
6988
|
+
crypto_manual_id: 22001
|
|
6989
|
+
symbol: btc
|
|
6990
|
+
balances:
|
|
6991
|
+
- id: 603
|
|
6992
|
+
date: "2026-03-01"
|
|
6993
|
+
balance: "56011.1200"
|
|
6994
|
+
currency: usd
|
|
6995
|
+
to_base: 56011.12
|
|
6996
|
+
crypto_balance: "0.852341920145782301"
|
|
6997
|
+
deleted account bulk upsert:
|
|
6998
|
+
summary: Single upserted row returned
|
|
6999
|
+
value:
|
|
7000
|
+
source:
|
|
7001
|
+
type: deleted
|
|
7002
|
+
deleted_account_id: 91
|
|
7003
|
+
name: Savings
|
|
7004
|
+
institution_name: Old Bank
|
|
7005
|
+
display_name: Closed Savings
|
|
7006
|
+
account_type: savings
|
|
7007
|
+
subtype: savings
|
|
7008
|
+
mask: "1234"
|
|
7009
|
+
symbol: btc
|
|
7010
|
+
balances:
|
|
7011
|
+
- id: 504
|
|
7012
|
+
date: "2026-03-01"
|
|
7013
|
+
balance: "1255"
|
|
7014
|
+
currency: usd
|
|
7015
|
+
to_base: 1255
|
|
7016
|
+
crypto_balance: "0.020000000000000000"
|
|
7030
7017
|
"400":
|
|
7031
|
-
description: Bad Request
|
|
7018
|
+
description: Bad Request. The entire request is rejected if any row in
|
|
7019
|
+
`balances` fails validation; no rows are updated.
|
|
7032
7020
|
content:
|
|
7033
7021
|
application/json:
|
|
7034
7022
|
schema:
|
|
@@ -7039,6 +7027,11 @@ paths:
|
|
|
7039
7027
|
message: Invalid Request Body
|
|
7040
7028
|
errors:
|
|
7041
7029
|
- errMsg: "Missing required property 'balances' in request body."
|
|
7030
|
+
empty balances array:
|
|
7031
|
+
value:
|
|
7032
|
+
message: Invalid Request Body
|
|
7033
|
+
errors:
|
|
7034
|
+
- errMsg: "Invalid value for property 'balances'. Array must contain at least 1 element(s)"
|
|
7042
7035
|
invalid property:
|
|
7043
7036
|
value:
|
|
7044
7037
|
message: Invalid Request Body
|
|
@@ -7049,16 +7042,26 @@ paths:
|
|
|
7049
7042
|
message: Request Validation Failure
|
|
7050
7043
|
errors:
|
|
7051
7044
|
- errMsg: "`date` must be the first day of a month."
|
|
7045
|
+
request_balances_index: 0
|
|
7046
|
+
code: VALIDATION_ERROR
|
|
7052
7047
|
future date:
|
|
7053
7048
|
value:
|
|
7054
7049
|
message: Request Validation Failure
|
|
7055
7050
|
errors:
|
|
7056
|
-
- errMsg: "`date` must
|
|
7051
|
+
- errMsg: "`date` must be in a past month."
|
|
7052
|
+
request_balances_index: 1
|
|
7057
7053
|
crypto balance not allowed:
|
|
7058
7054
|
value:
|
|
7059
7055
|
message: Request Validation Failure
|
|
7060
7056
|
errors:
|
|
7061
|
-
- errMsg: "`crypto_balance` may only be set when `account_type` is `crypto_manual` or `deleted`."
|
|
7057
|
+
- errMsg: "`crypto_balance` may only be set when `account_type` is `crypto_manual`, `crypto_synced`, or `deleted`."
|
|
7058
|
+
request_balances_index: 0
|
|
7059
|
+
invalid row in bulk request:
|
|
7060
|
+
value:
|
|
7061
|
+
message: Request Validation Failure
|
|
7062
|
+
errors:
|
|
7063
|
+
- errMsg: "`symbol` may only be set when `account_type` is `crypto_manual` or `crypto_synced`."
|
|
7064
|
+
request_balances_index: 1
|
|
7062
7065
|
"401":
|
|
7063
7066
|
$ref: "#/components/responses/unauthorizedToken"
|
|
7064
7067
|
"404":
|
|
@@ -7201,7 +7204,7 @@ paths:
|
|
|
7201
7204
|
value:
|
|
7202
7205
|
message: Request Validation Failure
|
|
7203
7206
|
errors:
|
|
7204
|
-
- errMsg: "`start_date` must be
|
|
7207
|
+
- errMsg: "`start_date` must be before or equal to `end_date`."
|
|
7205
7208
|
"401":
|
|
7206
7209
|
$ref: "#/components/responses/unauthorizedToken"
|
|
7207
7210
|
"404":
|
|
@@ -7220,7 +7223,7 @@ paths:
|
|
|
7220
7223
|
value:
|
|
7221
7224
|
message: Not Found
|
|
7222
7225
|
errors:
|
|
7223
|
-
- errMsg: "There is no
|
|
7226
|
+
- errMsg: "There is no balance history for symbol 'doge' on this account."
|
|
7224
7227
|
"429":
|
|
7225
7228
|
$ref: "#/components/responses/rateLimited"
|
|
7226
7229
|
"500":
|
|
@@ -7239,14 +7242,18 @@ paths:
|
|
|
7239
7242
|
a `date` and `balance` value.<br><br>
|
|
7240
7243
|
|
|
7241
7244
|
Balance history is monthly. Each entry's `date` must be the first day of
|
|
7242
|
-
a month and must
|
|
7245
|
+
a month and must be in a past month.<br><br>
|
|
7243
7246
|
|
|
7244
|
-
The request body
|
|
7247
|
+
The request body may include an optional `symbol` on each balance entry. If
|
|
7248
|
+
provided, it must match the `symbol` path parameter. Omit `symbol` to use
|
|
7249
|
+
the path value.<br><br>
|
|
7245
7250
|
|
|
7246
7251
|
`currency` may be provided for any balance entry. If omitted, it defaults
|
|
7247
7252
|
to the user's primary currency for synced crypto balances.<br><br>
|
|
7248
7253
|
|
|
7249
|
-
`crypto_balance` may be provided for synced crypto balances
|
|
7254
|
+
`crypto_balance` may be provided for synced crypto balances.<br><br>
|
|
7255
|
+
|
|
7256
|
+
The response contains only the balance entries that were submitted in this request.
|
|
7250
7257
|
operationId: upsertBalanceHistoryForCryptoSynced
|
|
7251
7258
|
parameters:
|
|
7252
7259
|
- name: account_id
|
|
@@ -7280,62 +7287,38 @@ paths:
|
|
|
7280
7287
|
- date: "2026-04-01"
|
|
7281
7288
|
balance: "6500.0000"
|
|
7282
7289
|
crypto_balance: "0.100020003000400050"
|
|
7283
|
-
partial success request:
|
|
7284
|
-
value:
|
|
7285
|
-
balances:
|
|
7286
|
-
- date: "2026-03-01"
|
|
7287
|
-
balance: "6400.0000"
|
|
7288
|
-
crypto_balance: "0.100020003000400050"
|
|
7289
|
-
- date: "2026-04-01"
|
|
7290
|
-
balance: "not-a-number"
|
|
7291
7290
|
responses:
|
|
7292
7291
|
"200":
|
|
7293
|
-
description:
|
|
7292
|
+
description: Returns the modified balance entries only. Other historical
|
|
7293
|
+
entries for the symbol stream are omitted from `balances`.
|
|
7294
7294
|
content:
|
|
7295
7295
|
application/json:
|
|
7296
7296
|
schema:
|
|
7297
|
-
$ref: "#/components/schemas/
|
|
7297
|
+
$ref: "#/components/schemas/balanceHistoryAccountObject"
|
|
7298
7298
|
examples:
|
|
7299
|
-
|
|
7299
|
+
synced crypto bulk upsert:
|
|
7300
|
+
summary: Two upserted rows returned (not full symbol history)
|
|
7300
7301
|
value:
|
|
7301
|
-
|
|
7302
|
-
|
|
7303
|
-
|
|
7304
|
-
|
|
7305
|
-
|
|
7306
|
-
|
|
7307
|
-
|
|
7308
|
-
|
|
7309
|
-
|
|
7310
|
-
|
|
7311
|
-
|
|
7312
|
-
|
|
7313
|
-
|
|
7314
|
-
|
|
7315
|
-
|
|
7316
|
-
|
|
7317
|
-
|
|
7318
|
-
crypto_balance: "0.100020003000400050"
|
|
7319
|
-
errors: []
|
|
7320
|
-
partial success:
|
|
7321
|
-
value:
|
|
7322
|
-
updated_balance_history:
|
|
7323
|
-
source:
|
|
7324
|
-
type: crypto_synced
|
|
7325
|
-
crypto_synced_id: 33004
|
|
7326
|
-
symbol: btc
|
|
7327
|
-
balances:
|
|
7328
|
-
- id: 604
|
|
7329
|
-
date: "2026-03-01"
|
|
7330
|
-
balance: "6400.0000"
|
|
7331
|
-
currency: usd
|
|
7332
|
-
to_base: 6400
|
|
7333
|
-
crypto_balance: "0.100020003000400050"
|
|
7334
|
-
errors:
|
|
7335
|
-
- request_balances_index: 1
|
|
7336
|
-
message: "`balance` must be a valid numeric string or number."
|
|
7302
|
+
source:
|
|
7303
|
+
type: crypto_synced
|
|
7304
|
+
crypto_synced_id: 33004
|
|
7305
|
+
symbol: btc
|
|
7306
|
+
balances:
|
|
7307
|
+
- id: 604
|
|
7308
|
+
date: "2026-03-01"
|
|
7309
|
+
balance: "6400.0000"
|
|
7310
|
+
currency: usd
|
|
7311
|
+
to_base: 6400
|
|
7312
|
+
crypto_balance: "0.100020003000400050"
|
|
7313
|
+
- id: 605
|
|
7314
|
+
date: "2026-04-01"
|
|
7315
|
+
balance: "6500.0000"
|
|
7316
|
+
currency: usd
|
|
7317
|
+
to_base: 6500
|
|
7318
|
+
crypto_balance: "0.100020003000400050"
|
|
7337
7319
|
"400":
|
|
7338
|
-
description: Bad Request
|
|
7320
|
+
description: Bad Request. The entire request is rejected if any row in
|
|
7321
|
+
`balances` fails validation; no rows are updated.
|
|
7339
7322
|
content:
|
|
7340
7323
|
application/json:
|
|
7341
7324
|
schema:
|
|
@@ -7346,16 +7329,35 @@ paths:
|
|
|
7346
7329
|
message: Invalid Request Body
|
|
7347
7330
|
errors:
|
|
7348
7331
|
- errMsg: "Missing required property 'balances' in request body."
|
|
7332
|
+
empty balances array:
|
|
7333
|
+
value:
|
|
7334
|
+
message: Invalid Request Body
|
|
7335
|
+
errors:
|
|
7336
|
+
- errMsg: "Invalid value for property 'balances'. Array must contain at least 1 element(s)"
|
|
7349
7337
|
invalid date:
|
|
7350
7338
|
value:
|
|
7351
7339
|
message: Request Validation Failure
|
|
7352
7340
|
errors:
|
|
7353
7341
|
- errMsg: "`date` must be the first day of a month."
|
|
7342
|
+
request_balances_index: 0
|
|
7354
7343
|
future date:
|
|
7355
7344
|
value:
|
|
7356
7345
|
message: Request Validation Failure
|
|
7357
7346
|
errors:
|
|
7358
|
-
- errMsg: "`date` must
|
|
7347
|
+
- errMsg: "`date` must be in a past month."
|
|
7348
|
+
request_balances_index: 1
|
|
7349
|
+
symbol mismatch:
|
|
7350
|
+
value:
|
|
7351
|
+
message: Request Validation Failure
|
|
7352
|
+
errors:
|
|
7353
|
+
- errMsg: "`symbol` in request body (doge) does not match the path symbol (eth)."
|
|
7354
|
+
request_balances_index: 0
|
|
7355
|
+
invalid row in bulk request:
|
|
7356
|
+
value:
|
|
7357
|
+
message: Request Validation Failure
|
|
7358
|
+
errors:
|
|
7359
|
+
- errMsg: "`balance` must be a valid numeric string or number."
|
|
7360
|
+
request_balances_index: 1
|
|
7359
7361
|
"401":
|
|
7360
7362
|
$ref: "#/components/responses/unauthorizedToken"
|
|
7361
7363
|
"404":
|
|
@@ -7374,7 +7376,7 @@ paths:
|
|
|
7374
7376
|
value:
|
|
7375
7377
|
message: Not Found
|
|
7376
7378
|
errors:
|
|
7377
|
-
- errMsg: "There is no
|
|
7379
|
+
- errMsg: "There is no balance history for symbol 'doge' on this account."
|
|
7378
7380
|
"429":
|
|
7379
7381
|
$ref: "#/components/responses/rateLimited"
|
|
7380
7382
|
"500":
|
|
@@ -7419,7 +7421,7 @@ paths:
|
|
|
7419
7421
|
example:
|
|
7420
7422
|
message: Not Found
|
|
7421
7423
|
errors:
|
|
7422
|
-
- errMsg: "There is no
|
|
7424
|
+
- errMsg: "There is no balance history for symbol 'doge' on this account."
|
|
7423
7425
|
"429":
|
|
7424
7426
|
$ref: "#/components/responses/rateLimited"
|
|
7425
7427
|
"500":
|
|
@@ -7443,6 +7445,16 @@ paths:
|
|
|
7443
7445
|
responses:
|
|
7444
7446
|
"204":
|
|
7445
7447
|
description: The balance history entry was deleted
|
|
7448
|
+
"400":
|
|
7449
|
+
description: Bad Request
|
|
7450
|
+
content:
|
|
7451
|
+
application/json:
|
|
7452
|
+
schema:
|
|
7453
|
+
$ref: "#/components/schemas/errorResponseObject"
|
|
7454
|
+
example:
|
|
7455
|
+
message: Request Validation Failure
|
|
7456
|
+
errors:
|
|
7457
|
+
- errMsg: "Invalid value type for path parameter: 'id'. Expected 'number', received 'string'."
|
|
7446
7458
|
"401":
|
|
7447
7459
|
$ref: "#/components/responses/unauthorizedToken"
|
|
7448
7460
|
"404":
|
|
@@ -7517,7 +7529,7 @@ paths:
|
|
|
7517
7529
|
example:
|
|
7518
7530
|
message: Invalid Request Body
|
|
7519
7531
|
errors:
|
|
7520
|
-
- errMsg: "
|
|
7532
|
+
- errMsg: "At least one property must be provided: name, institution_name, display_name, account_type, subtype, mask."
|
|
7521
7533
|
"401":
|
|
7522
7534
|
$ref: "#/components/responses/unauthorizedToken"
|
|
7523
7535
|
"404":
|
|
@@ -7529,7 +7541,7 @@ paths:
|
|
|
7529
7541
|
example:
|
|
7530
7542
|
message: Not Found
|
|
7531
7543
|
errors:
|
|
7532
|
-
- errMsg: "
|
|
7544
|
+
- errMsg: "Deleted balance history source 99999999 was not found."
|
|
7533
7545
|
"429":
|
|
7534
7546
|
$ref: "#/components/responses/rateLimited"
|
|
7535
7547
|
"500":
|
package/package.json
CHANGED
package/version-history.md
CHANGED
|
@@ -16,6 +16,7 @@ The Lunch Money API spec uses a modified version of SEMVER for its versioning me
|
|
|
16
16
|
- Add `DELETE /balance_history/crypto_synced/{account_id}/{symbol}`
|
|
17
17
|
- Add `PUT /balance_history/deleted/{account_id}/details`
|
|
18
18
|
- Remove `rollover_pool` from the category object returned in the summary response. It is in the main summary response.
|
|
19
|
+
- It is now possible to set an external_id on any transaction, including those that belong to a Plaid account.
|
|
19
20
|
|
|
20
21
|
## v2.10.0 - TBD
|
|
21
22
|
- Add v2 crypto endpoints which support:
|