Gather Compliance Data for Onboarding
This guide explains how to gather compliance data with questionnaires and integrate them into the EPC onboarding process.
Only required for the Business EPCs onboarding
To complete the onboarding of new Customers, you must provide their details for the KYC/KYB checks. To collect the information, Questionnaires with industry-related questions are used.
The system determines which questionnaire each customer needs to complete. The necessary questionnaires are listed in the infoRequired.questionnaires
field of the GET /platform/v1/customers/{reference}
endpoint.
The high-level flow of the process is the following:
- EP fetches questionnaire schema.
- EP gathers and submits the EPC's answers for verification.
- BVNK validates whether all answers are provided:
- If YES: EPC transitions to the next onboarding state.
- If NO: BVNK specifies missing fields. EP is requested to provide missing answers until all required details are submitted.
Retrieve Questionnaires
To retrieve all existing questionnaires, including sections, field types, and required inputs, send the GET /platform/v1/customers/questionnaire/definitions
request.
To retrieve specific questionnaires, send the GET /platform/v1/customers/questionnaire/definitions
request with industry codes
specified in the path.
GET /platform/v1/customers/questionnaire/definitions?codes=amlCryptoComplianceQuestionnaireFull
Customer-submitted documentsYou can use the following industry-related codes
to acquire a required questionnaire:
- Financial Services:
financialServicesQuestionnaireFull
- Digital assets/crypto:
amlCryptoComplianceQuestionnaireFull
- Gaming:
gamblingQuestionnaireFull
- Fintech:
fintechsQuestionnaireFull
- Other (unspecified):
otherQuestionnaireFull
If you don't specify
codes
, all available questionnaires will be loaded.
The response includes the required questions and types of answers that are expected to be provided. You can integrate the acquired questionnaire into your app or website front end.
Example response
[
{
"code": "amlCryptoComplianceQuestionnaireFull",
"title": "Digital Assets (Crypto) Questionnaire",
"description": "This questionnaire assesses AML/CFT and crypto compliance practices.",
"sections": [
{
"code": "nature_of_business_section",
"title": "Nature of Business",
"items": [
{
"code": "products_services_offered",
"title": "What products or services does your company offer?",
"type": "textArea",
"required": true
},
{
"code": "clients_served",
"title": "What types of clients do you plan to service through BVNK?",
"type": "selectDropdown",
"required": true,
"options": [
{
"value": "individuals",
"title": "Individuals"
},
{
"value": "corporates",
"title": "Corporates"
},
{
"value": "both",
"title": "Both"
}
]
},
{
"code": "exposure_prohibited_jurisdictions",
"title": "Exposure to prohibited jurisdictions?",
"type": "selectDropdown",
"required": true,
"options": [
{
"value": "yes",
"title": "Yes",
"score": 10
},
{
"value": "no",
"title": "No",
"score": 0
}
]
}
]
},
{
"code": "documentRequirementsGeneral",
"title": "Document requirements",
"items": [
{
"code": "certificateOfIncorpo",
"title": "Certificate of Incorporation",
"type": "fileAttachment"
},
{
"code": "amlPolicy",
"title": "AML Policy",
"type": "fileAttachment"
}
]
},
{
"code": "amlCompliance",
"title": "AML/CFT Compliance",
"items": [
{
"code": "travelRule",
"title": "Is your company required to comply with the Travel Rule?",
"type": "selectDropdown",
"required": true,
"options": [
{
"value": "yes",
"title": "Yes"
},
{
"value": "no",
"title": "No"
}
]
}
]
}
]
},
{
"code": "financialServicesQuestionnaireFull",
"title": "Financial Services Questionnaire",
"sections": [
{
"code": "nature_of_business_section",
"title": "Nature of Business",
"items": [
{
"code": "products_services_offered",
"title": "What products or services does your company offer?",
"type": "textArea",
"required": true
}
]
},
{
"code": "clientClassification",
"title": "Client Classification",
"items": [
{
"code": "clientType",
"title": "Does your company service retail or professional clients?",
"type": "selectDropdown",
"required": true,
"options": [
{
"value": "retail",
"title": "Retail"
},
{
"value": "professional",
"title": "Professional"
},
{
"value": "both",
"title": "Both"
}
]
}
]
}
]
}
]
Submit Questionnaire Responses
After the Customer answers all the questions, the questionnaire must be submitted for analysis and verification.
Ensure that the Customer provides the most comprehensive and complete answers to all required questions. Otherwise, the onboarding can be put on hold until BVNK receives the remaining details.
To submit completed questionnaire responses for a specific EPC customer, send the PUT /platform/v1/customers/{customerReference}/questionnaires
request with customerReference
specified in the path.
In the body, specify the following parameters:
Field | Description |
---|---|
code | Industry-specific code of the questionnaire |
sections | A list of questionnaires, each with its code and item-level answers |
sections.code | Unique code of a section |
items.code | Unique code of a question |
items.value | EPC's answer in the form of string, dropdown value, or file reference ID |
[
{
"code": "amlCryptoComplianceQuestionnaireFull",
"sections": [
{
"code": "nature_of_business_section",
"items": [
{
"code": "products_services_offered",
"value": "embedded"
}
]
}
]
}
]
In the successful response, you receive a message that the questionnaire has been submitted.
{
"status": "success",
"message": "Questionnaire submitted successfully."
}
Search Questionnaire Submissions
To search for previously submitted questionnaire responses, send the GET /platform/v1/customers/questionnaires
request with the following query parameters:
Parameters | Required? | Description |
---|---|---|
customerReference | No | EPC customer reference |
codes | No | Questionnaire identifiers. |
statuses | No | Status filter (INIT, OK, NOK). |
GET /platform/v1/customers/questionnaires?customerReference=52ec68a9-1ff1-4b7c-a8b5-0630de484e42\&codes=amlCryptoComplianceQuestionnaireFull\&statuses=INIT,OK,NOK
In the successful response, you receive the submitted questionnaires for a specified customer based on the added filters
[
{
"customerReference": "52ec68a9-1ff1-4b7c-a8b5-0630de484e42",
"questionnaireCode": "amlCryptoComplianceQuestionnaireFull",
"status": "OK",
"submittedDate": "2025-05-14T14:45:00Z",
"sections": [
{
"code": "nature_of_business_section",
"items": [
{
"code": "products_services_offered",
"value": "embedded"
}
]
}
]
}
]
Updated about 18 hours ago