跳到主要内容

Criação de Ativo — Contrato Parcelado

Endpoint para inserir um ativo do tipo Contrato Parcelado em um lote de cessão. Cada ativo representa um contrato com um fluxo de parcelas — o contrato inteiro é cedido ao fundo em uma única requisição, com todas as suas parcelas.

Disponível em
PerfilHostPermissão exigida
Gestoramanager-apiEscrita
Consultoriaconsultant-apiLotes
Cedenteassignor-apiEscrita

URL base de cada host: Ambientes (Hosts).

Onde estou no fluxo?

Este é o 2º passo do fluxo de cessão. Antes, você deve ter criado o lote. Após inserir os ativos, envie o lastro exigido de cada um e encerre a inserção.

Um ativo, várias parcelas

Diferente do Contrato Descontado — em que cada parcela é um ativo independente — no contrato parcelado o ativo é o contrato, e as parcelas são o fluxo de pagamentos dele. O array installments precisa conter todas as parcelas do contrato que estão sendo cedidas.

Atenção

O campo external_id do contrato identifica o ativo dentro do lote e não deve ser confundido com o external_id do lote.

Request​

ENDPOINT
/trade_receivables/fund_class/{fund_class_key}/assignment_configuration/{assignment_configuration_key}/assignment/{assignment_external_id}/asset
MÉTODO
POST
Request Body
{
"asset_type": "contract",
"total_purchase_value": 900.00,
"contract": {
"external_id": "80187a08-ea7d-44b2-b65c-131f1318e904",
"originator_document_number": "22.333.444/0001-81",
"contract_number": "1144927986/XXX",
"issue_date": "2026-11-01",
"interest_rate_type": "pre_fixed",
"calendar_base": "calendar_365",
"pre_fixed": {
"calendar_base": "calendar_365",
"monthly_rate": 0.015
},
"borrower": {
"name": "José de Souza",
"document_number": "969.698.790-03",
"person_type": "natural_person",
"email": "jose.souza@yopmail.com",
"address": {
"street": "Rua Gilberto Sabino",
"number": "215",
"neighborhood": "Pinheiros",
"city": "São Paulo",
"postal_code": "05245-020",
"uf": "SP",
"country": "BRA"
},
"phone": {
"area_code": "11",
"number": "26260447"
},
"natural_person": {
"birthdate": "1999-01-01",
"gender": "male",
"mother_name": "Maria de Souza"
}
},
"installments": [
{
"installment_number": 1,
"maturity_date": "2026-12-25",
"face_value": 500.46,
"principal_value": 450.00,
"external_id": "parcela-1"
},
{
"installment_number": 2,
"maturity_date": "2027-01-25",
"face_value": 500.46,
"principal_value": 450.00,
"external_id": "parcela-2"
}
],
"contract_data": {
"cost_center": "SP-01"
}
}
}

Atributos do body​

CampoTipoObrigatoriedadeDescrição
asset_typestringobrigatórioTipo do ativo. Para contrato parcelado, informar contract.
total_purchase_valuenumberobrigatórioValor total da compra do ativo — efetivamente quanto o cessionário vai pagar pelo contrato inteiro. Até 2 casas decimais.
contractobjectobrigatórioDados do contrato. Veja Atributos de contract.
Ágios e deduções não se aplicam

Não envie premiums nem deductions em contrato parcelado: eles não são registrados para este tipo de ativo. O valor de aquisição do ativo é o total_purchase_value informado.

Atributos de contract​

CampoTipoObrigatoriedadeDescrição
external_idstringobrigatórioChave única de identificação deste ativo no sistema do parceiro. Máximo de 50 caracteres.
originator_document_numberstringobrigatórioCPF ou CNPJ do originador que viabilizou a operação, no formato 000.000.000-00 ou 00.000.000/0000-00. O originador precisa estar cadastrado na QI Tech com esse documento; caso contrário, a inserção devolve TRC000019.
contract_numberstringobrigatórioNúmero do contrato. Máximo de 50 caracteres. Enviado exatamente como informado, sem normalização.
borrowerobjectobrigatórioDados do sacado/devedor do contrato. Veja Atributos de borrower.
interest_rate_typestringobrigatórioTipo de juros do contrato.
installmentsarrayobrigatórioLista das parcelas do contrato. Precisa ter ao menos uma parcela. Veja Atributos de installments.
issue_datestringopcionalData de emissão do contrato no formato YYYY-MM-DD.
calendar_basestringopcionalBase de contagem de dias do contrato. Quando omitido, é assumido workdays.
pre_fixedobjectcondicionalDados da parte pré-fixada. Obrigatório quando interest_rate_type for pre_fixed. Veja Atributos de pre_fixed.
post_fixedobjectcondicionalDados da parte pós-fixada. Obrigatório quando interest_rate_type for post_fixed. Veja Atributos de post_fixed.
contract_dataobjectopcionalObjeto livre para informações adicionais do contrato. É armazenado e devolvido nas consultas e webhooks, sem interferir nos cálculos.

