Vendor documents
Uploads, lists, downloads and cancels the documents of an analysis. The file goes in Base64 in the request body. Each call comes in two versions with the same contract: for documents of the vendor and for documents of each related party.
Upload and cancellation are only accepted while the analysis is in pending_submission (409, VRG000072). While the analysis is with QI Tech, a document only gets in as a response to an annotation. To make corrections on your own, withdraw the analysis from the queue.
Document types
document_type | Description | Individual vendor | Legal entity vendor | Related party |
|---|---|---|---|---|
social_contract | Articles of association | Yes | parent_company | |
company_statute | Bylaws | Yes | parent_company | |
board_election_record | Board election minutes | Yes | parent_company | |
commercial_board_certificate | Commercial registry certificate | Yes | parent_company | |
organizational_chart | Corporate organizational chart | Yes | parent_company | |
financial_statements | Financial statements | Yes | parent_company | |
power_of_attorney | Power of attorney | Yes | Yes | |
cnh | CNH (Brazilian driver's license) | Yes | Yes | |
rg | RG (front and back in one file) | Yes | Yes | |
rg_front | RG, front | Yes | Yes | |
rg_back | RG, back | Yes | Yes | |
identification_document | Identification document with no defined type; QI Tech reclassifies it as cnh or rg | Yes | Yes | |
passport | Passport | Yes, only with passport_number | ||
proof_of_residence | Proof of address | Yes | Yes | Yes |
extra_document | Additional document | Yes | Yes | Yes |
In the "Related party" column, "Yes" applies to individual parties. parent_company accepts the same types as a legal entity vendor.
Required to submit the analysis:
- Legal entity vendor:
social_contractorcompany_statute. - Individual vendor:
cnh,rg,rg_front+rg_backoridentification_document. - Each party with
is_representative: true: one of these same identification documents, orpassportwhen it has apassport_number. - Each party of type
attorney: its ownpower_of_attorney.
File rules:
- PDF, PNG, JPEG or ZIP, up to 20 MB;
- a new document of the same type cancels the previous one. The exception is
extra_document, which can be repeated.
Document status
| Status | Description |
|---|---|
valid | Accepted. Types without automated reading (proof_of_residence, financial_statements, organizational_chart, extra_document, passport) start in this status; individual identification documents too, when the CPF read matches the person's. |
in_manual_analysis | Waiting for QI Tech reading or review. Initial status of the other documents. |
invalid | Rejected by QI Tech. |
inconclusive | The automated reading was inconclusive; an analyst decides. |
canceled | Canceled by the manager or replaced by another one of the same type. |
Upload a vendor document
| Profile | Host | Required permission |
|---|---|---|
| Manager | manager-api | Write |
| Consultant | consultant-api | Active integration |
Base URL for each host: Environments (Hosts).
Path parameters
| Parameter | Type | Description |
|---|---|---|
analysis_key | string | Analysis key (UUID). |
{
"name": "contrato_social.pdf",
"document_type": "social_contract",
"document_b64": "JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwKL0xlbmd0aCAzIDAgUgo..."
}
Body attributes
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | File name, from 1 to 255 characters. |
document_type | string | Yes | Document type. See types. |
document_b64 | string | Yes | File content in Base64. |
Response
{
"document_name": "contrato_social.pdf",
"document_key": "d1e2f3a4-b5c6-4d7e-8f9a-0b1c2d3e4f5a",
"document_type": "social_contract",
"file_type": "pdf",
"analysis_key": "8c2a6f0e-1b3d-4f7a-9c1e-2a4b6d8f0c13",
"status": "in_manual_analysis",
"reference_date": null,
"data": null
}
Response attributes
| Field | Type | Description |
|---|---|---|
document_name | string | File name. |
document_key | string | Document key (UUID). |
document_type | string | Document type. identification_document may come back already reclassified. |
file_type | string | pdf, png, jpeg or zip, detected from the content. |
analysis_key | string | Analysis key. |
status | string | Document status. See status. |
reference_date | string | Reference date extracted from the document (latest consolidated amendment or issue date), YYYY-MM-DD, or null. |
data | object | Data extracted by the automated reading, or null. |
document_url | string | Only in the retrieval by key: presigned URL to download the file, valid for 24 hours. |
Upload a related party document
Same body and same response as the vendor document, with the additional related_party_key field in the response. The party must be linked to this analysis and cannot be inactive.
Permission: Manager (manager-api): Write. Consultant (consultant-api): Active integration.
List documents
Returns all documents of the analysis (or of the related party in this analysis), in any status, without a download URL and without pagination.
Permission: Manager (manager-api): Read. Consultant (consultant-api): Active integration.
{
"data": [
{
"document_name": "contrato_social.pdf",
"document_key": "d1e2f3a4-b5c6-4d7e-8f9a-0b1c2d3e4f5a",
"document_type": "social_contract",
"file_type": "pdf",
"analysis_key": "8c2a6f0e-1b3d-4f7a-9c1e-2a4b6d8f0c13",
"status": "valid",
"reference_date": "2025-03-14",
"data": null
}
]
}
Retrieve a document by key
Returns the document with document_url, a download link valid for 24 hours and served with the file's content type. After that, query again to get another link.
Permission: Manager (manager-api): Read. Consultant (consultant-api): Active integration.
{
"document_name": "cnh_joao.pdf",
"document_key": "e2f3a4b5-c6d7-4e8f-9a0b-1c2d3e4f5a6b",
"document_type": "cnh",
"file_type": "pdf",
"analysis_key": "8c2a6f0e-1b3d-4f7a-9c1e-2a4b6d8f0c13",
"status": "valid",
"related_party_key": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"reference_date": null,
"data": null,
"document_url": "https://<link-temporario-de-download>"
}
Cancel a document
Marks the document as canceled. Requires the analysis in pending_submission. Canceling an already canceled document returns 204 and changes nothing.
Permission: Manager (manager-api): Write. Consultant (consultant-api): Active integration.
No response body.
Errors
Registration already submitted for analysis
The analysis is not in pending_submission. After submission, attach the document by responding to an annotation or withdraw the analysis from the queue.
{
"title": "Vendor Registration Already Submitted",
"description": "The current analysis of the vendor 5d2e7b9a-3c4f-4e8a-b1d6-9f0a2c3e4b57 is no longer pending submission, so the registration cannot be edited.",
"translation": "Cadastro ja enviado para analise.",
"code": "VRG000072"
}
code | When it happens |
|---|---|
VRG000081 | document_type is not accepted for the vendor's person type. |
VRG000082 | document_type is not accepted for the related party type, or passport for a party without passport_number. |
VRG000080 | File larger than 20 MB. |
VRG000067 | document_b64 is not valid Base64. |
VRG000097 | The content is not PDF, PNG, JPEG or ZIP. |
{
"title": "Invalid Document Type For Vendor",
"description": "This person type of vendor does not accept the cnh document type.",
"translation": "O tipo de pessoa deste fornecedor nao aceita documentos do tipo cnh.",
"code": "VRG000081"
}
code | When it happens |
|---|---|
VRG000007 | The analysis_key does not exist. If the analysis belongs to a vendor you cannot see, the code is VRG000014. |
VRG000053 | The related_party_key is not linked to this analysis, or the party is inactive. |
VRG000003 | The document_key does not belong to this analysis (or to this party). |
Authentication, permission and host errors: see API Errors.
Next step
Bank account and Signer group, or go straight to the analysis submission.