Registration analysis life cycle
Introduction
After the submit, the registration analysis no longer depends on you and starts evolving asynchronously. This page describes the steps of the flow, in which situations the registration requires your action again and how to track all of it by webhook.
The steps of the flow
The registration goes through the sequence below — always forward. Steps 3 and 4 are conditional: a registration with no pending items goes straight from the automatic analysis to approval. No step sends the analysis back to filling: when compliance needs a clarification, it opens a feedback without changing the analysis status.
| # | Step | Analysis status | Who acts |
|---|---|---|---|
| 1 | Filling — registration data, address, net worth, suitability, accounts, related parties and documents | created → pending_registry_data | You |
| 2 | Automatic analysis — risk and AML engines process the registration and produce a decision: approval, rejection, or routing to human review | sent_to_analysis | QI Tech (automatic) |
| 3 | Manual analysis (conditional) — an analyst reviews the registration data. This step is skipped when the registration is approved automatically | in_manual_analysis | QI Tech (analyst) |
| 4 | Compliance analysis (conditional) — AML/compliance review. Also skipped when the registration is approved automatically. This is the step in which a feedback may be opened asking for clarifications | in_compliance_analysis | QI Tech (analyst) — and you, if a feedback is opened |
| 5 | Documents and signature — once the analysis is approved, QI Tech generates the batch of formalization documents and the registration moves on to signature | automatically_approved / manually_approved → pending_documents | Depends on your account's configuration |
| 6 | Conclusion — the investor is able to operate | analysis_complete | — |
A complete registration with no risk indicators goes from sent_to_analysis straight to automatically_approved. When you see in_manual_analysis or in_compliance_analysis, it only means that registration was routed to human review — it is not an error and requires no action from you while it lasts.
Generating the documents and collecting the signature vary depending on whether your integration is configured for QI Tech to take on those responsibilities, for opt-in signature, or for external generation and signature. See Fetch Document Batches for Signature and confirm with your technical contact how your account is configured.
When the registration needs your action
There are three situations, and only three, in which the ball is in your court after the submit:
| Situation | Signal | What to do |
|---|---|---|
| Feedback opened | A feedback with status: open — the analysis stays in in_compliance_analysis | Reply to the feedback message. Your reply closes it (closed) and compliance resumes its evaluation. There is no new submit. |
| Manual rejection | manually_reproved | Open a new registration analysis with the corrections from the opinion. |
| Signature | pending_documents | Submit signed documents, or wait for the quotaholder's signature, depending on the configuration/role. |
In all other statuses — sent_to_analysis, in_manual_analysis, in_compliance_analysis with no feedback open, automatically_approved, manually_approved — the registration is with QI Tech and there is nothing to do but wait.
Feedback: request for clarification
It happens in step 4, the compliance analysis. When the compliance analyst needs additional information or a clarification to conclude the evaluation, they open a feedback with the message describing what needs to be clarified.
The analysis does not go back. It stays in in_compliance_analysis throughout the whole feedback cycle — it does not return to pending_registry_data, does not reopen for editing and does not need a new submit. The feedback runs in parallel with the analysis: it opens as open, you reply, it becomes closed and compliance carries on from where it stopped.
- Receive the notice through the
investor_registry.feedback_status_changewebhook, withstatus: open - Read the request with List Feedbacks, using
origin_type=investor_analysiswith theinvestor_analysis_key, andorigin_type=related_party_analysiswith eachexternal_related_party_key. The text is indescriptionand in themessageshistory - Reply with Send Message in Feedback — your message is the reply to the request
- The feedback is closed (
closed) and a newinvestor_registry.feedback_status_changeis fired. Nothing else is required from you
The manual analysis step (step 3) does not open feedbacks: it ends in approval or rejection. If your integration received a feedback, it came from the compliance analysis.
Since the analysis stays in in_compliance_analysis, no status change signals an open feedback. The only notification is the investor_registry.feedback_status_change webhook. An integration that only watches the analysis status will not notice the request — and the registration will sit in compliance waiting for a reply that will never come.
Staying in in_compliance_analysis means the filling endpoints — registration data, documents, related parties, accounts — keep rejecting changes. The channel for replying to the feedback is the message. If the clarification requires changing the registration itself, compliance will reject the analysis and you will open a new one through Registration Update.
Sending the message moves the feedback from open to closed — there is no need to wait for a QI Tech analyst to close it. If the reply is not sufficient, compliance opens a new feedback.
Rejection
Rejection is the most common path when a registration is not approved, and it comes in two forms:
automatically_reproved— a compliance rejection, applied automatically right after thesubmit, still in step 2. The registration does not even reach human review.manually_reproved— a rejection by an analyst, in step 3 or 4, when the registration does not meet the minimum data for approval. It comes with an opinion.
In both cases the analysis is terminal: it does not go back, and none of its data can be changed any more — attempts to update related parties, accounts or documents are rejected with IVR000185.
The way forward is to open a new registration analysis for the same investor, through Registration Update, and redo the filling with the indicated corrections.
The feedback does not change the analysis status: it stays in in_compliance_analysis and the request is resolved with a message. The rejection ends the analysis and requires starting a new one. If your integration treats both cases the same, it will open unnecessary analyses — or fail to open the ones it needs.
Analysis status reference
| Status | Step | Meaning | Action expected from you |
|---|---|---|---|
created | 1 | Analysis just opened | Fill in the registration data |
pending_registry_data | 1 | Awaiting data and documents for the initial submission | Complete it and send the submit |
sent_to_analysis | 2 | Being processed | Wait |
in_manual_analysis | 3 | Under review by an analyst (conditional step) | Wait |
in_compliance_analysis | 4 | Under compliance review (conditional step) | Wait — or reply to the feedback, if one is opened |
automatically_approved | 5 | Approved with no human intervention | Wait for the documents to be generated |
manually_approved | 5 | Approved by an analyst | Wait for the documents to be generated |
pending_documents | 5 | Documents generated, awaiting signature | Depends on your account's configuration |
automatically_reproved | — | Automatically rejected by the compliance analysis | Open a new registration analysis |
manually_reproved | — | Rejected by an analyst, with an opinion | Open a new registration analysis with the corrections |
analysis_complete | 6 | Registration complete — the investor is able to operate | None |
expired | — | Registration expired (2 years after conclusion) | Open a new analysis for renewal |
pending_registry_data is not a return statusIt appears only once, during the initial filling, before the first submit. No later step sends the analysis back to this status — in particular, opening a feedback does not.
Webhooks
Tracking by webhook is the recommended way to follow the analysis — the alternative is periodically querying Query investor information, which does not scale.
Webhooks are configured internally by QI Tech, per integration. There is no public registration endpoint. Tell your technical contact the URL that should receive the notifications and which events you want to subscribe to.
Available events
| Event | When it fires |
|---|---|
investor_registry.investor_analysis_result | Result of the automatic analysis — leaving sent_to_analysis for automatically_approved, in_manual_analysis or automatically_reproved |
investor_registry.investor_analysis_status_change | Any other change of the analysis status, including the manual decisions (manually_approved, manually_reproved) and entering pending_documents |
investor_registry.feedback_status_change | Opening and closing of a feedback — see Feedback webhooks |
investor_registry.document_batch_status_change | On every status change of the document batch for signature |
Event format — analysis
Analysis events carry the analysis key and the new status:
{
"webhook_type": "investor_registry.investor_analysis_status_change",
"webhook_datetime": "2026-07-31T21:47:46Z",
"data": {
"investor_analysis_key": "UUID",
"status": "in_compliance_analysis"
}
}
Feedback webhooks
The investor_registry.feedback_status_change is the only notice that a feedback was opened or closed. Since the analysis stays in in_compliance_analysis throughout the whole feedback cycle, no analysis event is fired alongside it — whoever does not subscribe to this event will not learn about the request.
The same webhook_type covers both ends of the cycle, distinguished by the status field:
status | When it fires | Action expected from you |
|---|---|---|
open | Compliance opened a feedback with a request for clarification | Read the request and reply with Send Message in Feedback |
closed | The feedback was closed by your reply | None — it is the confirmation that the request was resolved |
Feedback opening:
{
"webhook_type": "investor_registry.feedback_status_change",
"webhook_datetime": "2026-07-31T21:47:46Z",
"data": {
"investor_analysis_key": "UUID",
"feedback_key": "UUID",
"status": "open",
"origin_type": "investor_analysis",
"origin_key": "UUID"
}
}
Feedback closing, fired right after your message:
{
"webhook_type": "investor_registry.feedback_status_change",
"webhook_datetime": "2026-07-31T22:12:03Z",
"data": {
"investor_analysis_key": "UUID",
"feedback_key": "UUID",
"status": "closed",
"origin_type": "investor_analysis",
"origin_key": "UUID"
}
}
| Field | Type | Description |
|---|---|---|
investor_analysis_key | string | Registration analysis the feedback belongs to |
feedback_key | string | Feedback identifier |
status | string | open or closed — Feedback Status enumerator |
origin_type | string | Origin Type enumerator — investor_analysis or related_party_analysis |
origin_key | string | Key of the origin entity: the investor_analysis_key or the external_related_party_key |
The event carries only the keys and the new status — it does not bring the text of the request. On receiving an open, call List Feedbacks with the origin_type and the origin_key from the event to read the description and the messages history.
Subscribe, at a minimum, to investor_analysis_result, investor_analysis_status_change and feedback_status_change. Together they cover the three situations in the When the registration needs your action section: the automatic rejection arrives in the first; the manual rejection and the move to signature, in the second; the request for clarification, in the third — and only in the third.