Skip to main content
A business must pass WisdomTree’s KYB review before it can trade. The business onboards through the KYB endpoints of its organization. Set provider to wisdomtree in each request. Privy forwards the data to WisdomTree. WisdomTree reviews submissions asynchronously. Privy does not store the KYB data.

Onboarding flow

  1. Your app’s server submits the business data. The request also answers WisdomTree’s agreements.
  2. WisdomTree reviews the submission. The status starts as pending.
  3. WisdomTree may need changes. The status then moves to action_required. Your app answers each correction, and Privy submits the business again.
  4. Once the status is approved, the organization can register wallets and trade.
The review uses these statuses:

Submit verification data

To submit an organization’s KYB data, send a POST request to:

Parameters

The body holds the business data and its answers to WisdomTree’s agreements.
'wisdomtree'
required
The fund provider.
'sandbox' | 'production'
The WisdomTree environment of the submission. Defaults to production. Use sandbox to test. See how the sandbox works.
object[]
The WisdomTree agreements the business accepts.
object[]
The WisdomTree agreements the business does not confirm.
object
required
The business’s KYB data. See business data fields.
Each agreement of WisdomTree’s current set must be either in agreements or in declined_agreements. If the request does not match the current set, Privy returns a 400 that lists the agreement IDs and the current version. Use that response as the source of truth: the set can change.

Returns

The endpoint returns 202 Accepted with the organization’s KYB status. See the status fields.
If WisdomTree does not answer, Privy returns 502 with the code provider_unavailable. Retry after a few minutes.

Example

This request submits a United States corporation with one owner.
Example response

Business data fields

data uses the same shape as headless KYB. The same rules apply to its shared fields:
  • The business details and addresses.
  • identifying_information and associated_persons.
  • documents.
Country codes use ISO 3166-1 alpha-3. Unlike headless KYB, data has no investor status. WisdomTree also reads the fields below. The request does not require them. WisdomTree may still ask for them in a correction.
The status of aml_program and blockchain_monitoring is implemented, in_progress, not_implemented, or not_applicable. The status of independent_compliance_testing is completed, scheduled, not_completed, or not_applicable. Each associated person can also include is_director, is_regulatory_notices_recipient, is_us_person, politically_exposed_person (is_pep and details), delegation (is_delegated), and relationship_established_at.

Check the review status

To check the status, send a GET request to:
Add environment=sandbox to the query to read the sandbox status. The response lists one status for WisdomTree, in that environment:
Example response

Status fields

The submit, status, and corrections endpoints all return these fields.
'wisdomtree'
The fund provider.
'sandbox' | 'production'
The WisdomTree environment of the status.
string
The organization’s KYB status. See the onboarding flow.
object
The KYB review.
string[]
The fields WisdomTree needs corrected, by the provider’s field paths.
string[]
Fields WisdomTree may ask for later.
object | null
What WisdomTree needs corrected, while the status is action_required. null otherwise.

Answer corrections

While the status is action_required, resubmission.reasons lists what WisdomTree needs. Answer each reason by its id. Send a POST request to:
Once your app answers every reason, Privy submits the business to WisdomTree again. The status then moves back to pending.

Parameters

Each reason has a required_action. It tells your app which field to send.
'wisdomtree'
required
The fund provider.
'sandbox' | 'production'
The WisdomTree environment of the submission to correct. Defaults to production. Use sandbox to test. See how the sandbox works.
boolean
required
Whether the business attests that the answer is accurate. false withdraws an earlier answer.
object
Corrected values by the provider’s field path, e.g. {"org_details.tax_id": "98-7654321"}. For reasons with required_action set to resubmit_corrected.
string
A base64 data URI of a PDF, JPEG, or PNG file. For reasons with required_action set to upload_replacement_document or upload_additional_document.
string
A written answer. For reasons with required_action set to provide_explanation.

Returns

The endpoint returns the organization’s KYB status. See the status fields.

Example

This request answers reason 5 with a new tax ID.
If WisdomTree rejects an answer, for example a document that does not match what the reason asks for, Privy returns 400 with WisdomTree’s message. The reason stays unanswered.

Next steps

Once WisdomTree approves the business, register its wallets.

Register wallets

Register the organization’s wallets with WisdomTree.

Webhooks

Receive tmmf.kyb.updated when WisdomTree takes a submission.