Enumeradores de interest_rate_type:

ValorDescrição
pre_fixedPara contratos pré-fixados. Informe o objeto pre_fixed.
post_fixedPara contratos pós-fixados. Informe o objeto post_fixed.

Enumeradores de calendar_base:

ValorDescrição
workdaysBase de cálculo em dias úteis (252).
calendar_365Base de cálculo em 365 dias.
calendar_360Base de cálculo em 360 dias.

Atributos de installments​

CampoTipoObrigatoriedadeDescrição
installment_numberintegerobrigatórioNúmero da parcela, começando em 1. Veja a regra de sequência abaixo.
maturity_datestringobrigatórioData de vencimento da parcela no formato YYYY-MM-DD.
face_valuenumberobrigatórioValor de face da parcela — quanto o sacado paga no vencimento. Maior que zero e até 8 casas decimais.
principal_valuenumberopcionalPrincipal esperado a ser amortizado na data de vencimento. Até 8 casas decimais.
external_idstringopcionalChave de identificação da parcela no sistema do parceiro. Máximo de 50 caracteres.
Sequência das parcelas

Ordenando as parcelas pela maturity_date, os installment_number precisam formar a sequência 1, 2, 3, … sem repetições e sem saltos. Uma numeração fora de ordem devolve o erro TRC000174.

Atributos de pre_fixed​

CampoTipoObrigatoriedadeDescrição
calendar_basestringobrigatórioBase de contagem de dias utilizada na taxa. Mesmos enumeradores de calendar_base.
monthly_ratenumberobrigatórioTaxa mensal do contrato, em fração decimal entre 0 e 1. Para 1,5% ao mês, informar 0.015. Até 8 casas decimais.

Atributos de post_fixed​

CampoTipoObrigatoriedadeDescrição
calendar_basestringobrigatórioBase de contagem de dias da correção. Mesmos enumeradores de calendar_base.
indexerstringobrigatórioÍndice que corrige o contrato.
ratenumberobrigatórioTaxa aplicada sobre o indexador. Para 100% do DI, informar 1.
lagobjectobrigatórioDefasagem entre a data do índice e a data da correção. Veja Atributos de lag.

Enumeradores de indexer:

ValorDescrição
diTaxa DI, apurada pela B3.
selicTaxa Selic.
ipcaIPCA.

Atributos de lag​

CampoTipoObrigatoriedadeDescrição
referencestringobrigatórioUnidade da defasagem: daily (dias) ou monthly (meses).
amountnumberobrigatórioQuantidade de defasagem. Para usar o índice de dois meses antes, informar 2 com reference igual a monthly.

Atributos de borrower​

CampoTipoObrigatoriedadeDescrição
namestringobrigatórioNome do sacado. Máximo de 255 caracteres.
document_numberstringobrigatórioCPF ou CNPJ formatado do sacado.
person_typestringobrigatórioTipo de pessoa.
emailstringopcionalE-mail do sacado. Máximo de 255 caracteres.
addressobjectopcionalEndereço do sacado. Veja Atributos de address.
phoneobjectopcionalTelefone do sacado. Veja Atributos de phone.

Enumeradores de person_type:

ValorDescrição
natural_personPessoa Física. Quando informado, inclua o objeto natural_person dentro de borrower. Veja Atributos de natural_person.
legal_personPessoa Jurídica. Quando informado, inclua o objeto legal_person dentro de borrower. Veja Atributos de legal_person.

Atributos de address​

CampoTipoObrigatoriedadeDescrição
postal_codestringobrigatórioCEP. 9 caracteres, no formato 00000-000. Obrigatório sempre que o objeto address for informado.
streetstringopcionalLogradouro. Caso não tenha todas as informações, enviar o compilado neste campo. Máximo de 255 caracteres.
numberstringopcionalNúmero do endereço. Máximo de 40 caracteres.
neighborhoodstringopcionalBairro. Máximo de 255 caracteres.
citystringopcionalCidade. Máximo de 255 caracteres.
ufstringopcionalSigla do estado. 2 caracteres.
complementstringopcionalComplemento. Máximo de 255 caracteres.
countrystringopcionalPaís no formato ISO 3166-1 alpha-3. 3 caracteres.

