Additional Customer Verification

Sometimes, additional customer verification are required to ensure we’re compliant with the regulations.

If a Wise partner has customers that meet all the criteria below, they must implement the verification APIs and webhooks mentioned on this page to avoid any disruptions.

  • connected customer model (we onboard and create a Wise account for every customer of the partner) and
  • customer’s address is in an EEA country and
  • customer creates a quote with source currency being an EEA currency

This is applicable for new customers being onboarded and also the existing customers.

Process

For new customers

During onboarding, customers would need to answer additional questions using account-purpose endpoint. This will trigger the process on our end. If any additional documents or explanations are required for any customer, it will be communicated to the partners via webhooks. You can subscribe to the associated webhook by using our guide here.

Depending on the information in the webhook, customers might need to send us documents or explanations via upload-document or upload-explanation endpoint respectively. Any updates to the verification process will still be communicated through the same webhook as above.

For existing customers registered before 1/1/2023

See [repapering] process here.

Sequence Diagram

CDD Flow Sequence Diagram

Subscribe to webhook

Subscribe to profiles#cdd-check-state-change event webhook to receive information about additional verification checks for a profile.

Webhook subscription
curl -X POST https://api.sandbox.transferwise.tech/v3/applications/{{clientKey}}/subscriptions \
-H 'Authorization: Bearer <client credential token>' \
-H 'Content-Type: application/json' \
-d '{
"name":"Webhook Subscription #1",
"trigger_on":"profiles#cdd-check-state-change",
"delivery":{
"version":"2.0.0",
"url":"https://your.webhook.url/12345"
}
}'

Provide account purpose

POST /v3/profiles/{{profileId}}/verification-status/account-purpose

Submits purpose of opening this account. We will use this information to perform additional verification checks on our end.

Payloads requirements are different for consumer and business profiles.

Payload for consumers
accountPurposetext

Possible values include:

  • MOVING_SAVINGS
  • SENDING_MONEY_TO_FRIENDS_OR_FAMILY
  • GENERAL_LIVING_EXPENSES
  • BUYING_GOODS_OR_SERVICES_ABROAD
  • PAYING_FOR_MORTGAGE_OR_LOAN
  • PAYING_BILLS
  • RECEIVING_SALARY_OR_PENSION
  • INVESTING
intendedCountriesarray of text

list of iso3 country codes

yearlyAnticipatedVolumetext

Values are in euros. Possible values include:

  • 0_2350
  • 2351_6000
  • 6001_11500
  • 11501_60000
  • 60001_175000
  • 175001_+
mainSourceOfIncometext

Values are in euros. Possible values include:

  • SALARY
  • INVESTMENTS
  • PENSION
  • INHERITANCE
  • LOAN
  • OTHER
annualIncometext

Values are in euros. Possible values include:

  • 0_11500
  • 11501_19000
  • 19001_28500
  • 28501_47500
  • 47501_75000
  • 75001_+
Payload for business customers
businessUseValuestext

Possible values include:

  • 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
mainSourceOfFundingtext

Possible values include:

  • BUSINESS_ACTIVITIES
  • INVESTMENTS
  • LOAN_OR_OTHER_FINANCING
  • DONATION
  • GRANTS
  • OTHER
monthlyAnticipatedVolumetext

Values are in euros. Possible values include:

  • 0_1200
  • 1201_6000
  • 6001_12000
  • 12001_60000
  • 60001_120000
  • 120001_235000
  • 235001_600000
  • 600001_1200000
  • 1200001_6000000
  • 6000001_12000000
  • 12000001_+
Response

Returns a 204 response - No Content

Example payload for Consumers
{
"accountPurpose" : "MOVING_SAVINGS",
"intendedCountries" : ["deu", "esp"],
"yearlyAnticipatedVolume" : "0_2350",
"mainSourceOfIncome" : "SALARY",
"annualIncome": "0_11500"
}
Example Payload for Business
{
"businessUse" : ["PAYING_SUPPLIERS_CONTRACTORS_OR_EMPLOYEES", "PAYING_RENT_OR_UTILITIES"],
"intendedCountries" : ["deu", "esp"],
"monthlyAnticipatedVolume" : "0_1200",
"mainSourceOfFunding": "BUSINESS_ACTIVITIES"
}
Example request for Consumer
curl -L -X POST 'https://api.sandbox.transferwise.tech/v3/profiles/{{profileId}}/verification-status/account-purpose' \
-H 'Authorization: Bearer <user access token>' \
-H 'Content-Type: application/json' \
-d '{
"accountPurpose": "MOVING_SAVINGS",
"intendedCountries": [
"deu",
"esp"
],
"yearlyAnticipatedVolume": "0_1200",
"mainSourceOfIncome": "SALARY",
"annualIncome": "0_11500"
}'

