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