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.
- package/dist/api/counterparties.d.ts +9 -8
- package/dist/api/counterparties.js +72 -13
- package/dist/api/types/autogen/apiV1External.types.d.ts +45 -13
- package/dist/api/types/autogen/apiV1Frontend.types.d.ts +608 -32
- package/dist/api/types/autogen/apiV1Legacy.types.d.ts +1 -1
- package/dist/api/types/autogen/apiV1Tenant.types.d.ts +44 -8
- package/dist/api/types/types.d.ts +72 -67
- package/dist/constants.d.ts +2 -1
- package/dist/constants.js +2 -0
- package/package.json +1 -1
|
@@ -945,14 +945,23 @@ export interface paths {
|
|
|
945
945
|
headers: {
|
|
946
946
|
[name: string]: unknown;
|
|
947
947
|
};
|
|
948
|
-
content
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
/**
|
|
4488
|
-
|
|
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;
|