4.8 Submit Questionnaire

POST /resources/applicants/{applicantId}/questionnaires
Content-Type: application/json

Request body:

{
  "id": "beforeWeFinishWeJust",
  "sections": {
    "workAndIncome": {
      "items": {
        "occupation": { "value": "Analyst" },
        "industryYouWorkFor": { "value": "Finance and Insurance" },
        "workStatus": { "value": "Full Time" }
      }
    },
    "section2": {
      "items": {
        "sourceOfFunds": { "value": "Salary" },
        "expectedMonthVolume": { "value": "$0 - $1,999" },
        "expectedAnnualIncome": { "value": "$50,000 - $74,999" }
      }
    },
    "cardholderAgreementA": {
      "items": {
        "cardTermsConditionsAccept": { "value": "true" }
      }
    }
  }
}

Expected response: 200 on success.

4.9 Preflight: Required Steps Status

GET /resources/applicants/{applicantId}/requiredIdDocsStatus

Inspect the response before moving the applicant to pending. Every required step should show as fulfilled. If a step is incomplete, Sumsub may not process the review correctly.

Use this call in integration tests and logging.

4.10 Request Review

Move the applicant to pending when all required data, documents, and questionnaire answers have been submitted.

POST /resources/applicants/{applicantId}/status/pending

Optional Query Parameter

?reason=Your+reason+string

Expected response: 200 when the applicant is queued for automated or manual review.

After this call, the applicant is locked for editing until the review completes or is reset.

4.11 Get Review Result

Option A: Polling

Polling is the simplest option to start during early integration.

GET /resources/applicants/{applicantId}/status

Poll every 5 to 10 seconds until reviewStatus is completed.

Option B: Webhooks

Webhooks are recommended for production result handling. Sumsub sends the applicantReviewed result to Payblr, and Payblr processes the final KYC outcome according to the configured onboarding flow.

Polling is acceptable for early integration, but production implementations should use the agreed Payblr result delivery process.

Example Completed Response

{
  "reviewStatus": "completed",
  "reviewResult": {
    "reviewAnswer": "GREEN",
    "reviewRejectType": null,
    "rejectLabels": []
  }
}

Review Answer Values

reviewAnswer Meaning
GREEN Approved.
RED Rejected or retry required. Inspect rejectLabels and reviewRejectType.

Review Reject Type Values

reviewRejectType Meaning
RETRY User may resubmit corrected documents.
FINAL Final rejection.