Atributos de phone​

CampoTipoObrigatoriedadeDescrição
area_codestringobrigatórioCódigo de área (DDD). 2 dígitos.
numberstringobrigatórioNúmero de telefone. 8 ou 9 dígitos.

Atributos de natural_person​

CampoTipoObrigatoriedadeDescrição
birthdatestringopcionalData de nascimento no formato YYYY-MM-DD.
genderstringopcionalGênero: male ou female.
mother_namestringopcionalNome da mãe. Máximo de 255 caracteres.
CampoTipoObrigatoriedadeDescrição
foundation_datestringopcionalData de fundação no formato YYYY-MM-DD.
activity_codestringopcionalCódigo de atividade (CNAE) no formato 11.11-1-11.
annual_revenuesintegeropcionalReceita anual em centavos.
representativesarrayopcionalLista de representantes legais.

Response​

STATUS
201
Response Body
{
"asset_key": "41d6ff41-1dac-4df7-9e50-d15210ec57f3",
"external_id": "80187a08-ea7d-44b2-b65c-131f1318e904",
"status": "pending_eligibility"
}

Atributos da resposta​

CampoTipoDescrição
asset_keystringIdentificador único do ativo gerado pela QI Tech (UUID).
external_idstringA mesma chave externa fornecida no campo external_id do contract.
statusstringStatus inicial do ativo. Sempre retorna pending_eligibility, indicando que o ativo foi inserido e aguarda análise de elegibilidade.
Valores calculados pela QI Tech

Na inserção do ativo, a QI Tech calcula e passa a devolver nas consultas e nos webhooks a taxa interna de retorno da compra (purchase_irr), a duration do contrato e o purchase_value de cada parcela — a fatia do total_purchase_value alocada a cada vencimento. Esses campos não devem ser enviados no request.

Erros​

StatusCódigoQuando acontece
400QIT000001O request body não segue o formato esperado: campo obrigatório ausente, tipo ou formato inválido. A description aponta o campo.
404TRC000018Não existe lote com esse assignment_external_id nesta configuração de cessão.
400TRC000025O asset_type é diferente do tipo de ativo da configuração de cessão.
400TRC000084O objeto contract foi enviado com um asset_type diferente de contract (por exemplo, financing_contract ou debt_acknowledgment, que não são cedidos por este fluxo).
400TRC000174Ordenando as parcelas por maturity_date, os installment_number não formam a sequência 1, 2, 3, ….
400TRC000022O lote não aceita mais ativos: a inserção já foi encerrada. Para incluir mais, reabra o lote.
400TRC000009CPF ou CNPJ inválido em originator_document_number ou no document_number de um sacado pessoa física.
404TRC000019Não há originador cadastrado com o originator_document_number informado. Confira se o documento está formatado exatamente como no cadastro. Apesar do título (Originator bond not found), o erro não se refere ao vínculo com a configuração.
409TRC000054Já existe um ativo com esse external_id neste lote.
400TRC1000xxA validação financeira do ativo recusou o fluxo. Exemplo: TRC100014, valor presente das parcelas diferente do total_purchase_value.

O corpo de erro segue o formato abaixo:

{
"title": "Contract must have an installment number sequence",
"description": "Contract 80187a08-ea7d-44b2-b65c-131f1318e904 must have installment numbers as a sequence starting at 1 ordered by maturity date",
"translation": "O contrato 80187a08-ea7d-44b2-b65c-131f1318e904 deve ter os numeros das parcelas em sequencia iniciando em 1 e ordenados pela data de vencimento",
"code": "TRC000174"
}

Em caso de erro, reenvie a requisição. Duplicidade (TRC000054) significa que o recurso já existe: consulte-o em vez de recriar, pelo endpoint de consulta de ativo. Mais em Reenvio e duplicidade.

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

Próximos passos​

Após inserir o ativo, o fluxo continua com:

  1. Envio do lastro — envie, com document_type igual a contract, o PDF do contrato parcelado deste ativo (o contrato com o devedor, não o contrato de cessão). Um arquivo por ativo.
  2. Encerramento da inserção — sinalize que todos os ativos foram inseridos para que o lote siga para a análise de elegibilidade.

Para ceder contratos parcelados em volume, sem uma requisição por ativo, use a Cessão por Arquivo.