sections → items. A single-select item uses
{ "value": "..." }; a multi-select uses { "values": [ ... ] }. Country items
take a 3-letter code. Only the format is checked here, not whether the country
exists.
Shape
The questionnaire is set on create only. It cannot be updated afterwards —
sending one on update is
400 ERRCUS_1303.Reading answers back
Get customer returns the questionnaire in a different shape from the one you submit:- Only
questionnaireIdand the customer’s answers come back. The blank form — the sections, items and option catalogue, identical for every customer — is not returned. answersis flattened to{ "<sectionId>": { "<itemId>": value } }. There is noitems/valuewrapper; that exists only on the submit payload.- A single-select answer is a scalar (
"accountPurpose": "payroll"); a multi-select or country-multi answer is an array ("nationalities": ["ARE"]). questionnaireIdisendlIndividualProfileQuestionnairenewfor an individual andendlKybQuestionnaireBridgeTestfor a business.- The whole field is omitted until a questionnaire has been submitted.
Individual
Business
businessActivity.pleaseSelectAllActiv is
an array and every other answer is a scalar. Conditional items that were not
triggered — ifOtherPleaseSpecify, for instance — are simply absent.
Individual questionnaire
Items marked required if are only needed when their trigger question has the stated value.Occupation
All 50 codes.Annual salary
Account purpose
Expected monthly volume
Custom fields
Sent ascustomFields, alongside the questionnaire rather than inside it.
An unknown key returns
400 ERRCUS_1321, with field: "customFields.foo". A
required key that is missing is ERRCUS_1322, and an empty value is ERRCUS_1323.
Business questionnaire
ifYesPleasePro_gd5nk is a file item. This file item can’t be sent through
the JSON API, and leaving it out does not fail create. No document type satisfies
it.Business industry
Source of funds
Estimated annual revenue
Business activities
Multi-select — send any number of these invalues.