Skip to main content

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_typeDescriptionIndividual vendorLegal entity vendorRelated party
social_contractArticles of associationYesparent_company
company_statuteBylawsYesparent_company
board_election_recordBoard election minutesYesparent_company
commercial_board_certificateCommercial registry certificateYesparent_company
organizational_chartCorporate organizational chartYesparent_company
financial_statementsFinancial statementsYesparent_company
power_of_attorneyPower of attorneyYesYes
cnhCNH (Brazilian driver's license)YesYes
rgRG (front and back in one file)YesYes
rg_frontRG, frontYesYes
rg_backRG, backYesYes
identification_documentIdentification document with no defined type; QI Tech reclassifies it as cnh or rgYesYes
passportPassportYes, only with passport_number
proof_of_residenceProof of addressYesYesYes
extra_documentAdditional documentYesYesYes

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_contract or company_statute.
  • Individual vendor: cnh, rg, rg_front + rg_back or identification_document.
  • Each party with is_representative: true: one of these same identification documents, or passport when it has a passport_number.
  • Each party of type attorney: its own power_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​

StatusDescription
validAccepted. 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_analysisWaiting for QI Tech reading or review. Initial status of the other documents.
invalidRejected by QI Tech.
inconclusiveThe automated reading was inconclusive; an analyst decides.
canceledCanceled by the manager or replaced by another one of the same type.

Upload a vendor document​

Available on
ProfileHostRequired permission
Managermanager-apiWrite
Consultantconsultant-apiActive integration

Base URL for each host: Environments (Hosts).

ENDPOINT
/vendor_registry/analysis/{analysis_key}/document
METHOD
POST

Path parameters​

ParameterTypeDescription
analysis_keystringAnalysis key (UUID).
Request body
{
"name": "contrato_social.pdf",
"document_type": "social_contract",
"document_b64": "JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwKL0xlbmd0aCAzIDAgUgo..."
}

Body attributes​

FieldTypeRequiredDescription
namestringYesFile name, from 1 to 255 characters.
document_typestringYesDocument type. See types.
document_b64stringYesFile content in Base64.

Response​

STATUS
201
Response body
{
"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​

FieldTypeDescription
document_namestringFile name.
document_keystringDocument key (UUID).
document_typestringDocument type. identification_document may come back already reclassified.
file_typestringpdf, png, jpeg or zip, detected from the content.
analysis_keystringAnalysis key.
statusstringDocument status. See status.
reference_datestringReference date extracted from the document (latest consolidated amendment or issue date), YYYY-MM-DD, or null.
dataobjectData extracted by the automated reading, or null.
document_urlstringOnly 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.

ENDPOINT
/vendor_registry/analysis/{analysis_key}/related_party/{related_party_key}/document
METHOD
POST

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.

ENDPOINT
/vendor_registry/analysis/{analysis_key}/documents
METHOD
GET
ENDPOINT
/vendor_registry/analysis/{analysis_key}/related_party/{related_party_key}/documents
METHOD
GET

Permission: Manager (manager-api): Read. Consultant (consultant-api): Active integration.

Response body
{
"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.

ENDPOINT
/vendor_registry/analysis/{analysis_key}/documents/{document_key}
METHOD
GET
ENDPOINT
/vendor_registry/analysis/{analysis_key}/related_party/{related_party_key}/documents/{document_key}
METHOD
GET

Permission: Manager (manager-api): Read. Consultant (consultant-api): Active integration.

Response body
{
"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.

ENDPOINT
/vendor_registry/analysis/{analysis_key}/document/{document_key}
METHOD
DELETE
ENDPOINT
/vendor_registry/analysis/{analysis_key}/related_party/{related_party_key}/document/{document_key}
METHOD
DELETE

Permission: Manager (manager-api): Write. Consultant (consultant-api): Active integration.

STATUS
204

No response body.

Errors​

STATUS
409
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"
}
STATUS
400
codeWhen it happens
VRG000081document_type is not accepted for the vendor's person type.
VRG000082document_type is not accepted for the related party type, or passport for a party without passport_number.
VRG000080File larger than 20 MB.
VRG000067document_b64 is not valid Base64.
VRG000097The content is not PDF, PNG, JPEG or ZIP.
Example
{
"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"
}
STATUS
404
codeWhen it happens
VRG000007The analysis_key does not exist. If the analysis belongs to a vendor you cannot see, the code is VRG000014.
VRG000053The related_party_key is not linked to this analysis, or the party is inactive.
VRG000003The 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.