squarefi-bff-api-module 1.36.6 → 1.36.8

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.
@@ -945,14 +945,23 @@ export interface paths {
945
945
  headers: {
946
946
  [name: string]: unknown;
947
947
  };
948
- content?: never;
948
+ content: {
949
+ "application/json": {
950
+ /** @example true */
951
+ success: boolean;
952
+ data: components["schemas"]["CounterpartyAccount"][];
953
+ pagination?: components["schemas"]["PaginationResponse"];
954
+ };
955
+ };
949
956
  };
950
957
  /** @description Access denied */
951
958
  403: {
952
959
  headers: {
953
960
  [name: string]: unknown;
954
961
  };
955
- content?: never;
962
+ content: {
963
+ "application/json": components["schemas"]["ErrorResponse"];
964
+ };
956
965
  };
957
966
  };
958
967
  };
@@ -989,14 +998,26 @@ export interface paths {
989
998
  headers: {
990
999
  [name: string]: unknown;
991
1000
  };
992
- content?: never;
1001
+ content: {
1002
+ "application/json": {
1003
+ /** @example true */
1004
+ success: boolean;
1005
+ data: {
1006
+ account: components["schemas"]["CounterpartyAccount"];
1007
+ /** @example Counterparty account created successfully */
1008
+ message: string;
1009
+ };
1010
+ };
1011
+ };
993
1012
  };
994
1013
  /** @description Access denied */
995
1014
  403: {
996
1015
  headers: {
997
1016
  [name: string]: unknown;
998
1017
  };
999
- content?: never;
1018
+ content: {
1019
+ "application/json": components["schemas"]["ErrorResponse"];
1020
+ };
1000
1021
  };
1001
1022
  };
1002
1023
  };
@@ -1030,21 +1051,33 @@ export interface paths {
1030
1051
  headers: {
1031
1052
  [name: string]: unknown;
1032
1053
  };
1033
- content?: never;
1054
+ content: {
1055
+ "application/json": {
1056
+ /** @example true */
1057
+ success: boolean;
1058
+ data: {
1059
+ account: components["schemas"]["CounterpartyAccountWithDestinations"];
1060
+ };
1061
+ };
1062
+ };
1034
1063
  };
1035
1064
  /** @description Access denied */
1036
1065
  403: {
1037
1066
  headers: {
1038
1067
  [name: string]: unknown;
1039
1068
  };
1040
- content?: never;
1069
+ content: {
1070
+ "application/json": components["schemas"]["ErrorResponse"];
1071
+ };
1041
1072
  };
1042
1073
  /** @description Not found */
1043
1074
  404: {
1044
1075
  headers: {
1045
1076
  [name: string]: unknown;
1046
1077
  };
1047
- content?: never;
1078
+ content: {
1079
+ "application/json": components["schemas"]["ErrorResponse"];
1080
+ };
1048
1081
  };
1049
1082
  };
1050
1083
  };
@@ -1067,21 +1100,34 @@ export interface paths {
1067
1100
  headers: {
1068
1101
  [name: string]: unknown;
1069
1102
  };
1070
- content?: never;
1103
+ content: {
1104
+ "application/json": {
1105
+ /** @example true */
1106
+ success: boolean;
1107
+ data: {
1108
+ /** @example Counterparty account deleted successfully */
1109
+ message: string;
1110
+ };
1111
+ };
1112
+ };
1071
1113
  };
1072
1114
  /** @description Access denied */
1073
1115
  403: {
1074
1116
  headers: {
1075
1117
  [name: string]: unknown;
1076
1118
  };
1077
- content?: never;
1119
+ content: {
1120
+ "application/json": components["schemas"]["ErrorResponse"];
1121
+ };
1078
1122
  };
1079
1123
  /** @description Not found */
1080
1124
  404: {
1081
1125
  headers: {
1082
1126
  [name: string]: unknown;
1083
1127
  };
1084
- content?: never;
1128
+ content: {
1129
+ "application/json": components["schemas"]["ErrorResponse"];
1130
+ };
1085
1131
  };
1086
1132
  };
1087
1133
  };
