squarefi-bff-api-module 1.36.36 → 1.36.37

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.
@@ -7347,6 +7347,28 @@ export interface components {
7347
7347
  type?: string;
7348
7348
  /** @description Whether cards can be tokenized */
7349
7349
  tokenizable?: boolean;
7350
+ /** @description What a cardholder on this program must carry. Set per program in the vendor config, so it can change without a release — read it instead of hardcoding the form. */
7351
+ cardholder_requirements?: {
7352
+ /**
7353
+ * @description Cumulative KYC level; each level includes the previous one
7354
+ * @enum {string}
7355
+ */
7356
+ level?: "minimal" | "basic" | "full";
7357
+ /**
7358
+ * @description Required field names; address fields are dotted (address.line1)
7359
+ * @example [
7360
+ * "first_name",
7361
+ * "last_name",
7362
+ * "email",
7363
+ * "phone",
7364
+ * "birth_date",
7365
+ * "nationality"
7366
+ * ]
7367
+ */
7368
+ required?: string[];
7369
+ /** @description Documents that must be attached; empty below the full level */
7370
+ required_documents?: ("gov_id_front" | "gov_id_back" | "selfie")[];
7371
+ };
7350
7372
  /** @description Available order types */
7351
7373
  order_types?: Record<string, never>[];
7352
7374
  /** @description KYC requirements */
@@ -7902,10 +7924,15 @@ export interface components {
7902
7924
  };
7903
7925
  ApiCryptoTransferRequest: {
7904
7926
  /**
7905
- * @description Amount to send, in `from_currency_id` units.
7927
+ * @description Amount to send, in `from_currency_id` units. With `is_reverse: true` — the amount the recipient must receive, in destination-currency units.
7906
7928
  * @example 100
7907
7929
  */
7908
7930
  amount: number;
7931
+ /**
7932
+ * @description Optional. When true, `amount` is the receive-amount and the debited amount is grossed up with fees.
7933
+ * @default false
7934
+ */
7935
+ is_reverse: boolean;
7909
7936
  /**
7910
7937
  * Format: uuid
7911
7938
  * @description UUID of the source currency to debit from the wallet's omnibus balance. Get the list from `GET /api/reference/currencies`.
@@ -7948,10 +7975,15 @@ export interface components {
7948
7975
  };
7949
7976
  ApiOfframpOrderRequest: {
7950
7977
  /**
7951
- * @description Amount to send, in `from_currency_id` units.
7978
+ * @description Amount to send, in `from_currency_id` units. With `is_reverse: true` — the amount the recipient must receive, in destination-currency units.
7952
7979
  * @example 1000
7953
7980
  */
7954
7981
  amount: number;
7982
+ /**
7983
+ * @description Optional. When true, `amount` is the receive-amount and the debited amount is grossed up with fees.
7984
+ * @default false
7985
+ */
7986
+ is_reverse: boolean;
7955
7987
  /**
7956
7988
  * Format: uuid
7957
7989
  * @description Source currency UUID. Get from `GET /api/reference/currencies`.
@@ -7995,10 +8027,15 @@ export interface components {
7995
8027
  };
7996
8028
  ApiExchangeOrderRequest: {
7997
8029
  /**
7998
- * @description Amount to exchange, in `from_currency_id` units.
8030
+ * @description Amount to exchange, in `from_currency_id` units. With `is_reverse: true` — the amount to receive, in `to_currency_id` units.
7999
8031
  * @example 100
8000
8032
  */
8001
8033
  amount: number;
8034
+ /**
8035
+ * @description Optional. When true, `amount` is the receive-amount and the debited amount is grossed up with fees.
8036
+ * @default false
8037
+ */
8038
+ is_reverse: boolean;
8002
8039
  /**
8003
8040
  * Format: uuid
8004
8041
  * @description Source currency UUID. Get from `GET /api/reference/currencies`.
@@ -6022,6 +6022,360 @@ export interface paths {
6022
6022
  patch?: never;
6023
6023
  trace?: never;
6024
6024
  };
6025
+ "/frontend/notification-preferences": {
6026
+ parameters: {
6027
+ query?: never;
6028
+ header?: never;
6029
+ path?: never;
6030
+ cookie?: never;
6031
+ };
6032
+ /**
6033
+ * Effective delivery-channel preferences
6034
+ * @description Full channel list with defaults applied. `IN_APP` is always enabled (cannot be disabled).
6035
+ */
6036
+ get: {
6037
+ parameters: {
6038
+ query?: never;
6039
+ header?: never;
6040
+ path?: never;
6041
+ cookie?: never;
6042
+ };
6043
+ requestBody?: never;
6044
+ responses: {
6045
+ /** @description Effective preference per channel. */
6046
+ 200: {
6047
+ headers: {
6048
+ [name: string]: unknown;
6049
+ };
6050
+ content: {
6051
+ "application/json": {
6052
+ /** @example true */
6053
+ success?: boolean;
6054
+ data?: {
6055
+ preferences?: components["schemas"]["NotificationPreference"][];
6056
+ };
6057
+ };
6058
+ };
6059
+ };
6060
+ 401: components["responses"]["UnauthorizedError"];
6061
+ };
6062
+ };
6063
+ /**
6064
+ * Update delivery-channel preferences
6065
+ * @description Bulk upsert. Disabling `IN_APP` is rejected with 400 (`INBOX_CHANNEL_LOCKED`). Changes apply from the next delivery.
6066
+ */
6067
+ put: {
6068
+ parameters: {
6069
+ query?: never;
6070
+ header?: never;
6071
+ path?: never;
6072
+ cookie?: never;
6073
+ };
6074
+ requestBody: {
6075
+ content: {
6076
+ "application/json": {
6077
+ preferences: components["schemas"]["NotificationPreference"][];
6078
+ };
6079
+ };
6080
+ };
6081
+ responses: {
6082
+ /** @description Effective preference list after the update. */
6083
+ 200: {
6084
+ headers: {
6085
+ [name: string]: unknown;
6086
+ };
6087
+ content: {
6088
+ "application/json": {
6089
+ /** @example true */
6090
+ success?: boolean;
6091
+ data?: {
6092
+ preferences?: components["schemas"]["NotificationPreference"][];
6093
+ };
6094
+ };
6095
+ };
6096
+ };
6097
+ /** @description Invalid body (`VALIDATION_ERROR`) or an attempt to disable `IN_APP` (`INBOX_CHANNEL_LOCKED`). */
6098
+ 400: {
6099
+ headers: {
6100
+ [name: string]: unknown;
6101
+ };
6102
+ content?: never;
6103
+ };
6104
+ 401: components["responses"]["UnauthorizedError"];
6105
+ };
6106
+ };
6107
+ post?: never;
6108
+ delete?: never;
6109
+ options?: never;
6110
+ head?: never;
6111
+ patch?: never;
6112
+ trace?: never;
6113
+ };
6114
+ "/frontend/notifications": {
6115
+ parameters: {
6116
+ query?: never;
6117
+ header?: never;
6118
+ path?: never;
6119
+ cookie?: never;
6120
+ };
6121
+ /** List the notification inbox (newest first, cursor pagination) */
6122
+ get: {
6123
+ parameters: {
6124
+ query?: {
6125
+ /** @description Opaque cursor from a previous page (`next_cursor`). Omit for the first page. */
6126
+ cursor?: string;
6127
+ limit?: number;
6128
+ unread_only?: "true" | "false";
6129
+ wallet_id?: string;
6130
+ };
6131
+ header?: never;
6132
+ path?: never;
6133
+ cookie?: never;
6134
+ };
6135
+ requestBody?: never;
6136
+ responses: {
6137
+ /** @description Page of notifications; `next_cursor` is null on the final page. */
6138
+ 200: {
6139
+ headers: {
6140
+ [name: string]: unknown;
6141
+ };
6142
+ content: {
6143
+ "application/json": {
6144
+ /** @example true */
6145
+ success?: boolean;
6146
+ data?: {
6147
+ items?: components["schemas"]["NotificationView"][];
6148
+ next_cursor?: string | null;
6149
+ };
6150
+ };
6151
+ };
6152
+ };
6153
+ /** @description Invalid query (`VALIDATION_ERROR`) or a broken cursor (`NOTIFICATION_CURSOR_INVALID`). */
6154
+ 400: {
6155
+ headers: {
6156
+ [name: string]: unknown;
6157
+ };
6158
+ content?: never;
6159
+ };
6160
+ 401: components["responses"]["UnauthorizedError"];
6161
+ };
6162
+ };
6163
+ put?: never;
6164
+ post?: never;
6165
+ delete?: never;
6166
+ options?: never;
6167
+ head?: never;
6168
+ patch?: never;
6169
+ trace?: never;
6170
+ };
6171
+ "/frontend/notifications/unread-count": {
6172
+ parameters: {
6173
+ query?: never;
6174
+ header?: never;
6175
+ path?: never;
6176
+ cookie?: never;
6177
+ };
6178
+ /** Unread notifications count (badge) */
6179
+ get: {
6180
+ parameters: {
6181
+ query?: never;
6182
+ header?: never;
6183
+ path?: never;
6184
+ cookie?: never;
6185
+ };
6186
+ requestBody?: never;
6187
+ responses: {
6188
+ /** @description Current unread count. */
6189
+ 200: {
6190
+ headers: {
6191
+ [name: string]: unknown;
6192
+ };
6193
+ content: {
6194
+ "application/json": {
6195
+ /** @example true */
6196
+ success?: boolean;
6197
+ data?: {
6198
+ /** @example 3 */
6199
+ count?: number;
6200
+ };
6201
+ };
6202
+ };
6203
+ };
6204
+ 401: components["responses"]["UnauthorizedError"];
6205
+ };
6206
+ };
6207
+ put?: never;
6208
+ post?: never;
6209
+ delete?: never;
6210
+ options?: never;
6211
+ head?: never;
6212
+ patch?: never;
6213
+ trace?: never;
6214
+ };
6215
+ "/frontend/notifications/mark-read": {
6216
+ parameters: {
6217
+ query?: never;
6218
+ header?: never;
6219
+ path?: never;
6220
+ cookie?: never;
6221
+ };
6222
+ get?: never;
6223
+ put?: never;
6224
+ /**
6225
+ * Mark specific notifications as read
6226
+ * @description Idempotent — already-read ids are not counted. Other tabs/devices sync via the realtime `notifications.read` event.
6227
+ */
6228
+ post: {
6229
+ parameters: {
6230
+ query?: never;
6231
+ header?: never;
6232
+ path?: never;
6233
+ cookie?: never;
6234
+ };
6235
+ requestBody: {
6236
+ content: {
6237
+ "application/json": {
6238
+ notification_ids: string[];
6239
+ };
6240
+ };
6241
+ };
6242
+ responses: {
6243
+ /** @description Number of notifications actually transitioned to read. */
6244
+ 200: {
6245
+ headers: {
6246
+ [name: string]: unknown;
6247
+ };
6248
+ content: {
6249
+ "application/json": {
6250
+ /** @example true */
6251
+ success?: boolean;
6252
+ data?: {
6253
+ /** @example 2 */
6254
+ updated?: number;
6255
+ };
6256
+ };
6257
+ };
6258
+ };
6259
+ /** @description Invalid body (`VALIDATION_ERROR`). */
6260
+ 400: {
6261
+ headers: {
6262
+ [name: string]: unknown;
6263
+ };
6264
+ content?: never;
6265
+ };
6266
+ 401: components["responses"]["UnauthorizedError"];
6267
+ };
6268
+ };
6269
+ delete?: never;
6270
+ options?: never;
6271
+ head?: never;
6272
+ patch?: never;
6273
+ trace?: never;
6274
+ };
6275
+ "/frontend/notifications/mark-all-read": {
6276
+ parameters: {
6277
+ query?: never;
6278
+ header?: never;
6279
+ path?: never;
6280
+ cookie?: never;
6281
+ };
6282
+ get?: never;
6283
+ put?: never;
6284
+ /** Mark every unread notification as read */
6285
+ post: {
6286
+ parameters: {
6287
+ query?: never;
6288
+ header?: never;
6289
+ path?: never;
6290
+ cookie?: never;
6291
+ };
6292
+ requestBody?: never;
6293
+ responses: {
6294
+ /** @description Number of notifications actually transitioned to read. */
6295
+ 200: {
6296
+ headers: {
6297
+ [name: string]: unknown;
6298
+ };
6299
+ content: {
6300
+ "application/json": {
6301
+ /** @example true */
6302
+ success?: boolean;
6303
+ data?: {
6304
+ /** @example 5 */
6305
+ updated?: number;
6306
+ };
6307
+ };
6308
+ };
6309
+ };
6310
+ 401: components["responses"]["UnauthorizedError"];
6311
+ };
6312
+ };
6313
+ delete?: never;
6314
+ options?: never;
6315
+ head?: never;
6316
+ patch?: never;
6317
+ trace?: never;
6318
+ };
6319
+ "/frontend/notifications/realtime-token": {
6320
+ parameters: {
6321
+ query?: never;
6322
+ header?: never;
6323
+ path?: never;
6324
+ cookie?: never;
6325
+ };
6326
+ get?: never;
6327
+ put?: never;
6328
+ /**
6329
+ * Issue a realtime subscription token
6330
+ * @description Subscribe-only token for the realtime SDK (`authCallback`). `channels`
6331
+ * lists the exact channel names the token grants — the personal channel
6332
+ * plus one per accessible wallet. Tokens expire after ~1 hour; the SDK
6333
+ * re-requests through the same endpoint.
6334
+ *
6335
+ */
6336
+ post: {
6337
+ parameters: {
6338
+ query?: never;
6339
+ header?: never;
6340
+ path?: never;
6341
+ cookie?: never;
6342
+ };
6343
+ requestBody?: never;
6344
+ responses: {
6345
+ /** @description Token, expiry and the granted channel names. */
6346
+ 200: {
6347
+ headers: {
6348
+ [name: string]: unknown;
6349
+ };
6350
+ content: {
6351
+ "application/json": {
6352
+ /** @example true */
6353
+ success?: boolean;
6354
+ data?: {
6355
+ token?: string;
6356
+ /** Format: date-time */
6357
+ expires_at?: string;
6358
+ channels?: string[];
6359
+ };
6360
+ };
6361
+ };
6362
+ };
6363
+ 401: components["responses"]["UnauthorizedError"];
6364
+ /** @description Realtime delivery is disabled for this deployment (`REALTIME_DISABLED`). */
6365
+ 503: {
6366
+ headers: {
6367
+ [name: string]: unknown;
6368
+ };
6369
+ content?: never;
6370
+ };
6371
+ };
6372
+ };
6373
+ delete?: never;
6374
+ options?: never;
6375
+ head?: never;
6376
+ patch?: never;
6377
+ trace?: never;
6378
+ };
6025
6379
  "/frontend/orders/deposit/ach": {
6026
6380
  parameters: {
6027
6381
  query?: never;
@@ -11330,6 +11684,65 @@ export interface paths {
11330
11684
  patch?: never;
11331
11685
  trace?: never;
11332
11686
  };
11687
+ "/frontend/notifications/test": {
11688
+ parameters: {
11689
+ query?: never;
11690
+ header?: never;
11691
+ path?: never;
11692
+ cookie?: never;
11693
+ };
11694
+ get?: never;
11695
+ put?: never;
11696
+ /**
11697
+ * Send mock notification events (development only)
11698
+ * @description Publishes MOCK events straight to the delivery channels so a client can verify its realtime integration: `notification.created` plus a push carrier on the personal channel, and `data.changed` on the wallet channel when `wallet_id` is passed. Nothing is stored — the mock does not appear in the inbox. Available only on development deployments.
11699
+ */
11700
+ post: {
11701
+ parameters: {
11702
+ query?: {
11703
+ /** @description Accessible wallet whose channel receives the mock `data.changed` signal */
11704
+ wallet_id?: string;
11705
+ };
11706
+ header?: never;
11707
+ path?: never;
11708
+ cookie?: never;
11709
+ };
11710
+ requestBody?: {
11711
+ content: {
11712
+ "application/json": {
11713
+ /** @description Push notification text */
11714
+ message?: string;
11715
+ };
11716
+ };
11717
+ };
11718
+ responses: {
11719
+ /** @description Mock events published */
11720
+ 200: {
11721
+ headers: {
11722
+ [name: string]: unknown;
11723
+ };
11724
+ content: {
11725
+ "application/json": {
11726
+ /** @example true */
11727
+ success?: boolean;
11728
+ data?: {
11729
+ /** Format: uuid */
11730
+ notification_id?: string;
11731
+ /** Format: uuid */
11732
+ signaled_wallet_id?: string | null;
11733
+ };
11734
+ };
11735
+ };
11736
+ };
11737
+ 401: components["responses"]["UnauthorizedError"];
11738
+ };
11739
+ };
11740
+ delete?: never;
11741
+ options?: never;
11742
+ head?: never;
11743
+ patch?: never;
11744
+ trace?: never;
11745
+ };
11333
11746
  }
11334
11747
  export type webhooks = Record<string, never>;
11335
11748
  export interface components {
@@ -11633,6 +12046,14 @@ export interface components {
11633
12046
  /** @enum {string|null} */
11634
12047
  form_factor?: "PHYSICAL" | "VIRTUAL" | null;
11635
12048
  tokenizable: boolean;
12049
+ /** @description What a cardholder on this program must carry. Set per program in the vendor config, so it can change without a release — read it instead of hardcoding the form. */
12050
+ cardholder_requirements?: {
12051
+ /** @enum {string} */
12052
+ level?: "minimal" | "basic" | "full";
12053
+ /** @description Required field names; address fields are dotted (address.line1) */
12054
+ required?: string[];
12055
+ required_documents?: ("gov_id_front" | "gov_id_back" | "selfie")[];
12056
+ };
11636
12057
  /** Format: uuid */
11637
12058
  account_currency: string;
11638
12059
  card_limit: number;
@@ -11830,7 +12251,7 @@ export interface components {
11830
12251
  /** Format: date-time */
11831
12252
  updated_at?: string;
11832
12253
  };
11833
- /** @description Card / sub-account transaction (GET /cards/{card_id}/transactions and GET /sub-accounts/{sub_account_id}/transactions). Fields pass through from the issuing vendor. */
12254
+ /** @description Card / sub-account transaction (GET /cards/{card_id}/transactions and GET /sub-accounts/{sub_account_id}/transactions). */
11834
12255
  IssuingTransaction: {
11835
12256
  /** @description Transaction id in the issuing vendor */
11836
12257
  vendor_transaction_id?: string;
@@ -11838,7 +12259,7 @@ export interface components {
11838
12259
  last4?: string;
11839
12260
  /** @example APPROVED */
11840
12261
  status?: string;
11841
- /** @example PURCHASE */
12262
+ /** @example CLEARING */
11842
12263
  transaction_type?: string;
11843
12264
  /** @example Purchase */
11844
12265
  group?: string;
@@ -12110,7 +12531,13 @@ export interface components {
12110
12531
  * @description Source wallet UUID
12111
12532
  */
12112
12533
  wallet_id: string;
12534
+ /** @description Amount to send, in `from_currency_id` units. With `is_reverse: true` — the amount the recipient must receive, in destination-currency units. */
12113
12535
  amount: number;
12536
+ /**
12537
+ * @description When true, `amount` is the receive-amount and the debited amount is grossed up with fees.
12538
+ * @default false
12539
+ */
12540
+ is_reverse: boolean;
12114
12541
  /** Format: uuid */
12115
12542
  from_currency_id: string;
12116
12543
  /** Format: uuid */
@@ -12135,7 +12562,13 @@ export interface components {
12135
12562
  * @description Source wallet UUID
12136
12563
  */
12137
12564
  wallet_id: string;
12565
+ /** @description Amount to send, in `from_currency_id` units. With `is_reverse: true` — the amount the recipient must receive, in destination-currency units. */
12138
12566
  amount: number;
12567
+ /**
12568
+ * @description When true, `amount` is the receive-amount and the debited amount is grossed up with fees.
12569
+ * @default false
12570
+ */
12571
+ is_reverse: boolean;
12139
12572
  /** Format: uuid */
12140
12573
  from_currency_id: string;
12141
12574
  /** Format: uuid */
@@ -12157,8 +12590,13 @@ export interface components {
12157
12590
  FrontendExchangeOrderRequest: {
12158
12591
  /** Format: uuid */
12159
12592
  wallet_id: string;
12160
- /** @description Amount to exchange (in source currency) */
12593
+ /** @description Amount to exchange, in `from_currency_id` units. With `is_reverse: true` — the amount to receive, in `to_currency_id` units. */
12161
12594
  amount: number;
12595
+ /**
12596
+ * @description When true, `amount` is the receive-amount and the debited amount is grossed up with fees.
12597
+ * @default false
12598
+ */
12599
+ is_reverse: boolean;
12162
12600
  /**
12163
12601
  * Format: uuid
12164
12602
  * @description Source currency UUID
@@ -12341,6 +12779,25 @@ export interface components {
12341
12779
  destination_id: string;
12342
12780
  amount: number;
12343
12781
  };
12782
+ NotificationView: {
12783
+ /** Format: uuid */
12784
+ id: string;
12785
+ /** @enum {string} */
12786
+ type: "DEPOSIT_RECEIVED" | "TRANSFER_RECEIVED" | "ORDER_STATUS_CHANGED" | "KYC_STATUS_CHANGED";
12787
+ /** @description Structured fact snapshot; the client renders the presentation. Shape depends on `type`; evolution is additive-only. */
12788
+ payload: Record<string, never>;
12789
+ /** Format: uuid */
12790
+ wallet_id: string | null;
12791
+ /** Format: date-time */
12792
+ read_at: string | null;
12793
+ /** Format: date-time */
12794
+ created_at: string;
12795
+ };
12796
+ NotificationPreference: {
12797
+ /** @enum {string} */
12798
+ channel: "IN_APP" | "PUSH";
12799
+ enabled: boolean;
12800
+ };
12344
12801
  };
12345
12802
  responses: {
12346
12803
  /** @description Authentication credentials are missing or invalid */
@@ -1067,104 +1067,6 @@ export interface paths {
1067
1067
  patch?: never;
1068
1068
  trace?: never;
1069
1069
  };
1070
- "/tenant/me": {
1071
- parameters: {
1072
- query?: never;
1073
- header?: never;
1074
- path?: never;
1075
- cookie?: never;
1076
- };
1077
- /**
1078
- * Get authenticated tenant
1079
- * @deprecated
1080
- * @description Returns information about the authenticated tenant
1081
- */
1082
- get: {
1083
- parameters: {
1084
- query?: never;
1085
- header?: never;
1086
- path?: never;
1087
- cookie?: never;
1088
- };
1089
- requestBody?: never;
1090
- responses: {
1091
- /** @description Authenticated tenant information */
1092
- 200: {
1093
- headers: {
1094
- [name: string]: unknown;
1095
- };
1096
- content: {
1097
- "application/json": components["schemas"]["Tenant"];
1098
- };
1099
- };
1100
- /** @description Server error */
1101
- 500: {
1102
- headers: {
1103
- [name: string]: unknown;
1104
- };
1105
- content: {
1106
- "application/json": components["schemas"]["Error"];
1107
- };
1108
- };
1109
- };
1110
- };
1111
- put?: never;
1112
- post?: never;
1113
- delete?: never;
1114
- options?: never;
1115
- head?: never;
1116
- patch?: never;
1117
- trace?: never;
1118
- };
1119
- "/tenant/config": {
1120
- parameters: {
1121
- query?: never;
1122
- header?: never;
1123
- path?: never;
1124
- cookie?: never;
1125
- };
1126
- /**
1127
- * Get tenant configuration
1128
- * @deprecated
1129
- * @description Returns configuration for the authenticated tenant
1130
- */
1131
- get: {
1132
- parameters: {
1133
- query?: never;
1134
- header?: never;
1135
- path?: never;
1136
- cookie?: never;
1137
- };
1138
- requestBody?: never;
1139
- responses: {
1140
- /** @description Tenant configuration */
1141
- 200: {
1142
- headers: {
1143
- [name: string]: unknown;
1144
- };
1145
- content: {
1146
- "application/json": components["schemas"]["TenantConfig"];
1147
- };
1148
- };
1149
- /** @description Server error */
1150
- 500: {
1151
- headers: {
1152
- [name: string]: unknown;
1153
- };
1154
- content: {
1155
- "application/json": components["schemas"]["Error"];
1156
- };
1157
- };
1158
- };
1159
- };
1160
- put?: never;
1161
- post?: never;
1162
- delete?: never;
1163
- options?: never;
1164
- head?: never;
1165
- patch?: never;
1166
- trace?: never;
1167
- };
1168
1070
  "/issuing/cards": {
1169
1071
  parameters: {
1170
1072
  query?: never;
@@ -2201,17 +2103,7 @@ export interface paths {
2201
2103
  };
2202
2104
  /**
2203
2105
  * Get card transactions
2204
- * @description Retrieves a list of transactions for a specific card with filtering and pagination options.
2205
- * This endpoint now combines external card transactions with local top-up transactions.
2206
- *
2207
- * **Pagination Strategy**: Due to combining two data sources (external API and local DB),
2208
- * pagination fetches larger batches from both sources to ensure proper sorting before
2209
- * applying the requested pagination. This prevents missing transactions that should appear
2210
- * on the current page after sorting.
2211
- *
2212
- * **Note**: For cards, the system needs to find the associated fiat_account to match local top-up transactions.
2213
- * This should be replaced with direct card_id in transaction metadata in the future.
2214
- *
2106
+ * @description Retrieves a list of transactions for a specific card, including card top-ups, with filtering and pagination options.
2215
2107
  */
2216
2108
  get: {
2217
2109
  parameters: {
@@ -2226,14 +2118,14 @@ export interface paths {
2226
2118
  offset?: number;
2227
2119
  /** @description Whether to use the new response format */
2228
2120
  new_scheme?: boolean;
2229
- /** @description Filter by transaction type */
2230
- transaction_type?: string;
2231
- /** @description Filter by start date (ISO 8601). Sent to external provider as `from_timestamp` and post-filtered against `cleared_at`/`created_at`. */
2121
+ /** @description Filter by transaction type (case-insensitive). Unknown values are rejected with a validation error. */
2122
+ transaction_type?: "AUTHORIZATION" | "CLEARING" | "REFUND" | "REVERSAL" | "DEPOSIT" | "WITHDRAWAL" | "TRANSFER" | "FEE" | "ATM" | "ACCOUNT_VERIFICATION" | "ORIGINAL_CREDIT" | "OTHER";
2123
+ /** @description Filter by start date (ISO 8601), matched against `cleared_at` (fallback `created_at`). */
2232
2124
  from?: string;
2233
- /** @description Filter by end date (ISO 8601). Sent to external provider as `to_timestamp` and post-filtered against `cleared_at`/`created_at`. */
2125
+ /** @description Filter by end date (ISO 8601), matched against `cleared_at` (fallback `created_at`). */
2234
2126
  to?: string;
2235
- /** @description Filter by transaction status. Forwarded to external provider and applied as a post-filter on the combined result. */
2236
- status?: "PENDING" | "APPROVED" | "DECLINED" | "CANCELED";
2127
+ /** @description Filter by transaction status (case-insensitive). */
2128
+ status?: "PENDING" | "APPROVED" | "COMPLETED" | "DECLINED" | "CANCELED" | "REVERSED" | "EXPIRED";
2237
2129
  };
2238
2130
  header?: never;
2239
2131
  path?: never;
@@ -2241,7 +2133,7 @@ export interface paths {
2241
2133
  };
2242
2134
  requestBody?: never;
2243
2135
  responses: {
2244
- /** @description List of transactions retrieved successfully (includes both external and local top-up transactions) */
2136
+ /** @description List of transactions retrieved successfully (includes card top-ups) */
2245
2137
  200: {
2246
2138
  headers: {
2247
2139
  [name: string]: unknown;
@@ -2250,6 +2142,15 @@ export interface paths {
2250
2142
  "application/json": components["schemas"]["IssuingTransactionList"];
2251
2143
  };
2252
2144
  };
2145
+ /** @description Validation error (unknown transaction_type) */
2146
+ 400: {
2147
+ headers: {
2148
+ [name: string]: unknown;
2149
+ };
2150
+ content: {
2151
+ "application/json": components["schemas"]["Error"];
2152
+ };
2153
+ };
2253
2154
  /** @description Server Error */
2254
2155
  500: {
2255
2156
  headers: {
@@ -8371,8 +8272,6 @@ export interface components {
8371
8272
  Transaction: unknown;
8372
8273
  CryptoCurrency: unknown;
8373
8274
  Country: unknown;
8374
- Tenant: unknown;
8375
- TenantConfig: unknown;
8376
8275
  IssuingCardList: unknown;
8377
8276
  IssuingCard: unknown;
8378
8277
  CardSensitiveData: unknown;
@@ -8551,7 +8551,13 @@ export interface components {
8551
8551
  } | null;
8552
8552
  };
8553
8553
  CryptoTransferRequest: {
8554
+ /** @description Amount to send, in `from_currency_id` units. With `is_reverse: true` — the amount the recipient must receive, in destination-currency units. */
8554
8555
  amount: number;
8556
+ /**
8557
+ * @description When true, `amount` is the receive-amount and the debited amount is grossed up with fees.
8558
+ * @default false
8559
+ */
8560
+ is_reverse: boolean;
8555
8561
  /** Format: uuid */
8556
8562
  from_currency_id: string;
8557
8563
  /** Format: uuid */
@@ -8567,7 +8573,13 @@ export interface components {
8567
8573
  scheduled_at?: string;
8568
8574
  };
8569
8575
  OfframpOrderRequest: {
8576
+ /** @description Amount to send, in `from_currency_id` units. With `is_reverse: true` — the amount the recipient must receive, in destination-currency units. */
8570
8577
  amount: number;
8578
+ /**
8579
+ * @description When true, `amount` is the receive-amount and the debited amount is grossed up with fees.
8580
+ * @default false
8581
+ */
8582
+ is_reverse: boolean;
8571
8583
  /** Format: uuid */
8572
8584
  from_currency_id: string;
8573
8585
  /** Format: uuid */
@@ -8590,8 +8602,13 @@ export interface components {
8590
8602
  scheduled_at?: string;
8591
8603
  };
8592
8604
  ExchangeOrderRequest: {
8593
- /** @description Amount to exchange (in source currency) */
8605
+ /** @description Amount to exchange, in `from_currency_id` units. With `is_reverse: true` — the amount to receive, in `to_currency_id` units. */
8594
8606
  amount: number;
8607
+ /**
8608
+ * @description When true, `amount` is the receive-amount and the debited amount is grossed up with fees.
8609
+ * @default false
8610
+ */
8611
+ is_reverse: boolean;
8595
8612
  /**
8596
8613
  * Format: uuid
8597
8614
  * @description Source currency UUID
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "squarefi-bff-api-module",
3
- "version": "1.36.36",
3
+ "version": "1.36.37",
4
4
  "description": "Squarefi BFF API client module",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",