Skip to main content

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:

TypeDescription
kycThe KYC / due diligence onboarding form
subscriptionThe 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:

AttributeDescription
technicalCodeUnique identifier used to reference the step in API calls
labelDisplay name of the step
positionOrdering 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:

AttributeDescription
technicalCodeUnique identifier for this question
labelThe question label shown to the investor
dataStrategyHow the answer is stored (e.g., on the user entity, as a custom property, etc.)
isRequiredWhether an answer is mandatory
answerThe 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:

AttributeDescription
codeUnique machine-readable identifier
labelHuman-readable label
entityPropertyTypeThe data type (text, number, date, boolean, file, etc.)
referentialThe 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

OperationReference
Get KYC form steps for an accountGetKycFormSteps
Get questions for a specific stepGetKycForm
Submit answers for a stepAnswerKyc
List configurable formsGetConfigurableForms
List entity propertiesGetEntityProperties
Get account document typesGetAccountDocumentTypes