Pular para o conteúdo principal

Criação do contrato

Cria um contrato de despesa entre o fundo e um fornecedor. O contrato começa em pending_submission. Depois, envie o documento e envie o contrato para análise.

Criar contrato​

Disponível em
PerfilHostPermissão exigida
Gestoramanager-apiEscrita
Consultoriaconsultant-apiCriar Contratos de Despesa

URL base de cada host: Ambientes (Hosts).

ENDPOINT
/expense_contract/fund_class/{fund_class_key}/contract
MÉTODO
POST

Parâmetros de caminho​

ParâmetroTipoDescrição
fund_class_keystringChave da classe de fundo (UUID).
Corpo da requisição
{
"name": "Contrato de auditoria 2027",
"vendor_key": "5e6f7a8b-9c0d-4e1f-a2b3-c4d5e6f7a8b9",
"signature_method": "certifiqi",
"expense_types": [
{
"expense_type": "audit_tax"
}
],
"recurrences": [
{
"expense_type": "audit_tax",
"description": "Auditoria anual - parcela mensal",
"amount": 2500.00,
"start_date": "2027-01-01",
"end_date": "2027-12-31"
}
],
"expiration_date": "2027-12-31"
}

Atributos do corpo​

CampoTipoObrigatórioDescrição
namestringSimNome do contrato, de 1 a 255 caracteres.
vendor_keystringSimChave do fornecedor, 36 caracteres.
signature_methodstringSimcertifiqi ou qi_sign: assinatura eletrônica pela QI Tech. external: o documento enviado já está assinado. Ver Assinatura do contrato.
expense_typesarraySimTipos de despesa do contrato, sem repetição. Cada item tem só expense_type. Ver tipos aceitos.
expense_types[].expense_typestringSimTipo de despesa.
recurrencesarrayNãoDespesas mensais automáticas, consultadas em Despesas recorrentes. Se enviado, precisa ter exatamente um item para cada tipo de expense_types.
recurrences[].expense_typestringSimTipo de despesa da recorrência.
recurrences[].descriptionstringSimDescrição das despesas geradas, de 1 a 200 caracteres.
recurrences[].amountnumberSimValor mensal, maior que zero.
recurrences[].start_datestringSimInício, YYYY-MM-DD.
recurrences[].end_datestringSimFim, YYYY-MM-DD, ou null para recorrência sem fim. Não pode ser anterior a start_date.
expiration_datestringNãoVencimento do contrato, YYYY-MM-DD, ou null. Se não for informado, a leitura automática preenche com a data encontrada no documento.

Campos fora desta tabela são recusados com QIT000001.

Resposta​

STATUS
201
Corpo da resposta
{
"contract_key": "3f2b8c1e-7d4a-4e9b-9a61-0c5d2e8f4b17",
"name": "Contrato de auditoria 2027",
"status": "pending_submission",
"fund_class_key": "9a7c3d52-1b8e-4f0a-8c2d-6e4b1f9a0d33",
"fund_class": {
"fund_class_key": "9a7c3d52-1b8e-4f0a-8c2d-6e4b1f9a0d33",
"name": "FIDC EXEMPLO",
"document_number": "33.444.555/0001-81",
"manager_key": "a7498c6c-1893-42ec-a8f3-bc6ad0c6b52c"
},
"vendor": {
"vendor_key": "5e6f7a8b-9c0d-4e1f-a2b3-c4d5e6f7a8b9",
"name": "AUDITORES EXEMPLO S.A.",
"document_number": "44.555.666/0001-81",
"status": "registered",
"agent_key": "a7498c6c-1893-42ec-a8f3-bc6ad0c6b52c"
},
"consultant_key": null,
"signature_method": "certifiqi",
"expiration_date": "2027-12-31",
"ai_analysis": null,
"reproval_reason": null,
"reproval_details": null,
"amended_contract_key": null,
"root_contract_key": null,
"created_at": "2026-11-09T14:03:22.512345",
"expense_types": [
{
"expense_type": "audit_tax",
"sub_class_key": null
}
],
"parametrizations": [
{
"parametrization_key": "0b1c2d3e-4f5a-4b6c-8d7e-9f0a1b2c3d4e",
"expense_type": "audit_tax",
"sub_class_key": null,
"status": "pending",
"target": "recurring_expense",
"external_configuration_key": null,
"configuration_data": {
"expense_type": "audit_tax",
"description": "Auditoria anual - parcela mensal",
"amount": 2500.0,
"start_date": "2027-01-01",
"end_date": "2027-12-31"
}
}
],
"attachments": [],
"terminations": []
}