@@ -1111,21 +1157,33 @@ export interface paths {
1111
1157
  headers: {
1112
1158
  [name: string]: unknown;
1113
1159
  };
1114
- content?: never;
1160
+ content: {
1161
+ "application/json": {
1162
+ /** @example true */
1163
+ success: boolean;
1164
+ data: {
1165
+ account: components["schemas"]["CounterpartyAccount"];
1166
+ };
1167
+ };
1168
+ };
1115
1169
  };
1116
1170
  /** @description Access denied */
1117
1171
  403: {
1118
1172
  headers: {
1119
1173
  [name: string]: unknown;
1120
1174
  };
1121
- content?: never;
1175
+ content: {
1176
+ "application/json": components["schemas"]["ErrorResponse"];
1177
+ };
1122
1178
  };
1123
1179
  /** @description Not found */
1124
1180
  404: {
1125
1181
  headers: {
1126
1182
  [name: string]: unknown;
1127
1183
  };
1128
- content?: never;
1184
+ content: {
1185
+ "application/json": components["schemas"]["ErrorResponse"];
1186
+ };
1129
1187
  };
1130
1188
  };
1131
1189
  };
@@ -1163,14 +1221,23 @@ export interface paths {
1163
1221
  headers: {
1164
1222
  [name: string]: unknown;
1165
1223
  };
1166
- content?: never;
1224
+ content: {
1225
+ "application/json": {
1226
+ /** @example true */
1227
+ success: boolean;
1228
+ data: components["schemas"]["CounterpartyDestination"][];
1229
+ pagination?: components["schemas"]["PaginationResponse"];
1230
+ };
1231
+ };
1167
1232
  };
1168
1233
  /** @description Access denied */
1169
1234
  403: {
1170
1235
  headers: {
1171
1236
  [name: string]: unknown;
1172
1237
  };
1173
- content?: never;
1238
+ content: {
1239
+ "application/json": components["schemas"]["ErrorResponse"];
1240
+ };
1174
1241
  };
1175
1242
  };
1176
1243
  };
@@ -1206,21 +1273,33 @@ export interface paths {
1206
1273
  headers: {
1207
1274
  [name: string]: unknown;
1208
1275
  };
1209
- content?: never;
1276
+ content: {
1277
+ "application/json": {
1278
+ /** @example true */
1279
+ success: boolean;
1280
+ data: {
1281
+ destination: components["schemas"]["CounterpartyDestination"];
1282
+ };
1283
+ };
1284
+ };
1210
1285
  };
1211
1286
  /** @description Access denied */
1212
1287
  403: {
1213
1288
  headers: {
1214
1289
  [name: string]: unknown;
1215
1290
  };
1216
- content?: never;
1291
+ content: {
1292
+ "application/json": components["schemas"]["ErrorResponse"];
1293
+ };
1217
1294
  };
1218
1295
  /** @description Not found */
1219
1296
  404: {
1220
1297
  headers: {
1221
1298
  [name: string]: unknown;
1222
1299
  };
1223
- content?: never;
1300
+ content: {
1301
+ "application/json": components["schemas"]["ErrorResponse"];
1302
+ };
1224
1303
  };
1225
1304
  };
1226
1305
  };
@@ -1246,21 +1325,34 @@ export interface paths {
1246
1325
  headers: {
1247
1326
  [name: string]: unknown;
1248
1327
  };
1249
- content?: never;
1328
+ content: {
1329
+ "application/json": {
1330
+ /** @example true */
1331
+ success: boolean;
1332
+ data: {
1333
+ /** @example Destination deleted successfully */
1334
+ message: string;
1335
+ };
1336
+ };
1337
+ };
1250
1338
  };
1251
1339
  /** @description Access denied or verification failed */
1252
1340
  403: {
1253
1341
  headers: {
1254
1342
  [name: string]: unknown;
1255
1343
  };
1256
- content?: never;
1344
+ content: {
1345
+ "application/json": components["schemas"]["ErrorResponse"];
1346
+ };
1257
1347
  };
1258
1348
  /** @description Not found */
