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:

  1. EP fetches questionnaire schema.
  2. EP gathers and submits the EPC's answers for verification.
  3. BVNK validates whether all answers are provided:
    1. If YES: EPC transitions to the next onboarding state.
    2. 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:

FieldDescription
codeIndustry-specific code of the questionnaire
sectionsA list of questionnaires, each with its code and item-level answers
sections.codeUnique code of a section
items.codeUnique code of a question
items.valueEPC'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:

ParametersRequired?Description
customerReferenceNoEPC customer reference
codesNoQuestionnaire identifiers.
statusesNoStatus 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"
                    }
                ]
            }
        ]
    }
]