Account onboarding enhancements
Redesigned onboarding mutations and queries with cleaner naming, typed responses, and improved data collection for enhanced risk assessment and regulatory compliance.
Target availability
This API is now in beta and available for testing.
Overview
We are introducing a redesigned onboarding API that replaces the existing mutations and queries. The new API provides improved developer experience through consistent naming conventions, structured input types, and typed responses.
What's changing
| Aspect | Current API | New API |
|---|---|---|
| Naming | Mixed patterns (onboardIndividualAccountHolder, unauthenticatedOnboardPublic...). | Consistent pattern (createIndividualAccountHolderOnboarding, createPublicIndividualAccountHolderOnboarding). |
| Input structure | Flat input with all fields at root level. | Nested structure with accountInfo, accountAdmin, and company objects. |
| Data requirements | Limited data collection. | New fields to strengthen risk assessment and compliance. |
| Response types | Generic Onboarding type for all responses. | Typed IndividualAccountHolderOnboarding and CompanyAccountHolderOnboarding. |
| Registry data | Automatically populates empty onboarding fields. | Dedicated query; no auto-population. |
Authentication patterns
The new API uses a consistent pattern across all endpoints.
| Endpoint type | Token required | Use case |
|---|---|---|
Public mutations and queries | None | Public onboarding links. Only available if public URLs are enabled in the Dashboard. |
| Standard mutations and queries | Project access token | Backend integrations, partner-initiated onboarding. |
finalize mutation | User access token | Completing onboarding after user identification. |
Individual onboarding
Create an individual onboarding
Call the createIndividualAccountHolderOnboarding mutation with a project access token.
| New mutation | Replaces |
|---|---|
createIndividualAccountHolderOnboarding | onboardIndividualAccountHolder |
createPublicIndividualAccountHolderOnboarding | unauthenticatedOnboardPublicIndividualAccountHolder |
The input uses a nested structure with two required objects:
accountInfo: Account-level details (country,name).accountAdmin: Individual's personal information (email,employmentStatus,monthlyIncome,address,sourcesOfFunds(new), etc.).
input CreateIndividualAccountHolderOnboardingInput {
accountInfo: IndividualAccountHolderOnboardingAccountInput!
accountAdmin: IndividualAccountHolderOnboardingAccountAdminInput!
oAuthRedirectParameters: OAuthRedirectParametersInput
}
Update an individual onboarding
Call the updateIndividualAccountHolderOnboarding mutation with a project access token.
| New mutation | Replaces |
|---|---|
updateIndividualAccountHolderOnboarding | updateIndividualOnboarding |
updatePublicIndividualAccountHolderOnboarding | unauthenticatedUpdateIndividualOnboarding |