squarefi-bff-api-module 1.36.87 → 1.36.89
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/orders.d.ts +1 -0
- package/dist/api/orders.js +1 -0
- package/dist/api/types/autogen/apiV1External.types.d.ts +268 -10
- package/dist/api/types/autogen/apiV1Frontend.types.d.ts +186 -34
- package/dist/api/types/autogen/apiV1Tenant.types.d.ts +763 -102
- package/dist/api/types/autogen/apiV2.types.d.ts +36 -34
- package/dist/api/types/types.d.ts +44 -1
- package/package.json +1 -1
|
@@ -571,7 +571,116 @@ export interface paths {
|
|
|
571
571
|
};
|
|
572
572
|
};
|
|
573
573
|
put?: never;
|
|
574
|
-
|
|
574
|
+
/**
|
|
575
|
+
* Create destination
|
|
576
|
+
* @description counterparty_account_id is required in the body.
|
|
577
|
+
*
|
|
578
|
+
* **Banking types** (ACH, SWIFT, SEPA, CHAPS, FPS, FEDWIRE):
|
|
579
|
+
* banking_data: { account_number, routing_number, bank_name, swift_bic, iban, sort_code, note, address }
|
|
580
|
+
*
|
|
581
|
+
* **Crypto types** (CRYPTO_EXTERNAL, CRYPTO_INTERNAL):
|
|
582
|
+
* crypto_data: { address, currency_id, memo }
|
|
583
|
+
*
|
|
584
|
+
* **Internal type** (INTERNAL):
|
|
585
|
+
* internal_data: { wallet_id, description? } — receiver wallet on the same platform
|
|
586
|
+
*
|
|
587
|
+
*/
|
|
588
|
+
post: {
|
|
589
|
+
parameters: {
|
|
590
|
+
query?: never;
|
|
591
|
+
header?: never;
|
|
592
|
+
path?: never;
|
|
593
|
+
cookie?: never;
|
|
594
|
+
};
|
|
595
|
+
requestBody: {
|
|
596
|
+
content: {
|
|
597
|
+
"application/json": {
|
|
598
|
+
/** Format: uuid */
|
|
599
|
+
counterparty_account_id: string;
|
|
600
|
+
/** @enum {string} */
|
|
601
|
+
type: "ACH" | "SWIFT" | "SEPA" | "CRYPTO_EXTERNAL" | "CRYPTO_INTERNAL" | "CHAPS" | "FPS" | "FEDWIRE" | "INTERNAL";
|
|
602
|
+
nickname?: string;
|
|
603
|
+
banking_data?: {
|
|
604
|
+
account_number?: string;
|
|
605
|
+
routing_number?: string;
|
|
606
|
+
bank_name?: string;
|
|
607
|
+
swift_bic?: string;
|
|
608
|
+
iban?: string;
|
|
609
|
+
/** @description Sort code (6 digits, UK banking) */
|
|
610
|
+
sort_code?: string;
|
|
611
|
+
note?: string;
|
|
612
|
+
address?: {
|
|
613
|
+
country_id?: number;
|
|
614
|
+
city?: string;
|
|
615
|
+
postcode?: string;
|
|
616
|
+
street1?: string;
|
|
617
|
+
street2?: string;
|
|
618
|
+
/** @description Required when the selected country has states; countries without states may omit it */
|
|
619
|
+
state_id?: number | null;
|
|
620
|
+
};
|
|
621
|
+
};
|
|
622
|
+
crypto_data?: {
|
|
623
|
+
address?: string;
|
|
624
|
+
/** Format: uuid */
|
|
625
|
+
currency_id?: string;
|
|
626
|
+
memo?: string;
|
|
627
|
+
/**
|
|
628
|
+
* @description Hosting classification of the address
|
|
629
|
+
* @default unknown
|
|
630
|
+
* @enum {string}
|
|
631
|
+
*/
|
|
632
|
+
wallet_custody_type?: "custodial" | "selfhosted" | "unknown";
|
|
633
|
+
};
|
|
634
|
+
/** @description Required for type INTERNAL — points at the receiver wallet on the same platform. An account holds one INTERNAL destination per wallet; if it already has an active one to this wallet, that destination is returned instead of a new one. */
|
|
635
|
+
internal_data?: {
|
|
636
|
+
/**
|
|
637
|
+
* Format: uuid
|
|
638
|
+
* @description Target (receiver) wallet uuid on the same platform.
|
|
639
|
+
*/
|
|
640
|
+
wallet_id: string;
|
|
641
|
+
/** @description Optional, reserved for future use. */
|
|
642
|
+
description?: string;
|
|
643
|
+
};
|
|
644
|
+
};
|
|
645
|
+
};
|
|
646
|
+
};
|
|
647
|
+
responses: {
|
|
648
|
+
/** @description Counterparty destination created */
|
|
649
|
+
201: {
|
|
650
|
+
headers: {
|
|
651
|
+
[name: string]: unknown;
|
|
652
|
+
};
|
|
653
|
+
content: {
|
|
654
|
+
"application/json": {
|
|
655
|
+
/** @example true */
|
|
656
|
+
success?: boolean;
|
|
657
|
+
data?: {
|
|
658
|
+
destination?: components["schemas"]["CounterpartyDestination"];
|
|
659
|
+
/** @example Counterparty destination created successfully */
|
|
660
|
+
message?: string;
|
|
661
|
+
};
|
|
662
|
+
};
|
|
663
|
+
};
|
|
664
|
+
};
|
|
665
|
+
/** @description Validation error. Bank-details problems come as `VALIDATION_ERROR` with every problem in `error.details.issues` (`field`, `code`, `message`, optional `country` / `detected`).
|
|
666
|
+
*
|
|
667
|
+
* **Until 2026-10-12 00:00 UTC** the stricter bank-details rules (per-country IBAN checks, SEPA-zone IBAN, BIC details, ABA check digit, account formats) are reported by `POST /admin/counterparty/destinations/validate` but do not refuse this request; from then on they do.
|
|
668
|
+
* */
|
|
669
|
+
400: {
|
|
670
|
+
headers: {
|
|
671
|
+
[name: string]: unknown;
|
|
672
|
+
};
|
|
673
|
+
content?: never;
|
|
674
|
+
};
|
|
675
|
+
/** @description Account not found */
|
|
676
|
+
404: {
|
|
677
|
+
headers: {
|
|
678
|
+
[name: string]: unknown;
|
|
679
|
+
};
|
|
680
|
+
content?: never;
|
|
681
|
+
};
|
|
682
|
+
};
|
|
683
|
+
};
|
|
575
684
|
delete?: never;
|
|
576
685
|
options?: never;
|
|
577
686
|
head?: never;
|
|
@@ -706,6 +815,76 @@ export interface paths {
|
|
|
706
815
|
};
|
|
707
816
|
trace?: never;
|
|
708
817
|
};
|
|
818
|
+
"/admin/counterparty/destinations/validate": {
|
|
819
|
+
parameters: {
|
|
820
|
+
query?: never;
|
|
821
|
+
header?: never;
|
|
822
|
+
path?: never;
|
|
823
|
+
cookie?: never;
|
|
824
|
+
};
|
|
825
|
+
get?: never;
|
|
826
|
+
put?: never;
|
|
827
|
+
/**
|
|
828
|
+
* Validate destination details without saving
|
|
829
|
+
* @description Dry run of `POST /admin/counterparty/destinations`: the same body and the same checks — bank details per
|
|
830
|
+
* payment method, address completeness, location reference data, bank-country consistency — with nothing
|
|
831
|
+
* saved and no counterparty account needed. Answers `200` whether or not the details are valid;
|
|
832
|
+
* `valid: false` comes with every problem in `issues`.
|
|
833
|
+
*
|
|
834
|
+
* It always applies the strict bank-details rules, including before they start refusing creation on this
|
|
835
|
+
* surface (2026-10-12 00:00 UTC) — use it to find out what your integration sends that will be refused.
|
|
836
|
+
* Without an account it cannot tell whether an INTERNAL target wallet is active — creation still checks
|
|
837
|
+
* that. Rate limited to 60 requests per minute per tenant API key.
|
|
838
|
+
*
|
|
839
|
+
*/
|
|
840
|
+
post: {
|
|
841
|
+
parameters: {
|
|
842
|
+
query?: never;
|
|
843
|
+
header?: never;
|
|
844
|
+
path?: never;
|
|
845
|
+
cookie?: never;
|
|
846
|
+
};
|
|
847
|
+
requestBody: {
|
|
848
|
+
content: {
|
|
849
|
+
"application/json": {
|
|
850
|
+
/** @enum {string} */
|
|
851
|
+
type: "ACH" | "RTP" | "SWIFT" | "SEPA" | "CRYPTO_EXTERNAL" | "CRYPTO_INTERNAL" | "CHAPS" | "FPS" | "FEDWIRE" | "INTERNAL";
|
|
852
|
+
/** @description Same shape as in `POST /admin/counterparty/destinations`. */
|
|
853
|
+
banking_data?: Record<string, never>;
|
|
854
|
+
crypto_data?: Record<string, never>;
|
|
855
|
+
internal_data?: Record<string, never>;
|
|
856
|
+
};
|
|
857
|
+
};
|
|
858
|
+
};
|
|
859
|
+
responses: {
|
|
860
|
+
/** @description Validation result */
|
|
861
|
+
200: {
|
|
862
|
+
headers: {
|
|
863
|
+
[name: string]: unknown;
|
|
864
|
+
};
|
|
865
|
+
content: {
|
|
866
|
+
"application/json": {
|
|
867
|
+
/** @example true */
|
|
868
|
+
success?: boolean;
|
|
869
|
+
data?: components["schemas"]["DestinationValidationResult"];
|
|
870
|
+
};
|
|
871
|
+
};
|
|
872
|
+
};
|
|
873
|
+
/** @description Too many validation requests */
|
|
874
|
+
429: {
|
|
875
|
+
headers: {
|
|
876
|
+
[name: string]: unknown;
|
|
877
|
+
};
|
|
878
|
+
content?: never;
|
|
879
|
+
};
|
|
880
|
+
};
|
|
881
|
+
};
|
|
882
|
+
delete?: never;
|
|
883
|
+
options?: never;
|
|
884
|
+
head?: never;
|
|
885
|
+
patch?: never;
|
|
886
|
+
trace?: never;
|
|
887
|
+
};
|
|
709
888
|
"/admin/crypto_addresses/{wallet_id}": {
|
|
710
889
|
parameters: {
|
|
711
890
|
query?: never;
|
|
@@ -860,6 +1039,201 @@ export interface paths {
|
|
|
860
1039
|
patch?: never;
|
|
861
1040
|
trace?: never;
|
|
862
1041
|
};
|
|
1042
|
+
"/admin/crypto_wallets/{wallet_id}": {
|
|
1043
|
+
parameters: {
|
|
1044
|
+
query?: never;
|
|
1045
|
+
header?: never;
|
|
1046
|
+
path?: never;
|
|
1047
|
+
cookie?: never;
|
|
1048
|
+
};
|
|
1049
|
+
/** List crypto wallets */
|
|
1050
|
+
get: {
|
|
1051
|
+
parameters: {
|
|
1052
|
+
query?: {
|
|
1053
|
+
/** @description Filter by exact external_id */
|
|
1054
|
+
external_id?: string;
|
|
1055
|
+
/** @description Search by name (case-insensitive, partial match) */
|
|
1056
|
+
name?: string;
|
|
1057
|
+
/** @description Filter by status (default active) */
|
|
1058
|
+
status?: "active" | "inactive";
|
|
1059
|
+
/** @description Filter wallets created after this date (ISO 8601) */
|
|
1060
|
+
created_after?: string;
|
|
1061
|
+
/** @description Filter wallets created before this date (ISO 8601) */
|
|
1062
|
+
created_before?: string;
|
|
1063
|
+
offset?: number;
|
|
1064
|
+
limit?: number;
|
|
1065
|
+
};
|
|
1066
|
+
header?: never;
|
|
1067
|
+
path: {
|
|
1068
|
+
wallet_id: string;
|
|
1069
|
+
};
|
|
1070
|
+
cookie?: never;
|
|
1071
|
+
};
|
|
1072
|
+
requestBody?: never;
|
|
1073
|
+
responses: {
|
|
1074
|
+
/** @description Crypto wallets listed */
|
|
1075
|
+
200: {
|
|
1076
|
+
headers: {
|
|
1077
|
+
[name: string]: unknown;
|
|
1078
|
+
};
|
|
1079
|
+
content: {
|
|
1080
|
+
"application/json": {
|
|
1081
|
+
success?: boolean;
|
|
1082
|
+
data?: components["schemas"]["CryptoWalletListItem"][];
|
|
1083
|
+
pagination?: components["schemas"]["PaginationResponse"];
|
|
1084
|
+
};
|
|
1085
|
+
};
|
|
1086
|
+
};
|
|
1087
|
+
/** @description Wallet does not belong to tenant, or its KYC status does not allow the operation (`KYC_REQUIREMENTS_NOT_MET`) */
|
|
1088
|
+
403: {
|
|
1089
|
+
headers: {
|
|
1090
|
+
[name: string]: unknown;
|
|
1091
|
+
};
|
|
1092
|
+
content: {
|
|
1093
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1094
|
+
};
|
|
1095
|
+
};
|
|
1096
|
+
/** @description Internal server error */
|
|
1097
|
+
500: {
|
|
1098
|
+
headers: {
|
|
1099
|
+
[name: string]: unknown;
|
|
1100
|
+
};
|
|
1101
|
+
content: {
|
|
1102
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1103
|
+
};
|
|
1104
|
+
};
|
|
1105
|
+
};
|
|
1106
|
+
};
|
|
1107
|
+
put?: never;
|
|
1108
|
+
/** Create crypto wallet */
|
|
1109
|
+
post: {
|
|
1110
|
+
parameters: {
|
|
1111
|
+
query?: never;
|
|
1112
|
+
header?: never;
|
|
1113
|
+
path: {
|
|
1114
|
+
wallet_id: string;
|
|
1115
|
+
};
|
|
1116
|
+
cookie?: never;
|
|
1117
|
+
};
|
|
1118
|
+
requestBody: {
|
|
1119
|
+
content: {
|
|
1120
|
+
"application/json": {
|
|
1121
|
+
name: string;
|
|
1122
|
+
external_id?: string;
|
|
1123
|
+
/** @description Chain IDs to create addresses on. Omit or leave empty to create a wallet without addresses; the first address added later creates the custody-provider wallet. */
|
|
1124
|
+
chains?: number[];
|
|
1125
|
+
};
|
|
1126
|
+
};
|
|
1127
|
+
};
|
|
1128
|
+
responses: {
|
|
1129
|
+
/** @description Crypto wallet created */
|
|
1130
|
+
201: {
|
|
1131
|
+
headers: {
|
|
1132
|
+
[name: string]: unknown;
|
|
1133
|
+
};
|
|
1134
|
+
content: {
|
|
1135
|
+
"application/json": {
|
|
1136
|
+
success?: boolean;
|
|
1137
|
+
data?: components["schemas"]["CryptoWallet"];
|
|
1138
|
+
message?: string;
|
|
1139
|
+
};
|
|
1140
|
+
};
|
|
1141
|
+
};
|
|
1142
|
+
/** @description Invalid request (missing name, invalid chains) */
|
|
1143
|
+
400: {
|
|
1144
|
+
headers: {
|
|
1145
|
+
[name: string]: unknown;
|
|
1146
|
+
};
|
|
1147
|
+
content: {
|
|
1148
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1149
|
+
};
|
|
1150
|
+
};
|
|
1151
|
+
/** @description Wallet does not belong to tenant, or its KYC status does not allow the operation (`KYC_REQUIREMENTS_NOT_MET`) */
|
|
1152
|
+
403: {
|
|
1153
|
+
headers: {
|
|
1154
|
+
[name: string]: unknown;
|
|
1155
|
+
};
|
|
1156
|
+
content: {
|
|
1157
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1158
|
+
};
|
|
1159
|
+
};
|
|
1160
|
+
/** @description external_id already exists for this tenant */
|
|
1161
|
+
409: {
|
|
1162
|
+
headers: {
|
|
1163
|
+
[name: string]: unknown;
|
|
1164
|
+
};
|
|
1165
|
+
content: {
|
|
1166
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1167
|
+
};
|
|
1168
|
+
};
|
|
1169
|
+
};
|
|
1170
|
+
};
|
|
1171
|
+
delete?: never;
|
|
1172
|
+
options?: never;
|
|
1173
|
+
head?: never;
|
|
1174
|
+
patch?: never;
|
|
1175
|
+
trace?: never;
|
|
1176
|
+
};
|
|
1177
|
+
"/admin/crypto_wallets/{wallet_id}/addresses": {
|
|
1178
|
+
parameters: {
|
|
1179
|
+
query?: never;
|
|
1180
|
+
header?: never;
|
|
1181
|
+
path?: never;
|
|
1182
|
+
cookie?: never;
|
|
1183
|
+
};
|
|
1184
|
+
/** List crypto wallet addresses */
|
|
1185
|
+
get: {
|
|
1186
|
+
parameters: {
|
|
1187
|
+
query?: {
|
|
1188
|
+
/** @description Filter by chain ID */
|
|
1189
|
+
chain?: number;
|
|
1190
|
+
/** @description Filter by specific crypto wallet */
|
|
1191
|
+
crypto_wallet_id?: string;
|
|
1192
|
+
/** @description Search by address (case-insensitive, partial match) */
|
|
1193
|
+
address?: string;
|
|
1194
|
+
offset?: number;
|
|
1195
|
+
limit?: number;
|
|
1196
|
+
};
|
|
1197
|
+
header?: never;
|
|
1198
|
+
path: {
|
|
1199
|
+
wallet_id: string;
|
|
1200
|
+
};
|
|
1201
|
+
cookie?: never;
|
|
1202
|
+
};
|
|
1203
|
+
requestBody?: never;
|
|
1204
|
+
responses: {
|
|
1205
|
+
/** @description Addresses listed */
|
|
1206
|
+
200: {
|
|
1207
|
+
headers: {
|
|
1208
|
+
[name: string]: unknown;
|
|
1209
|
+
};
|
|
1210
|
+
content: {
|
|
1211
|
+
"application/json": {
|
|
1212
|
+
success?: boolean;
|
|
1213
|
+
data?: components["schemas"]["CryptoWalletAddressListItem"][];
|
|
1214
|
+
pagination?: components["schemas"]["PaginationResponse"];
|
|
1215
|
+
};
|
|
1216
|
+
};
|
|
1217
|
+
};
|
|
1218
|
+
/** @description Wallet does not belong to tenant, or its KYC status does not allow the operation (`KYC_REQUIREMENTS_NOT_MET`) */
|
|
1219
|
+
403: {
|
|
1220
|
+
headers: {
|
|
1221
|
+
[name: string]: unknown;
|
|
1222
|
+
};
|
|
1223
|
+
content: {
|
|
1224
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1225
|
+
};
|
|
1226
|
+
};
|
|
1227
|
+
};
|
|
1228
|
+
};
|
|
1229
|
+
put?: never;
|
|
1230
|
+
post?: never;
|
|
1231
|
+
delete?: never;
|
|
1232
|
+
options?: never;
|
|
1233
|
+
head?: never;
|
|
1234
|
+
patch?: never;
|
|
1235
|
+
trace?: never;
|
|
1236
|
+
};
|
|
863
1237
|
"/admin/crypto_wallets/{wallet_id}/{crypto_wallet_id}": {
|
|
864
1238
|
parameters: {
|
|
865
1239
|
query?: never;
|
|
@@ -914,7 +1288,57 @@ export interface paths {
|
|
|
914
1288
|
};
|
|
915
1289
|
put?: never;
|
|
916
1290
|
post?: never;
|
|
917
|
-
|
|
1291
|
+
/**
|
|
1292
|
+
* Delete crypto wallet
|
|
1293
|
+
* @description Soft-deletes a crypto wallet and archives it with the custody provider.
|
|
1294
|
+
* The wallet is marked as deleted and all addresses are deactivated.
|
|
1295
|
+
*
|
|
1296
|
+
*/
|
|
1297
|
+
delete: {
|
|
1298
|
+
parameters: {
|
|
1299
|
+
query?: never;
|
|
1300
|
+
header?: never;
|
|
1301
|
+
path: {
|
|
1302
|
+
wallet_id: string;
|
|
1303
|
+
crypto_wallet_id: string;
|
|
1304
|
+
};
|
|
1305
|
+
cookie?: never;
|
|
1306
|
+
};
|
|
1307
|
+
requestBody?: never;
|
|
1308
|
+
responses: {
|
|
1309
|
+
/** @description Crypto wallet soft-deleted */
|
|
1310
|
+
200: {
|
|
1311
|
+
headers: {
|
|
1312
|
+
[name: string]: unknown;
|
|
1313
|
+
};
|
|
1314
|
+
content: {
|
|
1315
|
+
"application/json": {
|
|
1316
|
+
success?: boolean;
|
|
1317
|
+
data?: components["schemas"]["CryptoWalletDeleteResponse"];
|
|
1318
|
+
message?: string;
|
|
1319
|
+
};
|
|
1320
|
+
};
|
|
1321
|
+
};
|
|
1322
|
+
/** @description Wallet does not belong to tenant, or its KYC status does not allow the operation (`KYC_REQUIREMENTS_NOT_MET`) */
|
|
1323
|
+
403: {
|
|
1324
|
+
headers: {
|
|
1325
|
+
[name: string]: unknown;
|
|
1326
|
+
};
|
|
1327
|
+
content: {
|
|
1328
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1329
|
+
};
|
|
1330
|
+
};
|
|
1331
|
+
/** @description Crypto wallet not found */
|
|
1332
|
+
404: {
|
|
1333
|
+
headers: {
|
|
1334
|
+
[name: string]: unknown;
|
|
1335
|
+
};
|
|
1336
|
+
content: {
|
|
1337
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1338
|
+
};
|
|
1339
|
+
};
|
|
1340
|
+
};
|
|
1341
|
+
};
|
|
918
1342
|
options?: never;
|
|
919
1343
|
head?: never;
|
|
920
1344
|
patch?: never;
|
|
@@ -1164,46 +1588,11 @@ export interface paths {
|
|
|
1164
1588
|
gov_id_country?: string;
|
|
1165
1589
|
gov_id_type?: string;
|
|
1166
1590
|
gov_id_number?: string;
|
|
1167
|
-
/** @description URL to selfie image */
|
|
1168
|
-
selfie_url?: string;
|
|
1169
|
-
/** @description URL to government ID front image */
|
|
1170
|
-
gov_id_front_url?: string;
|
|
1171
|
-
/** @description URL to government ID back image */
|
|
1172
|
-
gov_id_back_url?: string;
|
|
1173
|
-
/** @description URL to hand-held government ID image */
|
|
1174
|
-
gov_id_hand_hold_url?: string;
|
|
1175
|
-
/** @description URL to proof of address document */
|
|
1176
|
-
proof_of_address_url?: string;
|
|
1177
1591
|
/** @description Type of proof of address document */
|
|
1178
1592
|
proof_of_address_type?: string;
|
|
1179
|
-
/** @description URL to formation document (business) */
|
|
1180
|
-
formation_doc_url?: string;
|
|
1181
|
-
/** @description URL to proof of ownership (business) */
|
|
1182
|
-
proof_of_ownership_url?: string;
|
|
1183
1593
|
certificate_of_registration_doc_type?: string;
|
|
1184
|
-
/** @description URL to certificate of registration (business) */
|
|
1185
|
-
certificate_of_registration_doc_url?: string;
|
|
1186
1594
|
certificate_number?: string;
|
|
1187
|
-
|
|
1188
|
-
business_registration_doc_url?: string;
|
|
1189
|
-
/** @description URL to share structure document (business) */
|
|
1190
|
-
share_structure_url?: string;
|
|
1191
|
-
/** @description URL to constitution or annual report (business) */
|
|
1192
|
-
constitution_or_annual_report_url?: string;
|
|
1193
|
-
/** @description URL to articles of association (business) */
|
|
1194
|
-
articles_of_association_url?: string;
|
|
1195
|
-
/** @description URL to UBO declaration (business) */
|
|
1196
|
-
ubo_declaration_url?: string;
|
|
1197
|
-
/** @description URL to partnership minutes of meeting (business) */
|
|
1198
|
-
partnership_mins_of_meeting_url?: string;
|
|
1199
|
-
/** @description URL to partnership deed (business) */
|
|
1200
|
-
partnership_deed_url?: string;
|
|
1201
|
-
/** @description URL to certificate of incumbency (business) */
|
|
1202
|
-
certificate_of_incumbency_url?: string;
|
|
1203
|
-
/** @description URL to regulatory license (business) */
|
|
1204
|
-
regulatory_license_url?: string;
|
|
1205
|
-
/** @description URL to supplementary document */
|
|
1206
|
-
supplementary_url?: string;
|
|
1595
|
+
documents?: components["schemas"]["KycDocumentsInput"];
|
|
1207
1596
|
};
|
|
1208
1597
|
};
|
|
1209
1598
|
};
|
|
@@ -1371,27 +1760,10 @@ export interface paths {
|
|
|
1371
1760
|
gov_id_country?: string;
|
|
1372
1761
|
gov_id_type?: string;
|
|
1373
1762
|
gov_id_number?: string;
|
|
1374
|
-
selfie_url?: string;
|
|
1375
|
-
gov_id_front_url?: string;
|
|
1376
|
-
gov_id_back_url?: string;
|
|
1377
|
-
gov_id_hand_hold_url?: string;
|
|
1378
|
-
proof_of_address_url?: string;
|
|
1379
1763
|
proof_of_address_type?: string;
|
|
1380
|
-
formation_doc_url?: string;
|
|
1381
|
-
proof_of_ownership_url?: string;
|
|
1382
1764
|
certificate_of_registration_doc_type?: string;
|
|
1383
|
-
certificate_of_registration_doc_url?: string;
|
|
1384
1765
|
certificate_number?: string;
|
|
1385
|
-
|
|
1386
|
-
share_structure_url?: string;
|
|
1387
|
-
constitution_or_annual_report_url?: string;
|
|
1388
|
-
articles_of_association_url?: string;
|
|
1389
|
-
ubo_declaration_url?: string;
|
|
1390
|
-
partnership_mins_of_meeting_url?: string;
|
|
1391
|
-
partnership_deed_url?: string;
|
|
1392
|
-
certificate_of_incumbency_url?: string;
|
|
1393
|
-
regulatory_license_url?: string;
|
|
1394
|
-
supplementary_url?: string;
|
|
1766
|
+
documents?: components["schemas"]["KycDocumentsInput"];
|
|
1395
1767
|
};
|
|
1396
1768
|
};
|
|
1397
1769
|
};
|
|
@@ -1427,6 +1799,82 @@ export interface paths {
|
|
|
1427
1799
|
};
|
|
1428
1800
|
trace?: never;
|
|
1429
1801
|
};
|
|
1802
|
+
"/admin/kyc_entity/{entity_id}/documents/{document_id}": {
|
|
1803
|
+
parameters: {
|
|
1804
|
+
query?: never;
|
|
1805
|
+
header?: never;
|
|
1806
|
+
path?: never;
|
|
1807
|
+
cookie?: never;
|
|
1808
|
+
};
|
|
1809
|
+
get?: never;
|
|
1810
|
+
put?: never;
|
|
1811
|
+
post?: never;
|
|
1812
|
+
/**
|
|
1813
|
+
* Remove a KYC document
|
|
1814
|
+
* @description Removes one document of the KYC entity — or of one of its beneficial owners — by the `id`
|
|
1815
|
+
* it carries in `documents[]`. Allowed while the entity is in `UNVERIFIED` or `SOFT_REJECT`,
|
|
1816
|
+
* the same window as `PATCH`. Documents are added through `documents[]` of `POST` / `PATCH`.
|
|
1817
|
+
*
|
|
1818
|
+
*/
|
|
1819
|
+
delete: {
|
|
1820
|
+
parameters: {
|
|
1821
|
+
query?: never;
|
|
1822
|
+
header?: never;
|
|
1823
|
+
path: {
|
|
1824
|
+
entity_id: string;
|
|
1825
|
+
/** @description The document `id` from `documents[]` */
|
|
1826
|
+
document_id: string;
|
|
1827
|
+
};
|
|
1828
|
+
cookie?: never;
|
|
1829
|
+
};
|
|
1830
|
+
requestBody?: never;
|
|
1831
|
+
responses: {
|
|
1832
|
+
/** @description Document removed */
|
|
1833
|
+
200: {
|
|
1834
|
+
headers: {
|
|
1835
|
+
[name: string]: unknown;
|
|
1836
|
+
};
|
|
1837
|
+
content: {
|
|
1838
|
+
"application/json": {
|
|
1839
|
+
/** @example true */
|
|
1840
|
+
success?: boolean;
|
|
1841
|
+
data?: {
|
|
1842
|
+
/** Format: uuid */
|
|
1843
|
+
id?: string;
|
|
1844
|
+
/** @example formation_doc */
|
|
1845
|
+
type?: string;
|
|
1846
|
+
};
|
|
1847
|
+
};
|
|
1848
|
+
};
|
|
1849
|
+
};
|
|
1850
|
+
/** @description Entity not editable in its current status, or malformed id */
|
|
1851
|
+
400: {
|
|
1852
|
+
headers: {
|
|
1853
|
+
[name: string]: unknown;
|
|
1854
|
+
};
|
|
1855
|
+
content?: never;
|
|
1856
|
+
};
|
|
1857
|
+
/** @description Entity does not belong to this tenant */
|
|
1858
|
+
403: {
|
|
1859
|
+
headers: {
|
|
1860
|
+
[name: string]: unknown;
|
|
1861
|
+
};
|
|
1862
|
+
content?: never;
|
|
1863
|
+
};
|
|
1864
|
+
/** @description Entity or document not found */
|
|
1865
|
+
404: {
|
|
1866
|
+
headers: {
|
|
1867
|
+
[name: string]: unknown;
|
|
1868
|
+
};
|
|
1869
|
+
content?: never;
|
|
1870
|
+
};
|
|
1871
|
+
};
|
|
1872
|
+
};
|
|
1873
|
+
options?: never;
|
|
1874
|
+
head?: never;
|
|
1875
|
+
patch?: never;
|
|
1876
|
+
trace?: never;
|
|
1877
|
+
};
|
|
1430
1878
|
"/admin/kyc_entity/{entity_id}/submit": {
|
|
1431
1879
|
parameters: {
|
|
1432
1880
|
query?: never;
|
|
@@ -2250,7 +2698,7 @@ export interface paths {
|
|
|
2250
2698
|
note?: string;
|
|
2251
2699
|
/**
|
|
2252
2700
|
* Format: date-time
|
|
2253
|
-
* @description Optional. Schedule the transfer for a future time (min 1 hour, max 90 days ahead). No funds are reserved; after approval the order waits in EXPECTED status and executes automatically.
|
|
2701
|
+
* @description Optional. Schedule the transfer for a future time (min 1 hour, max 90 days ahead). No funds are reserved; after approval the order waits in EXPECTED status and executes automatically, once. If the balance does not cover it then, it fails with `scheduled_failure.code` INSUFFICIENT_FUNDS and is not retried. Approve at least 1 hour before scheduled_at.
|
|
2254
2702
|
*/
|
|
2255
2703
|
scheduled_at?: string;
|
|
2256
2704
|
documents?: Record<string, never>[];
|
|
@@ -2920,7 +3368,9 @@ export interface paths {
|
|
|
2920
3368
|
* text operator, e.g. `[{"meta->>workflow_status":"PROCESSING"}]` or, to find an order by
|
|
2921
3369
|
* your own reference, `[{"meta->>reference":"invoice-2026-04-001"}]`. Besides order columns
|
|
2922
3370
|
* it accepts `mass_payout_id` (uuid), which narrows the result to the orders of one mass
|
|
2923
|
-
* payout batch
|
|
3371
|
+
* payout batch, and `scheduled` — scheduled payments only: `all`, `upcoming` (approved and
|
|
3372
|
+
* waiting, `EXPECTED`) or `past` (any status but `NEW` and `EXPECTED`); it combines with
|
|
3373
|
+
* `status`. Malformed JSON or a non-array value is rejected with 400.
|
|
2924
3374
|
*
|
|
2925
3375
|
* @example [{"status":"COMPLETE"}]
|
|
2926
3376
|
*/
|
|
@@ -2954,7 +3404,7 @@ export interface paths {
|
|
|
2954
3404
|
};
|
|
2955
3405
|
};
|
|
2956
3406
|
};
|
|
2957
|
-
/** @description Invalid `filters` (not a JSON array)
|
|
3407
|
+
/** @description Invalid `filters` (not a JSON array), non-uuid `mass_payout_id`, or `scheduled` other than `all` / `upcoming` / `past` */
|
|
2958
3408
|
400: {
|
|
2959
3409
|
headers: {
|
|
2960
3410
|
[name: string]: unknown;
|
|
@@ -3123,6 +3573,9 @@ export interface paths {
|
|
|
3123
3573
|
* status NEW can be approved. Orders
|
|
3124
3574
|
* created with `scheduled_at` move to EXPECTED instead — no funds are
|
|
3125
3575
|
* debited until execution at the requested time.
|
|
3576
|
+
* A scheduled order is approved only while its `scheduled_at` is at least
|
|
3577
|
+
* one hour away; a later approve answers 400 `SCHEDULED_AT_TOO_SOON`
|
|
3578
|
+
* (create the payment again with a new date).
|
|
3126
3579
|
*
|
|
3127
3580
|
*/
|
|
3128
3581
|
post: {
|
|
@@ -3150,7 +3603,7 @@ export interface paths {
|
|
|
3150
3603
|
};
|
|
3151
3604
|
};
|
|
3152
3605
|
};
|
|
3153
|
-
/** @description Insufficient funds (`INSUFFICIENT_FUNDS` — the order is released back to NEW) or validation error */
|
|
3606
|
+
/** @description Insufficient funds (`INSUFFICIENT_FUNDS` — the order is released back to NEW), a scheduled order less than an hour before its `scheduled_at` (`SCHEDULED_AT_TOO_SOON`), or validation error */
|
|
3154
3607
|
400: {
|
|
3155
3608
|
headers: {
|
|
3156
3609
|
[name: string]: unknown;
|
|
@@ -3583,7 +4036,10 @@ export interface paths {
|
|
|
3583
4036
|
card_limit?: number | null;
|
|
3584
4037
|
form_factor?: string | null;
|
|
3585
4038
|
type?: string | null;
|
|
4039
|
+
/** @description At least one mobile wallet is supported; which ones — `digital_wallets` */
|
|
3586
4040
|
tokenizable?: boolean | null;
|
|
4041
|
+
/** @description Mobile wallets cards of this program can be added to; empty when none. A program can support one without the other */
|
|
4042
|
+
digital_wallets?: ("APPLE_PAY" | "GOOGLE_PAY")[];
|
|
3587
4043
|
order_types?: string[] | null;
|
|
3588
4044
|
kyc_rails?: {
|
|
3589
4045
|
/** Format: uuid */
|
|
@@ -5205,13 +5661,14 @@ export interface paths {
|
|
|
5205
5661
|
/**
|
|
5206
5662
|
* Get wallet balance
|
|
5207
5663
|
* @description Returns raw balance records with crypto metadata.
|
|
5208
|
-
* Dust balances
|
|
5664
|
+
* Dust balances — smaller than the currency threshold in absolute value — are hidden unless `show_low_balance=true`;
|
|
5665
|
+
* a negative balance (a debt) beyond the threshold is always returned.
|
|
5209
5666
|
*
|
|
5210
5667
|
*/
|
|
5211
5668
|
get: {
|
|
5212
5669
|
parameters: {
|
|
5213
5670
|
query?: {
|
|
5214
|
-
/** @description When false (default), dust balances
|
|
5671
|
+
/** @description When false (default), dust balances — smaller than the currency threshold in absolute value — are hidden */
|
|
5215
5672
|
show_low_balance?: boolean;
|
|
5216
5673
|
};
|
|
5217
5674
|
header?: never;
|
|
@@ -5231,7 +5688,7 @@ export interface paths {
|
|
|
5231
5688
|
"application/json": {
|
|
5232
5689
|
/** @example true */
|
|
5233
5690
|
success?: boolean;
|
|
5234
|
-
/** @description
|
|
5691
|
+
/** @description Dust balances are left out unless show_low_balance=true; icon may be stripped from crypto.meta */
|
|
5235
5692
|
data?: {
|
|
5236
5693
|
/** Format: uuid */
|
|
5237
5694
|
crypto_id?: string;
|
|
@@ -7011,6 +7468,12 @@ export interface paths {
|
|
|
7011
7468
|
* @description Returns all active issuing programs available for the tenant.
|
|
7012
7469
|
* Programs are enriched with group-level pricing and limits.
|
|
7013
7470
|
*
|
|
7471
|
+
* Each program also publishes what a cardholder on it must carry
|
|
7472
|
+
* (`cardholder_requirements`): the KYC level, the required fields and
|
|
7473
|
+
* documents, and what each country changes. Read it before building the
|
|
7474
|
+
* cardholder form instead of hardcoding one — it can differ between
|
|
7475
|
+
* programs, and a sandbox program may ask for less than the production one.
|
|
7476
|
+
*
|
|
7014
7477
|
*/
|
|
7015
7478
|
get: {
|
|
7016
7479
|
parameters: {
|
|
@@ -7039,8 +7502,13 @@ export interface paths {
|
|
|
7039
7502
|
/** @enum {string} */
|
|
7040
7503
|
form_factor?: "virtual" | "physical" | "both";
|
|
7041
7504
|
brand?: string;
|
|
7505
|
+
/** @description At least one mobile wallet is supported; which ones — `digital_wallets` */
|
|
7506
|
+
tokenizable?: boolean;
|
|
7507
|
+
/** @description Mobile wallets cards of this program can be added to; empty when none. A program can support one without the other */
|
|
7508
|
+
digital_wallets?: ("APPLE_PAY" | "GOOGLE_PAY")[];
|
|
7042
7509
|
issuing_price_usd?: number;
|
|
7043
7510
|
initial_topup_usd?: number;
|
|
7511
|
+
cardholder_requirements?: components["schemas"]["CardholderRequirements"];
|
|
7044
7512
|
}[];
|
|
7045
7513
|
};
|
|
7046
7514
|
};
|
|
@@ -7488,6 +7956,59 @@ export interface paths {
|
|
|
7488
7956
|
export type webhooks = Record<string, never>;
|
|
7489
7957
|
export interface components {
|
|
7490
7958
|
schemas: {
|
|
7959
|
+
/** @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. */
|
|
7960
|
+
CardholderRequirements: {
|
|
7961
|
+
/**
|
|
7962
|
+
* @description Cumulative KYC level; each level includes the previous one
|
|
7963
|
+
* @enum {string}
|
|
7964
|
+
*/
|
|
7965
|
+
level?: "minimal" | "basic" | "declared" | "full";
|
|
7966
|
+
/**
|
|
7967
|
+
* @description Required field names; address fields are dotted (address.line1). Some CONSUMER programs also list gov_id_issuance_date and gov_id_expiration_date (ISO YYYY-MM-DD).
|
|
7968
|
+
* @example [
|
|
7969
|
+
* "first_name",
|
|
7970
|
+
* "last_name",
|
|
7971
|
+
* "email",
|
|
7972
|
+
* "phone",
|
|
7973
|
+
* "birth_date",
|
|
7974
|
+
* "nationality"
|
|
7975
|
+
* ]
|
|
7976
|
+
*/
|
|
7977
|
+
required?: string[];
|
|
7978
|
+
/** @description Documents that must be attached; empty below the full level */
|
|
7979
|
+
required_documents?: ("gov_id_front" | "gov_id_back" | "selfie")[];
|
|
7980
|
+
/** @description Human-readable constraints the field list cannot express — e.g. a CONSUMER program requiring tax_identification_number to be a valid SSN when nationality is USA. */
|
|
7981
|
+
notes?: string[];
|
|
7982
|
+
/** @description What each country changes, keyed by ISO 3166-1 alpha-3 with a `default` entry; empty when the vendor reviews nothing. These fields stay out of `required` because they only hold once the nationality or address country is known: read the rule for the nationality the user picked (required_by_nationality), the rule for the address country (required_by_address), and the rule for the country that issued the document (gov_id_types). */
|
|
7983
|
+
country_rules?: {
|
|
7984
|
+
[key: string]: {
|
|
7985
|
+
/**
|
|
7986
|
+
* @description gov_id_type values accepted for a document issued by this country
|
|
7987
|
+
* @example [
|
|
7988
|
+
* "passport",
|
|
7989
|
+
* "driving_license",
|
|
7990
|
+
* "id_card"
|
|
7991
|
+
* ]
|
|
7992
|
+
*/
|
|
7993
|
+
gov_id_types?: string[];
|
|
7994
|
+
/**
|
|
7995
|
+
* @description Extra fields a person of this nationality must provide
|
|
7996
|
+
* @example [
|
|
7997
|
+
* "tax_identification_number"
|
|
7998
|
+
* ]
|
|
7999
|
+
*/
|
|
8000
|
+
required_by_nationality?: string[];
|
|
8001
|
+
/**
|
|
8002
|
+
* @description Extra fields an address in this country must carry
|
|
8003
|
+
* @example [
|
|
8004
|
+
* "address.state"
|
|
8005
|
+
* ]
|
|
8006
|
+
*/
|
|
8007
|
+
required_by_address?: string[];
|
|
8008
|
+
notes?: string[];
|
|
8009
|
+
};
|
|
8010
|
+
};
|
|
8011
|
+
};
|
|
7491
8012
|
ErrorResponse: {
|
|
7492
8013
|
/** @example false */
|
|
7493
8014
|
success?: boolean;
|
|
@@ -7575,8 +8096,10 @@ export interface components {
|
|
|
7575
8096
|
* @enum {string}
|
|
7576
8097
|
*/
|
|
7577
8098
|
brand?: "VISA" | "MASTERCARD";
|
|
7578
|
-
/** @description Whether card can be
|
|
8099
|
+
/** @description Whether this card can be added to a mobile wallet; set when the card was issued. Which ones: `digital_wallets`. */
|
|
7579
8100
|
tokenizable?: boolean;
|
|
8101
|
+
/** @description Mobile wallets this card can be added to: the wallets of the card's program, or none when the card's `tokenizable` is false. Left out when the program could not be read. */
|
|
8102
|
+
digital_wallets?: ("APPLE_PAY" | "GOOGLE_PAY")[];
|
|
7580
8103
|
/** @description Total spending cap/limit */
|
|
7581
8104
|
spend_cap?: number;
|
|
7582
8105
|
/** @description Total amount spent */
|
|
@@ -8256,6 +8779,35 @@ export interface components {
|
|
|
8256
8779
|
crypto_data?: components["schemas"]["CryptoData"];
|
|
8257
8780
|
internal_data?: components["schemas"]["CounterpartyInternalData"];
|
|
8258
8781
|
counterparty_account?: components["schemas"]["CounterpartyAccountRef"];
|
|
8782
|
+
/** @description Banking destinations only: problems that make the stored bank details unpayable (an IBAN that fails its checks, an IBAN outside SEPA on a SEPA destination, a routing number that fails the ABA check). Non-empty means withdrawals to this destination are refused with `DESTINATION_INVALID` — details cannot be edited, so add a new destination. Empty for valid banking destinations; absent for crypto and internal ones. */
|
|
8783
|
+
validation_issues?: components["schemas"]["DestinationValidationIssue"][];
|
|
8784
|
+
};
|
|
8785
|
+
/** @description One problem with a destination payload. `field` is the request path of the offending value (`iban`, `routing_number`, `address.city`…); `message` is ready to show under that field. */
|
|
8786
|
+
DestinationValidationIssue: {
|
|
8787
|
+
/** @example iban */
|
|
8788
|
+
field: string;
|
|
8789
|
+
/**
|
|
8790
|
+
* @description Machine-readable reason. Bank details: `REQUIRED`, `IBAN_WRONG_FORMAT`, `IBAN_INVALID_CHARACTERS`, `IBAN_COUNTRY_NOT_SUPPORTED`, `IBAN_WRONG_LENGTH`, `IBAN_WRONG_BBAN_FORMAT`, `IBAN_WRONG_CHECKSUM`, `IBAN_WRONG_NATIONAL_CHECKSUM`, `IBAN_QR_NOT_ALLOWED`, `IBAN_NOT_SEPA`, `IBAN_BIC_COUNTRY_MISMATCH`, `BIC_WRONG_FORMAT`, `BIC_UNKNOWN_COUNTRY`, `BIC_TEST_CODE`, `ROUTING_NUMBER_INVALID`, `ACCOUNT_NUMBER_INVALID`, `SORT_CODE_INVALID`, `WRONG_IDENTIFIER_TYPE`, `INVALID_VALUE`; reference data: `BANK_COUNTRY_MISMATCH`, `VALIDATION_ERROR`; dry run only: `INVALID_TYPE`. New codes may be added — show `message` for an unknown one.
|
|
8791
|
+
* @example IBAN_NOT_SEPA
|
|
8792
|
+
*/
|
|
8793
|
+
code: string;
|
|
8794
|
+
/** @example IBAN country AE is outside the SEPA zone — SEPA transfers cannot reach it */
|
|
8795
|
+
message: string;
|
|
8796
|
+
/**
|
|
8797
|
+
* @description ISO 3166-1 alpha-2 country the problem is about, when there is one
|
|
8798
|
+
* @example AE
|
|
8799
|
+
*/
|
|
8800
|
+
country?: string;
|
|
8801
|
+
/**
|
|
8802
|
+
* @description For `WRONG_IDENTIFIER_TYPE`: what the value looks like (an IBAN typed into a US account-number field…)
|
|
8803
|
+
* @enum {string}
|
|
8804
|
+
*/
|
|
8805
|
+
detected?: "IBAN" | "BIC" | "ROUTING_NUMBER";
|
|
8806
|
+
};
|
|
8807
|
+
DestinationValidationResult: {
|
|
8808
|
+
/** @description True when creating the destination with this payload would pass every check */
|
|
8809
|
+
valid: boolean;
|
|
8810
|
+
issues: components["schemas"]["DestinationValidationIssue"][];
|
|
8259
8811
|
};
|
|
8260
8812
|
/** @description Owning counterparty account, embedded on destination reads; absent on create/update. */
|
|
8261
8813
|
CounterpartyAccountRef: {
|
|
@@ -8286,6 +8838,19 @@ export interface components {
|
|
|
8286
8838
|
/** Format: date-time */
|
|
8287
8839
|
updated_at?: string;
|
|
8288
8840
|
};
|
|
8841
|
+
/** @description Documents to file for the KYC entity. Each entry is stored as a document of its type; an earlier document of the same type stays on record (several documents of one type are allowed). All entries of one request form one batch in the given order, so a multi-file document (e.g. the pages of a bank statement) is sent as several entries of the same type in one request. A document is removed through DELETE /admin/kyc_entity/{entity_id}/documents/{document_id}. */
|
|
8842
|
+
KycDocumentsInput: {
|
|
8843
|
+
/**
|
|
8844
|
+
* @description Document type: supplementary, gov_id_front, gov_id_back, gov_id_hand_hold, selfie, proof_of_address, auth_letter, formation_doc, proof_of_ownership, certificate_of_registration_doc, business_registration_doc, share_structure, constitution_or_annual_report, articles_of_association, ubo_declaration, partnership_mins_of_meeting, partnership_deed, certificate_of_incumbency, regulatory_license, state_registry_doc, good_standing_cert, business_proof_of_address, invoices, contracts, financial_statements, source_of_funds, business_bank_statement, source_of_wealth_ubo, customer_supplier_agreements.
|
|
8845
|
+
* @example formation_doc
|
|
8846
|
+
*/
|
|
8847
|
+
type: string;
|
|
8848
|
+
/**
|
|
8849
|
+
* Format: uri
|
|
8850
|
+
* @description http(s) URL of the file.
|
|
8851
|
+
*/
|
|
8852
|
+
link: string;
|
|
8853
|
+
}[];
|
|
8289
8854
|
KycEntity: {
|
|
8290
8855
|
/** Format: uuid */
|
|
8291
8856
|
id?: string;
|
|
@@ -8325,48 +8890,134 @@ export interface components {
|
|
|
8325
8890
|
gov_id_country?: string | null;
|
|
8326
8891
|
gov_id_type?: string | null;
|
|
8327
8892
|
gov_id_number?: string | null;
|
|
8328
|
-
/** @description
|
|
8329
|
-
|
|
8330
|
-
|
|
8331
|
-
|
|
8332
|
-
|
|
8333
|
-
|
|
8334
|
-
|
|
8335
|
-
|
|
8336
|
-
|
|
8337
|
-
|
|
8893
|
+
/** @description Every KYC document of the entity and of its beneficial owners, oldest first. Several documents of one type may be on record; the current set of a type is its newest batch (files sent in one request share `batch_id`, ordered by `position`). The `*_url` fields below are deprecated copies of it. */
|
|
8894
|
+
documents?: {
|
|
8895
|
+
/** Format: uuid */
|
|
8896
|
+
id?: string;
|
|
8897
|
+
/**
|
|
8898
|
+
* @description Document type (see KycDocumentsInput for the list).
|
|
8899
|
+
* @example formation_doc
|
|
8900
|
+
*/
|
|
8901
|
+
type?: string;
|
|
8902
|
+
/** Format: uri */
|
|
8903
|
+
link?: string;
|
|
8904
|
+
/**
|
|
8905
|
+
* Format: uuid
|
|
8906
|
+
* @description Beneficial owner the document belongs to; null for the entity itself.
|
|
8907
|
+
*/
|
|
8908
|
+
ubo_id?: string | null;
|
|
8909
|
+
/**
|
|
8910
|
+
* @description Who filed the document: `admin_api` — this API, `panel` — an operator, `bff` — the client application, `kyc_provider` — received from the KYC provider, `backfill` — carried over from the former `*_url` fields.
|
|
8911
|
+
* @example admin_api
|
|
8912
|
+
* @enum {string}
|
|
8913
|
+
*/
|
|
8914
|
+
source?: "admin_api" | "panel" | "bff" | "kyc_provider" | "backfill";
|
|
8915
|
+
/**
|
|
8916
|
+
* Format: uuid
|
|
8917
|
+
* @description Shared by the files sent in one request (one submission).
|
|
8918
|
+
*/
|
|
8919
|
+
batch_id?: string;
|
|
8920
|
+
/** @description Order of the file within its batch, from 0. */
|
|
8921
|
+
position?: number;
|
|
8922
|
+
/** Format: date-time */
|
|
8923
|
+
created_at?: string;
|
|
8924
|
+
}[];
|
|
8925
|
+
/**
|
|
8926
|
+
* @deprecated
|
|
8927
|
+
* @description Deprecated — read `documents[]`. Link of the newest `selfie` document of the entity itself; null when there is none.
|
|
8928
|
+
*/
|
|
8929
|
+
readonly selfie_url?: string | null;
|
|
8930
|
+
/**
|
|
8931
|
+
* @deprecated
|
|
8932
|
+
* @description Deprecated — read `documents[]`. Link of the newest `gov_id_front` document of the entity itself; null when there is none.
|
|
8933
|
+
*/
|
|
8934
|
+
readonly gov_id_front_url?: string | null;
|
|
8935
|
+
/**
|
|
8936
|
+
* @deprecated
|
|
8937
|
+
* @description Deprecated — read `documents[]`. Link of the newest `gov_id_back` document of the entity itself; null when there is none.
|
|
8938
|
+
*/
|
|
8939
|
+
readonly gov_id_back_url?: string | null;
|
|
8940
|
+
/**
|
|
8941
|
+
* @deprecated
|
|
8942
|
+
* @description Deprecated — read `documents[]`. Link of the newest `gov_id_hand_hold` document of the entity itself; null when there is none.
|
|
8943
|
+
*/
|
|
8944
|
+
readonly gov_id_hand_hold_url?: string | null;
|
|
8945
|
+
/**
|
|
8946
|
+
* @deprecated
|
|
8947
|
+
* @description Deprecated — read `documents[]`. Link of the newest `proof_of_address` document of the entity itself; null when there is none.
|
|
8948
|
+
*/
|
|
8949
|
+
readonly proof_of_address_url?: string | null;
|
|
8950
|
+
/**
|
|
8951
|
+
* @deprecated
|
|
8952
|
+
* @description Deprecated — read `documents[]`. Link of the newest `formation_doc` document of the entity itself; null when there is none.
|
|
8953
|
+
*/
|
|
8954
|
+
readonly formation_doc_url?: string | null;
|
|
8955
|
+
/**
|
|
8956
|
+
* @deprecated
|
|
8957
|
+
* @description Deprecated — read `documents[]`. Link of the newest `proof_of_ownership` document of the entity itself; null when there is none.
|
|
8958
|
+
*/
|
|
8959
|
+
readonly proof_of_ownership_url?: string | null;
|
|
8960
|
+
/**
|
|
8961
|
+
* @deprecated
|
|
8962
|
+
* @description Deprecated — read `documents[]`. Link of the newest `certificate_of_registration_doc` document of the entity itself; null when there is none.
|
|
8963
|
+
*/
|
|
8964
|
+
readonly certificate_of_registration_doc_url?: string | null;
|
|
8965
|
+
/**
|
|
8966
|
+
* @deprecated
|
|
8967
|
+
* @description Deprecated — read `documents[]`. Link of the newest `business_registration_doc` document of the entity itself; null when there is none.
|
|
8968
|
+
*/
|
|
8969
|
+
readonly business_registration_doc_url?: string | null;
|
|
8970
|
+
/**
|
|
8971
|
+
* @deprecated
|
|
8972
|
+
* @description Deprecated — read `documents[]`. Link of the newest `share_structure` document of the entity itself; null when there is none.
|
|
8973
|
+
*/
|
|
8974
|
+
readonly share_structure_url?: string | null;
|
|
8975
|
+
/**
|
|
8976
|
+
* @deprecated
|
|
8977
|
+
* @description Deprecated — read `documents[]`. Link of the newest `constitution_or_annual_report` document of the entity itself; null when there is none.
|
|
8978
|
+
*/
|
|
8979
|
+
readonly constitution_or_annual_report_url?: string | null;
|
|
8980
|
+
/**
|
|
8981
|
+
* @deprecated
|
|
8982
|
+
* @description Deprecated — read `documents[]`. Link of the newest `articles_of_association` document of the entity itself; null when there is none.
|
|
8983
|
+
*/
|
|
8984
|
+
readonly articles_of_association_url?: string | null;
|
|
8985
|
+
/**
|
|
8986
|
+
* @deprecated
|
|
8987
|
+
* @description Deprecated — read `documents[]`. Link of the newest `ubo_declaration` document of the entity itself; null when there is none.
|
|
8988
|
+
*/
|
|
8989
|
+
readonly ubo_declaration_url?: string | null;
|
|
8990
|
+
/**
|
|
8991
|
+
* @deprecated
|
|
8992
|
+
* @description Deprecated — read `documents[]`. Link of the newest `partnership_mins_of_meeting` document of the entity itself; null when there is none.
|
|
8993
|
+
*/
|
|
8994
|
+
readonly partnership_mins_of_meeting_url?: string | null;
|
|
8995
|
+
/**
|
|
8996
|
+
* @deprecated
|
|
8997
|
+
* @description Deprecated — read `documents[]`. Link of the newest `partnership_deed` document of the entity itself; null when there is none.
|
|
8998
|
+
*/
|
|
8999
|
+
readonly partnership_deed_url?: string | null;
|
|
9000
|
+
/**
|
|
9001
|
+
* @deprecated
|
|
9002
|
+
* @description Deprecated — read `documents[]`. Link of the newest `certificate_of_incumbency` document of the entity itself; null when there is none.
|
|
9003
|
+
*/
|
|
9004
|
+
readonly certificate_of_incumbency_url?: string | null;
|
|
9005
|
+
/**
|
|
9006
|
+
* @deprecated
|
|
9007
|
+
* @description Deprecated — read `documents[]`. Link of the newest `regulatory_license` document of the entity itself; null when there is none.
|
|
9008
|
+
*/
|
|
9009
|
+
readonly regulatory_license_url?: string | null;
|
|
9010
|
+
/**
|
|
9011
|
+
* @deprecated
|
|
9012
|
+
* @description Deprecated — read `documents[]`. Link of the newest `supplementary` document of the entity itself; null when there is none.
|
|
9013
|
+
*/
|
|
9014
|
+
readonly supplementary_url?: string | null;
|
|
8338
9015
|
/** @description Type of proof of address document */
|
|
8339
9016
|
proof_of_address_type?: string | null;
|
|
8340
|
-
/** @description URL to formation document (business) */
|
|
8341
|
-
formation_doc_url?: string | null;
|
|
8342
|
-
/** @description URL to proof of ownership document (business) */
|
|
8343
|
-
proof_of_ownership_url?: string | null;
|
|
8344
9017
|
/** @description Type of certificate of registration */
|
|
8345
9018
|
certificate_of_registration_doc_type?: string | null;
|
|
8346
|
-
/** @description URL to certificate of registration (business) */
|
|
8347
|
-
certificate_of_registration_doc_url?: string | null;
|
|
8348
9019
|
/** @description Certificate number (business) */
|
|
8349
9020
|
certificate_number?: string | null;
|
|
8350
|
-
/** @description URL to business registration document */
|
|
8351
|
-
business_registration_doc_url?: string | null;
|
|
8352
|
-
/** @description URL to share structure document (business) */
|
|
8353
|
-
share_structure_url?: string | null;
|
|
8354
|
-
/** @description URL to constitution or annual report (business) */
|
|
8355
|
-
constitution_or_annual_report_url?: string | null;
|
|
8356
|
-
/** @description URL to articles of association (business) */
|
|
8357
|
-
articles_of_association_url?: string | null;
|
|
8358
|
-
/** @description URL to UBO declaration (business) */
|
|
8359
|
-
ubo_declaration_url?: string | null;
|
|
8360
|
-
/** @description URL to partnership minutes of meeting (business) */
|
|
8361
|
-
partnership_mins_of_meeting_url?: string | null;
|
|
8362
|
-
/** @description URL to partnership deed (business) */
|
|
8363
|
-
partnership_deed_url?: string | null;
|
|
8364
|
-
/** @description URL to certificate of incumbency (business) */
|
|
8365
|
-
certificate_of_incumbency_url?: string | null;
|
|
8366
|
-
/** @description URL to regulatory license (business) */
|
|
8367
|
-
regulatory_license_url?: string | null;
|
|
8368
|
-
/** @description URL to supplementary document */
|
|
8369
|
-
supplementary_url?: string | null;
|
|
8370
9021
|
/** Format: uuid */
|
|
8371
9022
|
kyc_address_id?: string | null;
|
|
8372
9023
|
/** Format: uuid */
|
|
@@ -8666,7 +9317,7 @@ export interface components {
|
|
|
8666
9317
|
note?: string;
|
|
8667
9318
|
/**
|
|
8668
9319
|
* Format: date-time
|
|
8669
|
-
* @description Optional. Schedule the payment for a future time (min 1 hour, max 90 days ahead). No funds are reserved; after approval the order waits in EXPECTED status and executes automatically.
|
|
9320
|
+
* @description Optional. Schedule the payment for a future time (min 1 hour, max 90 days ahead). No funds are reserved; after approval the order waits in EXPECTED status and executes automatically, once: if the balance does not cover it then, it fails with `scheduled_failure.code` INSUFFICIENT_FUNDS and is not retried. Approve at least 1 hour before scheduled_at.
|
|
8670
9321
|
*/
|
|
8671
9322
|
scheduled_at?: string;
|
|
8672
9323
|
};
|
|
@@ -8695,7 +9346,7 @@ export interface components {
|
|
|
8695
9346
|
note?: string;
|
|
8696
9347
|
/**
|
|
8697
9348
|
* Format: date-time
|
|
8698
|
-
* @description Optional. Schedule the payment for a future time (min 1 hour, max 90 days ahead). No funds are reserved; after approval the order waits in EXPECTED status and executes automatically.
|
|
9349
|
+
* @description Optional. Schedule the payment for a future time (min 1 hour, max 90 days ahead). No funds are reserved; after approval the order waits in EXPECTED status and executes automatically, once: if the balance does not cover it then, it fails with `scheduled_failure.code` INSUFFICIENT_FUNDS and is not retried. Approve at least 1 hour before scheduled_at.
|
|
8699
9350
|
*/
|
|
8700
9351
|
scheduled_at?: string;
|
|
8701
9352
|
};
|
|
@@ -8752,6 +9403,16 @@ export interface components {
|
|
|
8752
9403
|
* @description Requested execution time for scheduled payments (status EXPECTED); null for immediate orders
|
|
8753
9404
|
*/
|
|
8754
9405
|
scheduled_at?: string | null;
|
|
9406
|
+
/** @description Why a scheduled payment failed — set on a scheduled order in `FAILED`, null on any other scheduled order, absent on an immediate one. A scheduled payment is attempted once and never retried: `INSUFFICIENT_FUNDS` means nothing was debited and the payment can be created again; `PROVIDER_ERROR` — the payment was debited and the provider side failed; `EXECUTION_ERROR` — any other reason. */
|
|
9407
|
+
scheduled_failure?: {
|
|
9408
|
+
/** @enum {string} */
|
|
9409
|
+
code: "INSUFFICIENT_FUNDS" | "PROVIDER_ERROR" | "EXECUTION_ERROR";
|
|
9410
|
+
/**
|
|
9411
|
+
* @description Customer-facing text of the code.
|
|
9412
|
+
* @example The balance was insufficient at the scheduled time.
|
|
9413
|
+
*/
|
|
9414
|
+
message: string;
|
|
9415
|
+
} | null;
|
|
8755
9416
|
/** Format: date-time */
|
|
8756
9417
|
created_at?: string;
|
|
8757
9418
|
/** Format: date-time */
|