@vrplatform/api 1.3.1-stage.2115 → 1.3.1-stage.2117

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.
@@ -364,6 +364,76 @@ export interface paths {
364
364
  patch?: never;
365
365
  trace?: never;
366
366
  };
367
+ "/bank-rules": {
368
+ parameters: {
369
+ query?: never;
370
+ header?: never;
371
+ path?: never;
372
+ cookie?: never;
373
+ };
374
+ /** @description List bank rules */
375
+ get: operations["getBankRules"];
376
+ put?: never;
377
+ /** @description Create a bank rule */
378
+ post: operations["postBankRules"];
379
+ delete?: never;
380
+ options?: never;
381
+ head?: never;
382
+ patch?: never;
383
+ trace?: never;
384
+ };
385
+ "/bank-rules/preview": {
386
+ parameters: {
387
+ query?: never;
388
+ header?: never;
389
+ path?: never;
390
+ cookie?: never;
391
+ };
392
+ get?: never;
393
+ put?: never;
394
+ /** @description Preview a bank rule against a bank record */
395
+ post: operations["postBankRulesPreview"];
396
+ delete?: never;
397
+ options?: never;
398
+ head?: never;
399
+ patch?: never;
400
+ trace?: never;
401
+ };
402
+ "/bank-rules/{id}": {
403
+ parameters: {
404
+ query?: never;
405
+ header?: never;
406
+ path?: never;
407
+ cookie?: never;
408
+ };
409
+ /** @description Get a bank rule by id */
410
+ get: operations["getBankRulesById"];
411
+ /** @description Update a bank rule */
412
+ put: operations["putBankRulesById"];
413
+ post?: never;
414
+ delete?: never;
415
+ options?: never;
416
+ head?: never;
417
+ patch?: never;
418
+ trace?: never;
419
+ };
420
+ "/bank-rules/{id}/run": {
421
+ parameters: {
422
+ query?: never;
423
+ header?: never;
424
+ path?: never;
425
+ cookie?: never;
426
+ };
427
+ get?: never;
428
+ /** @description Run a bank rule against selected bank records */
429
+ put: operations["putBankRulesByIdRun"];
430
+ post?: never;
431
+ delete?: never;
432
+ options?: never;
433
+ head?: never;
434
+ patch?: never;
435
+ trace?: never;
436
+ };
367
437
  "/calendar-blocks": {
368
438
  parameters: {
369
439
  query?: never;
@@ -6829,6 +6899,7 @@ export interface operations {
6829
6899
  uniqueRefs?: string;
6830
6900
  reconcileStatus?: "unpaid" | "underpaid" | "overpaid" | "paid";
6831
6901
  includeBalanceRecords?: boolean;
6902
+ includeMatchingRules?: boolean;
6832
6903
  /** @description Include matching transactions, optionally with max days offset */
6833
6904
  includeMatchingTransactions?: string;
6834
6905
  hasMatchingTransactions?: boolean;
@@ -6928,6 +6999,135 @@ export interface operations {
6928
6999
  } | null;
6929
7000
  dateOffset: number;
6930
7001
  }[] | null;
7002
+ matchingRules?: {
7003
+ rule: {
7004
+ /** Format: uuid */
7005
+ id: string;
7006
+ name: string;
7007
+ /** @enum {string} */
7008
+ status: "active" | "inactive";
7009
+ priority: number;
7010
+ /** @enum {string} */
7011
+ transactionType: "deposit" | "expense";
7012
+ /** @enum {string} */
7013
+ mode: "suggest" | "autoCreateAndMatch";
7014
+ descriptionOperator?: ("contains" | "equals" | "startsWith") | null;
7015
+ descriptionValue?: string | null;
7016
+ amountMinCent?: number | null;
7017
+ amountMaxCent?: number | null;
7018
+ descriptionOverride?: string | null;
7019
+ usePriorMonthEnd: boolean;
7020
+ version: number;
7021
+ vendorContact?: {
7022
+ /** Format: uuid */
7023
+ id: string;
7024
+ name?: string | null;
7025
+ firstName?: string | null;
7026
+ uniqueRef?: string | null;
7027
+ shortRef?: string | null;
7028
+ } | null;
7029
+ accounts: {
7030
+ id: string;
7031
+ name: string;
7032
+ uniqueRef?: string | null;
7033
+ /** @enum {string} */
7034
+ status: "active" | "inactive";
7035
+ }[];
7036
+ lines: {
7037
+ /** Format: uuid */
7038
+ id: string;
7039
+ sortOrder: number;
7040
+ /** @enum {string} */
7041
+ splitMode: "fixed" | "percentage" | "remainder";
7042
+ fixedCentAmount?: number | null;
7043
+ percentageBps?: number | null;
7044
+ party?: ("owners" | "manager") | null;
7045
+ taxBehavior?: ("excluded" | "included") | null;
7046
+ descriptionOverride?: string | null;
7047
+ account: {
7048
+ id: string;
7049
+ name: string;
7050
+ uniqueRef?: string | null;
7051
+ /** @enum {string} */
7052
+ status: "active" | "inactive";
7053
+ };
7054
+ listing?: {
7055
+ /** Format: uuid */
7056
+ id: string;
7057
+ name: string;
7058
+ uniqueRef?: string | null;
7059
+ shortRef?: string | null;
7060
+ } | null;
7061
+ taxRate?: {
7062
+ id: string;
7063
+ name: string;
7064
+ /**
7065
+ * @description Basis points between '0' and '100 000' ('100 000' => 100%, '1000' => 1%, '10' => 0.01%, '1' => 0.001%)
7066
+ * @example 100000
7067
+ */
7068
+ basisPoints: number;
7069
+ } | null;
7070
+ }[];
7071
+ };
7072
+ preview: {
7073
+ matches: boolean;
7074
+ isAutoApplicable: boolean;
7075
+ bankRecord: {
7076
+ /** Format: uuid */
7077
+ id: string;
7078
+ date: string;
7079
+ description: string;
7080
+ amount: number;
7081
+ bankAccountId?: string | null;
7082
+ accountId?: string | null;
7083
+ };
7084
+ transaction: {
7085
+ description: string;
7086
+ status?: ("active" | "inactive") | null;
7087
+ accountId?: string | null;
7088
+ contactId?: string | null;
7089
+ uniqueRef?: string | null;
7090
+ isOpeningBalance?: boolean;
7091
+ /** @enum {string} */
7092
+ type: "deposit" | "expense";
7093
+ date: string;
7094
+ currency?: string | null;
7095
+ lines: {
7096
+ recurringTemplateId?: string | null;
7097
+ uniqueRef?: string | null;
7098
+ description: string;
7099
+ accountId?: string | null;
7100
+ assignment?: string | null;
7101
+ amount: number;
7102
+ appliedAmount?: {
7103
+ taxRateId?: string | null;
7104
+ taxBehavior?: ("excluded" | "included") | null;
7105
+ } | null;
7106
+ markup: null;
7107
+ listingId?: string | null;
7108
+ reservationId?: string | null;
7109
+ ownerStatementId?: string | null;
7110
+ party?: ("owners" | "manager") | null;
7111
+ contactId?: string | null;
7112
+ matchReservationConfirmationCode?: string | null;
7113
+ matchReservationStripeGuestRef?: string | null;
7114
+ matchLineTypeClassification?: string | null;
7115
+ }[];
7116
+ attachmentIds?: string[] | null;
7117
+ payment?: {
7118
+ bankRecordIds: string[];
7119
+ /** @enum {string} */
7120
+ status: "unpaid" | "underpaid" | "overpaid" | "paid";
7121
+ date?: string | null;
7122
+ lock: null;
7123
+ } | null;
7124
+ connectionId?: string | null;
7125
+ sourceId?: string | null;
7126
+ recurringTemplateId?: string | null;
7127
+ matchBankAccountLast4?: string | null;
7128
+ };
7129
+ };
7130
+ }[] | null;
6931
7131
  currency?: string | null;
6932
7132
  }[];
6933
7133
  pagination: {
@@ -7187,6 +7387,7 @@ export interface operations {
7187
7387
  uniqueRefs?: string;
7188
7388
  reconcileStatus?: "unpaid" | "underpaid" | "overpaid" | "paid";
7189
7389
  includeBalanceRecords?: boolean;
7390
+ includeMatchingRules?: boolean;
7190
7391
  /** @description Include matching transactions, optionally with max days offset */
7191
7392
  includeMatchingTransactions?: string;
7192
7393
  hasMatchingTransactions?: boolean;
@@ -7295,6 +7496,7 @@ export interface operations {
7295
7496
  getBankRecordsById: {
7296
7497
  parameters: {
7297
7498
  query?: {
7499
+ includeMatchingRules?: boolean;
7298
7500
  /** @description Include matching transactions, optionally with max days offset */
7299
7501
  includeMatchingTransactions?: string;
7300
7502
  };
@@ -7390,6 +7592,135 @@ export interface operations {
7390
7592
  } | null;
7391
7593
  dateOffset: number;
7392
7594
  }[] | null;
7595
+ matchingRules?: {
7596
+ rule: {
7597
+ /** Format: uuid */
7598
+ id: string;
7599
+ name: string;
7600
+ /** @enum {string} */
7601
+ status: "active" | "inactive";
7602
+ priority: number;
7603
+ /** @enum {string} */
7604
+ transactionType: "deposit" | "expense";
7605
+ /** @enum {string} */
7606
+ mode: "suggest" | "autoCreateAndMatch";
7607
+ descriptionOperator?: ("contains" | "equals" | "startsWith") | null;
7608
+ descriptionValue?: string | null;
7609
+ amountMinCent?: number | null;
7610
+ amountMaxCent?: number | null;
7611
+ descriptionOverride?: string | null;
7612
+ usePriorMonthEnd: boolean;
7613
+ version: number;
7614
+ vendorContact?: {
7615
+ /** Format: uuid */
7616
+ id: string;
7617
+ name?: string | null;
7618
+ firstName?: string | null;
7619
+ uniqueRef?: string | null;
7620
+ shortRef?: string | null;
7621
+ } | null;
7622
+ accounts: {
7623
+ id: string;
7624
+ name: string;
7625
+ uniqueRef?: string | null;
7626
+ /** @enum {string} */
7627
+ status: "active" | "inactive";
7628
+ }[];
7629
+ lines: {
7630
+ /** Format: uuid */
7631
+ id: string;
7632
+ sortOrder: number;
7633
+ /** @enum {string} */
7634
+ splitMode: "fixed" | "percentage" | "remainder";
7635
+ fixedCentAmount?: number | null;
7636
+ percentageBps?: number | null;
7637
+ party?: ("owners" | "manager") | null;
7638
+ taxBehavior?: ("excluded" | "included") | null;
7639
+ descriptionOverride?: string | null;
7640
+ account: {
7641
+ id: string;
7642
+ name: string;
7643
+ uniqueRef?: string | null;
7644
+ /** @enum {string} */
7645
+ status: "active" | "inactive";
7646
+ };
7647
+ listing?: {
7648
+ /** Format: uuid */
7649
+ id: string;
7650
+ name: string;
7651
+ uniqueRef?: string | null;
7652
+ shortRef?: string | null;
7653
+ } | null;
7654
+ taxRate?: {
7655
+ id: string;
7656
+ name: string;
7657
+ /**
7658
+ * @description Basis points between '0' and '100 000' ('100 000' => 100%, '1000' => 1%, '10' => 0.01%, '1' => 0.001%)
7659
+ * @example 100000
7660
+ */
7661
+ basisPoints: number;
7662
+ } | null;
7663
+ }[];
7664
+ };
7665
+ preview: {
7666
+ matches: boolean;
7667
+ isAutoApplicable: boolean;
7668
+ bankRecord: {
7669
+ /** Format: uuid */
7670
+ id: string;
7671
+ date: string;
7672
+ description: string;
7673
+ amount: number;
7674
+ bankAccountId?: string | null;
7675
+ accountId?: string | null;
7676
+ };
7677
+ transaction: {
7678
+ description: string;
7679
+ status?: ("active" | "inactive") | null;
7680
+ accountId?: string | null;
7681
+ contactId?: string | null;
7682
+ uniqueRef?: string | null;
7683
+ isOpeningBalance?: boolean;
7684
+ /** @enum {string} */
7685
+ type: "deposit" | "expense";
7686
+ date: string;
7687
+ currency?: string | null;
7688
+ lines: {
7689
+ recurringTemplateId?: string | null;
7690
+ uniqueRef?: string | null;
7691
+ description: string;
7692
+ accountId?: string | null;
7693
+ assignment?: string | null;
7694
+ amount: number;
7695
+ appliedAmount?: {
7696
+ taxRateId?: string | null;
7697
+ taxBehavior?: ("excluded" | "included") | null;
7698
+ } | null;
7699
+ markup: null;
7700
+ listingId?: string | null;
7701
+ reservationId?: string | null;
7702
+ ownerStatementId?: string | null;
7703
+ party?: ("owners" | "manager") | null;
7704
+ contactId?: string | null;
7705
+ matchReservationConfirmationCode?: string | null;
7706
+ matchReservationStripeGuestRef?: string | null;
7707
+ matchLineTypeClassification?: string | null;
7708
+ }[];
7709
+ attachmentIds?: string[] | null;
7710
+ payment?: {
7711
+ bankRecordIds: string[];
7712
+ /** @enum {string} */
7713
+ status: "unpaid" | "underpaid" | "overpaid" | "paid";
7714
+ date?: string | null;
7715
+ lock: null;
7716
+ } | null;
7717
+ connectionId?: string | null;
7718
+ sourceId?: string | null;
7719
+ recurringTemplateId?: string | null;
7720
+ matchBankAccountLast4?: string | null;
7721
+ };
7722
+ };
7723
+ }[] | null;
7393
7724
  currency?: string | null;
7394
7725
  };
7395
7726
  };
@@ -7591,6 +7922,1135 @@ export interface operations {
7591
7922
  };
7592
7923
  };
7593
7924
  };
7925
+ getBankRules: {
7926
+ parameters: {
7927
+ query?: {
7928
+ search?: string;
7929
+ status?: "active" | "inactive";
7930
+ mode?: "suggest" | "autoCreateAndMatch";
7931
+ transactionType?: "deposit" | "expense";
7932
+ limit?: number;
7933
+ page?: number;
7934
+ };
7935
+ header?: never;
7936
+ path?: never;
7937
+ cookie?: never;
7938
+ };
7939
+ requestBody?: never;
7940
+ responses: {
7941
+ /** @description Successful response */
7942
+ 200: {
7943
+ headers: {
7944
+ [name: string]: unknown;
7945
+ };
7946
+ content: {
7947
+ "application/json": {
7948
+ data: {
7949
+ /** Format: uuid */
7950
+ id: string;
7951
+ name: string;
7952
+ /** @enum {string} */
7953
+ status: "active" | "inactive";
7954
+ priority: number;
7955
+ /** @enum {string} */
7956
+ transactionType: "deposit" | "expense";
7957
+ /** @enum {string} */
7958
+ mode: "suggest" | "autoCreateAndMatch";
7959
+ descriptionOperator?: ("contains" | "equals" | "startsWith") | null;
7960
+ descriptionValue?: string | null;
7961
+ amountMinCent?: number | null;
7962
+ amountMaxCent?: number | null;
7963
+ descriptionOverride?: string | null;
7964
+ usePriorMonthEnd: boolean;
7965
+ version: number;
7966
+ vendorContact?: {
7967
+ /** Format: uuid */
7968
+ id: string;
7969
+ name?: string | null;
7970
+ firstName?: string | null;
7971
+ uniqueRef?: string | null;
7972
+ shortRef?: string | null;
7973
+ } | null;
7974
+ accounts: {
7975
+ id: string;
7976
+ name: string;
7977
+ uniqueRef?: string | null;
7978
+ /** @enum {string} */
7979
+ status: "active" | "inactive";
7980
+ }[];
7981
+ lines: {
7982
+ /** Format: uuid */
7983
+ id: string;
7984
+ sortOrder: number;
7985
+ /** @enum {string} */
7986
+ splitMode: "fixed" | "percentage" | "remainder";
7987
+ fixedCentAmount?: number | null;
7988
+ percentageBps?: number | null;
7989
+ party?: ("owners" | "manager") | null;
7990
+ taxBehavior?: ("excluded" | "included") | null;
7991
+ descriptionOverride?: string | null;
7992
+ account: {
7993
+ id: string;
7994
+ name: string;
7995
+ uniqueRef?: string | null;
7996
+ /** @enum {string} */
7997
+ status: "active" | "inactive";
7998
+ };
7999
+ listing?: {
8000
+ /** Format: uuid */
8001
+ id: string;
8002
+ name: string;
8003
+ uniqueRef?: string | null;
8004
+ shortRef?: string | null;
8005
+ } | null;
8006
+ taxRate?: {
8007
+ id: string;
8008
+ name: string;
8009
+ /**
8010
+ * @description Basis points between '0' and '100 000' ('100 000' => 100%, '1000' => 1%, '10' => 0.01%, '1' => 0.001%)
8011
+ * @example 100000
8012
+ */
8013
+ basisPoints: number;
8014
+ } | null;
8015
+ }[];
8016
+ }[];
8017
+ pagination: {
8018
+ /** @default 100 */
8019
+ limit: number;
8020
+ /** @default 1 */
8021
+ page: number;
8022
+ total: number;
8023
+ totalPage: number;
8024
+ nextPage?: number;
8025
+ };
8026
+ };
8027
+ };
8028
+ };
8029
+ /** @description Bad request */
8030
+ 400: {
8031
+ headers: {
8032
+ [name: string]: unknown;
8033
+ };
8034
+ content: {
8035
+ "application/json": {
8036
+ code: string;
8037
+ message: string;
8038
+ issues?: {
8039
+ message: string;
8040
+ }[];
8041
+ context?: unknown;
8042
+ };
8043
+ };
8044
+ };
8045
+ /** @description Unauthorized */
8046
+ 401: {
8047
+ headers: {
8048
+ [name: string]: unknown;
8049
+ };
8050
+ content: {
8051
+ "application/json": {
8052
+ code: string;
8053
+ message: string;
8054
+ issues?: {
8055
+ message: string;
8056
+ }[];
8057
+ context?: unknown;
8058
+ };
8059
+ };
8060
+ };
8061
+ /** @description Forbidden */
8062
+ 403: {
8063
+ headers: {
8064
+ [name: string]: unknown;
8065
+ };
8066
+ content: {
8067
+ "application/json": {
8068
+ code: string;
8069
+ message: string;
8070
+ issues?: {
8071
+ message: string;
8072
+ }[];
8073
+ context?: unknown;
8074
+ };
8075
+ };
8076
+ };
8077
+ /** @description Not found */
8078
+ 404: {
8079
+ headers: {
8080
+ [name: string]: unknown;
8081
+ };
8082
+ content: {
8083
+ "application/json": {
8084
+ code: string;
8085
+ message: string;
8086
+ issues?: {
8087
+ message: string;
8088
+ }[];
8089
+ context?: unknown;
8090
+ };
8091
+ };
8092
+ };
8093
+ /** @description Internal server error */
8094
+ 500: {
8095
+ headers: {
8096
+ [name: string]: unknown;
8097
+ };
8098
+ content: {
8099
+ "application/json": {
8100
+ code: string;
8101
+ message: string;
8102
+ issues?: {
8103
+ message: string;
8104
+ }[];
8105
+ context?: unknown;
8106
+ };
8107
+ };
8108
+ };
8109
+ };
8110
+ };
8111
+ postBankRules: {
8112
+ parameters: {
8113
+ query?: never;
8114
+ header?: never;
8115
+ path?: never;
8116
+ cookie?: never;
8117
+ };
8118
+ requestBody?: {
8119
+ content: {
8120
+ "application/json": {
8121
+ name: string;
8122
+ status?: ("active" | "inactive") | null;
8123
+ priority?: number | null;
8124
+ /** @enum {string} */
8125
+ transactionType: "deposit" | "expense";
8126
+ mode?: ("suggest" | "autoCreateAndMatch") | null;
8127
+ descriptionOperator?: ("contains" | "equals" | "startsWith") | null;
8128
+ descriptionValue?: string | null;
8129
+ amountMinCent?: number | null;
8130
+ amountMaxCent?: number | null;
8131
+ descriptionOverride?: string | null;
8132
+ usePriorMonthEnd?: boolean | null;
8133
+ vendorContactId?: string | null;
8134
+ accountIds?: string[] | null;
8135
+ lines: {
8136
+ sortOrder?: number;
8137
+ /** @enum {string} */
8138
+ splitMode: "fixed" | "percentage" | "remainder";
8139
+ fixedCentAmount?: number | null;
8140
+ percentageBps?: number | null;
8141
+ /** Format: uuid */
8142
+ accountId: string;
8143
+ listingId?: string | null;
8144
+ party?: ("owners" | "manager") | null;
8145
+ taxRateId?: string | null;
8146
+ taxBehavior?: ("excluded" | "included") | null;
8147
+ descriptionOverride?: string | null;
8148
+ }[];
8149
+ };
8150
+ };
8151
+ };
8152
+ responses: {
8153
+ /** @description Successful response */
8154
+ 200: {
8155
+ headers: {
8156
+ [name: string]: unknown;
8157
+ };
8158
+ content: {
8159
+ "application/json": {
8160
+ /** Format: uuid */
8161
+ id: string;
8162
+ name: string;
8163
+ /** @enum {string} */
8164
+ status: "active" | "inactive";
8165
+ priority: number;
8166
+ /** @enum {string} */
8167
+ transactionType: "deposit" | "expense";
8168
+ /** @enum {string} */
8169
+ mode: "suggest" | "autoCreateAndMatch";
8170
+ descriptionOperator?: ("contains" | "equals" | "startsWith") | null;
8171
+ descriptionValue?: string | null;
8172
+ amountMinCent?: number | null;
8173
+ amountMaxCent?: number | null;
8174
+ descriptionOverride?: string | null;
8175
+ usePriorMonthEnd: boolean;
8176
+ version: number;
8177
+ vendorContact?: {
8178
+ /** Format: uuid */
8179
+ id: string;
8180
+ name?: string | null;
8181
+ firstName?: string | null;
8182
+ uniqueRef?: string | null;
8183
+ shortRef?: string | null;
8184
+ } | null;
8185
+ accounts: {
8186
+ id: string;
8187
+ name: string;
8188
+ uniqueRef?: string | null;
8189
+ /** @enum {string} */
8190
+ status: "active" | "inactive";
8191
+ }[];
8192
+ lines: {
8193
+ /** Format: uuid */
8194
+ id: string;
8195
+ sortOrder: number;
8196
+ /** @enum {string} */
8197
+ splitMode: "fixed" | "percentage" | "remainder";
8198
+ fixedCentAmount?: number | null;
8199
+ percentageBps?: number | null;
8200
+ party?: ("owners" | "manager") | null;
8201
+ taxBehavior?: ("excluded" | "included") | null;
8202
+ descriptionOverride?: string | null;
8203
+ account: {
8204
+ id: string;
8205
+ name: string;
8206
+ uniqueRef?: string | null;
8207
+ /** @enum {string} */
8208
+ status: "active" | "inactive";
8209
+ };
8210
+ listing?: {
8211
+ /** Format: uuid */
8212
+ id: string;
8213
+ name: string;
8214
+ uniqueRef?: string | null;
8215
+ shortRef?: string | null;
8216
+ } | null;
8217
+ taxRate?: {
8218
+ id: string;
8219
+ name: string;
8220
+ /**
8221
+ * @description Basis points between '0' and '100 000' ('100 000' => 100%, '1000' => 1%, '10' => 0.01%, '1' => 0.001%)
8222
+ * @example 100000
8223
+ */
8224
+ basisPoints: number;
8225
+ } | null;
8226
+ }[];
8227
+ };
8228
+ };
8229
+ };
8230
+ /** @description Bad request */
8231
+ 400: {
8232
+ headers: {
8233
+ [name: string]: unknown;
8234
+ };
8235
+ content: {
8236
+ "application/json": {
8237
+ code: string;
8238
+ message: string;
8239
+ issues?: {
8240
+ message: string;
8241
+ }[];
8242
+ context?: unknown;
8243
+ };
8244
+ };
8245
+ };
8246
+ /** @description Unauthorized */
8247
+ 401: {
8248
+ headers: {
8249
+ [name: string]: unknown;
8250
+ };
8251
+ content: {
8252
+ "application/json": {
8253
+ code: string;
8254
+ message: string;
8255
+ issues?: {
8256
+ message: string;
8257
+ }[];
8258
+ context?: unknown;
8259
+ };
8260
+ };
8261
+ };
8262
+ /** @description Forbidden */
8263
+ 403: {
8264
+ headers: {
8265
+ [name: string]: unknown;
8266
+ };
8267
+ content: {
8268
+ "application/json": {
8269
+ code: string;
8270
+ message: string;
8271
+ issues?: {
8272
+ message: string;
8273
+ }[];
8274
+ context?: unknown;
8275
+ };
8276
+ };
8277
+ };
8278
+ /** @description Not found */
8279
+ 404: {
8280
+ headers: {
8281
+ [name: string]: unknown;
8282
+ };
8283
+ content: {
8284
+ "application/json": {
8285
+ code: string;
8286
+ message: string;
8287
+ issues?: {
8288
+ message: string;
8289
+ }[];
8290
+ context?: unknown;
8291
+ };
8292
+ };
8293
+ };
8294
+ /** @description Internal server error */
8295
+ 500: {
8296
+ headers: {
8297
+ [name: string]: unknown;
8298
+ };
8299
+ content: {
8300
+ "application/json": {
8301
+ code: string;
8302
+ message: string;
8303
+ issues?: {
8304
+ message: string;
8305
+ }[];
8306
+ context?: unknown;
8307
+ };
8308
+ };
8309
+ };
8310
+ };
8311
+ };
8312
+ postBankRulesPreview: {
8313
+ parameters: {
8314
+ query?: never;
8315
+ header?: never;
8316
+ path?: never;
8317
+ cookie?: never;
8318
+ };
8319
+ requestBody?: {
8320
+ content: {
8321
+ "application/json": {
8322
+ name: string;
8323
+ status?: ("active" | "inactive") | null;
8324
+ priority?: number | null;
8325
+ /** @enum {string} */
8326
+ transactionType: "deposit" | "expense";
8327
+ mode?: ("suggest" | "autoCreateAndMatch") | null;
8328
+ descriptionOperator?: ("contains" | "equals" | "startsWith") | null;
8329
+ descriptionValue?: string | null;
8330
+ amountMinCent?: number | null;
8331
+ amountMaxCent?: number | null;
8332
+ descriptionOverride?: string | null;
8333
+ usePriorMonthEnd?: boolean | null;
8334
+ vendorContactId?: string | null;
8335
+ accountIds?: string[] | null;
8336
+ lines: {
8337
+ sortOrder?: number;
8338
+ /** @enum {string} */
8339
+ splitMode: "fixed" | "percentage" | "remainder";
8340
+ fixedCentAmount?: number | null;
8341
+ percentageBps?: number | null;
8342
+ /** Format: uuid */
8343
+ accountId: string;
8344
+ listingId?: string | null;
8345
+ party?: ("owners" | "manager") | null;
8346
+ taxRateId?: string | null;
8347
+ taxBehavior?: ("excluded" | "included") | null;
8348
+ descriptionOverride?: string | null;
8349
+ }[];
8350
+ /** Format: uuid */
8351
+ bankRecordId: string;
8352
+ };
8353
+ };
8354
+ };
8355
+ responses: {
8356
+ /** @description Successful response */
8357
+ 200: {
8358
+ headers: {
8359
+ [name: string]: unknown;
8360
+ };
8361
+ content: {
8362
+ "application/json": {
8363
+ matches: boolean;
8364
+ isAutoApplicable: boolean;
8365
+ bankRecord: {
8366
+ /** Format: uuid */
8367
+ id: string;
8368
+ date: string;
8369
+ description: string;
8370
+ amount: number;
8371
+ bankAccountId?: string | null;
8372
+ accountId?: string | null;
8373
+ };
8374
+ transaction: {
8375
+ description: string;
8376
+ status?: ("active" | "inactive") | null;
8377
+ accountId?: string | null;
8378
+ contactId?: string | null;
8379
+ uniqueRef?: string | null;
8380
+ isOpeningBalance?: boolean;
8381
+ /** @enum {string} */
8382
+ type: "deposit" | "expense";
8383
+ date: string;
8384
+ currency?: string | null;
8385
+ lines: {
8386
+ recurringTemplateId?: string | null;
8387
+ uniqueRef?: string | null;
8388
+ description: string;
8389
+ accountId?: string | null;
8390
+ assignment?: string | null;
8391
+ amount: number;
8392
+ appliedAmount?: {
8393
+ taxRateId?: string | null;
8394
+ taxBehavior?: ("excluded" | "included") | null;
8395
+ } | null;
8396
+ markup: null;
8397
+ listingId?: string | null;
8398
+ reservationId?: string | null;
8399
+ ownerStatementId?: string | null;
8400
+ party?: ("owners" | "manager") | null;
8401
+ contactId?: string | null;
8402
+ matchReservationConfirmationCode?: string | null;
8403
+ matchReservationStripeGuestRef?: string | null;
8404
+ matchLineTypeClassification?: string | null;
8405
+ }[];
8406
+ attachmentIds?: string[] | null;
8407
+ payment?: {
8408
+ bankRecordIds: string[];
8409
+ /** @enum {string} */
8410
+ status: "unpaid" | "underpaid" | "overpaid" | "paid";
8411
+ date?: string | null;
8412
+ lock: null;
8413
+ } | null;
8414
+ connectionId?: string | null;
8415
+ sourceId?: string | null;
8416
+ recurringTemplateId?: string | null;
8417
+ matchBankAccountLast4?: string | null;
8418
+ };
8419
+ };
8420
+ };
8421
+ };
8422
+ /** @description Bad request */
8423
+ 400: {
8424
+ headers: {
8425
+ [name: string]: unknown;
8426
+ };
8427
+ content: {
8428
+ "application/json": {
8429
+ code: string;
8430
+ message: string;
8431
+ issues?: {
8432
+ message: string;
8433
+ }[];
8434
+ context?: unknown;
8435
+ };
8436
+ };
8437
+ };
8438
+ /** @description Unauthorized */
8439
+ 401: {
8440
+ headers: {
8441
+ [name: string]: unknown;
8442
+ };
8443
+ content: {
8444
+ "application/json": {
8445
+ code: string;
8446
+ message: string;
8447
+ issues?: {
8448
+ message: string;
8449
+ }[];
8450
+ context?: unknown;
8451
+ };
8452
+ };
8453
+ };
8454
+ /** @description Forbidden */
8455
+ 403: {
8456
+ headers: {
8457
+ [name: string]: unknown;
8458
+ };
8459
+ content: {
8460
+ "application/json": {
8461
+ code: string;
8462
+ message: string;
8463
+ issues?: {
8464
+ message: string;
8465
+ }[];
8466
+ context?: unknown;
8467
+ };
8468
+ };
8469
+ };
8470
+ /** @description Not found */
8471
+ 404: {
8472
+ headers: {
8473
+ [name: string]: unknown;
8474
+ };
8475
+ content: {
8476
+ "application/json": {
8477
+ code: string;
8478
+ message: string;
8479
+ issues?: {
8480
+ message: string;
8481
+ }[];
8482
+ context?: unknown;
8483
+ };
8484
+ };
8485
+ };
8486
+ /** @description Internal server error */
8487
+ 500: {
8488
+ headers: {
8489
+ [name: string]: unknown;
8490
+ };
8491
+ content: {
8492
+ "application/json": {
8493
+ code: string;
8494
+ message: string;
8495
+ issues?: {
8496
+ message: string;
8497
+ }[];
8498
+ context?: unknown;
8499
+ };
8500
+ };
8501
+ };
8502
+ };
8503
+ };
8504
+ getBankRulesById: {
8505
+ parameters: {
8506
+ query?: never;
8507
+ header?: never;
8508
+ path: {
8509
+ id: string;
8510
+ };
8511
+ cookie?: never;
8512
+ };
8513
+ requestBody?: never;
8514
+ responses: {
8515
+ /** @description Successful response */
8516
+ 200: {
8517
+ headers: {
8518
+ [name: string]: unknown;
8519
+ };
8520
+ content: {
8521
+ "application/json": {
8522
+ /** Format: uuid */
8523
+ id: string;
8524
+ name: string;
8525
+ /** @enum {string} */
8526
+ status: "active" | "inactive";
8527
+ priority: number;
8528
+ /** @enum {string} */
8529
+ transactionType: "deposit" | "expense";
8530
+ /** @enum {string} */
8531
+ mode: "suggest" | "autoCreateAndMatch";
8532
+ descriptionOperator?: ("contains" | "equals" | "startsWith") | null;
8533
+ descriptionValue?: string | null;
8534
+ amountMinCent?: number | null;
8535
+ amountMaxCent?: number | null;
8536
+ descriptionOverride?: string | null;
8537
+ usePriorMonthEnd: boolean;
8538
+ version: number;
8539
+ vendorContact?: {
8540
+ /** Format: uuid */
8541
+ id: string;
8542
+ name?: string | null;
8543
+ firstName?: string | null;
8544
+ uniqueRef?: string | null;
8545
+ shortRef?: string | null;
8546
+ } | null;
8547
+ accounts: {
8548
+ id: string;
8549
+ name: string;
8550
+ uniqueRef?: string | null;
8551
+ /** @enum {string} */
8552
+ status: "active" | "inactive";
8553
+ }[];
8554
+ lines: {
8555
+ /** Format: uuid */
8556
+ id: string;
8557
+ sortOrder: number;
8558
+ /** @enum {string} */
8559
+ splitMode: "fixed" | "percentage" | "remainder";
8560
+ fixedCentAmount?: number | null;
8561
+ percentageBps?: number | null;
8562
+ party?: ("owners" | "manager") | null;
8563
+ taxBehavior?: ("excluded" | "included") | null;
8564
+ descriptionOverride?: string | null;
8565
+ account: {
8566
+ id: string;
8567
+ name: string;
8568
+ uniqueRef?: string | null;
8569
+ /** @enum {string} */
8570
+ status: "active" | "inactive";
8571
+ };
8572
+ listing?: {
8573
+ /** Format: uuid */
8574
+ id: string;
8575
+ name: string;
8576
+ uniqueRef?: string | null;
8577
+ shortRef?: string | null;
8578
+ } | null;
8579
+ taxRate?: {
8580
+ id: string;
8581
+ name: string;
8582
+ /**
8583
+ * @description Basis points between '0' and '100 000' ('100 000' => 100%, '1000' => 1%, '10' => 0.01%, '1' => 0.001%)
8584
+ * @example 100000
8585
+ */
8586
+ basisPoints: number;
8587
+ } | null;
8588
+ }[];
8589
+ };
8590
+ };
8591
+ };
8592
+ /** @description Bad request */
8593
+ 400: {
8594
+ headers: {
8595
+ [name: string]: unknown;
8596
+ };
8597
+ content: {
8598
+ "application/json": {
8599
+ code: string;
8600
+ message: string;
8601
+ issues?: {
8602
+ message: string;
8603
+ }[];
8604
+ context?: unknown;
8605
+ };
8606
+ };
8607
+ };
8608
+ /** @description Unauthorized */
8609
+ 401: {
8610
+ headers: {
8611
+ [name: string]: unknown;
8612
+ };
8613
+ content: {
8614
+ "application/json": {
8615
+ code: string;
8616
+ message: string;
8617
+ issues?: {
8618
+ message: string;
8619
+ }[];
8620
+ context?: unknown;
8621
+ };
8622
+ };
8623
+ };
8624
+ /** @description Forbidden */
8625
+ 403: {
8626
+ headers: {
8627
+ [name: string]: unknown;
8628
+ };
8629
+ content: {
8630
+ "application/json": {
8631
+ code: string;
8632
+ message: string;
8633
+ issues?: {
8634
+ message: string;
8635
+ }[];
8636
+ context?: unknown;
8637
+ };
8638
+ };
8639
+ };
8640
+ /** @description Not found */
8641
+ 404: {
8642
+ headers: {
8643
+ [name: string]: unknown;
8644
+ };
8645
+ content: {
8646
+ "application/json": {
8647
+ code: string;
8648
+ message: string;
8649
+ issues?: {
8650
+ message: string;
8651
+ }[];
8652
+ context?: unknown;
8653
+ };
8654
+ };
8655
+ };
8656
+ /** @description Internal server error */
8657
+ 500: {
8658
+ headers: {
8659
+ [name: string]: unknown;
8660
+ };
8661
+ content: {
8662
+ "application/json": {
8663
+ code: string;
8664
+ message: string;
8665
+ issues?: {
8666
+ message: string;
8667
+ }[];
8668
+ context?: unknown;
8669
+ };
8670
+ };
8671
+ };
8672
+ };
8673
+ };
8674
+ putBankRulesById: {
8675
+ parameters: {
8676
+ query?: never;
8677
+ header?: never;
8678
+ path: {
8679
+ id: string;
8680
+ };
8681
+ cookie?: never;
8682
+ };
8683
+ requestBody?: {
8684
+ content: {
8685
+ "application/json": {
8686
+ name?: string;
8687
+ status?: ("active" | "inactive") | null;
8688
+ priority?: number;
8689
+ /** @enum {string} */
8690
+ transactionType?: "deposit" | "expense";
8691
+ /** @enum {string} */
8692
+ mode?: "suggest" | "autoCreateAndMatch";
8693
+ descriptionOperator?: ("contains" | "equals" | "startsWith") | null;
8694
+ descriptionValue?: string | null;
8695
+ amountMinCent?: number | null;
8696
+ amountMaxCent?: number | null;
8697
+ descriptionOverride?: string | null;
8698
+ usePriorMonthEnd?: boolean;
8699
+ vendorContactId?: string | null;
8700
+ accountIds?: string[] | null;
8701
+ lines?: {
8702
+ sortOrder?: number;
8703
+ /** @enum {string} */
8704
+ splitMode: "fixed" | "percentage" | "remainder";
8705
+ fixedCentAmount?: number | null;
8706
+ percentageBps?: number | null;
8707
+ /** Format: uuid */
8708
+ accountId: string;
8709
+ listingId?: string | null;
8710
+ party?: ("owners" | "manager") | null;
8711
+ taxRateId?: string | null;
8712
+ taxBehavior?: ("excluded" | "included") | null;
8713
+ descriptionOverride?: string | null;
8714
+ }[];
8715
+ };
8716
+ };
8717
+ };
8718
+ responses: {
8719
+ /** @description Successful response */
8720
+ 200: {
8721
+ headers: {
8722
+ [name: string]: unknown;
8723
+ };
8724
+ content: {
8725
+ "application/json": {
8726
+ /** Format: uuid */
8727
+ id: string;
8728
+ name: string;
8729
+ /** @enum {string} */
8730
+ status: "active" | "inactive";
8731
+ priority: number;
8732
+ /** @enum {string} */
8733
+ transactionType: "deposit" | "expense";
8734
+ /** @enum {string} */
8735
+ mode: "suggest" | "autoCreateAndMatch";
8736
+ descriptionOperator?: ("contains" | "equals" | "startsWith") | null;
8737
+ descriptionValue?: string | null;
8738
+ amountMinCent?: number | null;
8739
+ amountMaxCent?: number | null;
8740
+ descriptionOverride?: string | null;
8741
+ usePriorMonthEnd: boolean;
8742
+ version: number;
8743
+ vendorContact?: {
8744
+ /** Format: uuid */
8745
+ id: string;
8746
+ name?: string | null;
8747
+ firstName?: string | null;
8748
+ uniqueRef?: string | null;
8749
+ shortRef?: string | null;
8750
+ } | null;
8751
+ accounts: {
8752
+ id: string;
8753
+ name: string;
8754
+ uniqueRef?: string | null;
8755
+ /** @enum {string} */
8756
+ status: "active" | "inactive";
8757
+ }[];
8758
+ lines: {
8759
+ /** Format: uuid */
8760
+ id: string;
8761
+ sortOrder: number;
8762
+ /** @enum {string} */
8763
+ splitMode: "fixed" | "percentage" | "remainder";
8764
+ fixedCentAmount?: number | null;
8765
+ percentageBps?: number | null;
8766
+ party?: ("owners" | "manager") | null;
8767
+ taxBehavior?: ("excluded" | "included") | null;
8768
+ descriptionOverride?: string | null;
8769
+ account: {
8770
+ id: string;
8771
+ name: string;
8772
+ uniqueRef?: string | null;
8773
+ /** @enum {string} */
8774
+ status: "active" | "inactive";
8775
+ };
8776
+ listing?: {
8777
+ /** Format: uuid */
8778
+ id: string;
8779
+ name: string;
8780
+ uniqueRef?: string | null;
8781
+ shortRef?: string | null;
8782
+ } | null;
8783
+ taxRate?: {
8784
+ id: string;
8785
+ name: string;
8786
+ /**
8787
+ * @description Basis points between '0' and '100 000' ('100 000' => 100%, '1000' => 1%, '10' => 0.01%, '1' => 0.001%)
8788
+ * @example 100000
8789
+ */
8790
+ basisPoints: number;
8791
+ } | null;
8792
+ }[];
8793
+ };
8794
+ };
8795
+ };
8796
+ /** @description Bad request */
8797
+ 400: {
8798
+ headers: {
8799
+ [name: string]: unknown;
8800
+ };
8801
+ content: {
8802
+ "application/json": {
8803
+ code: string;
8804
+ message: string;
8805
+ issues?: {
8806
+ message: string;
8807
+ }[];
8808
+ context?: unknown;
8809
+ };
8810
+ };
8811
+ };
8812
+ /** @description Unauthorized */
8813
+ 401: {
8814
+ headers: {
8815
+ [name: string]: unknown;
8816
+ };
8817
+ content: {
8818
+ "application/json": {
8819
+ code: string;
8820
+ message: string;
8821
+ issues?: {
8822
+ message: string;
8823
+ }[];
8824
+ context?: unknown;
8825
+ };
8826
+ };
8827
+ };
8828
+ /** @description Forbidden */
8829
+ 403: {
8830
+ headers: {
8831
+ [name: string]: unknown;
8832
+ };
8833
+ content: {
8834
+ "application/json": {
8835
+ code: string;
8836
+ message: string;
8837
+ issues?: {
8838
+ message: string;
8839
+ }[];
8840
+ context?: unknown;
8841
+ };
8842
+ };
8843
+ };
8844
+ /** @description Not found */
8845
+ 404: {
8846
+ headers: {
8847
+ [name: string]: unknown;
8848
+ };
8849
+ content: {
8850
+ "application/json": {
8851
+ code: string;
8852
+ message: string;
8853
+ issues?: {
8854
+ message: string;
8855
+ }[];
8856
+ context?: unknown;
8857
+ };
8858
+ };
8859
+ };
8860
+ /** @description Internal server error */
8861
+ 500: {
8862
+ headers: {
8863
+ [name: string]: unknown;
8864
+ };
8865
+ content: {
8866
+ "application/json": {
8867
+ code: string;
8868
+ message: string;
8869
+ issues?: {
8870
+ message: string;
8871
+ }[];
8872
+ context?: unknown;
8873
+ };
8874
+ };
8875
+ };
8876
+ };
8877
+ };
8878
+ putBankRulesByIdRun: {
8879
+ parameters: {
8880
+ query?: never;
8881
+ header?: never;
8882
+ path: {
8883
+ id: string;
8884
+ };
8885
+ cookie?: never;
8886
+ };
8887
+ requestBody?: {
8888
+ content: {
8889
+ "application/json": {
8890
+ bankRecordIds: string[];
8891
+ dryRun?: boolean;
8892
+ };
8893
+ };
8894
+ };
8895
+ responses: {
8896
+ /** @description Successful response */
8897
+ 200: {
8898
+ headers: {
8899
+ [name: string]: unknown;
8900
+ };
8901
+ content: {
8902
+ "application/json": {
8903
+ data: {
8904
+ /** Format: uuid */
8905
+ bankRecordId: string;
8906
+ /** @enum {string} */
8907
+ outcome: "applied" | "wouldApply" | "skipped" | "failed";
8908
+ reason?: string | null;
8909
+ transactionId?: string | null;
8910
+ preview?: {
8911
+ matches: boolean;
8912
+ isAutoApplicable: boolean;
8913
+ bankRecord: {
8914
+ /** Format: uuid */
8915
+ id: string;
8916
+ date: string;
8917
+ description: string;
8918
+ amount: number;
8919
+ bankAccountId?: string | null;
8920
+ accountId?: string | null;
8921
+ };
8922
+ transaction: {
8923
+ description: string;
8924
+ status?: ("active" | "inactive") | null;
8925
+ accountId?: string | null;
8926
+ contactId?: string | null;
8927
+ uniqueRef?: string | null;
8928
+ isOpeningBalance?: boolean;
8929
+ /** @enum {string} */
8930
+ type: "deposit" | "expense";
8931
+ date: string;
8932
+ currency?: string | null;
8933
+ lines: {
8934
+ recurringTemplateId?: string | null;
8935
+ uniqueRef?: string | null;
8936
+ description: string;
8937
+ accountId?: string | null;
8938
+ assignment?: string | null;
8939
+ amount: number;
8940
+ appliedAmount?: {
8941
+ taxRateId?: string | null;
8942
+ taxBehavior?: ("excluded" | "included") | null;
8943
+ } | null;
8944
+ markup: null;
8945
+ listingId?: string | null;
8946
+ reservationId?: string | null;
8947
+ ownerStatementId?: string | null;
8948
+ party?: ("owners" | "manager") | null;
8949
+ contactId?: string | null;
8950
+ matchReservationConfirmationCode?: string | null;
8951
+ matchReservationStripeGuestRef?: string | null;
8952
+ matchLineTypeClassification?: string | null;
8953
+ }[];
8954
+ attachmentIds?: string[] | null;
8955
+ payment?: {
8956
+ bankRecordIds: string[];
8957
+ /** @enum {string} */
8958
+ status: "unpaid" | "underpaid" | "overpaid" | "paid";
8959
+ date?: string | null;
8960
+ lock: null;
8961
+ } | null;
8962
+ connectionId?: string | null;
8963
+ sourceId?: string | null;
8964
+ recurringTemplateId?: string | null;
8965
+ matchBankAccountLast4?: string | null;
8966
+ };
8967
+ } | null;
8968
+ }[];
8969
+ };
8970
+ };
8971
+ };
8972
+ /** @description Bad request */
8973
+ 400: {
8974
+ headers: {
8975
+ [name: string]: unknown;
8976
+ };
8977
+ content: {
8978
+ "application/json": {
8979
+ code: string;
8980
+ message: string;
8981
+ issues?: {
8982
+ message: string;
8983
+ }[];
8984
+ context?: unknown;
8985
+ };
8986
+ };
8987
+ };
8988
+ /** @description Unauthorized */
8989
+ 401: {
8990
+ headers: {
8991
+ [name: string]: unknown;
8992
+ };
8993
+ content: {
8994
+ "application/json": {
8995
+ code: string;
8996
+ message: string;
8997
+ issues?: {
8998
+ message: string;
8999
+ }[];
9000
+ context?: unknown;
9001
+ };
9002
+ };
9003
+ };
9004
+ /** @description Forbidden */
9005
+ 403: {
9006
+ headers: {
9007
+ [name: string]: unknown;
9008
+ };
9009
+ content: {
9010
+ "application/json": {
9011
+ code: string;
9012
+ message: string;
9013
+ issues?: {
9014
+ message: string;
9015
+ }[];
9016
+ context?: unknown;
9017
+ };
9018
+ };
9019
+ };
9020
+ /** @description Not found */
9021
+ 404: {
9022
+ headers: {
9023
+ [name: string]: unknown;
9024
+ };
9025
+ content: {
9026
+ "application/json": {
9027
+ code: string;
9028
+ message: string;
9029
+ issues?: {
9030
+ message: string;
9031
+ }[];
9032
+ context?: unknown;
9033
+ };
9034
+ };
9035
+ };
9036
+ /** @description Internal server error */
9037
+ 500: {
9038
+ headers: {
9039
+ [name: string]: unknown;
9040
+ };
9041
+ content: {
9042
+ "application/json": {
9043
+ code: string;
9044
+ message: string;
9045
+ issues?: {
9046
+ message: string;
9047
+ }[];
9048
+ context?: unknown;
9049
+ };
9050
+ };
9051
+ };
9052
+ };
9053
+ };
7594
9054
  getCalendar: {
7595
9055
  parameters: {
7596
9056
  query: {