1259
1349
  404: {
1260
1350
  headers: {
1261
1351
  [name: string]: unknown;
1262
1352
  };
1263
- content?: never;
1353
+ content: {
1354
+ "application/json": components["schemas"]["ErrorResponse"];
1355
+ };
1264
1356
  };
1265
1357
  };
1266
1358
  };
@@ -1289,26 +1381,112 @@ export interface paths {
1289
1381
  headers: {
1290
1382
  [name: string]: unknown;
1291
1383
  };
1292
- content?: never;
1384
+ content: {
1385
+ "application/json": {
1386
+ /** @example true */
1387
+ success: boolean;
1388
+ data: {
1389
+ destination: components["schemas"]["CounterpartyDestination"];
1390
+ };
1391
+ };
1392
+ };
1293
1393
  };
1294
1394
  /** @description Access denied */
1295
1395
  403: {
1296
1396
  headers: {
1297
1397
  [name: string]: unknown;
1298
1398
  };
1299
- content?: never;
1399
+ content: {
1400
+ "application/json": components["schemas"]["ErrorResponse"];
1401
+ };
1300
1402
  };
1301
1403
  /** @description Not found */
1302
1404
  404: {
1303
1405
  headers: {
1304
1406
  [name: string]: unknown;
1305
1407
  };
1306
- content?: never;
1408
+ content: {
1409
+ "application/json": components["schemas"]["ErrorResponse"];
1410
+ };
1307
1411
  };
1308
1412
  };
1309
1413
  };
1310
1414
  trace?: never;
1311
1415
  };
