Vendor creation
Creates the vendor from its CPF or CNPJ and name, and opens the first registration analysis in pending_submission. The response is the analysis, not the vendor: store analysis_key for the next steps and vendor.vendor_key to identify the vendor.
The person type comes from the document: a CPF creates natural_person; a CNPJ creates legal_person.
To renew or correct a vendor that already exists, use Open a new analysis.
Create a vendor
| Profile | Host | Required permission |
|---|---|---|
| Manager | manager-api | Write |
| Consultant | consultant-api | Active integration |
Base URL for each host: Environments (Hosts).
{
"document_number": "44.555.666/0001-81",
"name": "AUDITORES EXEMPLO S.A.",
"email": "contato@auditoresexemplo.com.br"
}
Body attributes
| Field | Type | Required | Description |
|---|---|---|---|
document_number | string | Yes | Vendor CPF or CNPJ, with or without punctuation. From 11 to 18 characters. Alphanumeric CNPJ is accepted. |
name | string | Yes | Name or corporate name. Maximum of 255 characters. |
email | string | No | Vendor email. Maximum of 255 characters. Can be provided later in the registration data; it is required to submit the analysis. |
person_type | string | No | natural_person or legal_person. When provided, it must match the document. |
No other field is accepted.
Response
{
"analysis_key": "8c2a6f0e-1b3d-4f7a-9c1e-2a4b6d8f0c13",
"analysis_number": 1,
"agent": {
"agent_key": "a7498c6c-1893-42ec-a8f3-bc6ad0c6b52c",
"agent_type": "manager",
"name": "EXEMPLO GESTORA LTDA",
"document_number": "22.333.444/0001-81"
},
"status": "pending_submission",
"reproval_reason": null,
"reproval_details": null,
"last_updated": "2026-11-09 14:03:21.123456+00:00",
"signer_groups": [],
"vendor": {
"vendor_key": "5d2e7b9a-3c4f-4e8a-b1d6-9f0a2c3e4b57",
"name": "AUDITORES EXEMPLO S.A.",
"document_number": "44.555.666/0001-81",
"email": "contato@auditoresexemplo.com.br",
"address": null,
"person_type": "legal_person",
"status": "pending_analysis",
"block_reason": null,
"expiration_date": null,
"agents": [
{
"agent_key": "a7498c6c-1893-42ec-a8f3-bc6ad0c6b52c",
"agent_type": "manager",
"name": "EXEMPLO GESTORA LTDA",
"document_number": "22.333.444/0001-81",
"permission_type": "owner"
}
],
"related_parties": [],
"bank_accounts": [],
"signer_groups": [],
"last_analysis": {
"analysis_key": "8c2a6f0e-1b3d-4f7a-9c1e-2a4b6d8f0c13",
"analysis_number": 1,
"status": "pending_submission",
"analysis_related_parties": [],
"documents": [],
"annotations": [],
"last_updated": "2026-11-09 14:03:21.123456+00:00",
"reproval_reason": null,
"reproval_details": null,
"signer_groups": []
}
},
"analysis_data": {
"name": "AUDITORES EXEMPLO S.A.",
"document_number": "44.555.666/0001-81",
"email": "contato@auditoresexemplo.com.br",
"address": null,
"ai_pending_reasons": null,
"ai_pending_reason_details": null
},
"related_parties": [],
"annotations": []
}
Response attributes
| Field | Type | Description |
|---|---|---|
analysis_key | string | Analysis key (UUID). Use it in the registration data, documents, submission and cancellation calls. |
analysis_number | integer | Sequential number of the analysis within the vendor, starting at 1. |
agent | object | Agent that owns the vendor (manager or consultant): agent_key, agent_type (manager or consultant), name, document_number. |
status | string | Analysis status. On creation, always pending_submission. See analysis status. |
reproval_reason | string | Rejection reason, or null. |
reproval_details | string | Rejection details, or null. |
last_updated | string | Last change to the analysis. |
signer_groups | array | Signer groups linked to this analysis. See Signer group. |
vendor | object | Full vendor. See vendor attributes. |
analysis_data | object | Data being filled in for this analysis: name, document_number, email, address (see registration data), ai_pending_reasons and ai_pending_reason_details (issues flagged by the automated validation, or null). |
related_parties | array | Related parties linked to this analysis. See Related parties. |
annotations | array | Annotations of this analysis. See Annotations. |
Possible values of ai_pending_reasons: signer_not_identified, signature_rule_unclear, signer_contradiction_between_documents, mandate_expired_or_undated, societary_amendment_not_provided, company_document_mismatch, company_identification_unconfirmed, societary_data_incomplete, document_illegible. ai_pending_reason_details carries the Portuguese sentence for each one.
Open a new analysis
Opens the next analysis of a vendor that already exists. Use it to:
- renew an
activeorexpiredvendor; - correct a registration whose last analysis was rejected for a registration reason (
reproved) or canceled (canceled).
The new analysis is created in pending_submission with a copy of the previous analysis:
- the registration data;
- the documents in
validorin_manual_analysis; - the non-inactive related parties, each with its documents in those same statuses.
On a registration rejection, the parties not yet confirmed (pending_registry) become inactive and the documents that were under review become invalid, and the new analysis does not copy them. After a rejection, reactivate the parties and resubmit the documents that became invalid. Otherwise, change only what has changed and submit it.
| 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 |
|---|---|---|
vendor_key | string | Vendor key (UUID). |
This call takes no body. A body with any field returns 400 (QIT000001).
Response
The response is the new analysis, with the same structure as vendor creation and analysis_number incremented. An active or expired vendor keeps its status during the new analysis; a vendor that was never approved stays pending_analysis.
Errors
Create a vendor
Vendor already registered by the manager
You already have access to a vendor with that CPF or CNPJ: one you created, one you see through a consultant's contract, or the vendor that represents your own manager, created automatically when it was registered in the service. The response carries the vendor_key and document_number of the existing vendor: use that vendor instead of creating another one.
{
"title": "Agent Already Registered Vendor",
"description": "The selected agent has already registered a vendor with the document number 44.555.666/0001-81.",
"translation": "O agente selecionado ja registrou um fornecedor com o documento 44.555.666/0001-81.",
"code": "VRG000015",
"vendor_key": "5d2e7b9a-3c4f-4e8a-b1d6-9f0a2c3e4b57",
"document_number": "44.555.666/0001-81"
}
Invalid document
document_number is neither a valid CPF nor a valid CNPJ, or person_type does not match the document.
{
"title": "Invalid document number",
"description": "The document number 44.555.666/0001-00 is invalid.",
"translation": "O documento 44.555.666/0001-00 e invalido.",
"code": "VRG000002"
}
Manager not registered in the service
Your manager is not registered in the vendor service yet. Contact integracao.dtvm@qitech.com.br.
{
"title": "Agent not found",
"description": "Agent with the key a7498c6c-1893-42ec-a8f3-bc6ad0c6b52c was not found.",
"translation": "O agente com a chave a7498c6c-1893-42ec-a8f3-bc6ad0c6b52c nao foi encontrado.",
"code": "VRG000043"
}
Open a new analysis
An analysis is already being filled in
The vendor already has an analysis in pending_submission. Submit or cancel that analysis before opening another one.
{
"title": "Vendor Analysis Already Open",
"description": "The vendor 5d2e7b9a-3c4f-4e8a-b1d6-9f0a2c3e4b57 already has an analysis pending submission; a new analysis can only be opened after the current one ends.",
"translation": "Este fornecedor ja tem um cadastro em preenchimento. Envie ou cancele o cadastro atual antes de abrir uma nova analise.",
"code": "VRG000106"
}
Registration under QI Tech analysis
The current analysis is in sent_to_analysis, in_manual_analysis or in_compliance_analysis. Wait for the outcome or cancel the analysis.
{
"title": "Vendor Registration Under Analysis",
"description": "The registration of the vendor 5d2e7b9a-3c4f-4e8a-b1d6-9f0a2c3e4b57 is under analysis by QI Tech and cannot be changed until the analysis ends.",
"translation": "O cadastro deste fornecedor esta em analise pela QI Tech e nao pode ser alterado ate a analise terminar.",
"code": "VRG000104"
}
Vendor rejected by compliance
Compliance rejected the vendor for good (compliance_reproval). It is inactive and does not accept a new analysis.
{
"title": "Vendor Definitively Reproved",
"description": "The vendor 5d2e7b9a-3c4f-4e8a-b1d6-9f0a2c3e4b57 was definitively reproved by compliance and cannot open a new analysis.",
"translation": "O fornecedor 5d2e7b9a-3c4f-4e8a-b1d6-9f0a2c3e4b57 foi reprovado definitivamente pelo compliance e nao pode abrir uma nova analise.",
"code": "VRG000063"
}
Vendor not found
The vendor_key does not exist or the vendor is not visible to you.
{
"title": "Vendor not found",
"description": "Vendor with the key 5d2e7b9a-3c4f-4e8a-b1d6-9f0a2c3e4b57 was not found.",
"translation": "O fornecedor com a chave 5d2e7b9a-3c4f-4e8a-b1d6-9f0a2c3e4b57 nao foi encontrada.",
"code": "VRG000014"
}
Authentication, permission and host errors: see API Errors.
Next step
Registration data: provide the vendor's email and address.