# KYC Review KYC Review API provides endpoints to view, update and submit information related to KYC flow. Partners redirect their customers in order to go through KYC requirements collection in a dynamic manner with minimal configurable styling if Hosted KYC is the preferred solution to provide KYC requirements. Alternatively [KYC Requirement Submit](/api-reference/kyc-review#kyc-submit) endpoint can be used for the KYC requirements that are allowed to be submitted. For the requirements that can't be submitted through this endpoint, partner should redirect their customer to Hosted KYC flow. Please refer to our [Hosted KYC guide](/guides/product/kyc/wise-kyc/hosted-kyc) for more information on the general use of the endpoints included below. Operations ## The KYC Review resource Fields id Unique identifier for a KYC Review resource, generated by Wise. status Aggregated state of the underlying requirement set. Any of the states below could move into any other state. Can be one of `"NEW"`, `"PASSED"`, `"PASSED_WITH_REQUIREMENTS"`, `"WAITING_CUSTOMER_INPUT"` or `"PROCESSING"`. link Contains the URL and expiry of said URL the end customer needs to be directed to in order to go through Hosted KYC flow. `link` is returned only when `status` is `WAITING_CUSTOMER_INPUT` and [Update redirect url](/api-reference/kyc-review#update-redirect-url) is called. link.value The URL that the end customer needs to be directed to in order to go through the Hosted KYC flow. link.expiresAt Timestamp to when the [One Time Token](/api-reference/one-time-token) in the link will expire after which a new link needs to be generated. createdAt Timestamp marking the creation of the KYC Review. updatedAt Timestamp marking the last update of the KYC Review. requiredBy Timestamp by which the underlying requirement set needs to be verified to not block the customer. Only relevant if the status is `"PASSED_WITH_REQUIREMENTS"`. triggerReferences List containing `TriggerReference` objects TriggerReference An object refers to the action/process this KYC Review pertains to. triggerReference.type Type of the underlying action/process this KYC Review is for. Usually a reference to which product this KYC Review pertains to (like `"QUOTE"` or `"TRANSFER"`) or a reference to a KYC process on the profile that isn’t related to a specific product (like `"REFRESH_CYCLE"` or `"REPAPERING"`). Currently supported types are: - `"QUOTE"` - `"TRANSFER"` - `"PROACTIVE_SEND_MONEY"` - `"ADD_MONEY"` - `"CARD"` - `"BANK_ACCOUNT_DETAILS"` triggerReference.triggerData Key-value Object containing metadata of the underlying product object that triggered the KYC Review. For `"QUOTE"`, `"TRANSFER"` and `"ADD_MONEY"` types, triggerData contains an`"id"` field that refers to their respective IDs. For `"BANK_ACCOUNT_DETAILS"`, triggerData has a field called `"currencies"` which contains a list of currencies (i.e USD, SGD, EUR) that the bank details have been created for. Table below shows the fields and their data type for each triggerReference type: | triggerReference.type | field | type | | --- | --- | --- | | QUOTE | id | uuid | | TRANSFER | id | long | | ADD_MONEY | id | long | | BANK_ACCOUNT_DETAILS | currencies | list of string | redirectUrl URL where the user will be redirected at the end of the flow. Can contain query params and path fragments. It has to be a valid URL as per [RFC2396](https://www.ietf.org/rfc/rfc2396.txt). Provided by the caller in the [Update redirect url](/api-reference/kyc-review#update-redirect-url) call. requirements Nested list of `KYC Requirement` objects. It will be in `[List, List]` format with each `List` represents a combination of possible KycRequirements to be provided. To fulfil the whole KYC Review, at least one item from each `List` should be provided. For an example if the requirements are `[ [a, b], [c, d] ]` then it should be read as `(a or b) and (c or d)` to be provided. This field is only included in the response above v2 of KYC Review endpoints. KYC Requirement The list of requirements of the KYC Review. requirements[x][y].key The name of the KYC requirement. A single KYC Requirement should appear in requirements list at most once. requirements[x][y].status The status of the KYCRequirement. There are 2 statuses of a requirement `"NOT_PROVIDED"` or `"IN_REVIEW"`. If the status is `"NOT_PROVIDED"` the information is pending some information to be provided. Either the Hosted KYC flow or [KYC Requirement Submit endpoint](/api-reference/kyc-review#kyc-submit) should be used to fulfill the requirement. If the status is `"IN_REVIEW"` the required information are retrieved and the KYC requirement is being reviewed, no action is needed. requirements[x][y].apiCollectionSupported A boolean field that indicates if the requirement can be provided via [KYC Requirement Submit endpoint](/api-reference/kyc-review#kyc-submit). If this field is false the requirement should be provided via Hosted KYC flow. requirements[x][y].versions[z] Version presents the version number and validity of a requirement: ```json {"version" : "v1", "validUntil" : "2026-03-30" } ``` | field | type | description | format | | --- | --- | --- | --- | | version | string | Presents the version | "v[1-9]\d*" | | validUntil | Date | if present it indicates expiry date of a version | Date ISO-8601 | TriggerReference Object example ```json { "type": "QUOTE", "triggerData": { "id": "ba83s43a-f623-46f0-956d-196c13e2ab01" } } ``` Standard KYC Review Object ```json { "id": "46e1a5c4-4a9b-4563-39d3-18174d3ac0f8", "createdAt": "2024-09-03T16:22:02.257725", "updatedAt": "2024-09-03T16:29:41.147522", "requiredBy": "2024-09-03T16:22:02.257725", "status": "WAITING_CUSTOMER_INPUT", "link": { "value": "https://wise-sandbox.com/embedded-flows/verification?token=d7332edb-25bf-41af-a4e9-09f5efe39ded&checkId=3120073", "expiresAt": "2024-09-03T16:29:41.203225146" }, "triggerReferences": [ { "type": "QUOTE", "triggerData": { "id": "ba83s43a-f623-46f0-956d-196c13e2ab01" } }, { "type": "TRANSFER", "triggerData": { "id": "471147" } }], "redirectUrl": "https://example.com", "requirements": [ [ { "key": "ID_DOCUMENT", "status": "NOT_PROVIDED", "apiCollectionSupported": false, "versions" :[ { "version": "v1" } ] } ], [ { "key": "BUSINESS_MONTHLY_VOLUME", "status": "NOT_PROVIDED", "apiCollectionSupported": false, "versions" :[ { "version": "v2" }, { "version": "v1", "validUntil": "2026-06-30" } ] } ], [ { "key": "BUSINESS_REGISTRATION_DOCS", "status": "IN_REVIEW", "apiCollectionSupported": false, "versions" :[ { "version": "v1" } ] } ] ] } ``` ## Create KYC Review **`POST /v1/profiles/{profileId}/kyc-reviews`** Creates a KYC Review for a specific customer action Request Fields type Type of the underlying action/process this KYC Review is for. Usually a reference to which product this KYC Review is for (like `"QUOTE"` or `"TRANSFER"`) or a reference to a KYC process on the profile that isn’t related to a specific product (like `"REFRESH_CYCLE"` or `"REPAPERING"`). Following types are available when creating a KYC Review using this endpoint: - `"QUOTE"` - `"PROACTIVE_SEND_MONEY"` - `"CARD"` triggerData Object containing data of the underlying product object that triggered the KYC Review. id Field containing the ID of the underlying product object. e.g. if type is "QUOTE" then this would be quote ID. This ID might be null when referencing an ID isn’t meaningful. As an example, there’s only ever one active refresh cycle per profile so referencing by ID isn’t useful. Response Possible HTTP status codes 202 - Accepted KYC Review successfully created. 400 - Bad Request Invalid request. (e.g. unsupported `type`, null `type`) 401 - Unauthorized User is not authorized to access the resource 404 - Not Found Underlying action with provided ID is not found. (e.g. Quote not found) Example Request ```shell curl \ -L 'https://api.wise-sandbox.com/v1/profiles/{profileId}/kyc-reviews' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer ' \ -d '{ "type": "QUOTE", "triggerData": { "id": "{quoteId}" } }' ``` Example Response ```json { "id": "46e1a5c4-4a9b-4563-39d3-18174d3ac0f8", "createdAt": "2024-09-03T16:22:02.257725", "updatedAt": "2024-09-03T16:22:02.257725", "requiredBy": "2024-09-03T16:22:02.257725", "status": "NEW", "triggerReferences": [{ "type": "QUOTE", "triggerData": { "id": "ba83s43a-f623-46f0-956d-196c13e2ab01" } }], "redirectUrl": null } ``` ## Get all KYC Reviews for a profile **`GET /v1/profiles/{profileId}/kyc-reviews`** Retrieves list of all active KYC Reviews for a given profile. The following parameters are optional: - `pageNumber` - Page number. Default value is 1 if not specified - `pageSize` - Desired number of items per page. Max 100, and default value is 100 if not specified Response Possible HTTP status codes 200 - OK Return list of KYC Review objects for the profile. Returns empty list if no KYC Review exists for a profile 401 - Unauthorized User is not authorized to access the resource Example Request ```shell curl \ -L 'https://api.wise-sandbox.com/v1/profiles/{profileId}/kyc-reviews?pageNumber=10&pageSize=2' \ -H 'Authorization: Bearer ' ``` Example Response ```json [ { "id": "46e1a5c4-4a9b-4563-39d3-18174d3ac0f8", "createdAt": "2024-09-03T16:22:02.257725", "updatedAt": "2024-09-03T16:24:21.065068", "requiredBy": "2024-09-03T16:22:02.257725", "status": "WAITING_CUSTOMER_INPUT", "triggerReferences": [ { "type": "QUOTE", "triggerData": { "id": "ba83s43a-f623-46f0-956d-196c13e2ab01" } }, { "type": "TRANSFER", "triggerData": { "id": "471147" } }], "redirectUrl": null, "requirements": [ [ { "key": "BUSINESS_USE_CASE", "status": "NOT_PROVIDED", "apiCollectionSupported": true, "versions": [ { "version": "V1", "validUntil": "2026-03-30" }, { "version": "V2" } ] } ], [ { "key": "BUSINESS_MONTHLY_VOLUME", "status": "NOT_PROVIDED", "apiCollectionSupported": false, "versions": [ { "version": "V1" } ] } ] ] } ] ``` ## Get KYC Review by ID **`GET /v1/profiles/{profileId}/kyc-reviews/{kycReviewId}`** Retrieves a single KYC Review by ID for a profile Response Possible HTTP status codes 200 - OK Returns KYC Review object 404 - Not Found KYC Review not found 401 - Unauthorized User is not authorized to access the resource Example Request ```shell curl \ -L 'https://api.wise-sandbox.com/v1/profiles/{profileId}/kyc-reviews/{kycReviewId}' \ -H 'Authorization: Bearer ' ``` Example Response ```json [ { "id": "46e1a5c4-4a9b-4563-39d3-18174d3ac0f8", "createdAt": "2024-09-03T16:22:02.257725", "updatedAt": "2024-09-03T16:24:21.065068", "requiredBy": "2024-09-03T16:22:02.257725", "status": "WAITING_CUSTOMER_INPUT", "triggerReferences": [ { "type": "QUOTE", "triggerData": { "id": "ba83s43a-f623-46f0-956d-196c13e2ab01" } }, { "type": "TRANSFER", "triggerData": { "id": "471147" } }], "redirectUrl": null, "requirements": [ [ { "key": "BUSINESS_USE_CASES", "state": "NOT_PROVIDED", "apiCollectionSupported": true, "versions": [ { "version": "V1" } ] } ], [ { "key": "ID_DOCUMENT", "state": "IN_REVIEW", "apiCollectionSupported": true, "versions": [ { "version": "V1" } ] } ] ] } ] ``` **`GET /v2/profiles/{profileId}/kyc-reviews/{kycReviewId}`** Retrieves a single KYC Review by ID for a profile. Response Possible HTTP status codes 200 - OK Returns KYC Review object 404 - Not Found KYC Review not found 401 - Unauthorized User is not authorized to access the resource Example Request ```shell curl \ -L 'https://api.wise-sandbox.com/v2/profiles/{profileId}/kyc-reviews/{kycReviewId}' \ -H 'Authorization: Bearer ' ``` Example Response ```json [ { "id": "46e1a5c4-4a9b-4563-39d3-18174d3ac0f8", "createdAt": "2024-09-03T16:22:02.257725", "updatedAt": "2024-09-03T16:24:21.065068", "requiredBy": "2024-09-03T16:22:02.257725", "status": "WAITING_CUSTOMER_INPUT", "triggerReferences": [ { "type": "QUOTE", "triggerData": { "id": "ba83s43a-f623-46f0-956d-196c13e2ab01" } }, { "type": "TRANSFER", "triggerData": { "id": "471147" } }], "redirectUrl": null, "requirements": [ [ { "key": "BUSINESS_USE_CASE", "status": "NOT_PROVIDED", "apiCollectionSupported": true, "versions": [ { "version": "V1", "validUntil": "2026-03-30" }, { "version": "V2" } ] } ], [ { "key": "BUSINESS_MONTHLY_VOLUME", "status": "NOT_PROVIDED", "apiCollectionSupported": false, "versions": [ { "version": "V1" } ] } ], [ { "key": "BUSINESS_REGISTRATION_DOCS", "status": "IN_REVIEW", "apiCollectionSupported": false, "versions": [ { "version": "V1" } ] } ] ] } ] ``` ## Update KYC review to get a hosted KYC link **`PATCH /v1/profiles/{profileId}/kyc-reviews/{kycReviewId}`** Updates the KYC review with a redirect url. Returns KYC review object with a **`link`** field containing a url where the end customer needs to be directed in order to complete the Hosted KYC flow. Once Hosted KYC flow is completed by the end customer, they will be redirected to the `redirectUrl` provided in this API call. During the redirection, the `redirectUrl` will be appended with query parameters: `status=success` or `status=error`, indicating whether Hosted KYC flow was completed successfully or not. Request Fields redirectUrl URL where the user will be redirected at the end of the flow. Can contain query params and path fragments. It has to be a valid URL as per [RFC2396](https://www.ietf.org/rfc/rfc2396.txt). Response Possible HTTP status codes 200 - OK Returns updated KYC Review object 400 - Bad Request Invalid request. (e.g. not valid URI) 401 - Unauthorized User is not authorized to access the resource 404 - Not Found KYC Review not found Example Request ```shell curl -L -X PATCH \ 'https://api.wise-sandbox.com/v1/profiles/{personalProfileId}/kyc-reviews/{kycReviewId}' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer ' \ -d '{ "redirectUrl": "https://example.com" }' ``` Example Response ```json { "id": "46e1a5c4-4a9b-4563-39d3-18174d3ac0f8", "createdAt": "2024-09-03T16:22:02.257725", "updatedAt": "2024-09-03T16:29:41.147522", "requiredBy": "2024-09-03T16:22:02.257725", "status": "WAITING_CUSTOMER_INPUT", "link": { "value": "https://wise-sandbox.com/embedded-flows/verification?token=d7332edb-25bf-41af-a4e9-09f5efe39ded&checkId=3120073", "expiresAt": "2024-09-03T16:29:41.203225146" }, "triggerReferences": [{ "type": "QUOTE", "triggerData": { "id": "ba83s43a-f623-46f0-956d-196c13e2ab01" } }], "redirectUrl": "https://example.com" } ``` ## Submit a KYC Requirement for a KYC Review **`POST /v2/profiles/{profileId}/kyc-requirements/{requirementKey}`** This functionality is in a closed BETA. Submit a KYC requirement. * Please note that a KYC requirement can be only submitted if the KYC Review status is `WAITING_CUSTOMER_INPUT`. * KYC requirement should only be submitted if the status is `"NOT_PROVIDED"` and `apiCollectionSupported` field is `true`. Response Possible HTTP status codes 202 - Accepted No response 400 - Bad Request Invalid request. (e.g. not valid URI) 401 - Unauthorized User is not authorized to access the resource 404 - Not Found KYC Review or provided requirement key not found Your title Example Request ```shell curl -X POST \ 'https://api.wise-sandbox.com/v2/profiles/{profileId}/kyc-requirements/{requirementKey}' \ -H 'Authorization: Bearer ' \ -F 'files=@""' \ -F 'submissionData={{submissionData}};type=application/json' ``` This is the generic example for this endpoint. This endpoint accepts files and a JSON object as form data. Select a KYC requirement from the dropdown above to see example requests Example Request ```shell curl -X POST \ 'https://api.wise-sandbox.com/v2/profiles/{profileId}/kyc-requirements/BUSINESS_USE_CASE' \ -H 'Authorization: Bearer ' \ -F 'submissionData={{submissionData}};type=application/json' ``` Description ```text How the business intends to use the Wise Account. ``` Submission Data Example ```json { "data": { "useCases": ["DONATION","PAYING_RENT_OR_UTILITIES"] }, "version": "V1", "kycReviewId": "93a903ea-636c-4c86-a25c-cf6d2bd00e81" } ``` useCase Accepted Values ```text INVESTING_IN_FUNDS_STOCKS_BONDS_OR_SIMILAR, DISTRIBUTING_COMPANY_PROFITS_OR_PAYING_DIVIDENDS, PAYING_MORTGAGE_BANK_LOAN_INSURANCE_OR_CREDIT, PAYING_FOR_GOODS_PROPERTIES_OR_SERVICES_ABROAD, PAYING_RENT_OR_UTILITIES, PAYING_SUPPLIERS_CONTRACTORS_OR_EMPLOYEES, PAYING_TAX_ON_PROFIT_OR_PROPERTY, TRANSFER_WITHIN_COMPANY_OR_GROUP, RECEIVE_INVESTMENTS_OR_FUNDS, RECEIVE_PAYMENTS_FROM_CLIENTS, DONATION, OTHER ``` ### Error messages Your title No submissionData provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_USE_CASE", "errors": [ { "code": "invalid_value", "ref": "submissionData", "detail": "submissionData must not be empty" } ] } ``` No kycReviewId provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_USE_CASE", "errors": [ { "code": "invalid_value", "ref": "submissionData.kycReviewId", "detail": "kycReviewId must not be empty" } ] } ``` No data provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "detail": "No files or submissionData is submitted", "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_USE_CASE", "errors": [] } ``` Empty useCases field ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_USE_CASE", "errors": [ { "code": "parameter_missing", "ref": "useCases", "detail": "No value provided", "attributes": null } ] } ``` Invalid useCases provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_USE_CASE", "errors": [ { "code": "invalid_value", "ref": "useCases", "detail": "Invalid useCases are submitted: [invalid]", "attributes": { "acceptedValues": [ "INVESTING_IN_FUNDS_STOCKS_BONDS_OR_SIMILAR", "DISTRIBUTING_COMPANY_PROFITS_OR_PAYING_DIVIDENDS", "PAYING_MORTGAGE_BANK_LOAN_INSURANCE_OR_CREDIT", "PAYING_FOR_GOODS_PROPERTIES_OR_SERVICES_ABROAD", "PAYING_RENT_OR_UTILITIES", "PAYING_SUPPLIERS_CONTRACTORS_OR_EMPLOYEES", "PAYING_TAX_ON_PROFIT_OR_PROPERTY", "TRANSFER_WITHIN_COMPANY_OR_GROUP", "RECEIVE_INVESTMENTS_OR_FUNDS", "RECEIVE_PAYMENTS_FROM_CLIENTS", "DONATION", "OTHER" ] } } ] } ``` Example Request ```shell curl -X POST \ 'https://api.wise-sandbox.com/v2/profiles/{profileId}/kyc-requirements/BUSINESS_MONTHLY_VOLUME' \ -H 'Authorization: Bearer ' \ -F 'submissionData={{submissionData}};type=application/json' ``` Description ```text A rough estimate of the monthly volumes the business intends to send or receive and the main currency routes they will use. ``` Submission Data Example ```json { "data": { "amount": 4500.00, "currency": "USD" }, "version": "V1", "kycReviewId": "93a903ea-636c-4c86-a25c-cf6d2bd00e81" } ``` ### Error messages Your title No submissionData provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_MONTHLY_VOLUME", "errors": [ { "code": "invalid_value", "ref": "submissionData", "detail": "submissionData must not be empty" } ] } ``` No kycReviewId provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_MONTHLY_VOLUME", "errors": [ { "code": "invalid_value", "ref": "submissionData.kycReviewId", "detail": "kycReviewId must not be empty" } ] } ``` No data provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "detail": "No files or submissionData is submitted", "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_MONTHLY_VOLUME", "errors": [] } ``` Negative amount provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "detail": "Amount must be greater than zero.", "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_MONTHLY_VOLUME", "errors": [] } ``` Invalid currency provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_MONTHLY_VOLUME", "errors": [ { "code": "invalid_request", "ref": "submissionData", "detail": "submitted data is invalid", "attributes": null } ] } ``` Example Request ```shell curl -X POST \ 'https://api.wise-sandbox.com/v2/profiles/{profileId}/kyc-requirements/ACCOUNT_PURPOSE' \ -H 'Authorization: Bearer ' \ -F 'submissionData={{submissionData}};type=application/json' ``` Description The purpose of the account. Submission Data Example ```json { "data": { "accountPurpose": "SENDING_MONEY_TO_FRIENDS_OR_FAMILY" }, "version": "V1", "kycReviewId": "93a903ea-636c-4c86-a25c-cf6d2bd00e81" } ``` accountPurpose Accepted Values ```text SENDING_MONEY_TO_FRIENDS_OR_FAMILY, MOVING_SAVINGS, GENERAL_LIVING_EXPENSES, BUYING_GOODS_OR_SERVICES_ABROAD, PAYING_FOR_MORTGAGE_OR_LOAN, PAYING_BILLS, RECEIVING_SALARY_OR_PENSION, INVESTING ``` ### Error messages Your title No submissionData provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/ACCOUNT_PURPOSE", "errors": [ { "code": "invalid_value", "ref": "submissionData", "detail": "submissionData must not be empty" } ] } ``` No kycReviewId provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/ACCOUNT_PURPOSE", "errors": [ { "code": "invalid_value", "ref": "submissionData.kycReviewId", "detail": "kycReviewId must not be empty" } ] } ``` No data provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "detail": "No files or submissionData is submitted", "instance": "/v2/profiles/{profileId}/kyc-requirements/ACCOUNT_PURPOSE", "errors": [] } ``` Invalid accountPurpose provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/ACCOUNT_PURPOSE", "errors": [ { "code": "invalid_value", "ref": "accountPurpose", "detail": "Invalid accountPurpose submitted: invalid", "attributes": { "acceptedValues": [ "Consult API documentation" ] } } ] } ``` Example Request ```shell curl -X POST \ 'https://api.wise-sandbox.com/v2/profiles/{profileId}/kyc-requirements/ACCOUNT_INTENT' \ -H 'Authorization: Bearer ' \ -F 'submissionData={{submissionData}};type=application/json' ``` Description How the customer intends to use their Wise account. Submission Data Example ```json { "data": { "accountIntent": "PAYING_FOR_GOODS_OR_SERVICES_ABROAD" }, "version": "V1", "kycReviewId": "93a903ea-636c-4c86-a25c-cf6d2bd00e81" } ``` accountIntent Accepted Values ```text For personal profiles: CONTRIBUTING_TO_PERSONAL_SAVINGS GENERAL_MONTHLY_LIVING_EXPENSES INVESTING_IN_FUNDS_STOCKS_BONDS_OPTIONS_FUTURES_OR_OTHER PAYING_FOR_GOODS_OR_SERVICES_ABROAD PAYING_RENT_MORTGAGE_BANK_LOAN_INSURANCE_CREDIT PAYING_RENT_UTILITIES_OR_PROPERTY_CHARGES RECEIVE_SALARY_IN_DIFFERENT_CURRENCY RECEIVE_PENSION_IN_DIFFERENT_CURRENCY SENDING_MONEY_REGULARLY_TO_FAMILY SENDING_MONEY_TO_MY_OWN_ACCOUNT_TO_BENEFIT_FROM_EXHCANGE_RATE For business profiles: INVESTING_IN_FUNDS_STOCKS_BONDS_OPTIONS_FUTURES_OR_OTHER DISTRIBUTING_COMPANY_PROFITS_OR_PAYING_DIVIDENDS PAYING_RENT_MORTGAGE_BANK_LOAN_INSURANCE_CREDIT PAYING_FOR_GOODS_SERVICES_ABROAD PAYING_RENT_UTILITIES_OR_PROPERTY_CHARGES PAYING_SUPPLIERS_CONTRACTORS_EMPLOYEES PAYING_TAX_ON_PROFIT_OR_PROPERTY TRANSFER_WITHIN_COMPANY_OR_GROUP ``` ### Error messages Your title No submissionData provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/ACCOUNT_INTENT", "errors": [ { "code": "invalid_value", "ref": "submissionData", "detail": "submissionData must not be empty" } ] } ``` No kycReviewId provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/ACCOUNT_INTENT", "errors": [ { "code": "invalid_value", "ref": "submissionData.kycReviewId", "detail": "kycReviewId must not be empty" } ] } ``` No data provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "detail": "No files or submissionData is submitted", "instance": "/v2/profiles/{profileId}/kyc-requirements/ACCOUNT_INTENT", "errors": [] } ``` Invalid accountPurpose provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/ACCOUNT_INTENT", "errors": [ { "code": "invalid_value", "ref": "accountPurpose", "detail": "Invalid accountPurpose submitted: invalid", "attributes": { "acceptedValues": [ "Consult API documentation" ] } } ] } ``` Example Request ```shell curl -X POST \ 'https://api.wise-sandbox.com/v2/profiles/{profileId}/kyc-requirements/BUSINESS_SOURCE_OF_WEALTH' \ -H 'Authorization: Bearer ' \ -F 'submissionData={{submissionData}};type=application/json' ``` Description ```text The source of business's wealth. otherSourceOfWealthDescription should be provided if only OTHER is provided as source of wealth. ``` Submission Data Example ```json { "data": { "sourceOfWealthList": ["BUSINESS_ACTIVITIES", "OTHER"], "otherSourceOfWealthDescription" : "Loan from friends" }, "version": "V1", "kycReviewId": "93a903ea-636c-4c86-a25c-cf6d2bd00e81" } ``` sourceOfWealth Accepted Values ```text BUSINESS_ACTIVITIES INVESTMENTS LOAN_OR_OTHER_FINANCING DONATION GRANTS OTHER ``` ### Error messages Your title No submissionData provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_SOURCE_OF_WEALTH", "errors": [ { "code": "invalid_value", "ref": "submissionData", "detail": "submissionData must not be empty" } ] } ``` No kycReviewId provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_SOURCE_OF_WEALTH", "errors": [ { "code": "invalid_value", "ref": "submissionData.kycReviewId", "detail": "kycReviewId must not be empty" } ] } ``` No data provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "detail": "No files or submissionData is submitted", "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_SOURCE_OF_WEALTH", "errors": [] } ``` Empty sourceOfWealthList field ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_SOURCE_OF_WEALTH", "errors": [ { "code": "invalid_value", "ref": "sourceOfWealthList", "detail": "No business source of wealth provided", "attributes": { "acceptedValues": [ "REVENUE", "PERSONAL_FUNDING", "BUSINESS_LOAN", "FUNDING_AND_SHAREHOLDER_INVESTMENTS", "INVESTMENT_INCOME", "DONATIONS", "GRANTS", "OTHER", "LEGAL" ] } } ] } ``` Invalid sourceOfWealthList provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_SOURCE_OF_WEALTH", "errors": [ { "code": "invalid_value", "ref": "sourceOfWealthList", "detail": "Invalid source of wealths are submitted: [xxx]", "attributes": { "acceptedValues": [ "REVENUE", "PERSONAL_FUNDING", "BUSINESS_LOAN", "FUNDING_AND_SHAREHOLDER_INVESTMENTS", "INVESTMENT_INCOME", "DONATIONS", "GRANTS", "OTHER", "LEGAL" ] } } ] } ``` No decription provided when sourceOfWealthList is other ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_SOURCE_OF_WEALTH", "errors": [ { "code": "invalid_value", "ref": "sourceOfWealthList", "detail": "Missing business source of wealth description", "attributes": { "acceptedValues": [ "REVENUE", "PERSONAL_FUNDING", "BUSINESS_LOAN", "FUNDING_AND_SHAREHOLDER_INVESTMENTS", "INVESTMENT_INCOME", "DONATIONS", "GRANTS", "OTHER", "LEGAL" ] } } ] } ``` Short decription provided when sourceOfWealthList is other ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_SOURCE_OF_WEALTH", "errors": [ { "code": "invalid_value", "ref": "sourceOfWealthList", "detail": "Source of wealth description too short", "attributes": { "acceptedValues": [ "REVENUE", "PERSONAL_FUNDING", "BUSINESS_LOAN", "FUNDING_AND_SHAREHOLDER_INVESTMENTS", "INVESTMENT_INCOME", "DONATIONS", "GRANTS", "OTHER", "LEGAL" ] } } ] } ``` Example Request ```shell curl -X POST \ 'https://api.wise-sandbox.com/v2/profiles/{profileId}/kyc-requirements/BUSINESS_SOURCE_OF_WEALTH_INFO' \ -H 'Authorization: Bearer ' \ -F 'submissionData={{submissionData}};type=application/json' ``` Description ```text The source of business's wealth. Also if the source of wealth is used to fund the action. ``` Submission Data Example ```json { "data": { "sourceOfWealthList": [ {"businessSourceOfWealthInfo": "BUSINESS_LOAN", "isSourceOfFund" : false}, {"businessSourceOfWealthInfo": "GRANTS", "isSourceOfFund" : true} ] }, "version": "V1", "kycReviewId": "93a903ea-636c-4c86-a25c-cf6d2bd00e81" } ``` sourceOfWealth Accepted Values ```text REVENUE, PERSONAL_FUNDING, BUSINESS_LOAN, FUNDING_AND_SHAREHOLDER_INVESTMENTS, INVESTMENT_INCOME, DONATIONS, GRANTS, LEGAL ``` ### Error messages Your title No submissionData provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_SOURCE_OF_WEALTH_INFO", "errors": [ { "code": "invalid_value", "ref": "submissionData", "detail": "submissionData must not be empty" } ] } ``` No kycReviewId provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_SOURCE_OF_WEALTH_INFO", "errors": [ { "code": "invalid_value", "ref": "submissionData.kycReviewId", "detail": "kycReviewId must not be empty" } ] } ``` No data provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "detail": "No files or submissionData is submitted", "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_SOURCE_OF_WEALTH_INFO", "errors": [] } ``` Empty sourceOfWealthList field provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_SOURCE_OF_WEALTH_INFO", "errors": [ { "code": "invalid_value", "ref": "sourceOfWealthList", "detail": "Invalid submission data provided", "attributes": { "acceptedValues": [ "REVENUE", "PERSONAL_FUNDING", "BUSINESS_LOAN", "FUNDING_AND_SHAREHOLDER_INVESTMENTS", "INVESTMENT_INCOME", "DONATIONS", "GRANTS", "OTHER", "LEGAL" ] } } ] } ``` Example Request ```shell curl -X POST \ 'https://api.wise-sandbox.com/v2/profiles/{profileId}/kyc-requirements/BUSINESS_SOURCE_OF_WEALTH_PROOF' \ -H 'Authorization: Bearer ' \ -F 'submissionData={{submissionData}};type=application/json' \ -F 'files=@""' ``` Description ```text A high-quality photo or PDF of a document proving the source of the business's wealth. The required documentation varies depending on the selected source category. Examples include the most recent 3-6 months worth of bank statements, latest audited financials, latest tax returns, loan agreements, or investment contracts that are less than 12 months old. The document should display the business income amount (if you have more than one type of income, you will have to upload documents for each of them), the business name, the issue date and signatures, if applicable. ``` Submission Data Example ```json { "data": { "sourceOfWealthType": "REVENUE", "documentType": "SAVINGS_STATEMENT" }, "version": "V1", "kycReviewId": "93a903ea-636c-4c86-a25c-cf6d2bd00e81" } ``` Accepted Values ```text sourceOfWealthType should be one of: REVENUE, PERSONAL_FUNDING, BUSINESS_LOAN, FUNDING_AND_SHAREHOLDER_INVESTMENTS, INVESTMENT_INCOME, DONATIONS, GRANTS, LEGAL documentType should be one of: PAYSLIP INVOICES CONTRACTS TAX_DOCUMENTS AUDITED_FINANCIAL_STATEMENTS E_COMMERCE_STATEMENTS PERSONAL_INVESTMENT PERSONAL_LOAN_AGREEMENT PERSONAL_TAX_DECLARATION LOAN_AGREEMENT EQUITY_AGREEMENT SUBSCRIPTION_AGREEMENT SAVINGS_STATEMENT ASSET_SALE_AGREEMENT SHARE_SALE_CERTIFICATE DONATION_RECEIPTS GRANT_APPROVAL_LETTER WRITTEN_CONFIRMATION BANK_STATEMENT ``` ### Error messages Your title No submissionData provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_SOURCE_OF_WEALTH_PROOF", "errors": [ { "code": "invalid_value", "ref": "submissionData", "detail": "submissionData must not be empty" } ] } ``` No kycReviewId provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_SOURCE_OF_WEALTH_PROOF", "errors": [ { "code": "invalid_value", "ref": "submissionData.kycReviewId", "detail": "kycReviewId must not be empty" } ] } ``` No data provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "detail": "No files or submissionData is submitted", "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_SOURCE_OF_WEALTH_PROOF", "errors": [] } ``` No files provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_SOURCE_OF_WEALTH_PROOF", "errors": [ { "code": "invalid_request", "ref": "files", "detail": "No files have been submitted for Business Source of Wealth Proof", "attributes": null } ] } ``` Invalid sourceOfWealthType provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_SOURCE_OF_WEALTH_PROOF", "errors": [ { "code": "invalid_value", "ref": "sourceOfWealthType", "detail": "Invalid Source of Wealth type", "attributes": { "acceptedValues": [ "REVENUE", "PERSONAL_FUNDING", "BUSINESS_LOAN", "FUNDING_AND_SHAREHOLDER_INVESTMENTS", "INVESTMENT_INCOME", "DONATIONS", "GRANTS", "OTHER", "LEGAL" ] } } ] } ``` Invalid documentType provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_SOURCE_OF_WEALTH_PROOF", "errors": [ { "code": "invalid_value", "ref": "documentType", "detail": "Invalid Document Type", "attributes": { "acceptedValues": [ "PAYSLIP", "INVOICES", "CONTRACTS", "TAX_DOCUMENTS", "AUDITED_FINANCIAL_STATEMENTS", "E_COMMERCE_STATEMENTS", "PERSONAL_INVESTMENT", "PERSONAL_LOAN_AGREEMENT", "PERSONAL_TAX_DECLARATION", "LOAN_AGREEMENT", "EQUITY_AGREEMENT", "SUBSCRIPTION_AGREEMENT", "SAVINGS_STATEMENT", "ASSET_SALE_AGREEMENT", "SHARE_SALE_CERTIFICATE", "DONATION_RECEIPTS", "GRANT_APPROVAL_LETTER", "WRITTEN_CONFIRMATION", "BANK_STATEMENT" ] } } ] } ``` Example Request ```shell curl -X POST \ 'https://api.wise-sandbox.com/v2/profiles/{profileId}/kyc-requirements/BUSINESS_SHAREHOLDERS_CHECK' \ -H 'Authorization: Bearer ' \ -F 'files=@""' \ -F 'files=@""' ``` Description ```text Documents showing who ultimately owns and controls the company (e.g. a recent shareholder register, operating agreement, or partnership deed). If an owner is another business, we need a document identifying the individuals who are the ultimate beneficial owners of that business. ``` Submission Data Example ```json { "version": "V1", "kycReviewId": "93a903ea-636c-4c86-a25c-cf6d2bd00e81" } ``` ### Error messages Your title No submissionData provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_SHAREHOLDERS_CHECK", "errors": [ { "code": "invalid_value", "ref": "submissionData", "detail": "submissionData must not be empty" } ] } ``` No kycReviewId provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_SHAREHOLDERS_CHECK", "errors": [ { "code": "invalid_value", "ref": "submissionData.kycReviewId", "detail": "kycReviewId must not be empty" } ] } ``` No files provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "detail": "No files or submissionData is submitted", "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_SHAREHOLDERS_CHECK", "errors": [] } ``` Example Request ```shell curl -X POST \ 'https://api.wise-sandbox.com/v2/profiles/{profileId}/kyc-requirements/BUSINESS_DIRECTORS_CHECK' \ -H 'Authorization: Bearer ' \ -F 'files=@""' \ -F 'files=@""' ``` Description ```text We need to confirm the directors of your business. Directors can be members of the board of directors, general partners or part of executive management. If a director is another business, we need a document identifying the individuals directing that business. ``` Submission Data Example ```json { "version": "V1", "kycReviewId": "93a903ea-636c-4c86-a25c-cf6d2bd00e81" } ``` ### Error messages Your title No submissionData provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_DIRECTORS_CHECK", "errors": [ { "code": "invalid_value", "ref": "submissionData", "detail": "submissionData must not be empty" } ] } ``` No kycReviewId provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_DIRECTORS_CHECK", "errors": [ { "code": "invalid_value", "ref": "submissionData.kycReviewId", "detail": "kycReviewId must not be empty" } ] } ``` No files provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "detail": "No files or submissionData is submitted", "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_DIRECTORS_CHECK", "errors": [] } ``` Example Request ```shell curl -X POST \ 'https://api.wise-sandbox.com/v2/profiles/{profileId}/kyc-requirements/BUSINESS_REGISTRATION_DOCS' \ -H 'Authorization: Bearer ' \ -F 'files=@""' \ -F 'files=@""' ``` Description ```text Proof of Business Registration. Like your certificate of incorporation, articles of association, or an official registry excerpt. It should be the document on record with the local business or tax authority. It must show: The business name, identification number and full registered address, The directors, managers, partners, trustees or members of the executive board The owners, members or shareholders and their respective holdings. If the above info has changed since you formed, please upload a document showing the most up to date details ``` Submission Data Example ```json { "version": "V1", "kycReviewId": "93a903ea-636c-4c86-a25c-cf6d2bd00e81" } ``` ### Error messages Your title No submissionData provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_REGISTRATION_DOCS", "errors": [ { "code": "invalid_value", "ref": "submissionData", "detail": "submissionData must not be empty" } ] } ``` No kycReviewId provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_REGISTRATION_DOCS", "errors": [ { "code": "invalid_value", "ref": "submissionData.kycReviewId", "detail": "kycReviewId must not be empty" } ] } ``` No files provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "detail": "No files or submissionData is submitted", "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_REGISTRATION_DOCS", "errors": [] } ``` Example Request ```shell curl -X POST \ 'https://api.wise-sandbox.com/v2/profiles/{profileId}/kyc-requirements/USE_CASE_COUNTRIES' \ -H 'Authorization: Bearer ' \ -F 'submissionData={{submissionData}};type=application/json' ``` Description ```text Enter all country codes where the business intends to send money. If unsure, select the country codes that corresponds to the target currencies. ``` Submission Data Example ```json { "data": { "useCaseCountries": ["US", "UK", "DE"] }, "version": "V1", "kycReviewId": "93a903ea-636c-4c86-a25c-cf6d2bd00e81" } ``` Accepted Values ```text Country codes in the list must be alpha-2 ISO-3166 standard ``` ### Error messages Your title No submissionData provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/USE_CASE_COUNTRIES", "errors": [ { "code": "invalid_value", "ref": "submissionData", "detail": "submissionData must not be empty" } ] } ``` No kycReviewId provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/USE_CASE_COUNTRIES", "errors": [ { "code": "invalid_value", "ref": "submissionData.kycReviewId", "detail": "kycReviewId must not be empty" } ] } ``` No data provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "detail": "No files or submissionData is submitted", "instance": "/v2/profiles/{profileId}/kyc-requirements/USE_CASE_COUNTRIES", "errors": [] } ``` Empty useCaseCountries field ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/USE_CASE_COUNTRIES", "errors": [ { "code": "parameter_missing", "ref": "useCaseCountries", "detail": "No value provided", "attributes": null } ] } ``` Invalid useCasesCountries provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/USE_CASE_COUNTRIES", "errors": [ { "code": "invalid_value", "ref": "useCaseCountries", "detail": "Invalid ISO3 codes: [xxx]", "attributes": null } ] } ``` Example Request ```shell curl -X POST \ 'https://api.wise-sandbox.com/v2/profiles/{profileId}/kyc-requirements/ID_DOCUMENT' \ -H 'Authorization: Bearer ' \ -F 'submissionData={{submissionData}};type=application/json' -F 'files=@""' \ -F 'files=@""' ``` Description ```text Provide a clear copy of the ID document. The full document needs to be in frame and all information on the document needs to be visible. If the document has information on the backside we will need to see both sides of the document. We cannot accept expired documents. Even if the document has not expired, we cannot accept any document issued over 15 years ago. ``` Submission Data Example ```json { "data": { "issuingCountry": "UK", "documentType": "DRIVERS_LICENSE", "frontSideFileName": "front_side.jpg", "backSideFileName": "back_side.jpg" }, "version": "V1", "kycReviewId": "93a903ea-636c-4c86-a25c-cf6d2bd00e81" } ``` Accepted Values ```text issuingCountry must be alpha-2 ISO-3166 standard documentType should be one of: PASSPORT ID_CARD DRIVERS_LICENSE TAX_ID RESIDENCE_PERMIT frontSideFileName and backSideFileName are required for the following documentType that we require front and back of the ID: ID_CARD DRIVERS_LICENSE TAX_ID RESIDENCE_PERMIT ``` ### Error messages Your title No submissionData provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/ID_DOCUMENT", "errors": [ { "code": "invalid_value", "ref": "submissionData", "detail": "submissionData must not be empty" } ] } ``` No kycReviewId provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/ID_DOCUMENT", "errors": [ { "code": "invalid_value", "ref": "submissionData.kycReviewId", "detail": "kycReviewId must not be empty" } ] } ``` No data provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "detail": "No files or submissionData is submitted", "instance": "/v2/profiles/{profileId}/kyc-requirements/ID_DOCUMENT", "errors": [] } ``` No files provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/ID_DOCUMENT", "errors": [ { "code": "invalid_request", "ref": "files", "detail": "No files have been submitted for ID Document", "attributes": null } ] } ``` No matching file names provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/ID_DOCUMENT", "errors": [ { "code": "invalid_request", "ref": "files", "detail": "No file was provided with the specified fileName: xxx.png", "attributes": null } ] } ``` Invalid issuingCountry provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/ID_DOCUMENT", "errors": [ { "code": "invalid_value", "ref": "issuingCountry", "detail": "Invalid issuingCountry provided", "attributes": { "acceptedValues": [ "AD", "AE", "AF", "AG", "AI", "AL", "AM", "AN", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AX", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BL", "BM", "BN", "BO", "BQ", "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CU", "CV", "CW", "CX", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "EH", "ER", "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IM", "IN", "IO", "IQ", "IR", "IS", "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MF", "MG", "MH", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NU", "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PN", "PM", "PR", "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RS", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI", "SK", "SJ", "SL", "SM", "SN", "SO", "SR", "SS", "ST", "SV", "SX", "SY", "SZ", "TC", "TD", "TF", "TG", "TH", "TJ", "TK", "TL", "TM", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "UM", "US", "UY", "UZ", "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF", "WS", "XK", "YE", "YT", "ZA", "ZM", "ZW" ] } } ] } ``` Example Request ```shell curl -X POST \ 'https://api.wise-sandbox.com/v2/profiles/{profileId}/kyc-requirements/BUSINESS_AUTHORISATION_ID' \ -H 'Authorization: Bearer ' \ -F 'files=@""' \ -F 'files=@""' \ ``` Description ```text The identification document of one company Director. This document is required to verify authorization to act on the account on behalf of their organisation. It is only asked for if the Business Representative (the account creator) is not listed as a Director of the company. ``` Submission Data Example ```json { "version": "V1", "kycReviewId": "93a903ea-636c-4c86-a25c-cf6d2bd00e81" } ``` ### Error messages Your title No submissionData provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_AUTHORISATION_ID", "errors": [ { "code": "invalid_value", "ref": "submissionData", "detail": "submissionData must not be empty" } ] } ``` No kycReviewId provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_AUTHORISATION_ID", "errors": [ { "code": "invalid_value", "ref": "submissionData.kycReviewId", "detail": "kycReviewId must not be empty" } ] } ``` No data provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "detail": "No files or submissionData is submitted", "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_AUTHORISATION_ID", "errors": [] } ``` No files provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_AUTHORISATION_ID", "errors": [ { "code": "missing_value", "ref": "files", "detail": "No file has been provided" } ] } ``` Mismatching fileNames provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_AUTHORISATION_ID", "errors": [ { "code": "invalid_value", "ref": "files", "detail": "File - filenames mismatch", "attributes": { "acceptedValues": [ "xx.png" ] } } ] } ``` Multiple files provided without frontFileName field ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_AUTHORISATION_ID", "errors": [ { "code": "missing_value", "ref": "frontSideFilename", "detail": "No front side file name is provided" } ] } ``` Example Request ```shell curl -X POST \ 'https://api.wise-sandbox.com/v2/profiles/{profileId}/kyc-requirements/BUSINESS_ULTIMATE_BENEFICIAL_OWNER_ID' \ -H 'Authorization: Bearer ' \ -F 'submissionData={{submissionData}};type=application/json' \ -F 'files=@""' ``` Description ```text The Ultimate beneficial owner (UBO) ID document should be submitted for all the UBOs that have more than 25% share. To get the list of UBOs please refer to GET ubos endpoint under profile. Provide a clear copy of the ID document. The full document needs to be in frame and all information on the document needs to be visible. If the document has information on the backside we will need to see both sides of the document. We cannot accept expired documents. Even if the document has not expired, we cannot accept any document issued over 15 years ago. Accepted document types vary from the region the business located in. Please see below for the details. ``` Submission Data Example ```json { "data": { "documentType": "NATIONAL_ID", "shareholderId": "489209", "frontSideFileName": "image1.jpeg", "backSideFileName": "image2.jpeg", "ssn": null }, "version": "V1", "kycReviewId": "93a903ea-636c-4c86-a25c-cf6d2bd00e81" } ``` Submission Data Example with SSN ```json { "data": { "documentType":"SSN", "shareholderId":"489209", "frontSideFileName": null, "backSideFileName": null, "ssn": "555501234" }, "version": "V1", "kycReviewId": "93a903ea-636c-4c86-a25c-cf6d2bd00e81" } ``` documentType Accepted Values ```text US Business Address (United States, American Samoa, Guam, North Mariana Islands, Puerto Rico, United States Virgin Islands, United States Minor Outlying Islands): SSN NON_US_DRIVING_LICENSE NON_US_NATIONAL_ID NON_US_PASSPORT EEA Business Address: NATIONAL_ID PASSPORT Outside above area: DRIVING_LICENSE NATIONAL_ID PASSPORT ``` ### Error messages Your title No submissionData provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_ULTIMATE_BENEFICIAL_OWNER_ID", "errors": [ { "code": "invalid_value", "ref": "submissionData", "detail": "submissionData must not be empty" } ] } ``` No kycReviewId provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_ULTIMATE_BENEFICIAL_OWNER_ID", "errors": [ { "code": "invalid_value", "ref": "submissionData.kycReviewId", "detail": "kycReviewId must not be empty" } ] } ``` No data provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "detail": "No files or submissionData is submitted", "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_ULTIMATE_BENEFICIAL_OWNER_ID", "errors": [] } ``` No files provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_ULTIMATE_BENEFICIAL_OWNER_ID", "errors": [ { "code": "invalid_value", "ref": "file", "detail": "No file was provided with a name that matches {fileName} for shareholderId: {shareHolderId}", "attributes": null } ] } ``` Invalid fileName provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_ULTIMATE_BENEFICIAL_OWNER_ID", "errors": [ { "code": "invalid_value", "ref": "file", "detail": "No file was provided with a name that matches xxx.png for shareholderId: {shareHolderId}", "attributes": null } ] } ``` Invalid shareHolderId provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_ULTIMATE_BENEFICIAL_OWNER_ID", "errors": [ { "code": "invalid_value", "ref": "shareholderId", "detail": "Shareholder does not exist", "attributes": null } ] } ``` Invalid documentType provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/BUSINESS_ULTIMATE_BENEFICIAL_OWNER_ID", "errors": [ { "code": "invalid_value", "ref": "documentType", "detail": "DocumentType cannot be associated with shareholder: {shareHolderId}", "attributes": { "acceptedValues": [ "NATIONAL_ID", "DRIVING_LICENSE", "PASSPORT" ] } } ] } ``` Example Request ```shell curl -X POST \ 'https://api.wise-sandbox.com/v2/profiles/{profileId}/kyc-requirements/PROOF_OF_TRADING_ADDRESS' \ -H 'Authorization: Bearer ' \ -F 'submissionData={{submissionData}};type=application/json' \ -F 'files=@""' \ -F 'files=@""' ``` Description ```text High-quality image or PDF of a document verifying the physical location of the business operations. The document must clearly display the business name (or owner's name), the full trading address, an issue date, and the issuer's identity (e.g., bank or utility logo). Utility bills and bank statements must be less than 3 months old. Other documents (like tax bills, insurance policies, or licences) must be less than 12 months old. The document must be in PDF, JPEG, or PNG format. Trading address id can be retrieved from business profile endpoint under addresses. ``` Submission Data Example ```json { "data": { "documentType":"UTILITY_BILL", "tradingAddressId" : 4711 }, "version": "V1", "kycReviewId": "93a903ea-636c-4c86-a25c-cf6d2bd00e81" } ``` documentType Accepted Values ```text ID_DOCUMENT UTILITY_BILL PHONE_BILL LEASE_AGREEMENT BANK_STATEMENT BUSINESS_REGISTRATION TAX_BILL TAX_DOCUMENT INSURANCE_POLICY OTHER ``` ### Error messages Your title No submissionData provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/PROOF_OF_TRADING_ADDRESS", "errors": [ { "code": "invalid_value", "ref": "submissionData", "detail": "submissionData must not be empty" } ] } ``` No kycReviewId provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/PROOF_OF_TRADING_ADDRESS", "errors": [ { "code": "invalid_value", "ref": "submissionData.kycReviewId", "detail": "kycReviewId must not be empty" } ] } ``` No data provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "detail": "No files or submissionData is submitted", "instance": "/v2/profiles/{profileId}/kyc-requirements/PROOF_OF_TRADING_ADDRESS", "errors": [] } ``` No files provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/PROOF_OF_TRADING_ADDRESS", "errors": [ { "code": "invalid_request", "ref": "files", "detail": "No files have been submitted for Proof of Trading Address", "attributes": null } ] } ``` Invalid documentType provided ```json { "type": "/errors/types/validation", "title": "Validation Error", "status": 400, "instance": "/v2/profiles/{profileId}/kyc-requirements/PROOF_OF_TRADING_ADDRESS", "errors": [ { "code": "invalid_value", "ref": "documentType", "detail": "Invalid documentType provided", "attributes": { "acceptedValues": [ "IDENTITY_CARD", "UTILITY_BILL", "PHONE_BILL", "LEASE_AGREEMENT", "BANK_STATEMENT", "BUSINESS_CERTIFICATE", "TAX_BILL", "TAX_RETURN", "OTHER", "OTHER" ] } } ] } ```