1416
+ "/frontend/counterparty/destinations/{id}/internal-transfer": {
1417
+ parameters: {
1418
+ query?: never;
1419
+ header?: never;
1420
+ path?: never;
1421
+ cookie?: never;
1422
+ };
1423
+ /**
1424
+ * Check internal-transfer availability for a destination
1425
+ * @description Read-only check (writes nothing). Resolves the destination's payment
1426
+ * details to an on-platform wallet within the tenant and reports whether an
1427
+ * instant internal transfer is available.
1428
+ *
1429
+ * A `true` answer means the caller can create an INTERNAL destination to
1430
+ * `target_wallet_id` and transfer to it. Any recipient that cannot receive
1431
+ * an instant internal transfer is uniformly reported as `available:false`
1432
+ * with `target_wallet_id:null` — the check does not disclose the reason.
1433
+ *
1434
+ * Detects crypto (address), INTERNAL (stored target wallet) and banking
1435
+ * (bank details matched against internal virtual accounts) destinations.
1436
+ *
1437
+ */
1438
+ get: {
1439
+ parameters: {
1440
+ query?: never;
1441
+ header?: never;
1442
+ path: {
1443
+ id: string;
1444
+ };
1445
+ cookie?: never;
1446
+ };
1447
+ requestBody?: never;
1448
+ responses: {
1449
+ /** @description Internal-transfer availability for the destination */
1450
+ 200: {
1451
+ headers: {
1452
+ [name: string]: unknown;
1453
+ };
1454
+ content: {
1455
+ "application/json": {
1456
+ /** @example true */
1457
+ success: boolean;
1458
+ data: components["schemas"]["InternalTransferAvailability"];
1459
+ };
1460
+ };
1461
+ };
1462
+ /** @description Access denied */
1463
+ 403: {
1464
+ headers: {
1465
+ [name: string]: unknown;
1466
+ };
1467
+ content: {
1468
+ "application/json": components["schemas"]["ErrorResponse"];
1469
+ };
1470
+ };
1471
+ /** @description Not found */
1472
+ 404: {
1473
+ headers: {
1474
+ [name: string]: unknown;
1475
+ };
1476
+ content: {
1477
+ "application/json": components["schemas"]["ErrorResponse"];
1478
+ };
1479
+ };
1480
+ };
1481
+ };
1482
+ put?: never;
1483
+ post?: never;
1484
+ delete?: never;
1485
+ options?: never;
1486
+ head?: never;
1487
+ patch?: never;
1488
+ trace?: never;
1489
+ };
1312
1490
  "/frontend/counterparty/destinations": {
1313
1491
  parameters: {
1314
1492
  query?: never;
@@ -1324,6 +1502,7 @@ export interface paths {
1324
1502
  *
1325
1503
  * **Banking types**: banking_data required
1326
1504
  * **Crypto types**: crypto_data required
1505
+ * **Internal type**: internal_data required (target wallet on the same platform)
1327
1506
  *
1328
1507
  */
1329
1508
  post: {
@@ -1339,10 +1518,20 @@ export interface paths {
1339
1518
  /** Format: uuid */
1340
1519
  counterparty_account_id: string;
1341
1520
  /** @enum {string} */
1342
- type: "ACH" | "SWIFT" | "SEPA" | "CRYPTO_EXTERNAL" | "CRYPTO_INTERNAL" | "CHAPS" | "FPS" | "FEDWIRE";
1521
+ type: "ACH" | "SWIFT" | "SEPA" | "CRYPTO_EXTERNAL" | "CRYPTO_INTERNAL" | "CHAPS" | "FPS" | "FEDWIRE" | "INTERNAL";
1343
1522
  nickname?: string;
1344
1523
  banking_data?: Record<string, never>;
1345
1524
  crypto_data?: Record<string, never>;
1525
+ /** @description Required for type INTERNAL — points at the receiver wallet. */
1526
+ internal_data?: {
1527
+ /**
1528
+ * Format: uuid
1529
+ * @description Target (receiver) wallet uuid on the same platform.
1530
+ */
1531
+ wallet_id: string;
1532
+ /** @description Optional, reserved for future use. */
1533
+ description?: string;
1534
+ };
1346
1535
  };
1347
1536
  };
1348
1537
  };
@@ -1352,21 +1541,35 @@ export interface paths {
1352
1541
  headers: {
1353
1542
  [name: string]: unknown;
1354
1543
  };
1355
- content?: never;
1544
+ content: {
1545
+ "application/json": {
1546
+ /** @example true */
1547
+ success: boolean;
1548
+ data: {
1549
+ destination: components["schemas"]["CounterpartyDestination"];
1550
+ /** @example Destination created successfully */
1551
+ message: string;
1552
+ };
1553
+ };
1554
+ };
1356
1555
  };
1357
1556
  /** @description Access denied */
1358
1557
  403: {
1359
1558
  headers: {
1360
1559
  [name: string]: unknown;
1361
1560
  };
1362
- content?: never;
1561
+ content: {
1562
+ "application/json": components["schemas"]["ErrorResponse"];
1563
+ };
1363
1564
  };
1364
1565
  /** @description Account not found */
1365
1566
  404: {
1366
1567
  headers: {
1367
1568
  [name: string]: unknown;
1368
1569
  };
1369
- content?: never;
1570
+ content: {
1571
+ "application/json": components["schemas"]["ErrorResponse"];
1572
+ };
1370
1573
  };
1371
1574
  };
1372
1575
  };
@@ -1734,8 +1937,10 @@ export interface paths {
1734
1937
  program_id?: string;
1735
1938
  /** @description Filter cards by program sub-account type (prepaid or balance) */
1736
1939
  sub_account_type?: "prepaid" | "balance";
1737
- /** @description Filter cards by status (matches issuing_cards.card_status) */
1738
- status?: "ACTIVE" | "INACTIVE" | "FROZEN" | "CANCELED" | "CLOSED" | "BLOCKED" | "FAILED" | "PENDING";
1940
+ /** @description Filter cards by status (matches issuing_cards.card_status).
1941
+ * Accepts a single value or a comma-separated list, e.g. `status=ACTIVE,FROZEN`.
1942
+ * */
1943
+ status?: ("ACTIVE" | "INACTIVE" | "FROZEN" | "CANCELED" | "CLOSED" | "BLOCKED" | "FAILED" | "PENDING")[];
1739
1944
  /** @description Filter cards by last 4 digits of the card number (partial, case-insensitive match) */
1740
1945
  last4?: string;
1741
1946
  /** @description Number of items to skip */
@@ -4124,6 +4329,258 @@ export interface paths {
4124
4329
  };
4125
4330
  trace?: never;
4126
4331
  };
