Skip to main content

Send Investor Document


Introduction​

This resource uploads a document that is part of the investor's registration analysis. The required documents vary according to the investor's person_type and investor_sub_type, as well as their category (retail, qualified, professional).

Attention
  • This endpoint must be called once for each required document
  • The registration analysis must be in the pending_registry_data status. In any other status, the call is rejected with IVR000026
  • The same type only accepts one successful upload: see Retry and duplicate document

Input / Output​

As input, send the file content in base64, the document type and the extension.

As output, the representation of the created document is returned, identified by investor_analysis_document_key, along with the full representation of the registration analysis it belongs to.

Request​

ENDPOINT
/investor_registry/v2/investor/{investor_key}/investor_analysis/{investor_analysis_key}/document
METHOD
POST
STATUS
201

Query params​

FieldTypeDescriptionRequired
forcebooleanIf true, forces the upload even when a prior validation has failed. The document necessarily goes to manual analysis.No

Request body​

Example: CNH (Natural Person)
Request Body
{
"type": "cnh",
"document_b64": "base64_encoded_document_content",
"file_extension": "pdf",
"document_data": {
"document_type": "CNH",
"issuer_entity": "DETRAN"
}
}
Example: RG (front and back)
Request Body — Front
{
"type": "rg_front",
"document_b64": "base64_encoded_document_content",
"file_extension": "jpeg",
"document_data": {
"document_type": "RG",
"issuer_entity": "SSP",
"document_number": "20.932.206-8"
}
}
Request Body — Back
{
"type": "rg_back",
"document_b64": "base64_encoded_document_content",
"file_extension": "jpeg"
}
Example: CNPJ Card (Legal Entity)
Request Body
{
"type": "cnpj_card",
"document_b64": "base64_encoded_document_content",
"file_extension": "pdf"
}

Body params​

FieldTypeDescriptionCharactersRequired
typestringDocument Type enumerator-Yes
document_b64stringFile content encoded in base64-Yes
file_extensionstringFile extension. Accepted values: pdf, jpeg-Yes
document_dataobjectFree-form document metadata (e.g. number, issuing body)-No
observationstringFree-form note about the documentup to 500No

Document Type​

Natural person identification and proofs​

EnumeratorDescriptionExtensions
cnhCNH (driver's license)pdf, jpeg
rg_frontRG — frontpdf, jpeg
rg_backRG — backpdf, jpeg
passportPassport (foreigner identification)pdf, jpeg
foreign_idForeign identity document (e.g. RNE)pdf, jpeg
proof_of_residenceProof of residencepdf, jpeg
billing_statementInvoice / statementpdf, jpeg
EnumeratorDescriptionExtensions
cnpj_cardCNPJ cardpdf, jpeg
social_contractArticles of associationpdf, jpeg
company_statuteBylawspdf, jpeg
board_election_recordStatutory election minutespdf, jpeg
financial_statementsFinancial statementspdf, jpeg
organizational_chartCorporate organizational chartpdf, jpeg

Representation, qualification and contracts​

EnumeratorDescriptionExtensions
power_of_attorneyPower of attorneypdf, jpeg
investor_qualification_proofProof of qualification / classificationpdf, jpeg
wallet_manager_contractManaged portfolio / intermediation contractpdf, jpeg
extra_documentStandalone document, with no specific typepdf, jpeg

Non-resident investor​

EnumeratorDescriptionExtensions
custody_contractCustody contractpdf, jpeg
representation_contractRepresentation contractpdf, jpeg
simplified_declarationSimplified declarationpdf, jpeg
final_departure_tax_returnFinal tax return for permanent departure from the countrypdf, jpeg
Types generated by QI Tech

The qualified_investor_term, professional_investor_term, natural_person_registry_form, legal_person_registry_form, investor_suitability_form and adhesion_term types appear in the investor query, but they are generated by QI Tech for signature — they must not be sent through this endpoint.

Required Documents​

The combinations below are alternative sets: it is enough to satisfy one of the options in each list. The validation runs when the registration is sent for analysis (submit) and rejects with IVR000029, returning in the message the exact matrix that was missing.

Natural Person (natural_person)​

One of the options:

OptionDocuments
1cnh + proof_of_residence
2rg_front + rg_back + proof_of_residence

One of the options — always at least one corporate document and the financial statements:

OptionDocuments
1board_election_record + financial_statements
2company_statute + financial_statements
3social_contract + financial_statements

The required corporate document depends on the company's legal type — hence the three options. It is not possible to send only financial_statements.

Required documents

Although these documents are the minimum for submitting an analysis, if, for example, the company_statute alone is not enough to define the quotaholder's signatories and powers, the analysis may be rejected, also requiring the board_election_record.

No document is required. The fund data is obtained through enrichment from the CVM database, and representation is done by the investor owners (administrator and manager).

Retry and duplicate document​

A document type is considered satisfied as soon as there is, for that analysis, a document of that type with the valid or in_manual_analysis status. From then on, new uploads of the same type are rejected:

HTTP 409
{
"title": "Already exists valid document for investor analysis.",
"code": "IVR000023"
}

While all documents of a type are invalid, new uploads of that type are still accepted — this is how an illegible file is corrected.

The extra_document type is the only exception: it always accepts multiple uploads.

Automatic validation and document status​

Documents of the cnh, rg_front, rg_back and proof_of_residence types go through automatic validation (OCR) and come back with one of the statuses below. The other types go directly to in_manual_analysis.

StatusMeaning
validAutomatically validated
in_manual_analysisReferred to human review
invalidRejected in the automatic validation — resend, or use force=true

force=true skips the effect of the automatic rejection: the document is recorded as in_manual_analysis and starts to satisfy the type requirement.

About investor_qualification_proof

This document is not part of the required matrix and its absence never blocks the submit. It comes into play later: if the declared total_financial_applications is below the floor of the informed category — R$ 1,000,000 for qualified, R$ 10,000,000 for professional — it is used for the validation. fund_class investors are exempt from this check.

Response​

Response Body
{
"investor_analysis_document_key": "UUID",
"type": "cnh",
"status": "in_manual_analysis",
"observation": "Documento emitido em 2019, legibilidade reduzida no verso.",
"data": {
"type": "cnh",
"file_extension": "pdf",
"document_data": {
"document_type": "CNH",
"issuer_entity": "DETRAN"
}
},
"investor_analysis": { }
}
FieldTypeDescription
investor_analysis_document_keystringDocument identifier. It is the key used in the other document routes
typestringDocument Type enumerator
statusstringvalid, invalid or in_manual_analysis — see Automatic validation
observationstringNote sent in the request. null when not provided
dataobjectEcho of the fields sent, without the base64 content
investor_analysisobjectFull representation of the registration analysis — same format as Query Information of an Investor Registration Analysis

Errors​

Authentication, permission and host errors: see API Errors.