Registration analysis lifecycle
Introduction
After the submit, the registration analysis no longer depends on you and evolves asynchronously. This page describes the stages of the flow, in which situations the registration requires your action again, and how to follow all of it via webhook.
The stages of the flow
The registration goes through the sequence below. Stages 3 and 4 are conditional: a registration with no pending issues goes straight from automatic analysis to approval. No stage sends the analysis back to data entry: when QI Tech needs a clarification, it opens a feedback without changing the analysis status.
Legend: a dashed box is an internal status that you will not see in practice (created is replaced by pending_registry_data in the same operation); blue, intermediate status; green, registration completed; red, terminal status without approval (rejection or cancellation).
| # | Stage | Analysis status | Who acts |
|---|---|---|---|
| 1 | Data entry — registration data, address, net worth, suitability, accounts, related parties and documents | pending_registry_data | You |
| 2 | Automatic analysis — risk and AML engines process the registration and produce a decision: approval, referral to human review or, for fund classes, rejection | sent_to_analysis | QI Tech (automatic) |
| 3 | Manual analysis (conditional) — an analyst reviews the registration data. This is where registration data feedbacks (registry_data) may be opened | in_manual_analysis | QI Tech (analyst) — and you, if a feedback is opened |
| 4 | Compliance analysis (conditional) — AML/compliance review. May open compliance feedbacks | 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 proceeds to signature | automatically_approved / manually_approved → pending_documents | Depends on your account configuration |
| 6 | Completion — the batch was signed and 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 the registration was referred to human review — it is not an error. Just keep an eye on open feedbacks.
Document generation and signature collection vary depending on whether your integration is configured for QI Tech to take on these 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 in which the ball is in your court after the submit:
| Situation | Signal | What to do |
|---|---|---|
| Open feedback | A feedback with status: open — the analysis does not change status | Reply to the feedback message. There is no new submit. |
| Rejection | manually_reproved or automatically_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 the other statuses — sent_to_analysis, in_manual_analysis and in_compliance_analysis with no open feedback, automatically_approved, manually_approved — the registration is with QI Tech and there is nothing to do but wait.
Feedback: request for clarification
When the analyst needs additional information or a clarification, they open a feedback with a message describing what needs to be clarified:
- registration data feedback (
category: registry_data) — opened with the analysis inin_manual_analysis; - compliance feedback (
category: compliance) — opened with the analysis inin_manual_analysisorin_compliance_analysis.
The analysis does not go back. 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: it is created open, becomes answered when you reply, and QI Tech closes it (closed) when the reply resolves the request.
- 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 — the feedback becomes
answered. There is no webhook at this point - QI Tech closes the feedback (
closed) and a newinvestor_registry.feedback_status_changeis triggered
Through the manager-api and consultant-api hosts there is no way to reply to a feedback via the API: the consultant can only list them. To reply, talk to the integration team at integracao.dtvm@qitech.com.br.
Since the analysis does not change status, no status change signals an open feedback. The notice is the investor_registry.feedback_status_change webhook, emitted only for feedbacks opened by an analyst (type: manual). Automatic feedbacks do not generate a webhook: query List Feedbacks while the analysis is in in_manual_analysis or in_compliance_analysis.
Outside pending_registry_data, the data entry endpoints — registration data, documents, related parties, accounts — reject changes. The channel for replying to the feedback is the message. If the clarification requires changing the registration itself, the analysis will be rejected and a new one will need to be opened.
Rejection
Rejection comes in two forms:
manually_reproved— rejection by an analyst, in stage 3 or 4, when the registration does not meet the minimum data for approval. It comes with an opinion.automatically_reproved— automatic rejection. It occurs in the fund class validation and, in sandbox, for documents starting with 1. In production, a rejection by the natural person and legal entity risk engines does not end the analysis: it goes toin_manual_analysis, where an analyst decides.
In both cases the analysis is terminal: it does not go back, and none of its data can be changed anymore — 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 and redo the data entry with the indicated corrections. The exception is the definitive rejection: the analysis comes back with is_definitive_reproval: true, without an opinion, the investor is deactivated and a new analysis is rejected with IVR000272.
Feedback does not change the analysis status and the request is resolved with a message. Rejection ends the analysis and requires starting a new one. If your integration treats both cases the same way, it will open unnecessary analyses — or fail to open the ones it needs.
Analysis status reference
| Status | Stage | Meaning | Action expected from you |
|---|---|---|---|
created | — | Internal creation status, replaced by pending_registry_data in the same operation | — |
pending_registry_data | 1 | Waiting for data and documents for the initial submission | Complete and send the submit |
sent_to_analysis | 2 | Processing | Wait |
in_manual_analysis | 3 | Under review by an analyst (conditional stage) | Wait |
in_compliance_analysis | 4 | Under compliance review (conditional stage) | Wait — or reply to the feedback, if one is opened |
automatically_approved | 5 | Approved without human intervention | Wait for document generation |
manually_approved | 5 | Approved by an analyst | Wait for document generation |
pending_documents | 5 | Documents generated, waiting for signature | Depends on your account configuration |
automatically_reproved | — | Automatically rejected (fund class; in sandbox, document starting with 1) | 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 completed — the investor is able to operate | None |
canceled | — | Analysis canceled before completion. Ends the analysis and the document batches not yet signed | Open a new analysis, if necessary |
expired | — | Reserved. Today the registration expiration is signaled in the investor status (registry_expired), not in the analysis status | — |
pending_registry_data is not a return statusIt appears during data entry, before the submit. No later stage of the automatic flow sends the analysis back to this status — in particular, opening a feedback does not.
Webhooks
Tracking via webhook is the recommended way to follow the analysis — the alternative is to periodically call 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 is triggered |
|---|---|
investor_registry.investor_analysis_result | Result of the automatic analysis — exit from sent_to_analysis to automatically_approved, in_manual_analysis, in_compliance_analysis or automatically_reproved |
investor_registry.investor_analysis_status_change | Analyst decisions: manually_approved, manually_reproved and the moves between in_manual_analysis and in_compliance_analysis. The entry into pending_documents, the cancellation and the completion (analysis_complete) do not trigger this event |
investor_registry.feedback_status_change | Opening and closing of a manual feedback — see Feedback webhooks |
investor_registry.document_batch_status_change | On each 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
investor_registry.feedback_status_change is the only notice that a feedback was opened or closed. Since the feedback does not change the analysis status, no analysis event is triggered with it — whoever does not subscribe to this event never learns about the request. It is emitted only for feedbacks opened by an analyst (type: manual); the transition to answered, when you reply, does not emit an event.
The same webhook_type covers both ends of the cycle, distinguished by the status field:
status | When it is triggered | Action expected from you |
|---|---|---|
open | QI Tech opened a feedback with a request for clarification | Read the request and reply with Send Message in Feedback |
closed | QI Tech closed the feedback after evaluating 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, triggered when QI Tech closes it:
{
"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 include the request text. When you receive an open, call List Feedbacks with the event's origin_type and origin_key to read the description and the messages history.
Subscribe, at a minimum, to investor_analysis_result, investor_analysis_status_change, feedback_status_change and document_batch_status_change. Together, they cover the three situations in the When the registration needs your action section: rejections arrive through the analysis events, the move to signature through the batch event and the request for clarification through the feedback event.