4332
+ "/frontend/kyc_persona/{wallet_id}/init": {
4333
+ parameters: {
4334
+ query?: never;
4335
+ header?: never;
4336
+ path?: never;
4337
+ cookie?: never;
4338
+ };
4339
+ /**
4340
+ * Initialize Persona KYC session for a wallet
4341
+ * @description Creates a Persona inquiry via the Auth API for the specified wallet and
4342
+ * returns the hosted Persona URL. The caller's Bearer token is forwarded to
4343
+ * the Auth API; access requires the caller to be a member of the wallet
4344
+ * (ownership/membership is enforced by the standard wallet-access check).
4345
+ *
4346
+ * **Authentication**: Bearer token with x-tenant-id header required
4347
+ *
4348
+ * **Access Control**: Any user with access to the wallet (scoped card-users excluded)
4349
+ *
4350
+ */
4351
+ get: {
4352
+ parameters: {
4353
+ query: {
4354
+ type: "individual" | "business";
4355
+ };
4356
+ header?: never;
4357
+ path: {
4358
+ /** @description Wallet UUID */
4359
+ wallet_id: string;
4360
+ };
4361
+ cookie?: never;
4362
+ };
4363
+ requestBody?: never;
4364
+ responses: {
4365
+ /** @description Persona link generated successfully */
4366
+ 200: {
4367
+ headers: {
4368
+ [name: string]: unknown;
4369
+ };
4370
+ content: {
4371
+ "application/json": {
4372
+ /** @example true */
4373
+ success: boolean;
4374
+ data: {
4375
+ /**
4376
+ * Format: uuid
4377
+ * @description Echo of the wallet from the path
4378
+ * @example eaf37846-3669-4b4a-9555-b27f75e023c1
4379
+ */
4380
+ wallet_id: string;
4381
+ /**
4382
+ * @description Persona inquiry ID returned by the Auth API
4383
+ * @example inq_ABDNxhp9ZzD3yehivCbMVvmjwh5g5r
4384
+ */
4385
+ inquiry_id: string;
4386
+ /**
4387
+ * @description Persona session token, when upstream returns one — otherwise null
4388
+ * @example null
4389
+ */
4390
+ session_id: string | null;
4391
+ /**
4392
+ * Format: uri
4393
+ * @description Hosted Persona URL with `inquiry-id` (and `session-token` if `session_id` is present).
4394
+ * Base host: `PERSONA_HOSTED_FLOW_URL` env, default `https://withpersona.com/verify`.
4395
+ *
4396
+ * @example https://withpersona.com/verify?inquiry-id=inq_ABDNxhp9ZzD3yehivCbMVvmjwh5g5r
4397
+ */
4398
+ url: string;
4399
+ };
4400
+ };
4401
+ };
4402
+ };
4403
+ /** @description Validation error (`type` missing or not in [individual, business]) */
4404
+ 400: {
4405
+ headers: {
4406
+ [name: string]: unknown;
4407
+ };
4408
+ content: {
4409
+ "application/json": components["schemas"]["ErrorResponse"];
4410
+ };
4411
+ };
4412
+ /** @description Missing or invalid Bearer token */
4413
+ 401: {
4414
+ headers: {
4415
+ [name: string]: unknown;
4416
+ };
4417
+ content: {
4418
+ "application/json": components["schemas"]["ErrorResponse"];
4419
+ };
4420
+ };
4421
+ /** @description Caller has no access to this wallet */
4422
+ 403: {
4423
+ headers: {
4424
+ [name: string]: unknown;
4425
+ };
4426
+ content: {
4427
+ "application/json": components["schemas"]["ErrorResponse"];
4428
+ };
4429
+ };
4430
+ /** @description Auth API responded 404 (wallet not found upstream) */
4431
+ 404: {
4432
+ headers: {
4433
+ [name: string]: unknown;
4434
+ };
4435
+ content: {
4436
+ "application/json": components["schemas"]["ErrorResponse"];
4437
+ };
4438
+ };
4439
+ /** @description Auth API unavailable, timed out, or returned malformed payload */
4440
+ 502: {
4441
+ headers: {
4442
+ [name: string]: unknown;
4443
+ };
4444
+ content: {
4445
+ "application/json": components["schemas"]["ErrorResponse"];
4446
+ };
4447
+ };
4448
+ };
4449
+ };
4450
+ put?: never;
4451
+ post?: never;
4452
+ delete?: never;
4453
+ options?: never;
4454
+ head?: never;
4455
+ patch?: never;
4456
+ trace?: never;
4457
+ };
4458
+ "/frontend/kyc_persona/{wallet_id}/resume": {
4459
+ parameters: {
4460
+ query?: never;
4461
+ header?: never;
4462
+ path?: never;
4463
+ cookie?: never;
4464
+ };
4465
+ /**
4466
+ * Resume Persona KYC session for a wallet
4467
+ * @description Resumes an existing Persona inquiry via the Auth API for the specified
4468
+ * wallet and returns the hosted Persona URL. The caller's Bearer token is
4469
+ * forwarded to the Auth API; access requires the caller to be a member of
4470
+ * the wallet (ownership/membership is enforced by the standard wallet-access check).
4471
+ *
4472
+ * **Authentication**: Bearer token with x-tenant-id header required
4473
+ *
4474
+ * **Access Control**: Any user with access to the wallet (scoped card-users excluded)
4475
+ *
4476
+ */
4477
+ get: {
4478
+ parameters: {
4479
+ query: {
4480
+ inquiry_id: string;
4481
+ };
4482
+ header?: never;
4483
+ path: {
4484
+ /** @description Wallet UUID */
4485
+ wallet_id: string;
4486
+ };
4487
+ cookie?: never;
4488
+ };
4489
+ requestBody?: never;
4490
+ responses: {
4491
+ /** @description Persona link generated successfully */
4492
+ 200: {
4493
+ headers: {
4494
+ [name: string]: unknown;
4495
+ };
4496
+ content: {
4497
+ "application/json": {
4498
+ /** @example true */
4499
+ success: boolean;
4500
+ data: {
4501
+ /**
4502
+ * Format: uuid
4503
+ * @description Echo of the wallet from the path
4504
+ * @example eaf37846-3669-4b4a-9555-b27f75e023c1
4505
+ */
4506
+ wallet_id: string;
4507
+ /**
4508
+ * @description Persona inquiry ID returned by the Auth API (same as the one being resumed)
4509
+ * @example inq_ABDNxhp9ZzD3yehivCbMVvmjwh5g5r
4510
+ */
4511
+ inquiry_id: string;
4512
+ /**
4513
+ * @description Persona session token, when upstream returns one — otherwise null
4514
+ * @example null
4515
+ */
4516
+ session_id: string | null;
4517
+ /**
4518
+ * Format: uri
4519
+ * @description Hosted Persona URL with `inquiry-id` (and `session-token` if `session_id` is present).
4520
+ * Base host: `PERSONA_HOSTED_FLOW_URL` env, default `https://withpersona.com/verify`.
4521
+ *
4522
+ * @example https://withpersona.com/verify?inquiry-id=inq_ABDNxhp9ZzD3yehivCbMVvmjwh5g5r
4523
+ */
4524
+ url: string;
4525
+ };
4526
+ };
4527
+ };
4528
+ };
4529
+ /** @description Validation error (`inquiry_id` missing or empty) */
4530
+ 400: {
4531
+ headers: {
4532
+ [name: string]: unknown;
4533
+ };
4534
+ content: {
4535
+ "application/json": components["schemas"]["ErrorResponse"];
4536
+ };
4537
+ };
4538
+ /** @description Missing or invalid Bearer token */
4539
+ 401: {
4540
+ headers: {
4541
+ [name: string]: unknown;
4542
+ };
4543
+ content: {
4544
+ "application/json": components["schemas"]["ErrorResponse"];
4545
+ };
4546
+ };
4547
+ /** @description Caller has no access to this wallet */
4548
+ 403: {
4549
+ headers: {
4550
+ [name: string]: unknown;
4551
+ };
4552
+ content: {
4553
+ "application/json": components["schemas"]["ErrorResponse"];
4554
+ };
4555
+ };
4556
+ /** @description Auth API responded 404 (no such inquiry to resume) */
4557
+ 404: {
4558
+ headers: {
4559
+ [name: string]: unknown;
4560
+ };
4561
+ content: {
4562
+ "application/json": components["schemas"]["ErrorResponse"];
4563
+ };
4564
+ };
4565
+ /** @description Auth API unavailable, timed out, or returned malformed payload */
4566
+ 502: {
4567
+ headers: {
4568
+ [name: string]: unknown;
4569
+ };
4570
+ content: {
4571
+ "application/json": components["schemas"]["ErrorResponse"];
4572
+ };
4573
+ };
4574
+ };
4575
+ };
4576
+ put?: never;
4577
+ post?: never;
4578
+ delete?: never;
4579
+ options?: never;
4580
+ head?: never;
4581
+ patch?: never;
4582
+ trace?: never;
4583
+ };
4127
4584
  "/frontend/orders/deposit/ach": {
4128
4585
  parameters: {
4129
4586
  query?: never;
@@ -4484,8 +4941,11 @@ export interface paths {
4484
4941
  wallet_id: string;
4485
4942
  /** Format: uuid */
4486
4943
  from_currency_id: string;
4487
- /** Format: uuid */
4488
- to_wallet_id: string;
4944
+ /**
4945
+ * Format: uuid
4946
+ * @description Counterparty destination of type INTERNAL (points at the receiver wallet).
4947
+ */
4948
+ counterparty_destination_id: string;
4489
4949
  amount: number;
4490
4950
  /** @description Idempotency key (UUID) */
4491
4951
  request_id: string;
@@ -9467,6 +9927,122 @@ export interface components {
9467
9927
  message?: string;
9468
9928
  };
9469
9929
  };
9930
+ /** @description Counterparty account (beneficiary). Wallet-scoped. */
9931
+ CounterpartyAccount: {
9932
+ /** Format: uuid */
9933
+ id: string;
9934
+ /** @description Account holder name */
9935
+ name: string;
9936
+ /** @enum {string} */
9937
+ type: "BUSINESS" | "INDIVIDUAL";
9938
+ /** @description User-friendly alias */
9939
+ nickname?: string | null;
9940
+ /** @description Optional contact email */
9941
+ email?: string | null;
9942
+ /** @description Optional contact phone (E.164) */
9943
+ phone?: string | null;
9944
+ /** @description Pinned/favorite flag */
9945
+ is_pinned: boolean;
9946
+ /** @description Whether this is the wallet owner’s own (self) account */
9947
+ is_self: boolean;
9948
+ /** Format: date-time */
9949
+ created_at: string;
9950
+ };
9951
+ /** @description A counterparty account with its embedded active destinations (returned by GET account by id). */
9952
+ CounterpartyAccountWithDestinations: components["schemas"]["CounterpartyAccount"] & {
9953
+ /** @description Active destinations belonging to this account. */
9954
+ destinations: components["schemas"]["CounterpartyDestination"][];
9955
+ };
9956
+ /** @description Bank / beneficiary postal address. */
9957
+ CounterpartyBankingAddress: {
9958
+ city?: string | null;
9959
+ postcode?: string | null;
9960
+ street1?: string | null;
9961
+ street2?: string | null;
9962
+ /** @description Country id reference */
9963
+ country_id?: number | null;
9964
+ /** @description State id reference */
9965
+ state_id?: number | null;
9966
+ description?: string | null;
9967
+ } | null;
9968
+ /** @description Banking destination payload. Populated when `type` is ACH, SWIFT, SEPA, CHAPS, FPS or FEDWIRE; null otherwise. */
9969
+ CounterpartyBankingData: {
9970
+ account_number?: string | null;
9971
+ /** @description ABA routing number (9 digits) */
9972
+ routing_number?: string | null;
9973
+ bank_name: string | null;
9974
+ /** @description SWIFT/BIC (ISO 9362) */
9975
+ swift_bic?: string | null;
9976
+ /** @description IBAN (ISO 13616) */
9977
+ iban?: string | null;
9978
+ /** @description Sort code (6 digits, UK banking) */
9979
+ sort_code?: string | null;
9980
+ note?: string | null;
9981
+ address?: components["schemas"]["CounterpartyBankingAddress"] | null;
9982
+ /** Format: date-time */
9983
+ created_at: string;
9984
+ } | null;
9985
+ /** @description Currency reference for a crypto destination (subset of the `crypto` table row). */
9986
+ CounterpartyCurrencyRef: {
9987
+ /** Format: uuid */
9988
+ uuid?: string;
9989
+ name?: string;
9990
+ symbol?: string;
9991
+ icon?: string | null;
9992
+ /** @enum {string|null} */
9993
+ type?: "token" | "native" | null;
9994
+ };
9995
+ /** @description Crypto destination payload. Populated when `type` is CRYPTO_EXTERNAL or CRYPTO_INTERNAL; null otherwise. */
9996
+ CounterpartyCryptoData: {
9997
+ /** @description Blockchain address */
9998
+ address: string;
9999
+ /** @description Memo/tag (XRP, XLM, …) */
10000
+ memo?: string | null;
10001
+ /** Format: uuid */
10002
+ currency_id?: string;
10003
+ currency: components["schemas"]["CounterpartyCurrencyRef"];
10004
+ /** Format: date-time */
10005
+ created_at: string;
10006
+ } | null;
10007
+ /** @description Internal destination payload — the receiver wallet on the same platform. Populated when `type` is INTERNAL; null otherwise. */
10008
+ CounterpartyInternalData: {
10009
+ /**
10010
+ * Format: uuid
10011
+ * @description Target (receiver) wallet uuid
10012
+ */
10013
+ wallet_id: string;
10014
+ /** @description Optional, reserved for future use */
10015
+ description?: string | null;
10016
+ /** Format: date-time */
10017
+ created_at: string;
10018
+ } | null;
10019
+ /** @description Counterparty payment destination. Exactly one of `banking_data` / `crypto_data` / `internal_data` is populated, matching `type`; the other two are null. */
10020
+ CounterpartyDestination: {
10021
+ /** Format: uuid */
10022
+ id: string;
10023
+ /**
10024
+ * @description Destination / payment rail type
10025
+ * @enum {string}
10026
+ */
10027
+ type: "ACH" | "SWIFT" | "SEPA" | "CRYPTO_EXTERNAL" | "CRYPTO_INTERNAL" | "CHAPS" | "FPS" | "FEDWIRE" | "INTERNAL";
10028
+ /** @description User-friendly alias */
10029
+ nickname?: string | null;
10030
+ /** Format: date-time */
10031
+ created_at: string;
10032
+ banking_data?: components["schemas"]["CounterpartyBankingData"] | null;
10033
+ crypto_data?: components["schemas"]["CounterpartyCryptoData"] | null;
10034
+ internal_data?: components["schemas"]["CounterpartyInternalData"] | null;
10035
+ };
10036
+ /** @description Whether an instant internal transfer is available for a counterparty destination. Two states: available (available=true, target_wallet_id set) and not available (available=false, target_wallet_id=null). Any recipient that cannot receive an instant internal transfer is uniformly reported as not available — the check does not disclose the reason. */
10037
+ InternalTransferAvailability: {
10038
+ /** @description True when the recipient is an on-platform wallet that can currently receive an instant internal transfer. */
10039
+ available: boolean;
10040
+ /**
10041
+ * Format: uuid
10042
+ * @description Wallet the transfer would go to — use it to create an INTERNAL destination. Present only when available=true; null otherwise.
10043
+ */
10044
+ target_wallet_id: string | null;
10045
+ };
9470
10046
  /** @description Bank / rail account coordinates for a sub-account. Rail-dependent — some rails return only a subset of these. */
9471
10047
  BankAccountDetails: {
9472
10048
  swift?: string;