Forms
Vasco uses a configurable form system to collect structured information from investors throughout their lifecycle. Forms are used for KYC onboarding, investment subscription, and any custom data collection defined by the issuer.
Configurable Form
A Configurable Form (ConfigurableForm) is a named form template with a specific purpose (ConfigurableFormType). The two most important form types are:
| Type | Description |
|---|---|
kyc | The KYC / due diligence onboarding form |
subscription | The investment subscription questionnaire |
Forms are organized into a sequence of steps, each grouping a set of related questions.
Form Step
A Configurable Form Step (ConfigurableFormStep) is a logical section of a form. Steps allow the form to be filled progressively (one section at a time) and can be conditional, based on answers to earlier questions.
Key attributes:
| Attribute | Description |
|---|---|
technicalCode | Unique identifier used to reference the step in API calls |
label | Display name of the step |
position | Ordering position within the form |
Retrieve the steps of an Account's KYC form:
query {
GetKycFormSteps(accountId: "123") {
technicalCode
label
position
# ...Other ConfigurableFormStep fields
}
}
→ Type reference: ConfigurableFormStep
Form Question
A Form Question (ConfigurableFormQuestion) represents a single question within a step. Questions can be of various types (text, number, date, boolean, single-choice, multi-choice, document upload, etc.).
Key attributes:
| Attribute | Description |
|---|---|
technicalCode | Unique identifier for this question |
label | The question label shown to the investor |
dataStrategy | How the answer is stored (e.g., on the user entity, as a custom property, etc.) |
isRequired | Whether an answer is mandatory |
answer | The current answer submitted for this account |
Retrieve all questions in a given step for an account:
query {
GetKycForm(accountId: "123", formStep: "identity") {
id
applicable
technicalCode
answer {
value
}
# ...Other FormQuestionWithAnswer fields
}
}
→ Type reference: FormQuestionWithAnswer
Entity Property
An Entity Property (EntityProperty) is a dynamic, configurable attribute that can be attached to different domain objects (accounts, users, investments, etc.). Entity properties allow issuers to extend the data model without code changes.
Key attributes:
| Attribute | Description |
|---|---|
code | Unique machine-readable identifier |
label | Human-readable label |
entityPropertyType | The data type (text, number, date, boolean, file, etc.) |
referential | The object type this property is attached to (account, user, investment, …) |
Entity properties are surfaced as form questions in KYC and subscription forms, and their values are stored as AccountEntityPropertyDocument or similar per-entity records.
query {
GetEntityProperties {
id
technicalCode
name
dataStrategy {
code
label
}
dataStrategyDefinition
type {
code
value
}
# ...Other EntityProperty fields
}
}
→ Type reference: EntityProperty
Answering a Form
Answers are submitted step by step using the AnswerKyc mutation. Each call submits a batch of answers for one step.
mutation {
AnswerKyc(
accountId: "123"
stepTechnicalCode: "identity"
formAnswers: [
{ technicalCode: "first_name", value: "Alice" }
{ technicalCode: "birth_date", value: "1985-04-12" }
]
) {
investorInfo {
lcbftLevel {
code
label
}
}
countryRiskDetailed {
code
label
}
ppeRiskDetailed {
code
label
}
# ...Other Account fields
}
}
→ Type reference: Account
Related Queries & Mutations
| Operation | Reference |
|---|---|
| Get KYC form steps for an account | GetKycFormSteps |
| Get questions for a specific step | GetKycForm |
| Submit answers for a step | AnswerKyc |
| List configurable forms | GetConfigurableForms |
| List entity properties | GetEntityProperties |
| Get account document types | GetAccountDocumentTypes |