Skip to main content

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​

Available on
ProfileHostRequired permission
Managermanager-apiWrite
Consultantconsultant-apiActive integration

Base URL for each host: Environments (Hosts).

ENDPOINT
/vendor_registry/vendor
METHOD
POST
Request body
{
"document_number": "44.555.666/0001-81",
"name": "AUDITORES EXEMPLO S.A.",
"email": "contato@auditoresexemplo.com.br"
}

Body attributes​

FieldTypeRequiredDescription
document_numberstringYesVendor CPF or CNPJ, with or without punctuation. From 11 to 18 characters. Alphanumeric CNPJ is accepted.
namestringYesName or corporate name. Maximum of 255 characters.
emailstringNoVendor email. Maximum of 255 characters. Can be provided later in the registration data; it is required to submit the analysis.
person_typestringNonatural_person or legal_person. When provided, it must match the document.

No other field is accepted.

Response​

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

FieldTypeDescription
analysis_keystringAnalysis key (UUID). Use it in the registration data, documents, submission and cancellation calls.
analysis_numberintegerSequential number of the analysis within the vendor, starting at 1.
agentobjectAgent that owns the vendor (manager or consultant): agent_key, agent_type (manager or consultant), name, document_number.
statusstringAnalysis status. On creation, always pending_submission. See analysis status.
reproval_reasonstringRejection reason, or null.
reproval_detailsstringRejection details, or null.
last_updatedstringLast change to the analysis.
signer_groupsarraySigner groups linked to this analysis. See Signer group.
vendorobjectFull vendor. See vendor attributes.
analysis_dataobjectData 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_partiesarrayRelated parties linked to this analysis. See Related parties.
annotationsarrayAnnotations 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 active or expired vendor;
  • 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 valid or in_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.

Available on
ProfileHostRequired permission
Managermanager-apiWrite
Consultantconsultant-apiActive integration

Base URL for each host: Environments (Hosts).

ENDPOINT
/vendor_registry/vendor/{vendor_key}/analysis
METHOD
POST

Path parameters​

ParameterTypeDescription
vendor_keystringVendor key (UUID).

This call takes no body. A body with any field returns 400 (QIT000001).

Response​

STATUS
201

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​

STATUS
409
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"
}
STATUS
400
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"
}
STATUS
404
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​

STATUS
409
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"
}
STATUS
403
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"
}
STATUS
404
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.