Upload document

POST /v3/profiles/{{profileId}}/verification-status/upload-document

Uploads the required documents (e.g. source of wealth document) for a particular profile.

  • The document must be clear and high quality.
  • The document needs to be a .jpg, .png., or .pdf file type up to 10MB in size.

Source of Wealth document

If SOURCE_OF_WEALTH is mentioned in the 'required_evidences' field of the [webhook]((/features/webhooks-notifications/event-types#cdd-check-state-change), then the consumer must provide a valid document depending on the source_of_income they provided in the account-purpose endpoint.

Here is a list of acceptable documents for each valid source_of_income.

Source of IncomeAcceptable documents
SALARYPaySlip (3 months worth)
3 months of Bank statements/transaction details confirming salary deposits
Statements from Payoneer/Paysera/PayAlly/PayPal etc
Tax return
Employment contract
Proof of employment
Unemployment allocation
Maternity/Paternity allowance/benefit
W2 Earnings Summary
Bolt courier report / Wolt, Uber or Bolt driver report or other similar
UpWork statement
E-commerce platform statement
Invoice (contractors only)
INVESTMENTSEmployee stock plan exercise confirmation
Investment/portfolio account statement
Dividend voucher
Share sale confirmation
Crypto wallet statement
Bank statement confirming income from investments
PENSIONPension statement
Bank statement confirming pension income
INHERITANCEGrant of Probate
Will
Trust Deed
Death certificate (as supporting doc)
Bank statement, confirming income from inheritance
LOANLoan Agreement with supporting bank statement showing the amount being received
OTHERFor example documents that proves:
Gift
Sold property
Receive money from family
Scholarship
Dividends
Renting out property
Lottery winnings
Divorce
Child support
Savings
Freelancing/Self-employed/Contractor
Example request
curl -L -X POST 'https://api.sandbox.transferwise.tech/v3/profiles/{{profileId}}/verification-status/upload-document' \
-H 'Authorization: Bearer <user access token>' \
-H 'Content-Type: multipart/form-data' \
-F 'files=@sow_document.png'

Upload explanation

POST /v3/profiles/{{profileId}}/verification-status/upload-explanation

Uploads the required explanations (e.g. if we find that your usage does not match your income, we'd ask you for additional explanation of your use case).

Payload

Payload
incomeExplanationstring

Explanation for income

accountPurposeExplanationstring

Explanation for account purpose

Example request
curl -L -X POST 'https://api.sandbox.transferwise.tech/v3/profiles/{{profileId}}/verification-status/upload-explanation' \
-H 'Authorization: Bearer <user access token>' \
-H 'Content-Type: multipart/form-data' \
-d '{
"incomeExplanation":"I have additional income coming from my shares",
"accountPurposeExplanation":"I intend to use Wise to send money to my Grandpa"
}'

Repapering

Repapering is performing additional verification for existing customers who had registered before 1/1/2023. Only a few selected partners would need to repaper their existing customers.

The process starts by calling an endpoint to get required evidences. This returns required evidences for a customer and should be called before a transfer is created.

  • If no evidence is required, then proceed to transfer as usual.
  • Otherwise, if one or more evidences required, then the customer should submit account purpose and the process will be similar to the flow above. Once verified, the customer may attempt to create a transfer again.

Sequence Diagram

CDD Flow Sequence Diagram

Get Required Evidences

POST /v3/profiles/{{profileId}}/verification-status/required-evidences

Fetches the required evidences for a profile to complete additional customer verification.

Example request
curl -X GET 'https://api.sandbox.transferwise.tech/v3/profiles/{{profileId}}/verification-status/required-evidences' \
-H 'Authorization: Bearer <user access token>'
Example Response
{
"required_evidences": []
}