JavaScript SDK
The Parallel JavaScript Software Development Kit (SDK) helps partners quickly and easily integrate the Parallel Markets API into an existing website frontend. You can use JavaScript to request that users provide the information necessary for an identity (KYC/KYB) check or an accreditation certification (if they haven't provided this information already).
You do not need to make any server (aka, "backend") changes to take advantage of the JavaScript SDK integration. However, if you'd like the ability to make ongoing requests from a server context to the Parallel APIs, you will need to store the unique ID that Parallel provides at the end of a flow on your server (matched to your own internal representation of that person or business). Then, you'll be able to make ongoing calls against our Server API using that unique Parallel ID to get or update information.
If you're looking for the fastest way to test things out, check out our Example React App or our Example ES Module Site.
High Level Overview​
Once you've incorporated our JavaScript SDK into your website:
- Your site will describe the flow(s) a user is about to go through, and then show a button the user can click to initiate a Parallel flow.
- When the user clicks the button, a Parallel flow will be started (generally via an interstitial overlay on your site in an
iframe, ouroverlayflow type). You'll indicate the information you need (KYC/Identity, Accreditation, etc) via a list of scopes and the flow type (overlay, embedded, redirect) you'd like. - The user will provide any information / documents necessary to satisfy the scopes you requested (for themselves or a business they select), and they will then be returned to your site.
- You'll then be able to call the
getProfile()function to get the unique Parallel ID representing the individual or business that shared their data, which you can optionally send to your backend and save with your own representation of the individual/business. You can then make ongoing requests to read / update that subject's data using our Server API
Prerequisites​
Before you can use the JavaScript SDK, you'll first need to:
- Make sure you have access to your company's account on our demo site for testing. These accounts are generally set up when your company is onboarded, but if you need a new account please reach out to ids-partner-integrations@icapital.com. If your company is not yet a partner of Parallel Markets, please send a request to our sales team to discuss your needs.
- Set up a client in your company's settings on our demo site using the instructions in the Client Configuration section. You'll need the
client_idas a result of this step.
Once you've set up your client, you're ready to start using the SDK.
Getting Started​
If you use React, the next step is to check out our React Integration guide.
Otherwise, if you'd like to load our SDK as an ES module or directly via a <script> tag, see our JavaScript ES Module guide.
User Account Requirement​
All users must authenticate with iCapital Identity Services to complete a verification flow. There is no guest checkout or headless mode available.
Why Accounts Are Required​
Consent Management: Users must explicitly consent to share their information with each partner. The account stores these consent records for compliance and audit purposes.
Identity Linking: The account links a user's verified identity (documents, selfies, attestations) to a persistent record. This enables ongoing verification without re-submitting documents.
Portability: Users can reuse their verified credentials across multiple partner platforms. A user who completes identity verification for one partner doesn't need to re-verify for another.
Regulatory Compliance: Accreditation and identity verification require attestations from the user. These attestations must be tied to an authenticated identity for legal validity.
What This Means for Users​
- Users create an account with email and password on first use
- Subsequent verifications with any partner use the same account
- Users can log in to manage their information and view consent history
- The account is lightweight - most users authenticate once and stay logged in
Reducing Friction​
To minimize the account creation step:
- Pre-fill user data - Pass
first_name,last_name, andemailtologin()to proceed directly to email confirmation - Use the profile-first pattern - Create records via API before showing the widget so users see their data pre-filled
See Pre-filling User Data for implementation details.