squarefi-bff-api-module 1.36.97 → 1.36.98
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/frontend.d.ts +1 -1
- package/dist/api/frontend.js +3 -1
- package/dist/api/kyc.d.ts +4 -1
- package/dist/api/kyc.js +4 -1
- package/dist/api/types/autogen/apiV1External.types.d.ts +7 -1
- package/dist/api/types/autogen/apiV1Frontend.types.d.ts +60 -19
- package/dist/api/types/autogen/apiV1Tenant.types.d.ts +6 -1
- package/dist/api/types/types.d.ts +1 -1
- package/package.json +1 -1
package/dist/api/frontend.d.ts
CHANGED
|
@@ -73,7 +73,7 @@ export declare const frontend: {
|
|
|
73
73
|
kycRails: {
|
|
74
74
|
getAll: ({ wallet_id }: API.Frontend.KycRails.List.Request) => Promise<API.Frontend.KycRails.List.Response>;
|
|
75
75
|
getById: ({ wallet_id, rail_id }: API.Frontend.KycRails.Get.Request) => Promise<API.Frontend.KycRails.Get.Response>;
|
|
76
|
-
submit: ({ wallet_id, rail_id, }: API.Frontend.KycRails.Submit.Request) => Promise<API.Frontend.KycRails.Submit.Response>;
|
|
76
|
+
submit: ({ wallet_id, rail_id, accepted_terms, }: API.Frontend.KycRails.Submit.Request) => Promise<API.Frontend.KycRails.Submit.Response>;
|
|
77
77
|
confirmTerms: ({ wallet_id, rail_id, }: API.Frontend.KycRails.ConfirmTerms.Request) => Promise<API.Frontend.KycRails.ConfirmTerms.Response>;
|
|
78
78
|
};
|
|
79
79
|
kycForms: {
|
package/dist/api/frontend.js
CHANGED
|
@@ -151,7 +151,9 @@ export const frontend = {
|
|
|
151
151
|
kycRails: {
|
|
152
152
|
getAll: ({ wallet_id }) => apiClientV1Frontend.getRequest(`/frontend/wallets/${wallet_id}/kyc-rails`),
|
|
153
153
|
getById: ({ wallet_id, rail_id }) => apiClientV1Frontend.getRequest(`/frontend/wallets/${wallet_id}/kyc-rails/${rail_id}`),
|
|
154
|
-
|
|
154
|
+
// No `data` without `accepted_terms`, so both clients keep the old request (the fetch one sends no body). On a
|
|
155
|
+
// rail with terms an empty list is a refusal, not an absence (SFI-2865).
|
|
156
|
+
submit: ({ wallet_id, rail_id, accepted_terms, }) => apiClientV1Frontend.postRequest(`/frontend/wallets/${wallet_id}/kyc-rails/${rail_id}`, accepted_terms == null ? undefined : { data: { accepted_terms } }),
|
|
155
157
|
confirmTerms: ({ wallet_id, rail_id, }) => apiClientV1Frontend.postRequest(`/frontend/wallets/${wallet_id}/kyc-rails/${rail_id}/terms-and-conditions`),
|
|
156
158
|
},
|
|
157
159
|
// KYC forms (CORE). Personal entity creation is idempotent, a business entity is new on every call. A form is
|
package/dist/api/kyc.d.ts
CHANGED
|
@@ -17,7 +17,10 @@ export declare const kyc: {
|
|
|
17
17
|
init: ({ kyc_entity_id, ...params }: API.KYC.Entity.Init.Request) => Promise<API.KYC.Entity.Init.Response>;
|
|
18
18
|
resume: ({ kyc_entity_id, verification_ref, }: API.KYC.Entity.Resume.Request) => Promise<API.KYC.Entity.Resume.Response>;
|
|
19
19
|
};
|
|
20
|
-
/**
|
|
20
|
+
/**
|
|
21
|
+
* @deprecated BFF rails are replaced by CORE `/frontend/wallets/{wallet_id}/kyc-rails` (SFI-2614). Use `frontend.kycRails`:
|
|
22
|
+
* only its `submit` takes the rail's terms ticked before the submission (`accepted_terms`, SFI-2865).
|
|
23
|
+
*/
|
|
21
24
|
rails: {
|
|
22
25
|
info: {
|
|
23
26
|
getAll: ({ wallet_id }: API.KYC.Rails.RailInfo.List.Request) => Promise<API.KYC.Rails.RailInfo.List.Response>;
|
package/dist/api/kyc.js
CHANGED
|
@@ -17,7 +17,10 @@ export const kyc = {
|
|
|
17
17
|
init: ({ kyc_entity_id, ...params }) => apiClientV2.postRequest(`/kyc/entities/${kyc_entity_id}/init`, { params }),
|
|
18
18
|
resume: ({ kyc_entity_id, verification_ref, }) => apiClientV2.postRequest(`/kyc/entities/${kyc_entity_id}/resume/${verification_ref}`),
|
|
19
19
|
},
|
|
20
|
-
/**
|
|
20
|
+
/**
|
|
21
|
+
* @deprecated BFF rails are replaced by CORE `/frontend/wallets/{wallet_id}/kyc-rails` (SFI-2614). Use `frontend.kycRails`:
|
|
22
|
+
* only its `submit` takes the rail's terms ticked before the submission (`accepted_terms`, SFI-2865).
|
|
23
|
+
*/
|
|
21
24
|
rails: {
|
|
22
25
|
info: {
|
|
23
26
|
getAll: ({ wallet_id }) => apiClientV2.getRequest(`/kyc/${wallet_id}/rails`),
|
|
@@ -2523,6 +2523,12 @@ export interface paths {
|
|
|
2523
2523
|
* fresh cardholder is NOT the way to retry. While a review is running, another submit is
|
|
2524
2524
|
* refused with `409`.
|
|
2525
2525
|
*
|
|
2526
|
+
* **Final rejection**: a rejection no corrected dossier answers — a forged document,
|
|
2527
|
+
* fraud, an attempt to bypass the liveness check, or a regulatory bar (age, region, a
|
|
2528
|
+
* duplicate applicant) — is final. The submit is refused with
|
|
2529
|
+
* `409 CARDHOLDER_REJECTION_FINAL`, and `error.details.reject_reason` carries the
|
|
2530
|
+
* vendor's reason; no card can be issued for this identity.
|
|
2531
|
+
*
|
|
2526
2532
|
* **Authentication**: x-api-key header required
|
|
2527
2533
|
*
|
|
2528
2534
|
*/
|
|
@@ -2582,7 +2588,7 @@ export interface paths {
|
|
|
2582
2588
|
"application/json": components["schemas"]["ApiErrorResponse"];
|
|
2583
2589
|
};
|
|
2584
2590
|
};
|
|
2585
|
-
/** @description Cardholder is live at the vendor, or its review is still running. On a program that issues under the wallet's company: `WALLET_BUSINESS_NOT_ONBOARDED` (the wallet's business has not been registered with the card issuer) or `WALLET_BUSINESS_NOT_APPROVED` (its review is not approved yet). */
|
|
2591
|
+
/** @description Cardholder is live at the vendor, or its review is still running (`CARDHOLDER_NOT_DRAFT`). Its rejection is final and cannot be answered by a resubmit (`CARDHOLDER_REJECTION_FINAL`, `error.details.reject_reason`). On a program that issues under the wallet's company: `WALLET_BUSINESS_NOT_ONBOARDED` (the wallet's business has not been registered with the card issuer) or `WALLET_BUSINESS_NOT_APPROVED` (its review is not approved yet). */
|
|
2586
2592
|
409: {
|
|
2587
2593
|
headers: {
|
|
2588
2594
|
[name: string]: unknown;
|
|
@@ -6058,7 +6058,10 @@ export interface paths {
|
|
|
6058
6058
|
* and poll. Only programs whose vendor reviews the person before issuance ever return
|
|
6059
6059
|
* this; vendors that issue inline go straight to `READY`.
|
|
6060
6060
|
* - `REJECTED` — a verification came back with a FINAL rejection; re-running it from the
|
|
6061
|
-
* app is not possible (support resets it), so never render a "verify now" action.
|
|
6061
|
+
* app is not possible (support resets it), so never render a "verify now" action. Also
|
|
6062
|
+
* a linked cardholder (`cardholder_id`, `reject_reason`) whose VENDOR rejection is final
|
|
6063
|
+
* — a forged document, fraud, a liveness bypass, a regulatory bar: its submit answers
|
|
6064
|
+
* `409 CARDHOLDER_REJECTION_FINAL`, so never render "fix and resubmit" for it.
|
|
6062
6065
|
* - `NOT_MEMBER` — the uuid is not an active member of this wallet.
|
|
6063
6066
|
*
|
|
6064
6067
|
* **On a tenant of the KYC forms flow** (SFI-2544) the verdict comes from the member's personal
|
|
@@ -6139,8 +6142,9 @@ export interface paths {
|
|
|
6139
6142
|
*/
|
|
6140
6143
|
required_level?: "minimal" | "basic" | "declared" | "full" | null;
|
|
6141
6144
|
/** @description What the vendor disliked, on a NEEDS_RESUBMIT verdict — show it before
|
|
6142
|
-
* asking for a correction
|
|
6143
|
-
*
|
|
6145
|
+
* asking for a correction — or on a REJECTED one with a linked
|
|
6146
|
+
* cardholder, why the rejection is final. Null when the vendor named no
|
|
6147
|
+
* reason, or the verdict is not a rejection.
|
|
6144
6148
|
* */
|
|
6145
6149
|
reject_reason?: string | null;
|
|
6146
6150
|
}[];
|
|
@@ -6215,6 +6219,12 @@ export interface paths {
|
|
|
6215
6219
|
* the person already has: the same document cannot be registered twice at the vendor, so
|
|
6216
6220
|
* a fresh cardholder is NOT the way to retry.
|
|
6217
6221
|
*
|
|
6222
|
+
* **Final rejection**: a rejection no corrected dossier answers — a forged document,
|
|
6223
|
+
* fraud, an attempt to bypass the liveness check, or a regulatory bar (age, region, a
|
|
6224
|
+
* duplicate applicant) — is final. The submit is refused with
|
|
6225
|
+
* `409 CARDHOLDER_REJECTION_FINAL`, and `error.details.reject_reason` carries the
|
|
6226
|
+
* vendor's reason; no card can be issued for this identity.
|
|
6227
|
+
*
|
|
6218
6228
|
* **Idempotency**: while a review is running, or once the cardholder is live, another
|
|
6219
6229
|
* submit returns `409 CARDHOLDER_NOT_DRAFT` rather than spending a second review.
|
|
6220
6230
|
*
|
|
@@ -6275,7 +6285,7 @@ export interface paths {
|
|
|
6275
6285
|
};
|
|
6276
6286
|
content?: never;
|
|
6277
6287
|
};
|
|
6278
|
-
/** @description Cardholder is live at the vendor, or its review is still running. On a program that issues under the wallet's company: `WALLET_BUSINESS_NOT_ONBOARDED` (the wallet's business has not been registered with the card issuer) or `WALLET_BUSINESS_NOT_APPROVED` (its review is not approved yet). */
|
|
6288
|
+
/** @description Cardholder is live at the vendor, or its review is still running (`CARDHOLDER_NOT_DRAFT`). Its rejection is final and cannot be answered by a resubmit (`CARDHOLDER_REJECTION_FINAL`, `error.details.reject_reason`). On a program that issues under the wallet's company: `WALLET_BUSINESS_NOT_ONBOARDED` (the wallet's business has not been registered with the card issuer) or `WALLET_BUSINESS_NOT_APPROVED` (its review is not approved yet). */
|
|
6279
6289
|
409: {
|
|
6280
6290
|
headers: {
|
|
6281
6291
|
[name: string]: unknown;
|
|
@@ -11418,7 +11428,8 @@ export interface paths {
|
|
|
11418
11428
|
*
|
|
11419
11429
|
* The same report (type, format and params) asked again while the first one is
|
|
11420
11430
|
* still being generated returns that first report with 200 instead of starting
|
|
11421
|
-
* another.
|
|
11431
|
+
* another. The order of `card_ids` counts: the same cards in another order are
|
|
11432
|
+
* another report. Up to 3 reports of a wallet are generated at once.
|
|
11422
11433
|
*
|
|
11423
11434
|
*/
|
|
11424
11435
|
post: {
|
|
@@ -15881,7 +15892,15 @@ export interface paths {
|
|
|
15881
15892
|
* @description Puts the wallet on the rail, the way compliance does from the panel: a rail whose vendor CORE onboards
|
|
15882
15893
|
* itself is submitted here, any other goes through the KYC-admin service. A manual rail waits for
|
|
15883
15894
|
* compliance (`WAITING_ON_REVIEW`); a universal rail is approved on the spot. An application the vendor
|
|
15884
|
-
* sent back (`HOLD`, `SOFT_REJECT`) is resubmitted.
|
|
15895
|
+
* sent back (`HOLD`, `SOFT_REJECT`) is resubmitted.
|
|
15896
|
+
*
|
|
15897
|
+
* Terms: show the rail's `terms_and_conditions` before the submission and send the ids the client ticked as
|
|
15898
|
+
* `accepted_terms`. Every active document of the rail must be among them, or nothing is submitted
|
|
15899
|
+
* (`400 TERMS_NOT_ACCEPTED`). The acceptance is recorded on the application at the time of the submission
|
|
15900
|
+
* (`wallet_rail.terms_confirmed`, the documents in `wallet_rail.terms_and_conditions`), and a vendor that takes
|
|
15901
|
+
* an acceptance date is sent the same time; an account the vendor already holds may keep the date it recorded
|
|
15902
|
+
* first. Without `accepted_terms` (or without a body, or `null`) the submission goes as before and the terms are
|
|
15903
|
+
* accepted later with `POST …/terms-and-conditions`.
|
|
15885
15904
|
*
|
|
15886
15905
|
* On the KYC forms flow CORE makes this submission itself for a rail the client sent a rail or multi
|
|
15887
15906
|
* form for, once the form is accepted and the entity is `APPROVED`, when the form was sent by a wallet `admin` or `owner` and the wallet has no application
|
|
@@ -15908,7 +15927,16 @@ export interface paths {
|
|
|
15908
15927
|
};
|
|
15909
15928
|
cookie?: never;
|
|
15910
15929
|
};
|
|
15911
|
-
requestBody?:
|
|
15930
|
+
requestBody?: {
|
|
15931
|
+
content: {
|
|
15932
|
+
"application/json": {
|
|
15933
|
+
/** @description Ids of the rail's `terms_and_conditions` the client accepted with this submission. On a rail with
|
|
15934
|
+
* terms an empty list is a refusal (`400 TERMS_NOT_ACCEPTED`), not an absence of the field.
|
|
15935
|
+
* */
|
|
15936
|
+
accepted_terms?: string[] | null;
|
|
15937
|
+
};
|
|
15938
|
+
};
|
|
15939
|
+
};
|
|
15912
15940
|
responses: {
|
|
15913
15941
|
/** @description The rail after the submission */
|
|
15914
15942
|
200: {
|
|
@@ -15919,14 +15947,16 @@ export interface paths {
|
|
|
15919
15947
|
"application/json": components["schemas"]["WalletKycRailResponse"];
|
|
15920
15948
|
};
|
|
15921
15949
|
};
|
|
15922
|
-
/** @description `VALIDATION_ERROR` — `rail_id` is not a UUID (a message only)
|
|
15923
|
-
*
|
|
15924
|
-
*
|
|
15950
|
+
/** @description `VALIDATION_ERROR` — `rail_id` is not a UUID (a message only), or `accepted_terms` is not an array of uuids
|
|
15951
|
+
* (`details.issues`);
|
|
15952
|
+
* `RAIL_NOT_AVAILABLE` — the rail has no onboarding implementation, or is a universal rail other than the
|
|
15953
|
+
* tenant's default on a tenant without KYC; `RAIL_SUBMIT_UNAVAILABLE` — the rail takes no submissions; `RAIL_TYPE_MISMATCH` — the rail is of
|
|
15925
15954
|
* the other entity type; `RAIL_SUBMISSION_REJECTED` — the onboarding behind the rail refused the
|
|
15926
15955
|
* submission (the vendor's reason is logged, never returned); `RAIL_REQUIREMENTS_INCOMPLETE` — on a
|
|
15927
15956
|
* tenant of the KYC forms flow, the KYC entity misses saved values of required fields of the rail's form
|
|
15928
15957
|
* (a draft does not count): `details.fields` lists their keys, open
|
|
15929
|
-
* `GET /frontend/kyc/entities/{entity_id}/forms?rails={rail_id}` and fill them
|
|
15958
|
+
* `GET /frontend/kyc/entities/{entity_id}/forms?rails={rail_id}` and fill them; `TERMS_NOT_ACCEPTED` —
|
|
15959
|
+
* `accepted_terms` misses an active terms document of the rail, nothing was submitted
|
|
15930
15960
|
* */
|
|
15931
15961
|
400: {
|
|
15932
15962
|
headers: {
|
|
@@ -19303,7 +19333,7 @@ export interface components {
|
|
|
19303
19333
|
*/
|
|
19304
19334
|
type: "individual" | "business" | "universal";
|
|
19305
19335
|
/**
|
|
19306
|
-
* @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` — the
|
|
19336
|
+
* @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.
|
|
19307
19337
|
* @enum {string}
|
|
19308
19338
|
*/
|
|
19309
19339
|
status: "APPROVED" | "DECLINED" | "PENDING" | "PROCESSING" | "HOLD" | "NEEDS_ATTENTION" | "DOUBLE" | "SOFT_REJECT" | "REJECT" | "UNVERIFIED" | "WAITING_ON_UBOS" | "WAITING_ON_REVIEW" | "EXPIRED" | "OFFBOARDED";
|
|
@@ -19315,6 +19345,11 @@ export interface components {
|
|
|
19315
19345
|
};
|
|
19316
19346
|
/** @description A terms-and-conditions document of a KYC rail. */
|
|
19317
19347
|
WalletKycRailTerms: {
|
|
19348
|
+
/**
|
|
19349
|
+
* Format: uuid
|
|
19350
|
+
* @description Send it in `accepted_terms` of `POST /frontend/wallets/{wallet_id}/kyc-rails/{rail_id}` once the client ticked the document.
|
|
19351
|
+
*/
|
|
19352
|
+
id: string;
|
|
19318
19353
|
title: string;
|
|
19319
19354
|
description: string | null;
|
|
19320
19355
|
link: string | null;
|
|
@@ -20135,7 +20170,7 @@ export interface components {
|
|
|
20135
20170
|
source: "DEBIT_CARD";
|
|
20136
20171
|
from: components["schemas"]["ReportPeriodFrom"];
|
|
20137
20172
|
to: components["schemas"]["ReportPeriodTo"];
|
|
20138
|
-
/** @description Cards of the wallet (the id the card endpoints take), in the order their rows follow one another. A card of another wallet → 404 REPORT_SUBJECT_NOT_FOUND. */
|
|
20173
|
+
/** @description Cards of the wallet (the id the card endpoints take), in the order their rows follow one another; the order is kept as asked and a repeated id is dropped (the first stays). The same cards in another order are another report. A card of another wallet → 404 REPORT_SUBJECT_NOT_FOUND. */
|
|
20139
20174
|
card_ids: string[];
|
|
20140
20175
|
};
|
|
20141
20176
|
/** @description Transaction statement → Account cards — the transactions of a sub-account (card program) of the wallet. Formats CSV, XLSX. Period up to 100 days. */
|
|
@@ -20199,7 +20234,7 @@ export interface components {
|
|
|
20199
20234
|
status?: "PENDING" | "GENERATING" | "READY" | "FAILED";
|
|
20200
20235
|
params?: components["schemas"]["WalletReportParams"];
|
|
20201
20236
|
/**
|
|
20202
|
-
* @description TIMEOUT — the attempt was still generating 30 minutes after it was queued; it is failed on the wallet's next report request.
|
|
20237
|
+
* @description GENERATION_ERROR — the run failed, or the report has nothing to show (e.g. Account details of an account with no deposit details); TIMEOUT — the attempt was still generating 30 minutes after it was queued; it is failed on the wallet's next report request.
|
|
20203
20238
|
* @enum {string|null}
|
|
20204
20239
|
*/
|
|
20205
20240
|
failure_code?: "GENERATION_ERROR" | "QUEUE_ERROR" | "TIMEOUT" | null;
|
|
@@ -20325,21 +20360,27 @@ export interface components {
|
|
|
20325
20360
|
success: boolean;
|
|
20326
20361
|
data: components["schemas"]["WalletKycRail"];
|
|
20327
20362
|
};
|
|
20328
|
-
/** @description The error envelope of a rail submission: `ErrorResponse`, with `details` only on `RAIL_REQUIREMENTS_INCOMPLETE
|
|
20363
|
+
/** @description The error envelope of a rail submission: `ErrorResponse`, with `details` only on `RAIL_REQUIREMENTS_INCOMPLETE` (`fields`) and on a `VALIDATION_ERROR` of `accepted_terms` (`issues`). */
|
|
20329
20364
|
WalletKycRailSubmitErrorResponse: components["schemas"]["ErrorResponse"] & {
|
|
20330
20365
|
error?: {
|
|
20331
|
-
/** @description
|
|
20366
|
+
/** @description Absent on every other code. `RAIL_REQUIREMENTS_INCOMPLETE`: `fields` lists the keys of the required fields of the rail's form with nothing saved in the KYC entity yet, in form order — the `key` of the fields `GET /frontend/kyc/entities/{entity_id}/forms?rails={rail_id}` answers (`address.city`, `document.proof_of_address`, `beneficial_owners`, …). Open that form and highlight them; a draft or a submission still in review does not count until it is applied. `VALIDATION_ERROR` of `accepted_terms`: `issues` names each problem (`field`, e.g. `accepted_terms.0`, and `message`); a bad `rail_id` carries a message only. */
|
|
20332
20367
|
details?: {
|
|
20333
20368
|
/** @example [
|
|
20334
20369
|
* "expected_monthly_volume",
|
|
20335
20370
|
* "document.proof_of_address"
|
|
20336
20371
|
* ] */
|
|
20337
|
-
fields
|
|
20372
|
+
fields?: string[];
|
|
20373
|
+
issues?: {
|
|
20374
|
+
/** @example accepted_terms.0 */
|
|
20375
|
+
field?: string;
|
|
20376
|
+
/** @example accepted_terms must hold terms ids (UUID) */
|
|
20377
|
+
message?: string;
|
|
20378
|
+
}[];
|
|
20338
20379
|
} | null;
|
|
20339
20380
|
};
|
|
20340
20381
|
};
|
|
20341
20382
|
/**
|
|
20342
|
-
* @description Raw application status of the KYC entity (`kyc_entity.status`) — the same value the wallet shows as `kyc_info.status` (`WalletKycInfo`); a rail application (`wallet_rail.status`) has its own status of the same set. Build screens by the overview `stage`, not by this value: a status can be added without a release. `PROCESSING` is not set by the forms flow — a vendor sync of the old flow leaves it on an entity — and the overview answers `stage: unknown` for it, as for any status it does not know. `EXPIRED` (
|
|
20383
|
+
* @description Raw application status of the KYC entity (`kyc_entity.status`) — the same value the wallet shows as `kyc_info.status` (`WalletKycInfo`); a rail application (`wallet_rail.status`) has its own status of the same set. Build screens by the overview `stage`, not by this value: a status can be added without a release. `PROCESSING` is not set by the forms flow — a vendor sync of the old flow leaves it on an entity — and the overview answers `stage: unknown` for it, as for any status it does not know. `EXPIRED` (no activity on the application for over three months) and `OFFBOARDED` (compliance ended the relationship; final) are set in CORE, never by the identity provider. No form moves either, and no provider event moves `OFFBOARDED`. An `EXPIRED` application comes back once its verification is heard from again — a person's when their identity check passes, a business's on any check outcome of the filler or an owner while the filler's own check stands passed — and goes on to its owners (`WAITING_ON_UBOS`) or to compliance (`WAITING_ON_REVIEW`), never approved by itself.
|
|
20343
20384
|
* @enum {string}
|
|
20344
20385
|
*/
|
|
20345
20386
|
KycFormsEntityStatus: "UNVERIFIED" | "PENDING" | "PROCESSING" | "WAITING_ON_REVIEW" | "WAITING_ON_UBOS" | "NEEDS_ATTENTION" | "HOLD" | "APPROVED" | "SOFT_REJECT" | "REJECT" | "DECLINED" | "DOUBLE" | "EXPIRED" | "OFFBOARDED";
|
|
@@ -20809,7 +20850,7 @@ export interface components {
|
|
|
20809
20850
|
entity_type: "individual" | "business";
|
|
20810
20851
|
status: components["schemas"]["KycFormsEntityStatus"];
|
|
20811
20852
|
/**
|
|
20812
|
-
* @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`; `on_hold` — frozen by compliance; `verified` — approved; `expired` —
|
|
20853
|
+
* @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`; `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 (`next_step: owners`), else `in_review`; `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).
|
|
20813
20854
|
* @enum {string}
|
|
20814
20855
|
*/
|
|
20815
20856
|
stage: "not_required" | "not_started" | "incomplete" | "action_required" | "in_review" | "resubmit" | "on_hold" | "verified" | "expired" | "rejected" | "offboarded" | "unknown";
|
|
@@ -6930,6 +6930,11 @@ export interface paths {
|
|
|
6930
6930
|
* the same document cannot be registered twice at the vendor, so a fresh cardholder is
|
|
6931
6931
|
* NOT the way to retry. While a review is running, another submit is refused with `409`.
|
|
6932
6932
|
*
|
|
6933
|
+
* A rejection no corrected dossier answers — a forged document, fraud, an attempt to
|
|
6934
|
+
* bypass the liveness check, or a regulatory bar (age, region, a duplicate applicant) —
|
|
6935
|
+
* is final: the submit is refused with `409 CARDHOLDER_REJECTION_FINAL`, and
|
|
6936
|
+
* `error.details.reject_reason` carries the vendor's reason.
|
|
6937
|
+
*
|
|
6933
6938
|
*/
|
|
6934
6939
|
post: {
|
|
6935
6940
|
parameters: {
|
|
@@ -6971,7 +6976,7 @@ export interface paths {
|
|
|
6971
6976
|
};
|
|
6972
6977
|
content?: never;
|
|
6973
6978
|
};
|
|
6974
|
-
/** @description Cardholder is live at the vendor, or its review is still running. On a program that issues under the wallet's company: `WALLET_BUSINESS_NOT_ONBOARDED` (the wallet's business has not been registered with the card issuer) or `WALLET_BUSINESS_NOT_APPROVED` (its review is not approved yet). */
|
|
6979
|
+
/** @description Cardholder is live at the vendor, or its review is still running (`CARDHOLDER_NOT_DRAFT`). Its rejection is final and cannot be answered by a resubmit (`CARDHOLDER_REJECTION_FINAL`, `error.details.reject_reason`). On a program that issues under the wallet's company: `WALLET_BUSINESS_NOT_ONBOARDED` (the wallet's business has not been registered with the card issuer) or `WALLET_BUSINESS_NOT_APPROVED` (its review is not approved yet). */
|
|
6975
6980
|
409: {
|
|
6976
6981
|
headers: {
|
|
6977
6982
|
[name: string]: unknown;
|
|
@@ -873,7 +873,7 @@ export declare namespace API {
|
|
|
873
873
|
type Response = RailRoot['get']['responses'][200]['content']['application/json'];
|
|
874
874
|
}
|
|
875
875
|
export namespace Submit {
|
|
876
|
-
type Request = RailRoot['post']['parameters']['path']
|
|
876
|
+
type Request = RailRoot['post']['parameters']['path'] & NonNullable<NonNullable<RailRoot['post']['requestBody']>['content']['application/json']>;
|
|
877
877
|
type Response = RailRoot['post']['responses'][200]['content']['application/json'];
|
|
878
878
|
type ErrorDetails = NonNullable<NonNullable<componentsV1Frontend['schemas']['WalletKycRailSubmitErrorResponse']['error']>['details']>;
|
|
879
879
|
}
|