Atributos do contrato​

CampoTipoDescrição
contract_keystringChave do contrato (UUID).
namestringNome do contrato.
statusstringStatus. Ver status do contrato.
fund_class_keystringChave da classe de fundo.
fund_classobjectfund_class_key, name, document_number, manager_key.
vendorobjectvendor_key, name, document_number, status e agent_key (dono do fornecedor). status é created, pending_analysis, registered (fornecedor aprovado), inactive ou expired.
consultant_keystringConsultoria que lançou o contrato, ou null.
signature_methodstringcertifiqi, qi_sign ou external. null nos contratos criados pela QI Tech na estruturação do fundo.
expiration_datestringVencimento, YYYY-MM-DD, ou null.
ai_analysisobjectÚltima leitura automática do documento: ai_analysis_key, status (sent, valid, inconclusive ou failed) e analysis_result (dados lidos do documento, ou null). É null antes do envio para análise.
reproval_reasonstringMotivo da reprovação, ou null. Ver motivos.
reproval_detailsstringDetalhe da reprovação, até 1000 caracteres, ou null.
amended_contract_keystringSe o contrato é um aditivo, o contrato que ele substitui. Senão, null.
root_contract_keystringContrato original da cadeia de aditivos, ou null.
created_atstringCriação, ISO 8601 sem fuso.
expense_typesarrayexpense_type e sub_class_key (sempre null em contratos criados pela API).
parametrizationsarrayRecorrências do contrato: parametrization_key, expense_type, sub_class_key, status, target, external_configuration_key e configuration_data (a recorrência enviada). Ver os valores de status e target abaixo.
attachmentsarrayAnexos: attachment_key, status, created_at. Ver Anexos.
terminationsarrayPedidos de distrato: termination_key, status, termination_details, reproval_details, created_at. Ver Distrato.

parametrizations[].status:

  • pending: o contrato ainda não entrou em vigor.
  • active: o contrato está em vigor.
  • inactive: o contrato foi cancelado, reprovado, substituído ou venceu.
  • canceled: a recorrência foi removida na edição.

parametrizations[].target é recurring_expense. Contratos da estruturação do fundo trazem também quota_fee, performance_fee e expense_control.

Erros​

StatuscodeQuando acontece
400QIT000001Corpo inválido: campo obrigatório ausente, tipo repetido em expense_types, valor fora da lista ou campo não previsto.
400ECT000040expiration_date não é uma data válida, como 2027-02-30.
400ECT000012O tipo de despesa é contratado na estruturação do fundo: administration_tax, management_tax, performance_fee ou credit_rights_registration_fee.
400ECT000010O tipo de despesa não existe ou não usa contrato. Ver tipos aceitos.
400ECT000061Uma recorrência tem end_date anterior a start_date.
400ECT000045recurrences não tem exatamente uma recorrência para cada tipo declarado.
404ECT000005A classe de fundo não existe ou você não tem acesso a ela.
404ECT000008O fornecedor não existe, ou não é da gestora nem de uma consultoria com a permissão Criar Contratos de Despesa no fundo.
409ECT000015O fornecedor está inactive.
409ECT000059O cadastro do fornecedor venceu (expired).
409ECT000014O tipo de despesa já está em outro contrato em andamento, active ou expired deste fundo com este fornecedor. A mensagem cita sub class None, porque contratos criados pela API não têm subclasse.
409ECT000029Um contrato deste fundo com este fornecedor foi reprovado em definitivo pelo compliance. Não é possível criar outro contrato entre os dois.
Exemplo
{
"title": "Expense type already contracted",
"description": "The expense type audit_tax for the sub class None is already in another open, active or expired contract of this fund class and vendor.",
"translation": "O tipo de despesa audit_tax da sub-classe None ja esta em outro contrato em andamento, ativo ou expirado deste fundo e fornecedor.",
"code": "ECT000014"
}

Erros de autenticação, permissão e host: veja Erros da API.

Próximo passo​

Documento do contrato: obtenha a URL de envio e envie o PDF.