squarefi-bff-api-module 1.36.101 → 1.36.103
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/types/autogen/apiV1External.types.d.ts +4 -2
- package/dist/api/types/autogen/apiV1Frontend.types.d.ts +262 -49
- package/dist/api/types/autogen/apiV1Legacy.types.d.ts +1 -1
- package/dist/api/types/autogen/apiV1Tenant.types.d.ts +1 -1
- package/dist/api/types/autogen/apiV2.types.d.ts +17 -0
- package/dist/api/types/types.d.ts +30 -1
- package/package.json +1 -1
|
@@ -7518,7 +7518,7 @@ export interface components {
|
|
|
7518
7518
|
* @example EXCHANGE_OMNI
|
|
7519
7519
|
* @enum {string}
|
|
7520
7520
|
*/
|
|
7521
|
-
OrderTypeId: "EXCHANGE_OMNI" | "EXCHANGE_OMNI_ONRAMP" | "EXCHANGE_OMNI_OFFRAMP" | "EXCHANGE_OMNI_CRYPTO" | "EXCHANGE_CRYPTO_INTERNAL" | "L2F_ACH_ONRAMP" | "L2F_ACH_OFFRAMP" | "L2F_SEPA_ONRAMP" | "L2F_SEPA_OFFRAMP" | "L2F_SWIFT_ONRAMP" | "L2F_SWIFT_OFFRAMP" | "L2F_WIRE_ONRAMP" | "L2F_WIRE_OFFRAMP" | "L2F_CHAPS_ONRAMP" | "L2F_CHAPS_OFFRAMP" | "L2F_FPS_ONRAMP" | "L2F_FPS_OFFRAMP" | "BRL_WIRE_ONRAMP" | "BRL_WIRE_OFFRAMP" | "BRL_ACH_ONRAMP" | "BRL_ACH_OFFRAMP" | "BRL_FEDNOW_ONRAMP" | "BRL_RTP_OFFRAMP" | "DLS_WIRE_ONRAMP" | "DLS_WIRE_OFFRAMP" | "DLS_ACH_ONRAMP" | "DLS_ACH_OFFRAMP" | "DLS_SEPA_ONRAMP" | "DLS_SEPA_OFFRAMP" | "DLS_SWIFT_ONRAMP" | "DLS_SWIFT_OFFRAMP" | "BC1_SEPA_ONRAMP" | "BC1_SEPA_OFFRAMP" | "BC1_SWIFT_ONRAMP" | "BC1_SWIFT_OFFRAMP" | "BC3_SEPA_ONRAMP" | "BC3_SEPA_OFFRAMP" | "RPP_SWIFT_OFFRAMP" | "RPP_SEPA_OFFRAMP" | "RPP_FPS_OFFRAMP" | "RPP_ACH_OFFRAMP" | "OMNIBUS_CRYPTO_TRANSFER" | "OMNIBUS_CRYPTO_WITHDRAWAL" | "OMNIBUS_INTERNAL_TRANSFER" | "SEGREGATED_CRYPTO_TRANSFER" | "TRANSFER_INTERNAL" | "TRANSFER_CARD_PREPAID" | "TRANSFER_CARD_SUBACCOUNT" | "TRANSFER_CARD_WHOLESALE" | "WITHDRAW_CARD_PREPAID" | "WITHDRAW_CARD_SUBACCOUNT" | "REFUND_CARD_PREPAID" | "REFUND_CARD_SUBACCOUNT" | "RN_CARDS_OFFRAMP" | "CARD_ISSUING_FEE" | "MONTHLY_FEE" | "REFERRAL_PAYOUT";
|
|
7521
|
+
OrderTypeId: "EXCHANGE_OMNI" | "EXCHANGE_OMNI_ONRAMP" | "EXCHANGE_OMNI_OFFRAMP" | "EXCHANGE_OMNI_CRYPTO" | "EXCHANGE_CRYPTO_INTERNAL" | "L2F_ACH_ONRAMP" | "L2F_ACH_OFFRAMP" | "L2F_SEPA_ONRAMP" | "L2F_SEPA_OFFRAMP" | "L2F_SWIFT_ONRAMP" | "L2F_SWIFT_OFFRAMP" | "L2F_WIRE_ONRAMP" | "L2F_WIRE_OFFRAMP" | "L2F_CHAPS_ONRAMP" | "L2F_CHAPS_OFFRAMP" | "L2F_FPS_ONRAMP" | "L2F_FPS_OFFRAMP" | "BRL_WIRE_ONRAMP" | "BRL_WIRE_OFFRAMP" | "BRL_ACH_ONRAMP" | "BRL_ACH_OFFRAMP" | "BRL_FEDNOW_ONRAMP" | "BRL_RTP_OFFRAMP" | "DLS_WIRE_ONRAMP" | "DLS_WIRE_OFFRAMP" | "DLS_ACH_ONRAMP" | "DLS_ACH_OFFRAMP" | "DLS_SEPA_ONRAMP" | "DLS_SEPA_OFFRAMP" | "DLS_SWIFT_ONRAMP" | "DLS_SWIFT_OFFRAMP" | "BC1_SEPA_ONRAMP" | "BC1_SEPA_OFFRAMP" | "BC1_SWIFT_ONRAMP" | "BC1_SWIFT_OFFRAMP" | "BC3_SEPA_ONRAMP" | "BC3_SEPA_OFFRAMP" | "BC3_SWIFT_ONRAMP" | "BC3_SWIFT_OFFRAMP" | "RPP_SWIFT_OFFRAMP" | "RPP_SEPA_OFFRAMP" | "RPP_FPS_OFFRAMP" | "RPP_ACH_OFFRAMP" | "OMNIBUS_CRYPTO_TRANSFER" | "OMNIBUS_CRYPTO_WITHDRAWAL" | "OMNIBUS_INTERNAL_TRANSFER" | "SEGREGATED_CRYPTO_TRANSFER" | "TRANSFER_INTERNAL" | "TRANSFER_CARD_PREPAID" | "TRANSFER_CARD_SUBACCOUNT" | "TRANSFER_CARD_WHOLESALE" | "WITHDRAW_CARD_PREPAID" | "WITHDRAW_CARD_SUBACCOUNT" | "REFUND_CARD_PREPAID" | "REFUND_CARD_SUBACCOUNT" | "RN_CARDS_OFFRAMP" | "CARD_ISSUING_FEE" | "MONTHLY_FEE" | "REFERRAL_PAYOUT";
|
|
7522
7522
|
OrderCalculation: {
|
|
7523
7523
|
/**
|
|
7524
7524
|
* Format: uuid
|
|
@@ -8708,7 +8708,7 @@ export interface components {
|
|
|
8708
8708
|
info?: string | null;
|
|
8709
8709
|
balance_before?: number | null;
|
|
8710
8710
|
balance_after?: number | null;
|
|
8711
|
-
/** @description Transaction metadata */
|
|
8711
|
+
/** @description Transaction metadata. The `FEE` row of an AML check carries `screened_address`. The `REFUND` row of that fee does not: follow its `order_uuid` to the `AML_CHECK` order. */
|
|
8712
8712
|
meta?: Record<string, never> | null;
|
|
8713
8713
|
currency?: components["schemas"]["CurrencyRef"];
|
|
8714
8714
|
};
|
|
@@ -8739,6 +8739,8 @@ export interface components {
|
|
|
8739
8739
|
from_address?: string | null;
|
|
8740
8740
|
to_address?: string | null;
|
|
8741
8741
|
to_crypto_address?: string | null;
|
|
8742
|
+
/** @description The screened address (`AML_CHECK` orders only) */
|
|
8743
|
+
screened_address?: string | null;
|
|
8742
8744
|
txid?: string | null;
|
|
8743
8745
|
transaction_hash?: string | null;
|
|
8744
8746
|
/** Format: uuid */
|
|
@@ -966,7 +966,80 @@ export interface paths {
|
|
|
966
966
|
path?: never;
|
|
967
967
|
cookie?: never;
|
|
968
968
|
};
|
|
969
|
-
|
|
969
|
+
/**
|
|
970
|
+
* List the wallet's screenings, newest first
|
|
971
|
+
* @description Every screening of the wallet whose fee was charged, whoever in the
|
|
972
|
+
* wallet ran it: running, completed and failed ones. Any member of the
|
|
973
|
+
* wallet can read it. A request refused
|
|
974
|
+
* before the charge (for example `INSUFFICIENT_FUNDS`) is not listed.
|
|
975
|
+
* `report_available` says whether the report can be downloaded.
|
|
976
|
+
*
|
|
977
|
+
*/
|
|
978
|
+
get: {
|
|
979
|
+
parameters: {
|
|
980
|
+
query?: {
|
|
981
|
+
/** @description Number of screenings to skip */
|
|
982
|
+
offset?: number;
|
|
983
|
+
/** @description Page size */
|
|
984
|
+
limit?: number;
|
|
985
|
+
/** @description Only screenings whose address contains this value, in any case. A whole address finds that address, a part of one works as a search */
|
|
986
|
+
address?: string;
|
|
987
|
+
/** @description Only screenings on this network — `asset.chain_id` of a screening, `id` in `GET /frontend/reference/chains` */
|
|
988
|
+
chain_id?: number;
|
|
989
|
+
};
|
|
990
|
+
header?: never;
|
|
991
|
+
path: {
|
|
992
|
+
/** @description Wallet the screening belongs to (and is paid from) */
|
|
993
|
+
wallet_id: components["parameters"]["AmlWalletId"];
|
|
994
|
+
};
|
|
995
|
+
cookie?: never;
|
|
996
|
+
};
|
|
997
|
+
requestBody?: never;
|
|
998
|
+
responses: {
|
|
999
|
+
/** @description A page of screenings */
|
|
1000
|
+
200: {
|
|
1001
|
+
headers: {
|
|
1002
|
+
[name: string]: unknown;
|
|
1003
|
+
};
|
|
1004
|
+
content: {
|
|
1005
|
+
"application/json": {
|
|
1006
|
+
/** @example true */
|
|
1007
|
+
success: boolean;
|
|
1008
|
+
data: components["schemas"]["AmlScreening"][];
|
|
1009
|
+
pagination: components["schemas"]["PaginationResponse"];
|
|
1010
|
+
};
|
|
1011
|
+
};
|
|
1012
|
+
};
|
|
1013
|
+
/** @description Validation error (`offset`, `limit`, `address`, `chain_id`; `VALIDATION_ERROR`, `details.issues[].field`) */
|
|
1014
|
+
400: {
|
|
1015
|
+
headers: {
|
|
1016
|
+
[name: string]: unknown;
|
|
1017
|
+
};
|
|
1018
|
+
content: {
|
|
1019
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1020
|
+
};
|
|
1021
|
+
};
|
|
1022
|
+
401: components["responses"]["UnauthorizedError"];
|
|
1023
|
+
/** @description Feature not enabled for the tenant (AML_CHECK_NOT_ENABLED), no access to the wallet (ACCESS_DENIED) or the wallet's KYC is not approved (KYC_REQUIREMENTS_NOT_MET; a wallet on hold can still read) */
|
|
1024
|
+
403: {
|
|
1025
|
+
headers: {
|
|
1026
|
+
[name: string]: unknown;
|
|
1027
|
+
};
|
|
1028
|
+
content: {
|
|
1029
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1030
|
+
};
|
|
1031
|
+
};
|
|
1032
|
+
/** @description Too many requests (RATE_LIMIT_EXCEEDED) */
|
|
1033
|
+
429: {
|
|
1034
|
+
headers: {
|
|
1035
|
+
[name: string]: unknown;
|
|
1036
|
+
};
|
|
1037
|
+
content: {
|
|
1038
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1039
|
+
};
|
|
1040
|
+
};
|
|
1041
|
+
};
|
|
1042
|
+
};
|
|
970
1043
|
put?: never;
|
|
971
1044
|
/**
|
|
972
1045
|
* Pay for and start an AML screening of a crypto address
|
|
@@ -978,6 +1051,12 @@ export interface paths {
|
|
|
978
1051
|
* `GET /frontend/aml/{wallet_id}/screenings/{id}` for the verdict
|
|
979
1052
|
* (`COMPLETED` or `FAILED`). A failed screening refunds the fee in full.
|
|
980
1053
|
*
|
|
1054
|
+
* An address that does not fit the network of `currency_id` answers
|
|
1055
|
+
* `400 VALIDATION_ERROR` (`details.issues[].field: address`) and charges
|
|
1056
|
+
* nothing. Networks of one family share a format: an Ethereum address
|
|
1057
|
+
* passes on BSC. A network whose format cannot be checked is not
|
|
1058
|
+
* validated here.
|
|
1059
|
+
*
|
|
981
1060
|
* Send an `Idempotency-Key` header to make a retry return the screening
|
|
982
1061
|
* the first call created instead of charging again.
|
|
983
1062
|
*
|
|
@@ -1004,7 +1083,10 @@ export interface paths {
|
|
|
1004
1083
|
requestBody: {
|
|
1005
1084
|
content: {
|
|
1006
1085
|
"application/json": {
|
|
1007
|
-
/**
|
|
1086
|
+
/**
|
|
1087
|
+
* @description Must fit the network of `currency_id`
|
|
1088
|
+
* @example TAX544wj9oDmAqWLzuAnYLU9GfS8XncsJ9
|
|
1089
|
+
*/
|
|
1008
1090
|
address: string;
|
|
1009
1091
|
/**
|
|
1010
1092
|
* Format: uuid
|
|
@@ -1033,7 +1115,7 @@ export interface paths {
|
|
|
1033
1115
|
};
|
|
1034
1116
|
};
|
|
1035
1117
|
};
|
|
1036
|
-
/** @description Validation error, unsupported asset (AML_ASSET_NOT_SUPPORTED), insufficient funds (INSUFFICIENT_FUNDS) or a fee that cannot be priced (AML_FEE_NOT_PRICEABLE) */
|
|
1118
|
+
/** @description Validation error (an address that does not fit the network of `currency_id` included), unsupported asset (AML_ASSET_NOT_SUPPORTED), insufficient funds (INSUFFICIENT_FUNDS) or a fee that cannot be priced (AML_FEE_NOT_PRICEABLE) */
|
|
1037
1119
|
400: {
|
|
1038
1120
|
headers: {
|
|
1039
1121
|
[name: string]: unknown;
|
|
@@ -1111,6 +1193,15 @@ export interface paths {
|
|
|
1111
1193
|
};
|
|
1112
1194
|
};
|
|
1113
1195
|
};
|
|
1196
|
+
/** @description Feature not enabled for the tenant (AML_CHECK_NOT_ENABLED) or no access to the wallet */
|
|
1197
|
+
403: {
|
|
1198
|
+
headers: {
|
|
1199
|
+
[name: string]: unknown;
|
|
1200
|
+
};
|
|
1201
|
+
content: {
|
|
1202
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1203
|
+
};
|
|
1204
|
+
};
|
|
1114
1205
|
/** @description Not found in this wallet (SCREENING_NOT_FOUND) */
|
|
1115
1206
|
404: {
|
|
1116
1207
|
headers: {
|
|
@@ -1176,6 +1267,15 @@ export interface paths {
|
|
|
1176
1267
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
1177
1268
|
};
|
|
1178
1269
|
};
|
|
1270
|
+
/** @description Feature not enabled for the tenant (AML_CHECK_NOT_ENABLED) or no access to the wallet */
|
|
1271
|
+
403: {
|
|
1272
|
+
headers: {
|
|
1273
|
+
[name: string]: unknown;
|
|
1274
|
+
};
|
|
1275
|
+
content: {
|
|
1276
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1277
|
+
};
|
|
1278
|
+
};
|
|
1179
1279
|
/** @description Not found in this wallet (SCREENING_NOT_FOUND) */
|
|
1180
1280
|
404: {
|
|
1181
1281
|
headers: {
|
|
@@ -6045,6 +6145,12 @@ export interface paths {
|
|
|
6045
6145
|
* document photos call `POST /cardholders` with the member's `user_data_id` — it answers
|
|
6046
6146
|
* `409` with this `cardholder_id` after completing the row from the member's KYC
|
|
6047
6147
|
* dossier. When the member has not passed that verification, run it first.
|
|
6148
|
+
* - `NEEDS_CARD_FORM` — KYC forms flow only: required fields of the program's card form are
|
|
6149
|
+
* still empty. Only the member fills that form in their personal KYC entity; the create is
|
|
6150
|
+
* refused until they do (`400 CARD_REQUIREMENTS_INCOMPLETE`, or `400 KYC_PERSONAL_ENTITY_MISSING`
|
|
6151
|
+
* for a member with no personal entity), and fields in the request body do not help.
|
|
6152
|
+
* `will_require` names what the member has left: tell them to fill the card form, do not
|
|
6153
|
+
* ask the caller for these fields.
|
|
6048
6154
|
* - `NEEDS_RESUBMIT` — the VENDOR's review of the cardholder came back rejected (or asked
|
|
6049
6155
|
* for part of the dossier again). Not a dead end: fix what `reject_reason` names —
|
|
6050
6156
|
* `PATCH` the field, or re-upload and re-attach the document — then call
|
|
@@ -6065,22 +6171,25 @@ export interface paths {
|
|
|
6065
6171
|
* - `NOT_MEMBER` — the uuid is not an active member of this wallet.
|
|
6066
6172
|
*
|
|
6067
6173
|
* **On a tenant of the KYC forms flow** (SFI-2544) the verdict comes from the member's personal
|
|
6068
|
-
* KYC entity and the program's card form, not from the profile statuses: `CAN_CREATE`
|
|
6069
|
-
*
|
|
6070
|
-
*
|
|
6071
|
-
*
|
|
6072
|
-
*
|
|
6073
|
-
*
|
|
6074
|
-
*
|
|
6174
|
+
* KYC entity and the program's card form, not from the profile statuses: `CAN_CREATE` when the
|
|
6175
|
+
* form is complete, with nothing in `will_require`; `NEEDS_CARD_FORM` with `will_require` = the
|
|
6176
|
+
* required fields of the card form still empty in the entity (catalog keys such as `first_name`,
|
|
6177
|
+
* `email`, `phone`), `NEEDS_VERIFICATION` while the level needs the identity check and it is not
|
|
6178
|
+
* started or has to be redone, `REJECTED` for an application refused for good, `PENDING` while that
|
|
6179
|
+
* check is under review at the identity provider (nothing to do but wait; the create is refused until it passes),
|
|
6180
|
+
* while compliance untangles several personal entities of the member or while every required
|
|
6181
|
+
* field is answered but some wait in a submission under review. A member without a personal entity is
|
|
6182
|
+
* `NEEDS_CARD_FORM` with every required field of the form in `will_require` — or
|
|
6183
|
+
* `NEEDS_VERIFICATION` when the level needs the identity check, which such a member has not passed.
|
|
6075
6184
|
*
|
|
6076
6185
|
* **`will_require`**: fields the client should expect to collect BY HAND (same vocabulary
|
|
6077
6186
|
* as the submit 400 `missing` list, e.g. `address.line1`, `tax_identification_number`,
|
|
6078
6187
|
* `email or phone`). For `DRAFT` it is the draft's actual leftovers; for `NEEDS_COMPLETION`
|
|
6079
6188
|
* it is what the card create refuses the row over; for `CAN_CREATE` it
|
|
6080
6189
|
* is a projection that assumes the KYC dossier covers what it usually covers — the created
|
|
6081
|
-
* draft's `missing_kyc_fields` is the authoritative version.
|
|
6082
|
-
* contacts, so a `CAN_CREATE` member without a valid `email` or `phone`
|
|
6083
|
-
* always gets that field listed: send it in the create body.
|
|
6190
|
+
* draft's `missing_kyc_fields` is the authoritative version. Outside the KYC forms flow the
|
|
6191
|
+
* dossier never carries contacts, so a `CAN_CREATE` member without a valid `email` or `phone`
|
|
6192
|
+
* on their profile always gets that field listed: send it in the create body.
|
|
6084
6193
|
*
|
|
6085
6194
|
* **Authentication**: Bearer token with x-tenant-id header; wallet ADMIN role required.
|
|
6086
6195
|
*
|
|
@@ -6124,7 +6233,7 @@ export interface paths {
|
|
|
6124
6233
|
/** Format: uuid */
|
|
6125
6234
|
user_data_id: string;
|
|
6126
6235
|
/** @enum {string} */
|
|
6127
|
-
verdict: "READY" | "DRAFT" | "CAN_CREATE" | "PENDING" | "NEEDS_VERIFICATION" | "NEEDS_VERIFICATION_UPGRADE" | "NEEDS_COMPLETION" | "NEEDS_RESUBMIT" | "ISSUER_REVIEW_PENDING" | "REJECTED" | "NOT_MEMBER";
|
|
6236
|
+
verdict: "READY" | "DRAFT" | "CAN_CREATE" | "PENDING" | "NEEDS_VERIFICATION" | "NEEDS_VERIFICATION_UPGRADE" | "NEEDS_COMPLETION" | "NEEDS_CARD_FORM" | "NEEDS_RESUBMIT" | "ISSUER_REVIEW_PENDING" | "REJECTED" | "NOT_MEMBER";
|
|
6128
6237
|
/**
|
|
6129
6238
|
* Format: uuid
|
|
6130
6239
|
* @description The linked cardholder for READY / DRAFT / NEEDS_COMPLETION / NEEDS_RESUBMIT / ISSUER_REVIEW_PENDING verdicts
|
|
@@ -6151,34 +6260,51 @@ export interface paths {
|
|
|
6151
6260
|
};
|
|
6152
6261
|
};
|
|
6153
6262
|
};
|
|
6154
|
-
/** @description
|
|
6263
|
+
/** @description `INVALID_REQUEST` — missing program, empty/oversized/malformed id list, or the program is not available for the caller's user group — the same "This program is not available for your user group" failure cardholder creation gives.
|
|
6155
6264
|
* */
|
|
6156
6265
|
400: {
|
|
6157
6266
|
headers: {
|
|
6158
6267
|
[name: string]: unknown;
|
|
6159
6268
|
};
|
|
6160
|
-
content
|
|
6269
|
+
content: {
|
|
6270
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6271
|
+
};
|
|
6272
|
+
};
|
|
6273
|
+
/** @description `UNAUTHORIZED` — missing or invalid Bearer token, `x-tenant-id` or session */
|
|
6274
|
+
401: {
|
|
6275
|
+
headers: {
|
|
6276
|
+
[name: string]: unknown;
|
|
6277
|
+
};
|
|
6278
|
+
content: {
|
|
6279
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6280
|
+
};
|
|
6161
6281
|
};
|
|
6162
6282
|
/** @description Access denied to this wallet */
|
|
6163
6283
|
403: {
|
|
6164
6284
|
headers: {
|
|
6165
6285
|
[name: string]: unknown;
|
|
6166
6286
|
};
|
|
6167
|
-
content
|
|
6287
|
+
content: {
|
|
6288
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6289
|
+
};
|
|
6168
6290
|
};
|
|
6169
6291
|
/** @description Issuing program not found */
|
|
6170
6292
|
404: {
|
|
6171
6293
|
headers: {
|
|
6172
6294
|
[name: string]: unknown;
|
|
6173
6295
|
};
|
|
6174
|
-
content
|
|
6296
|
+
content: {
|
|
6297
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6298
|
+
};
|
|
6175
6299
|
};
|
|
6176
6300
|
/** @description Server error */
|
|
6177
6301
|
500: {
|
|
6178
6302
|
headers: {
|
|
6179
6303
|
[name: string]: unknown;
|
|
6180
6304
|
};
|
|
6181
|
-
content
|
|
6305
|
+
content: {
|
|
6306
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6307
|
+
};
|
|
6182
6308
|
};
|
|
6183
6309
|
};
|
|
6184
6310
|
};
|
|
@@ -10632,7 +10758,14 @@ export interface paths {
|
|
|
10632
10758
|
headers: {
|
|
10633
10759
|
[name: string]: unknown;
|
|
10634
10760
|
};
|
|
10635
|
-
content
|
|
10761
|
+
content: {
|
|
10762
|
+
"application/json": {
|
|
10763
|
+
/** @example true */
|
|
10764
|
+
success: boolean;
|
|
10765
|
+
data: components["schemas"]["ReferenceCurrency"][];
|
|
10766
|
+
pagination: components["schemas"]["PaginationResponse"];
|
|
10767
|
+
};
|
|
10768
|
+
};
|
|
10636
10769
|
};
|
|
10637
10770
|
401: components["responses"]["UnauthorizedError"];
|
|
10638
10771
|
};
|
|
@@ -11986,6 +12119,8 @@ export interface paths {
|
|
|
11986
12119
|
/**
|
|
11987
12120
|
* Get a compliance request with its conversation and covered transactions
|
|
11988
12121
|
* @description The conversation holds compliance's questions and the client's answers, oldest first.
|
|
12122
|
+
* The `body` of a compliance message is safe inline HTML, so a link can be a hyperlink; the
|
|
12123
|
+
* `body` of the client's own answer is plain text. `author` tells them apart.
|
|
11989
12124
|
* A request of another account answers 404, and so does every request of a workspace
|
|
11990
12125
|
* that still works RFI by email. Works at any KYC status of the account.
|
|
11991
12126
|
*
|
|
@@ -12101,7 +12236,7 @@ export interface paths {
|
|
|
12101
12236
|
};
|
|
12102
12237
|
};
|
|
12103
12238
|
responses: {
|
|
12104
|
-
/** @description The message as stored */
|
|
12239
|
+
/** @description The message as stored. It is the client's own answer, so `body` is the text as sent, not HTML. */
|
|
12105
12240
|
201: {
|
|
12106
12241
|
headers: {
|
|
12107
12242
|
[name: string]: unknown;
|
|
@@ -13098,8 +13233,11 @@ export interface paths {
|
|
|
13098
13233
|
*
|
|
13099
13234
|
* The selection cannot outlive the access it rides on: the flag sits on
|
|
13100
13235
|
* the membership row, so revoking membership drops it. A deleted wallet,
|
|
13101
|
-
* a deactivated membership or a wallet
|
|
13102
|
-
*
|
|
13236
|
+
* a deactivated membership or a wallet closed for its members falls back
|
|
13237
|
+
* to the default. A shared wallet is closed when its owner deleted their
|
|
13238
|
+
* account or, on a KYC-enabled tenant, when its KYC status is `OFFBOARDED`.
|
|
13239
|
+
* Any other KYC status can be the active wallet: read it from `kyc_info.status`,
|
|
13240
|
+
* the KYC-gated endpoints answer `403 KYC_REQUIREMENTS_NOT_MET` until it opens.
|
|
13103
13241
|
*
|
|
13104
13242
|
* **Authentication**: Bearer token with x-tenant-id header required
|
|
13105
13243
|
*
|
|
@@ -13143,7 +13281,8 @@ export interface paths {
|
|
|
13143
13281
|
* Any wallet the caller is an **active member** of may be selected —
|
|
13144
13282
|
* ownership is not required. A wallet whose owner has deleted their
|
|
13145
13283
|
* account cannot be selected: the request answers `403`, the same as
|
|
13146
|
-
* every other endpoint of that wallet.
|
|
13284
|
+
* every other endpoint of that wallet. On a KYC-enabled tenant a member
|
|
13285
|
+
* cannot select a wallet whose KYC status is `OFFBOARDED` either: `403`.
|
|
13147
13286
|
*
|
|
13148
13287
|
* **Authentication**: Bearer token with x-tenant-id header required
|
|
13149
13288
|
*
|
|
@@ -13195,8 +13334,9 @@ export interface paths {
|
|
|
13195
13334
|
};
|
|
13196
13335
|
401: components["responses"]["UnauthorizedError"];
|
|
13197
13336
|
/** @description `ACCESS_DENIED` (`You do not have access to this wallet`) — the caller is not an active
|
|
13198
|
-
* member of the wallet, or the wallet is closed
|
|
13199
|
-
*
|
|
13337
|
+
* member of the wallet, or the wallet is closed for its members: its owner deleted their account
|
|
13338
|
+
* or, on a KYC-enabled tenant, its KYC status is `OFFBOARDED` (the owner can still select it).
|
|
13339
|
+
* The answer is the same in every case and does not reveal why. The stored selection is not changed.
|
|
13200
13340
|
* */
|
|
13201
13341
|
403: {
|
|
13202
13342
|
headers: {
|
|
@@ -13517,6 +13657,10 @@ export interface paths {
|
|
|
13517
13657
|
*
|
|
13518
13658
|
* A wallet whose owner has deleted their account is closed for every member and is not listed.
|
|
13519
13659
|
*
|
|
13660
|
+
* On a KYC-enabled tenant a shared wallet is listed whatever its KYC status, except `OFFBOARDED`:
|
|
13661
|
+
* that wallet is closed for its members and is listed only for its owner. Read the status from
|
|
13662
|
+
* `kyc_info.status`; the KYC-gated endpoints answer `403 KYC_REQUIREMENTS_NOT_MET` until it opens.
|
|
13663
|
+
*
|
|
13520
13664
|
* **Authentication**: Bearer token with x-tenant-id header required
|
|
13521
13665
|
*
|
|
13522
13666
|
*/
|
|
@@ -13992,12 +14136,17 @@ export interface paths {
|
|
|
13992
14136
|
};
|
|
13993
14137
|
};
|
|
13994
14138
|
};
|
|
13995
|
-
/** @description Access denied to this wallet
|
|
14139
|
+
/** @description `ACCESS_DENIED` (`Access denied to this wallet`) — the caller is not an active member of the wallet.
|
|
14140
|
+
* On a KYC-enabled tenant the same answer is given to a member (not the owner) of a wallet whose KYC
|
|
14141
|
+
* status is `OFFBOARDED`; it does not reveal why. The owner is not refused by this check.
|
|
14142
|
+
* */
|
|
13996
14143
|
403: {
|
|
13997
14144
|
headers: {
|
|
13998
14145
|
[name: string]: unknown;
|
|
13999
14146
|
};
|
|
14000
|
-
content
|
|
14147
|
+
content: {
|
|
14148
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
14149
|
+
};
|
|
14001
14150
|
};
|
|
14002
14151
|
/** @description Wallet not found */
|
|
14003
14152
|
404: {
|
|
@@ -15146,12 +15295,17 @@ export interface paths {
|
|
|
15146
15295
|
};
|
|
15147
15296
|
};
|
|
15148
15297
|
};
|
|
15149
|
-
/** @description Access denied to this wallet
|
|
15298
|
+
/** @description `ACCESS_DENIED` (`Access denied to this wallet`) — the caller is not an active member of the wallet, or the caller is a scoped `user` member (this endpoint is closed to that role).
|
|
15299
|
+
* On a KYC-enabled tenant the same answer is given to a member (not the owner) of a wallet whose KYC
|
|
15300
|
+
* status is `OFFBOARDED`; it does not reveal why. The owner is not refused by this check.
|
|
15301
|
+
* */
|
|
15150
15302
|
403: {
|
|
15151
15303
|
headers: {
|
|
15152
15304
|
[name: string]: unknown;
|
|
15153
15305
|
};
|
|
15154
|
-
content
|
|
15306
|
+
content: {
|
|
15307
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
15308
|
+
};
|
|
15155
15309
|
};
|
|
15156
15310
|
/** @description Wallet not found */
|
|
15157
15311
|
404: {
|
|
@@ -16655,7 +16809,7 @@ export interface paths {
|
|
|
16655
16809
|
get?: never;
|
|
16656
16810
|
/**
|
|
16657
16811
|
* Save the draft of a form
|
|
16658
|
-
* @description The form is the one `rails` and `programs` name, as for `GET …/forms`. Replaces the draft as a whole with the given values of open fields; the files of the draft stay, and so do those of a `returned` last submission (they carry over into the draft, those removed excepted). Types are checked, rules and requiredness are not — except that owner shares over 100% in total, a value whose condition reads an empty required source, and a change to a saved owner the form does not allow (left out of the list, its value cleared, or changed outside a `returned` form) are refused here too, as on the submission: the draft is not saved. Nothing is written to the KYC entity. The first draft of a business form moves the application to `PENDING`. The entity's owner, or an owner or admin of a linked wallet.
|
|
16812
|
+
* @description The form is the one `rails` and `programs` name, as for `GET …/forms`. Replaces the draft as a whole with the given values of open fields; the files of the draft stay, and so do those of a `returned` last submission (they carry over into the draft, those removed excepted). Types are checked, rules and requiredness are not — except that an option chosen together with another one while it excludes the others (`options[].exclusive` of a `multi_enum` field), owner shares over 100% in total, a value whose condition reads an empty required source, and a change to a saved owner the form does not allow (left out of the list, its value cleared, or changed outside a `returned` form) are refused here too, as on the submission: the draft is not saved. Nothing is written to the KYC entity. The first draft of a business form moves the application to `PENDING`. One change to a form at a time — a draft save, an upload, a removal or the submission: another one sent meanwhile, from any tab or member, answers `409 OPERATION_IN_PROGRESS` and changes nothing; send the changes of one form one after another. The entity's owner, or an owner or admin of a linked wallet.
|
|
16659
16813
|
*/
|
|
16660
16814
|
put: {
|
|
16661
16815
|
parameters: {
|
|
@@ -16706,7 +16860,7 @@ export interface paths {
|
|
|
16706
16860
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
16707
16861
|
};
|
|
16708
16862
|
};
|
|
16709
|
-
/** @description `FORM_LOCKED` — the form is read-only by the application status, or its last submission waits on the verification or the review; `FORM_OUTDATED` — `schema_version` is not the one the form has now, reload it (`GET …/forms`) and send again; `KYC_FORM_CONDITIONS_CYCLE` — the tenant's form settings show fields on conditions that read each other in a circle */
|
|
16863
|
+
/** @description `FORM_LOCKED` — the form is read-only by the application status, or its last submission waits on the verification or the review; `FORM_OUTDATED` — `schema_version` is not the one the form has now, reload it (`GET …/forms`) and send again; `OPERATION_IN_PROGRESS` — another change to this form (a draft save, an upload, a removal, the submission) is running: nothing was changed, try again once it answers; `KYC_FORM_CONDITIONS_CYCLE` — the tenant's form settings show fields on conditions that read each other in a circle */
|
|
16710
16864
|
409: {
|
|
16711
16865
|
headers: {
|
|
16712
16866
|
[name: string]: unknown;
|
|
@@ -16715,6 +16869,7 @@ export interface paths {
|
|
|
16715
16869
|
"application/json": components["schemas"]["KycFormsErrorResponse"];
|
|
16716
16870
|
};
|
|
16717
16871
|
};
|
|
16872
|
+
503: components["responses"]["KycFormsLockUnavailable"];
|
|
16718
16873
|
};
|
|
16719
16874
|
};
|
|
16720
16875
|
post?: never;
|
|
@@ -16735,7 +16890,7 @@ export interface paths {
|
|
|
16735
16890
|
put?: never;
|
|
16736
16891
|
/**
|
|
16737
16892
|
* Upload a file into a file field of a form
|
|
16738
|
-
* @description The form is the one `rails` and `programs` name. Multipart: `field` (the key of an open file field: shown, not locked) and `file`. PDF, JPEG or PNG up to 20 MB, told by the bytes — a renamed file is refused with `DOCUMENT_REJECTED`; a field whose `file.accept` lists only images (the photos of the identity document, `gov_id_front` / `gov_id_back`) refuses a PDF the same way. A field that takes no files now — unknown, not a file field, locked (a form read-only by the application status locks every field), or hidden by its condition — is refused with `FORM_FIELD_NOT_ALLOWED`, whatever the file. The file stays in the draft until the submission is applied; a file of a field hidden by its condition stays in the draft's storage (removable by its `id`), is not listed in the form's `values` while hidden, and does not go with the submission. The photos of the identity document go to the identity provider once the submission waits on the verification. On a form whose last submission is `returned` the files of that submission count toward `file.max_files` of the field and carry over into the draft with the new file. The entity's owner, or an owner or admin of a linked wallet.
|
|
16893
|
+
* @description The form is the one `rails` and `programs` name. Multipart: `field` (the key of an open file field: shown, not locked) and `file`. PDF, JPEG or PNG up to 20 MB, told by the bytes — a renamed file is refused with `DOCUMENT_REJECTED`; a field whose `file.accept` lists only images (the photos of the identity document, `gov_id_front` / `gov_id_back`) refuses a PDF the same way. A field that takes no files now — unknown, not a file field, locked (a form read-only by the application status locks every field), or hidden by its condition — is refused with `FORM_FIELD_NOT_ALLOWED`, whatever the file. The file stays in the draft until the submission is applied; a file of a field hidden by its condition stays in the draft's storage (removable by its `id`), is not listed in the form's `values` while hidden, and does not go with the submission. The photos of the identity document go to the identity provider once the submission waits on the verification. On a form whose last submission is `returned` the files of that submission count toward `file.max_files` of the field and carry over into the draft with the new file. One change to a form at a time: an upload sent while another change to the form runs answers `409 OPERATION_IN_PROGRESS` and stores nothing — upload the files of one form one after another. The entity's owner, or an owner or admin of a linked wallet.
|
|
16739
16894
|
*/
|
|
16740
16895
|
post: {
|
|
16741
16896
|
parameters: {
|
|
@@ -16805,7 +16960,7 @@ export interface paths {
|
|
|
16805
16960
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
16806
16961
|
};
|
|
16807
16962
|
};
|
|
16808
|
-
/** @description `FORM_LOCKED` — the last submission of the form waits on the verification or the review (a form read-only by the application status answers `400 FORM_FIELD_NOT_ALLOWED` instead); `KYC_FORM_CONDITIONS_CYCLE` — the tenant's form settings show fields on conditions that read each other in a circle. */
|
|
16963
|
+
/** @description `FORM_LOCKED` — the last submission of the form waits on the verification or the review (a form read-only by the application status answers `400 FORM_FIELD_NOT_ALLOWED` instead); `OPERATION_IN_PROGRESS` — another change to this form (a draft save, an upload, a removal, the submission) is running: nothing was changed, try again once it answers; `KYC_FORM_CONDITIONS_CYCLE` — the tenant's form settings show fields on conditions that read each other in a circle. */
|
|
16809
16964
|
409: {
|
|
16810
16965
|
headers: {
|
|
16811
16966
|
[name: string]: unknown;
|
|
@@ -16814,7 +16969,7 @@ export interface paths {
|
|
|
16814
16969
|
"application/json": components["schemas"]["KycFormsErrorResponse"];
|
|
16815
16970
|
};
|
|
16816
16971
|
};
|
|
16817
|
-
/** @description
|
|
16972
|
+
/** @description `SERVICE_UNAVAILABLE` — file storage is not configured on this server, or the locking service is unavailable */
|
|
16818
16973
|
503: {
|
|
16819
16974
|
headers: {
|
|
16820
16975
|
[name: string]: unknown;
|
|
@@ -16843,7 +16998,7 @@ export interface paths {
|
|
|
16843
16998
|
post?: never;
|
|
16844
16999
|
/**
|
|
16845
17000
|
* Remove a file from the draft of a form
|
|
16846
|
-
* @description The form is the one `rails` and `programs` name. Only a file of the draft (`saved: false`) can be removed — a file of a returned submission is one too: the submission opens as the draft without it, its own record keeps the file; a document already in the KYC entity never is. The entity's owner, or an owner or admin of a linked wallet.
|
|
17001
|
+
* @description The form is the one `rails` and `programs` name. Only a file of the draft (`saved: false`) can be removed — a file of a returned submission is one too: the submission opens as the draft without it, its own record keeps the file; a document already in the KYC entity never is. One change to a form at a time: a removal sent while another change to the form runs (a draft save, an upload, another removal, the submission) answers `409 OPERATION_IN_PROGRESS` and removes nothing — remove the files of one form one after another. The entity's owner, or an owner or admin of a linked wallet.
|
|
16847
17002
|
*/
|
|
16848
17003
|
delete: {
|
|
16849
17004
|
parameters: {
|
|
@@ -16902,7 +17057,16 @@ export interface paths {
|
|
|
16902
17057
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
16903
17058
|
};
|
|
16904
17059
|
};
|
|
16905
|
-
|
|
17060
|
+
/** @description `OPERATION_IN_PROGRESS` — another change to this form (a draft save, an upload, a removal, the submission) is running: nothing was changed, try again once it answers; `KYC_FORM_CONDITIONS_CYCLE` — the tenant's form settings show fields on conditions that read each other in a circle */
|
|
17061
|
+
409: {
|
|
17062
|
+
headers: {
|
|
17063
|
+
[name: string]: unknown;
|
|
17064
|
+
};
|
|
17065
|
+
content: {
|
|
17066
|
+
"application/json": components["schemas"]["KycFormsErrorResponse"];
|
|
17067
|
+
};
|
|
17068
|
+
};
|
|
17069
|
+
503: components["responses"]["KycFormsLockUnavailable"];
|
|
16906
17070
|
};
|
|
16907
17071
|
};
|
|
16908
17072
|
options?: never;
|
|
@@ -16921,7 +17085,7 @@ export interface paths {
|
|
|
16921
17085
|
put?: never;
|
|
16922
17086
|
/**
|
|
16923
17087
|
* Send a form
|
|
16924
|
-
* @description The form is the one `rails` and `programs` name. The full check of every open field (all errors in one `VALIDATION_ERROR`), then a submission: `awaiting_verification` when the identity document and face are still needed, `applied` when every profile of the form writes the answers into the KYC entity at once, `in_review` when compliance decides (any profile of the form in review mode). Answers `200` with the form in its new state. One
|
|
17088
|
+
* @description The form is the one `rails` and `programs` name. The full check of every open field (all errors in one `VALIDATION_ERROR`, an option chosen together with another one that `options[].exclusive` says it excludes included), then a submission: `awaiting_verification` when the identity document and face are still needed, `applied` when every profile of the form writes the answers into the KYC entity at once, `in_review` when compliance decides (any profile of the form in review mode). Answers `200` with the form in its new state. One change to a form at a time: a submission sent while a draft save, an upload, a removal or another submission of the form runs answers `409 OPERATION_IN_PROGRESS` and changes nothing; send it again once the others answer. A rail form does not change the application status; once its submission is approved, the rail is submitted through the wallet's existing `POST /frontend/wallets/{wallet_id}/kyc-rails/{rail_id}`. A card form is `auto` unless a profile of it says otherwise and never changes the application status; once applied, the cardholder is created through `POST /frontend/issuing/cardholders` with `user_data_id`. A multi form moves the application like the base form it includes; once applied, every rail and program of the set is satisfied from the shared data. A `returned` submission sent again keeps its files that were not removed. A saved beneficial owner (an item of `beneficial_owners` with an `id`) is the entity's: a list without one, a changed saved value outside a `returned` form, and a saved value sent empty are refused with `VALIDATION_ERROR`, as in the draft. The entity's owner, or an owner or admin of a linked wallet.
|
|
16925
17089
|
*/
|
|
16926
17090
|
post: {
|
|
16927
17091
|
parameters: {
|
|
@@ -16972,7 +17136,7 @@ export interface paths {
|
|
|
16972
17136
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
16973
17137
|
};
|
|
16974
17138
|
};
|
|
16975
|
-
/** @description `FORM_LOCKED` — the form is read-only by the application status, or its last submission waits on the verification or the review; `FORM_OUTDATED` — `schema_version` is not the one the form has now, reload it (`GET …/forms`) and send again; `OPERATION_IN_PROGRESS` — a submission of this form is
|
|
17139
|
+
/** @description `FORM_LOCKED` — the form is read-only by the application status, or its last submission waits on the verification or the review; `FORM_OUTDATED` — `schema_version` is not the one the form has now, reload it (`GET …/forms`) and send again; `OPERATION_IN_PROGRESS` — a submission of this form, or another change to it (a draft save, an upload, a removal), is running; `KYC_FORM_CONDITIONS_CYCLE` — the tenant's form settings show fields on conditions that read each other in a circle */
|
|
16976
17140
|
409: {
|
|
16977
17141
|
headers: {
|
|
16978
17142
|
[name: string]: unknown;
|
|
@@ -17517,7 +17681,7 @@ export interface components {
|
|
|
17517
17681
|
* @example EXCHANGE_OMNI
|
|
17518
17682
|
* @enum {string}
|
|
17519
17683
|
*/
|
|
17520
|
-
OrderTypeId: "EXCHANGE_OMNI" | "EXCHANGE_OMNI_ONRAMP" | "EXCHANGE_OMNI_OFFRAMP" | "EXCHANGE_OMNI_CRYPTO" | "EXCHANGE_CRYPTO_INTERNAL" | "L2F_ACH_ONRAMP" | "L2F_ACH_OFFRAMP" | "L2F_SEPA_ONRAMP" | "L2F_SEPA_OFFRAMP" | "L2F_SWIFT_ONRAMP" | "L2F_SWIFT_OFFRAMP" | "L2F_WIRE_ONRAMP" | "L2F_WIRE_OFFRAMP" | "L2F_CHAPS_ONRAMP" | "L2F_CHAPS_OFFRAMP" | "L2F_FPS_ONRAMP" | "L2F_FPS_OFFRAMP" | "BRL_WIRE_ONRAMP" | "BRL_WIRE_OFFRAMP" | "BRL_ACH_ONRAMP" | "BRL_ACH_OFFRAMP" | "BRL_FEDNOW_ONRAMP" | "BRL_RTP_OFFRAMP" | "DLS_WIRE_ONRAMP" | "DLS_WIRE_OFFRAMP" | "DLS_ACH_ONRAMP" | "DLS_ACH_OFFRAMP" | "DLS_SEPA_ONRAMP" | "DLS_SEPA_OFFRAMP" | "DLS_SWIFT_ONRAMP" | "DLS_SWIFT_OFFRAMP" | "BC1_SEPA_ONRAMP" | "BC1_SEPA_OFFRAMP" | "BC1_SWIFT_ONRAMP" | "BC1_SWIFT_OFFRAMP" | "BC3_SEPA_ONRAMP" | "BC3_SEPA_OFFRAMP" | "RPP_SWIFT_OFFRAMP" | "RPP_SEPA_OFFRAMP" | "RPP_FPS_OFFRAMP" | "RPP_ACH_OFFRAMP" | "OMNIBUS_CRYPTO_TRANSFER" | "OMNIBUS_CRYPTO_WITHDRAWAL" | "OMNIBUS_INTERNAL_TRANSFER" | "SEGREGATED_CRYPTO_TRANSFER" | "TRANSFER_INTERNAL" | "TRANSFER_CARD_PREPAID" | "TRANSFER_CARD_SUBACCOUNT" | "TRANSFER_CARD_WHOLESALE" | "WITHDRAW_CARD_PREPAID" | "WITHDRAW_CARD_SUBACCOUNT" | "REFUND_CARD_PREPAID" | "REFUND_CARD_SUBACCOUNT" | "RN_CARDS_OFFRAMP" | "CARD_ISSUING_FEE" | "MONTHLY_FEE" | "REFERRAL_PAYOUT";
|
|
17684
|
+
OrderTypeId: "EXCHANGE_OMNI" | "EXCHANGE_OMNI_ONRAMP" | "EXCHANGE_OMNI_OFFRAMP" | "EXCHANGE_OMNI_CRYPTO" | "EXCHANGE_CRYPTO_INTERNAL" | "L2F_ACH_ONRAMP" | "L2F_ACH_OFFRAMP" | "L2F_SEPA_ONRAMP" | "L2F_SEPA_OFFRAMP" | "L2F_SWIFT_ONRAMP" | "L2F_SWIFT_OFFRAMP" | "L2F_WIRE_ONRAMP" | "L2F_WIRE_OFFRAMP" | "L2F_CHAPS_ONRAMP" | "L2F_CHAPS_OFFRAMP" | "L2F_FPS_ONRAMP" | "L2F_FPS_OFFRAMP" | "BRL_WIRE_ONRAMP" | "BRL_WIRE_OFFRAMP" | "BRL_ACH_ONRAMP" | "BRL_ACH_OFFRAMP" | "BRL_FEDNOW_ONRAMP" | "BRL_RTP_OFFRAMP" | "DLS_WIRE_ONRAMP" | "DLS_WIRE_OFFRAMP" | "DLS_ACH_ONRAMP" | "DLS_ACH_OFFRAMP" | "DLS_SEPA_ONRAMP" | "DLS_SEPA_OFFRAMP" | "DLS_SWIFT_ONRAMP" | "DLS_SWIFT_OFFRAMP" | "BC1_SEPA_ONRAMP" | "BC1_SEPA_OFFRAMP" | "BC1_SWIFT_ONRAMP" | "BC1_SWIFT_OFFRAMP" | "BC3_SEPA_ONRAMP" | "BC3_SEPA_OFFRAMP" | "BC3_SWIFT_ONRAMP" | "BC3_SWIFT_OFFRAMP" | "RPP_SWIFT_OFFRAMP" | "RPP_SEPA_OFFRAMP" | "RPP_FPS_OFFRAMP" | "RPP_ACH_OFFRAMP" | "OMNIBUS_CRYPTO_TRANSFER" | "OMNIBUS_CRYPTO_WITHDRAWAL" | "OMNIBUS_INTERNAL_TRANSFER" | "SEGREGATED_CRYPTO_TRANSFER" | "TRANSFER_INTERNAL" | "TRANSFER_CARD_PREPAID" | "TRANSFER_CARD_SUBACCOUNT" | "TRANSFER_CARD_WHOLESALE" | "WITHDRAW_CARD_PREPAID" | "WITHDRAW_CARD_SUBACCOUNT" | "REFUND_CARD_PREPAID" | "REFUND_CARD_SUBACCOUNT" | "RN_CARDS_OFFRAMP" | "CARD_ISSUING_FEE" | "MONTHLY_FEE" | "REFERRAL_PAYOUT";
|
|
17521
17685
|
OrderCalculation: {
|
|
17522
17686
|
/**
|
|
17523
17687
|
* Format: uuid
|
|
@@ -18543,6 +18707,39 @@ export interface components {
|
|
|
18543
18707
|
/** @description Whether the tenant's AML provider can screen addresses on this network (chains list only) */
|
|
18544
18708
|
aml_supported?: boolean;
|
|
18545
18709
|
};
|
|
18710
|
+
/** @description A currency on `GET /frontend/reference/currencies`. */
|
|
18711
|
+
ReferenceCurrency: {
|
|
18712
|
+
/**
|
|
18713
|
+
* Format: uuid
|
|
18714
|
+
* @description The `currency_id` other endpoints take
|
|
18715
|
+
*/
|
|
18716
|
+
uuid: string;
|
|
18717
|
+
/** @example Tether USD */
|
|
18718
|
+
name: string;
|
|
18719
|
+
/** @example USDT */
|
|
18720
|
+
symbol: string;
|
|
18721
|
+
icon?: string | null;
|
|
18722
|
+
/** @enum {string|null} */
|
|
18723
|
+
type?: "token" | "native" | "fiat" | null;
|
|
18724
|
+
is_crypto: boolean;
|
|
18725
|
+
is_stablecoin?: boolean;
|
|
18726
|
+
is_memo?: boolean | null;
|
|
18727
|
+
/** @example 6 */
|
|
18728
|
+
decimal: number;
|
|
18729
|
+
/** @example 2 */
|
|
18730
|
+
render_decimal: number;
|
|
18731
|
+
/** @description Raw reference data, not a stable contract */
|
|
18732
|
+
meta?: {
|
|
18733
|
+
[key: string]: unknown;
|
|
18734
|
+
} | null;
|
|
18735
|
+
enabled: boolean;
|
|
18736
|
+
/** @description The network of the token; null for a fiat currency */
|
|
18737
|
+
chain?: components["schemas"]["ReferenceChain"] | null;
|
|
18738
|
+
/** @description Whether the currency is enabled for the tenant of the session */
|
|
18739
|
+
is_tenant_enabled: boolean;
|
|
18740
|
+
/** @description Whether an address on this token's network can be screened (`POST /frontend/aml/{wallet_id}/screenings`); always false while AML screening is off for the tenant */
|
|
18741
|
+
aml_supported: boolean;
|
|
18742
|
+
};
|
|
18546
18743
|
/** @description Blockchain network as stored in the `chain` reference table. Embedded whole into every item of `GET /frontend/wallets/{wallet_id}/addresses`; `GET /frontend/reference/chains` returns the `ReferenceChain` subset of the same rows. Rely on `id` / `name` / `symbol` / `enabled` / `display_name` — the rest is the raw reference row and is not a stable contract. `name` and `symbol` are keys: match on them, show `display_name`. */
|
|
18547
18744
|
Chain: {
|
|
18548
18745
|
/**
|
|
@@ -19043,6 +19240,8 @@ export interface components {
|
|
|
19043
19240
|
to_address?: string | null;
|
|
19044
19241
|
/** @description Destination crypto address (crypto transfers) */
|
|
19045
19242
|
to_crypto_address?: string | null;
|
|
19243
|
+
/** @description The screened address (`AML_CHECK` orders only) */
|
|
19244
|
+
screened_address?: string | null;
|
|
19046
19245
|
/** @description Blockchain transaction id (when settled on-chain) */
|
|
19047
19246
|
txid?: string | null;
|
|
19048
19247
|
/** @description Blockchain transaction hash (when settled on-chain) */
|
|
@@ -19490,7 +19689,7 @@ export interface components {
|
|
|
19490
19689
|
*/
|
|
19491
19690
|
type: "individual" | "business" | "universal";
|
|
19492
19691
|
/**
|
|
19493
|
-
* @description KYC verification status. A refusal is one of three values: `DECLINED`, `REJECT` or `SOFT_REJECT`. Only `APPROVED` (full access) and `HOLD` (read-only) open the wallet. `OFFBOARDED` — final: the work with this company or person is over; `EXPIRED` — no activity on the application for over three months; a check passed on it brings it back.
|
|
19692
|
+
* @description KYC verification status. A refusal is one of three values: `DECLINED`, `REJECT` or `SOFT_REJECT`. Only `APPROVED` (full access) and `HOLD` (read-only) open the wallet's data endpoints; any other status except `OFFBOARDED` stays listed for members. `OFFBOARDED` — final: the work with this company or person is over, and the wallet is closed for its members: every wallet endpoint answers them `403 ACCESS_DENIED` (its owner still sees it); `EXPIRED` — no activity on the application for over three months; a check passed on it brings it back.
|
|
19494
19693
|
* @enum {string}
|
|
19495
19694
|
*/
|
|
19496
19695
|
status: "APPROVED" | "DECLINED" | "PENDING" | "PROCESSING" | "HOLD" | "NEEDS_ATTENTION" | "DOUBLE" | "SOFT_REJECT" | "REJECT" | "UNVERIFIED" | "WAITING_ON_UBOS" | "WAITING_ON_REVIEW" | "EXPIRED" | "OFFBOARDED";
|
|
@@ -19686,6 +19885,8 @@ export interface components {
|
|
|
19686
19885
|
exchange_rate?: number;
|
|
19687
19886
|
from_address?: string;
|
|
19688
19887
|
to_address?: string;
|
|
19888
|
+
/** @description The screened address of an AML check, on its `FEE` row next to `meta_type: AML_CHECK`. The `REFUND` row of that fee does not carry it: follow `order_uuid` to the `AML_CHECK` order. */
|
|
19889
|
+
screened_address?: string;
|
|
19689
19890
|
/** Format: uuid */
|
|
19690
19891
|
from_user_data?: string;
|
|
19691
19892
|
/** Format: uuid */
|
|
@@ -19702,6 +19903,13 @@ export interface components {
|
|
|
19702
19903
|
direction?: "in" | "out";
|
|
19703
19904
|
/** Format: uuid */
|
|
19704
19905
|
order_id?: string;
|
|
19906
|
+
/**
|
|
19907
|
+
* Format: uuid
|
|
19908
|
+
* @description The order this row belongs to. On the `REFUND` row of an AML check it leads to the `AML_CHECK` order.
|
|
19909
|
+
*/
|
|
19910
|
+
order_uuid?: string;
|
|
19911
|
+
/** @description What the row pays for, when the order type sets it: `AML_CHECK` on the `FEE` row of an AML check. The `REFUND` row of that fee does not carry it. */
|
|
19912
|
+
meta_type?: string;
|
|
19705
19913
|
} & {
|
|
19706
19914
|
[key: string]: unknown;
|
|
19707
19915
|
};
|
|
@@ -20476,7 +20684,7 @@ export interface components {
|
|
|
20476
20684
|
last_message: {
|
|
20477
20685
|
/** @enum {string} */
|
|
20478
20686
|
author: "compliance" | "client";
|
|
20479
|
-
/** @description One line of the message, up to 140 characters, cut at a word; null when the message has no text — an answer of files only */
|
|
20687
|
+
/** @description One line of the message as plain text (no markup; a link reads `label (url)`), up to 140 characters, cut at a word; null when the message has no text — an answer of files only */
|
|
20480
20688
|
preview: string | null;
|
|
20481
20689
|
/** Format: date-time */
|
|
20482
20690
|
created_at: string;
|
|
@@ -20506,7 +20714,7 @@ export interface components {
|
|
|
20506
20714
|
* @enum {string}
|
|
20507
20715
|
*/
|
|
20508
20716
|
author: "compliance" | "client";
|
|
20509
|
-
/** @description
|
|
20717
|
+
/** @description Depends on `author`. `compliance`: safe inline HTML, render it as HTML with `white-space: pre-wrap` (line breaks stay `\n`). A message published in the app may use only `b`, `strong`, `i`, `em`, `u`, `s`, `strike`, `del`, `code` and `a` with an `http(s)` or `mailto` `href`; any other compliance message (sent by email before the workspace moved to the app, or not valid HTML) comes as its text with `<`, `>`, `&`, `"` and `'` escaped, so it renders as the same text. `client`: the text as the client sent it, render it as text and never as HTML; an empty string when the client answered with files only — show the attachments alone. */
|
|
20510
20718
|
body: string;
|
|
20511
20719
|
attachments: components["schemas"]["RfiAttachment"][];
|
|
20512
20720
|
/** Format: date-time */
|
|
@@ -20712,7 +20920,7 @@ export interface components {
|
|
|
20712
20920
|
saved: boolean;
|
|
20713
20921
|
};
|
|
20714
20922
|
/**
|
|
20715
|
-
* @description One item of a `list` field (`beneficial_owners`): an object keyed by the `item.fields[].key` of the field, each value shaped by that item field's `type` (an item field never takes files). `id` is set on a row already saved in the KYC entity (for an owner, the `owner_id` of the owner routes); send it back to keep the row, leave it out for a new one. A saved row is the entity's: the client never removes it — a list (or a draft's list, an empty or `null` one included) without an `id` the form gave is refused with `VALIDATION_ERROR` on the list key, «A saved beneficial owner cannot be removed; contact support»; compliance removes one. Nor does its `owner_type` change, nor is a saved value of it cleared (sent empty: `VALIDATION_ERROR` on the item field, «A saved value cannot be cleared; correct it or contact support»; left out of the item: kept). On a `returned` form the client corrects the other values of the item fields the form asks; outside a return a changed saved value is refused (`VALIDATION_ERROR`, «A saved value cannot be changed; contact support»). Messages come in the language of the form. Do not offer to delete an item with an `id`, nor to change its type.
|
|
20923
|
+
* @description One item of a `list` field (`beneficial_owners`): an object keyed by the `item.fields[].key` of the field, each value shaped by that item field's `type` (an item field never takes files). `id` is set on a row already saved in the KYC entity (for an owner, the `owner_id` of the owner routes); send it back to keep the row, leave it out for a new one. A saved row is the entity's: the client never removes it — a list (or a draft's list, an empty or `null` one included) without an `id` the form gave is refused with `VALIDATION_ERROR` on the list key, «A saved beneficial owner cannot be removed; contact support»; compliance removes one. Nor does its `owner_type` change, nor is a saved value of it cleared (sent empty: `VALIDATION_ERROR` on the item field, «A saved value cannot be cleared; correct it or contact support»; left out of the item: kept). On a `returned` form the client corrects the other values of the item fields the form asks; outside a return a changed saved value is refused (`VALIDATION_ERROR`, «A saved value cannot be changed; contact support»). Messages come in the language of the form. Do not offer to delete an item with an `id`, nor to change its type. An item with `owner_type: business` requires `corporate_name`, `corporate_country` and `corporate_registration_number` (the form marks them `required` on the item fields): without them the identity provider cannot set the company up, so the submission is refused with `VALIDATION_ERROR` on the item field.
|
|
20716
20924
|
* @example {
|
|
20717
20925
|
* "id": "2d7c1b9e-4f30-4a8c-9e21-7b6a5c4d3e2f",
|
|
20718
20926
|
* "owner_type": "individual",
|
|
@@ -20734,7 +20942,7 @@ export interface components {
|
|
|
20734
20942
|
} & {
|
|
20735
20943
|
[key: string]: unknown;
|
|
20736
20944
|
};
|
|
20737
|
-
/** @description The value of one field in `values`, shaped by the field's `type`: `text`, `textarea`, `email`, `phone` (E.164), `date` (`YYYY-MM-DD`), `enum` (an `options[].value`), `country` (alpha-2) — a string; `number`, `integer` — a number; `bool
|
|
20945
|
+
/** @description The value of one field in `values`, shaped by the field's `type`: `text`, `textarea`, `email`, `phone` (E.164), `date` (`YYYY-MM-DD`), `enum` (an `options[].value`), `country` (alpha-2) — a string; `number`, `integer` — a number; `bool` — a boolean; `multi_enum`, `country_multi` — an array of strings; `file` — an array of `KycFormsFileValue`; `list` — an array of `KycFormsListItemValue`. Empty is null. */
|
|
20738
20946
|
KycFormsFieldValue: (string | number | boolean | string[] | components["schemas"]["KycFormsFileValue"][] | components["schemas"]["KycFormsListItemValue"][]) | null;
|
|
20739
20947
|
/** @description The value of one open field in the draft or the submission, shaped by the field's `type` as `KycFormsFieldValue` — except a `file` field, whose files travel through the uploads routes only (its key is refused with `FORM_FIELD_NOT_ALLOWED`). `null` clears the field. */
|
|
20740
20948
|
KycFormsAnswerValue: (string | number | boolean | string[] | components["schemas"]["KycFormsListItemValue"][]) | null;
|
|
@@ -20745,10 +20953,10 @@ export interface components {
|
|
|
20745
20953
|
*/
|
|
20746
20954
|
key: string;
|
|
20747
20955
|
/**
|
|
20748
|
-
* @description The control, and the shape of the value in `values` and in the draft: `text`, `textarea`, `email` — string; `phone` — E.164 string; `number`, `integer` — number; `date` — `YYYY-MM-DD`; `bool` — boolean; `
|
|
20956
|
+
* @description The control, and the shape of the value in `values` and in the draft: `text`, `textarea`, `email` — string; `phone` — E.164 string; `number`, `integer` — number; `date` — `YYYY-MM-DD`; `bool` — boolean; `enum` — one `options[].value`; `multi_enum` — an array of them; `country` — alpha-2; `country_multi` — an array of alpha-2; `file` — files travel through the uploads routes, `values` lists them as `KycFormsFileValue`; `list` — an array of items, each an object keyed by `item.fields[].key` (plus `id` for a saved row).
|
|
20749
20957
|
* @enum {string}
|
|
20750
20958
|
*/
|
|
20751
|
-
type: "text" | "textarea" | "number" | "integer" | "date" | "bool" | "
|
|
20959
|
+
type: "text" | "textarea" | "number" | "integer" | "date" | "bool" | "enum" | "multi_enum" | "country" | "country_multi" | "email" | "phone" | "file" | "list";
|
|
20752
20960
|
label: string;
|
|
20753
20961
|
hint: string | null;
|
|
20754
20962
|
placeholder: string | null;
|
|
@@ -20793,6 +21001,11 @@ export interface components {
|
|
|
20793
21001
|
* @example 50000
|
|
20794
21002
|
*/
|
|
20795
21003
|
numeric?: number;
|
|
21004
|
+
/**
|
|
21005
|
+
* @description Present only on a `multi_enum` option that cannot be chosen with another one: alone it is accepted, together with others the draft and the submission answer `400 VALIDATION_ERROR` on the field (`details.fields[key]`) with «This option cannot be combined with others» in the language of the form; today `NONE` of `engage_in_activities`. The other options do not carry the field.
|
|
21006
|
+
* @example true
|
|
21007
|
+
*/
|
|
21008
|
+
exclusive?: boolean;
|
|
20796
21009
|
}[];
|
|
20797
21010
|
/** @description `file` fields only. */
|
|
20798
21011
|
file?: {
|
|
@@ -20987,7 +21200,7 @@ export interface components {
|
|
|
20987
21200
|
entity_type: "individual" | "business";
|
|
20988
21201
|
status: components["schemas"]["KycFormsEntityStatus"];
|
|
20989
21202
|
/**
|
|
20990
|
-
* @description Build the screen by this, not by `status`. `not_required` — the tenant asks nothing of this client type (`base_form` is null); `not_started` — the base form was not started; `incomplete` — a draft exists; `action_required` — the client's move: pass the identity check (`next_step: verification`), or, for a business, get the owners through theirs (`next_step: owners`); `in_review` — the identity provider or compliance is looking; `resubmit` — returned by compliance, the form is open again with `submission.comment` (open it with `base_form.target`); `on_hold` — frozen by compliance; `verified` — approved; `expired` — no activity on the application for over three months: a passed identity check brings it back (`next_step: verification`), then compliance looks again; `rejected` — refused, the form is read-only; `offboarded` — compliance ended the relationship, final; `unknown` — a status this contract does not know. The stage of each `status`: `APPROVED` → `verified`; `REJECT`, `DECLINED`, `DOUBLE` → `rejected`; `OFFBOARDED` → `offboarded`; `EXPIRED` → `expired`; `HOLD` → `on_hold`; `WAITING_ON_REVIEW` → `in_review`; `NEEDS_ATTENTION` → `resubmit`; `WAITING_ON_UBOS` → `action_required` while an owner other than the filler's row has a check to start, finish or redo
|
|
21203
|
+
* @description Build the screen by this, not by `status`. `not_required` — the tenant asks nothing of this client type (`base_form` is null); `not_started` — the base form was not started; `incomplete` — a draft exists; `action_required` — the client's move: pass the identity check (`next_step: verification`), or, for a business, get the owners through theirs (`next_step: owners`); `in_review` — the identity provider or compliance is looking; `resubmit` — returned by compliance, the form is open again with `submission.comment` (open it with `base_form.target`); `on_hold` — frozen by compliance; `verified` — approved; `expired` — no activity on the application for over three months: a passed identity check brings it back (`next_step: verification`), then compliance looks again; `rejected` — refused, the form is read-only; `offboarded` — compliance ended the relationship, final; `unknown` — a status this contract does not know. The stage of each `status`: `APPROVED` → `verified`; `REJECT`, `DECLINED`, `DOUBLE` → `rejected`; `OFFBOARDED` → `offboarded`; `EXPIRED` → `expired`; `HOLD` → `on_hold`; `WAITING_ON_REVIEW` → `in_review`; `NEEDS_ATTENTION` → `resubmit`; `WAITING_ON_UBOS` → `action_required` with `next_step: verification` while the filler's own check is asked again (`verification.applicant.state: retry`; it comes before the owners, as they cannot finish without it, and an admin of the wallet reading sees `waiting_on: applicant`, `next_step: wait`), else `action_required` with `next_step: owners` while an owner other than the filler's row has a check to start, finish or redo, else `in_review` (also when the filler's check is with the provider or an owner's declared data does not match the document); `UNVERIFIED`, `PENDING`, `SOFT_REJECT` → by the base form and the identity check: `not_required` (no base form), `not_started`, `incomplete` (a draft), `action_required` (the check is the move), `in_review` (sent, with compliance or the provider), `resubmit` (the latest submission was returned) — the forms flow never sets `SOFT_REJECT`, one left by the old flow shows the screen of its form like `PENDING`; `PROCESSING` → `unknown` (the forms flow never sets it, an old-flow vendor sync may leave it).
|
|
20991
21204
|
* @enum {string}
|
|
20992
21205
|
*/
|
|
20993
21206
|
stage: "not_required" | "not_started" | "incomplete" | "action_required" | "in_review" | "resubmit" | "on_hold" | "verified" | "expired" | "rejected" | "offboarded" | "unknown";
|
|
@@ -21319,7 +21532,7 @@ export interface components {
|
|
|
21319
21532
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
21320
21533
|
};
|
|
21321
21534
|
};
|
|
21322
|
-
/** @description `VALIDATION_ERROR` — field errors in `details.fields[key] = [message]` (on a business form the owner list the KYC tables refuse, and owner shares adding up to more than 100%, come back under `beneficial_owners`; a saved beneficial owner (an item with an `id`) left out of the list — an empty or `null` list included — comes back under `beneficial_owners`, a saved value of it changed outside a `returned` form, or sent empty, under `beneficial_owners[i].<field>`, and nothing is saved; a value sent for a field whose condition reads a source left empty or wrong comes back as the error of the source, e.g. `beneficial_owners[0].role`), or a message only for a malformed body (`schema_version` missing or longer than 64, `values` not an object) and a path id that is not a uuid; `FORM_FIELD_NOT_ALLOWED` — a key the form does not accept (unknown, locked, hidden, a file field), `details.fields = [key]`, the whole request refused; `FORM_TARGET_UNSUPPORTED` — a card program named on a business entity; `INVALID_REQUEST` — `wallet_id` missing for a form over card programs; `KYC_BASE_BINDING_MISSING` — the tenant has no base form for this client type; `KYC_FORMS_NOT_ENABLED` — the tenant is not on the forms flow */
|
|
21535
|
+
/** @description `VALIDATION_ERROR` — field errors in `details.fields[key] = [message]` (on a business form the owner list the KYC tables refuse, and owner shares adding up to more than 100%, come back under `beneficial_owners`; a saved beneficial owner (an item with an `id`) left out of the list — an empty or `null` list included — comes back under `beneficial_owners`, a saved value of it changed outside a `returned` form, or sent empty, under `beneficial_owners[i].<field>`, and nothing is saved; a value sent for a field whose condition reads a source left empty or wrong comes back as the error of the source, e.g. `beneficial_owners[0].role`; a `multi_enum` field with an option that excludes the others (`options[].exclusive`) chosen together with another one comes back under the field, on the draft too), or a message only for a malformed body (`schema_version` missing or longer than 64, `values` not an object) and a path id that is not a uuid; `FORM_FIELD_NOT_ALLOWED` — a key the form does not accept (unknown, locked, hidden, a file field), `details.fields = [key]`, the whole request refused; `FORM_TARGET_UNSUPPORTED` — a card program named on a business entity; `INVALID_REQUEST` — `wallet_id` missing for a form over card programs; `KYC_BASE_BINDING_MISSING` — the tenant has no base form for this client type; `KYC_FORMS_NOT_ENABLED` — the tenant is not on the forms flow */
|
|
21323
21536
|
KycFormsFieldErrors: {
|
|
21324
21537
|
headers: {
|
|
21325
21538
|
[name: string]: unknown;
|
|
@@ -2905,7 +2905,7 @@ export interface components {
|
|
|
2905
2905
|
* @example EXCHANGE_OMNI
|
|
2906
2906
|
* @enum {string}
|
|
2907
2907
|
*/
|
|
2908
|
-
OrderTypeId: "EXCHANGE_OMNI" | "EXCHANGE_OMNI_ONRAMP" | "EXCHANGE_OMNI_OFFRAMP" | "EXCHANGE_OMNI_CRYPTO" | "EXCHANGE_CRYPTO_INTERNAL" | "L2F_ACH_ONRAMP" | "L2F_ACH_OFFRAMP" | "L2F_SEPA_ONRAMP" | "L2F_SEPA_OFFRAMP" | "L2F_SWIFT_ONRAMP" | "L2F_SWIFT_OFFRAMP" | "L2F_WIRE_ONRAMP" | "L2F_WIRE_OFFRAMP" | "L2F_CHAPS_ONRAMP" | "L2F_CHAPS_OFFRAMP" | "L2F_FPS_ONRAMP" | "L2F_FPS_OFFRAMP" | "BRL_WIRE_ONRAMP" | "BRL_WIRE_OFFRAMP" | "BRL_ACH_ONRAMP" | "BRL_ACH_OFFRAMP" | "BRL_FEDNOW_ONRAMP" | "BRL_RTP_OFFRAMP" | "DLS_WIRE_ONRAMP" | "DLS_WIRE_OFFRAMP" | "DLS_ACH_ONRAMP" | "DLS_ACH_OFFRAMP" | "DLS_SEPA_ONRAMP" | "DLS_SEPA_OFFRAMP" | "DLS_SWIFT_ONRAMP" | "DLS_SWIFT_OFFRAMP" | "BC1_SEPA_ONRAMP" | "BC1_SEPA_OFFRAMP" | "BC1_SWIFT_ONRAMP" | "BC1_SWIFT_OFFRAMP" | "BC3_SEPA_ONRAMP" | "BC3_SEPA_OFFRAMP" | "RPP_SWIFT_OFFRAMP" | "RPP_SEPA_OFFRAMP" | "RPP_FPS_OFFRAMP" | "RPP_ACH_OFFRAMP" | "OMNIBUS_CRYPTO_TRANSFER" | "OMNIBUS_CRYPTO_WITHDRAWAL" | "OMNIBUS_INTERNAL_TRANSFER" | "SEGREGATED_CRYPTO_TRANSFER" | "TRANSFER_INTERNAL" | "TRANSFER_CARD_PREPAID" | "TRANSFER_CARD_SUBACCOUNT" | "TRANSFER_CARD_WHOLESALE" | "WITHDRAW_CARD_PREPAID" | "WITHDRAW_CARD_SUBACCOUNT" | "REFUND_CARD_PREPAID" | "REFUND_CARD_SUBACCOUNT" | "RN_CARDS_OFFRAMP" | "CARD_ISSUING_FEE" | "MONTHLY_FEE" | "REFERRAL_PAYOUT";
|
|
2908
|
+
OrderTypeId: "EXCHANGE_OMNI" | "EXCHANGE_OMNI_ONRAMP" | "EXCHANGE_OMNI_OFFRAMP" | "EXCHANGE_OMNI_CRYPTO" | "EXCHANGE_CRYPTO_INTERNAL" | "L2F_ACH_ONRAMP" | "L2F_ACH_OFFRAMP" | "L2F_SEPA_ONRAMP" | "L2F_SEPA_OFFRAMP" | "L2F_SWIFT_ONRAMP" | "L2F_SWIFT_OFFRAMP" | "L2F_WIRE_ONRAMP" | "L2F_WIRE_OFFRAMP" | "L2F_CHAPS_ONRAMP" | "L2F_CHAPS_OFFRAMP" | "L2F_FPS_ONRAMP" | "L2F_FPS_OFFRAMP" | "BRL_WIRE_ONRAMP" | "BRL_WIRE_OFFRAMP" | "BRL_ACH_ONRAMP" | "BRL_ACH_OFFRAMP" | "BRL_FEDNOW_ONRAMP" | "BRL_RTP_OFFRAMP" | "DLS_WIRE_ONRAMP" | "DLS_WIRE_OFFRAMP" | "DLS_ACH_ONRAMP" | "DLS_ACH_OFFRAMP" | "DLS_SEPA_ONRAMP" | "DLS_SEPA_OFFRAMP" | "DLS_SWIFT_ONRAMP" | "DLS_SWIFT_OFFRAMP" | "BC1_SEPA_ONRAMP" | "BC1_SEPA_OFFRAMP" | "BC1_SWIFT_ONRAMP" | "BC1_SWIFT_OFFRAMP" | "BC3_SEPA_ONRAMP" | "BC3_SEPA_OFFRAMP" | "BC3_SWIFT_ONRAMP" | "BC3_SWIFT_OFFRAMP" | "RPP_SWIFT_OFFRAMP" | "RPP_SEPA_OFFRAMP" | "RPP_FPS_OFFRAMP" | "RPP_ACH_OFFRAMP" | "OMNIBUS_CRYPTO_TRANSFER" | "OMNIBUS_CRYPTO_WITHDRAWAL" | "OMNIBUS_INTERNAL_TRANSFER" | "SEGREGATED_CRYPTO_TRANSFER" | "TRANSFER_INTERNAL" | "TRANSFER_CARD_PREPAID" | "TRANSFER_CARD_SUBACCOUNT" | "TRANSFER_CARD_WHOLESALE" | "WITHDRAW_CARD_PREPAID" | "WITHDRAW_CARD_SUBACCOUNT" | "REFUND_CARD_PREPAID" | "REFUND_CARD_SUBACCOUNT" | "RN_CARDS_OFFRAMP" | "CARD_ISSUING_FEE" | "MONTHLY_FEE" | "REFERRAL_PAYOUT";
|
|
2909
2909
|
OrderCalculation: {
|
|
2910
2910
|
/**
|
|
2911
2911
|
* Format: uuid
|
|
@@ -9202,7 +9202,7 @@ export interface components {
|
|
|
9202
9202
|
* @example EXCHANGE_OMNI
|
|
9203
9203
|
* @enum {string}
|
|
9204
9204
|
*/
|
|
9205
|
-
OrderTypeId: "EXCHANGE_OMNI" | "EXCHANGE_OMNI_ONRAMP" | "EXCHANGE_OMNI_OFFRAMP" | "EXCHANGE_OMNI_CRYPTO" | "EXCHANGE_CRYPTO_INTERNAL" | "L2F_ACH_ONRAMP" | "L2F_ACH_OFFRAMP" | "L2F_SEPA_ONRAMP" | "L2F_SEPA_OFFRAMP" | "L2F_SWIFT_ONRAMP" | "L2F_SWIFT_OFFRAMP" | "L2F_WIRE_ONRAMP" | "L2F_WIRE_OFFRAMP" | "L2F_CHAPS_ONRAMP" | "L2F_CHAPS_OFFRAMP" | "L2F_FPS_ONRAMP" | "L2F_FPS_OFFRAMP" | "BRL_WIRE_ONRAMP" | "BRL_WIRE_OFFRAMP" | "BRL_ACH_ONRAMP" | "BRL_ACH_OFFRAMP" | "BRL_FEDNOW_ONRAMP" | "BRL_RTP_OFFRAMP" | "DLS_WIRE_ONRAMP" | "DLS_WIRE_OFFRAMP" | "DLS_ACH_ONRAMP" | "DLS_ACH_OFFRAMP" | "DLS_SEPA_ONRAMP" | "DLS_SEPA_OFFRAMP" | "DLS_SWIFT_ONRAMP" | "DLS_SWIFT_OFFRAMP" | "BC1_SEPA_ONRAMP" | "BC1_SEPA_OFFRAMP" | "BC1_SWIFT_ONRAMP" | "BC1_SWIFT_OFFRAMP" | "BC3_SEPA_ONRAMP" | "BC3_SEPA_OFFRAMP" | "RPP_SWIFT_OFFRAMP" | "RPP_SEPA_OFFRAMP" | "RPP_FPS_OFFRAMP" | "RPP_ACH_OFFRAMP" | "OMNIBUS_CRYPTO_TRANSFER" | "OMNIBUS_CRYPTO_WITHDRAWAL" | "OMNIBUS_INTERNAL_TRANSFER" | "SEGREGATED_CRYPTO_TRANSFER" | "TRANSFER_INTERNAL" | "TRANSFER_CARD_PREPAID" | "TRANSFER_CARD_SUBACCOUNT" | "TRANSFER_CARD_WHOLESALE" | "WITHDRAW_CARD_PREPAID" | "WITHDRAW_CARD_SUBACCOUNT" | "REFUND_CARD_PREPAID" | "REFUND_CARD_SUBACCOUNT" | "RN_CARDS_OFFRAMP" | "CARD_ISSUING_FEE" | "MONTHLY_FEE" | "REFERRAL_PAYOUT";
|
|
9205
|
+
OrderTypeId: "EXCHANGE_OMNI" | "EXCHANGE_OMNI_ONRAMP" | "EXCHANGE_OMNI_OFFRAMP" | "EXCHANGE_OMNI_CRYPTO" | "EXCHANGE_CRYPTO_INTERNAL" | "L2F_ACH_ONRAMP" | "L2F_ACH_OFFRAMP" | "L2F_SEPA_ONRAMP" | "L2F_SEPA_OFFRAMP" | "L2F_SWIFT_ONRAMP" | "L2F_SWIFT_OFFRAMP" | "L2F_WIRE_ONRAMP" | "L2F_WIRE_OFFRAMP" | "L2F_CHAPS_ONRAMP" | "L2F_CHAPS_OFFRAMP" | "L2F_FPS_ONRAMP" | "L2F_FPS_OFFRAMP" | "BRL_WIRE_ONRAMP" | "BRL_WIRE_OFFRAMP" | "BRL_ACH_ONRAMP" | "BRL_ACH_OFFRAMP" | "BRL_FEDNOW_ONRAMP" | "BRL_RTP_OFFRAMP" | "DLS_WIRE_ONRAMP" | "DLS_WIRE_OFFRAMP" | "DLS_ACH_ONRAMP" | "DLS_ACH_OFFRAMP" | "DLS_SEPA_ONRAMP" | "DLS_SEPA_OFFRAMP" | "DLS_SWIFT_ONRAMP" | "DLS_SWIFT_OFFRAMP" | "BC1_SEPA_ONRAMP" | "BC1_SEPA_OFFRAMP" | "BC1_SWIFT_ONRAMP" | "BC1_SWIFT_OFFRAMP" | "BC3_SEPA_ONRAMP" | "BC3_SEPA_OFFRAMP" | "BC3_SWIFT_ONRAMP" | "BC3_SWIFT_OFFRAMP" | "RPP_SWIFT_OFFRAMP" | "RPP_SEPA_OFFRAMP" | "RPP_FPS_OFFRAMP" | "RPP_ACH_OFFRAMP" | "OMNIBUS_CRYPTO_TRANSFER" | "OMNIBUS_CRYPTO_WITHDRAWAL" | "OMNIBUS_INTERNAL_TRANSFER" | "SEGREGATED_CRYPTO_TRANSFER" | "TRANSFER_INTERNAL" | "TRANSFER_CARD_PREPAID" | "TRANSFER_CARD_SUBACCOUNT" | "TRANSFER_CARD_WHOLESALE" | "WITHDRAW_CARD_PREPAID" | "WITHDRAW_CARD_SUBACCOUNT" | "REFUND_CARD_PREPAID" | "REFUND_CARD_SUBACCOUNT" | "RN_CARDS_OFFRAMP" | "CARD_ISSUING_FEE" | "MONTHLY_FEE" | "REFERRAL_PAYOUT";
|
|
9206
9206
|
OrderCalculation: {
|
|
9207
9207
|
/**
|
|
9208
9208
|
* Format: uuid
|
|
@@ -1811,6 +1811,7 @@ export interface components {
|
|
|
1811
1811
|
source_of_wealth_ubo?: string | null;
|
|
1812
1812
|
customer_acquisition_and_location?: string | null;
|
|
1813
1813
|
funds_senders_and_recipients?: string | null;
|
|
1814
|
+
who_pays_and_how?: string | null;
|
|
1814
1815
|
purposes?: string[] | null;
|
|
1815
1816
|
payment_flows?: string[] | null;
|
|
1816
1817
|
source_of_funds_list?: string[] | null;
|
|
@@ -2184,6 +2185,8 @@ export interface components {
|
|
|
2184
2185
|
auth_provider: "supabase" | "clerk";
|
|
2185
2186
|
/** @default false */
|
|
2186
2187
|
kyc_forms_enabled: boolean;
|
|
2188
|
+
/** @default false */
|
|
2189
|
+
enable_promo_codes: boolean;
|
|
2187
2190
|
base_currency: string;
|
|
2188
2191
|
mass_payouts: components["schemas"]["SystemMassPayoutsConfigDto"];
|
|
2189
2192
|
aml_check: components["schemas"]["SystemAmlCheckConfigDto"];
|
|
@@ -3738,6 +3741,13 @@ export interface operations {
|
|
|
3738
3741
|
"application/json": components["schemas"]["InitUserVerificationResponseDto"];
|
|
3739
3742
|
};
|
|
3740
3743
|
};
|
|
3744
|
+
/** @description The tenant runs the KYC forms flow: the user verifies through the KYC forms of CORE */
|
|
3745
|
+
400: {
|
|
3746
|
+
headers: {
|
|
3747
|
+
[name: string]: unknown;
|
|
3748
|
+
};
|
|
3749
|
+
content?: never;
|
|
3750
|
+
};
|
|
3741
3751
|
/** @description Unauthorized */
|
|
3742
3752
|
401: {
|
|
3743
3753
|
headers: {
|
|
@@ -3771,6 +3781,13 @@ export interface operations {
|
|
|
3771
3781
|
"application/json": components["schemas"]["ResumeUserVerificationResponseDto"];
|
|
3772
3782
|
};
|
|
3773
3783
|
};
|
|
3784
|
+
/** @description The tenant runs the KYC forms flow: the user verifies through the KYC forms of CORE */
|
|
3785
|
+
400: {
|
|
3786
|
+
headers: {
|
|
3787
|
+
[name: string]: unknown;
|
|
3788
|
+
};
|
|
3789
|
+
content?: never;
|
|
3790
|
+
};
|
|
3774
3791
|
/** @description Unauthorized */
|
|
3775
3792
|
401: {
|
|
3776
3793
|
headers: {
|
|
@@ -1378,6 +1378,25 @@ export declare namespace API {
|
|
|
1378
1378
|
* `cardholder_requirements.level` to name the bar ("requires FULL").
|
|
1379
1379
|
*/
|
|
1380
1380
|
| 'NEEDS_VERIFICATION_UPGRADE'
|
|
1381
|
+
/**
|
|
1382
|
+
* An ACTIVE cardholder is linked (`cardholder_id`), but it does not hold what the
|
|
1383
|
+
* program's ISSUANCE bar asks for — typically one written before that bar existed.
|
|
1384
|
+
* Creating a card now is refused with `400`; `will_require` names the same fields
|
|
1385
|
+
* that 400 would. Nothing is submitted again: `PATCH` the fields, and for the
|
|
1386
|
+
* document photos call `POST /cardholders` with the member's `user_data_id` — it
|
|
1387
|
+
* answers `409` with this `cardholder_id` after completing the row from the
|
|
1388
|
+
* member's KYC dossier. When the member has not passed that verification, run it first.
|
|
1389
|
+
*/
|
|
1390
|
+
| 'NEEDS_COMPLETION'
|
|
1391
|
+
/**
|
|
1392
|
+
* KYC forms flow only: required fields of the program's card form are still empty.
|
|
1393
|
+
* Only the member fills that form in their personal KYC entity; the create is refused
|
|
1394
|
+
* until they do (`400 CARD_REQUIREMENTS_INCOMPLETE`, or `400 KYC_PERSONAL_ENTITY_MISSING`
|
|
1395
|
+
* for a member with no personal entity), and fields in the request body do not help.
|
|
1396
|
+
* `will_require` names what the member has left: tell them to fill the card form, do
|
|
1397
|
+
* not ask the caller for these fields.
|
|
1398
|
+
*/
|
|
1399
|
+
| 'NEEDS_CARD_FORM'
|
|
1381
1400
|
/**
|
|
1382
1401
|
* A verification came back with a FINAL rejection — only support can
|
|
1383
1402
|
* reset it. Never render an actionable "verify now" for this state.
|
|
@@ -1390,6 +1409,16 @@ export declare namespace API {
|
|
|
1390
1409
|
* has, so a fresh cardholder is NOT the way to retry.
|
|
1391
1410
|
*/
|
|
1392
1411
|
| 'NEEDS_RESUBMIT'
|
|
1412
|
+
/**
|
|
1413
|
+
* The cardholder is submitted (`cardholder_id` is set) and the ISSUER is still
|
|
1414
|
+
* reviewing the person. Nothing is wrong and nothing can be done but wait:
|
|
1415
|
+
* re-submitting would only spend another review (the submit endpoint refuses it with
|
|
1416
|
+
* `409 CARDHOLDER_NOT_DRAFT`), and creating a card now is refused with
|
|
1417
|
+
* `400 INVALID_REQUEST`. Show the member as pending and poll. Only programs whose
|
|
1418
|
+
* vendor reviews the person before issuance ever return this; vendors that issue
|
|
1419
|
+
* inline go straight to READY.
|
|
1420
|
+
*/
|
|
1421
|
+
| 'ISSUER_REVIEW_PENDING'
|
|
1393
1422
|
/** Not an active member of this wallet. */
|
|
1394
1423
|
| 'NOT_MEMBER';
|
|
1395
1424
|
type Request = {
|
|
@@ -1401,7 +1430,7 @@ export declare namespace API {
|
|
|
1401
1430
|
type Item = {
|
|
1402
1431
|
user_data_id: string;
|
|
1403
1432
|
verdict: Verdict;
|
|
1404
|
-
/** The linked cardholder for READY/DRAFT
|
|
1433
|
+
/** The linked cardholder for READY / DRAFT / NEEDS_COMPLETION / NEEDS_RESUBMIT / ISSUER_REVIEW_PENDING verdicts. */
|
|
1405
1434
|
cardholder_id: string | null;
|
|
1406
1435
|
/** Fields to collect by hand (submit `missing` vocabulary). */
|
|
1407
1436
|
will_require: string[];
|