Skip to main content

Recurring expenses

A recurring expense automatically generates one expense per period. Through the API, recurrences can only be retrieved. They come from two places:

  • Contract: created from the recurrences of the expense contract when it takes effect.
  • QI Tech: the others are registered by QI Tech.

Recurrence status​

StatusDescription
activeGenerating expenses.
pending_approvalAwaiting QI Tech's approval.
finishedReached its end (end_date).
canceledEnded before its end date.
reprovedRejected by QI Tech.

List recurring expenses​

Available on
ProfileHostRequired permission
Managermanager-apiRead
Consultantconsultant-apiRead Expenses or Read Consolidations

Base URL for each host: Environments (Hosts).

ENDPOINT
/expense/fund_class/{fund_class_key}/recurring_expenses
METHOD
GET

Query parameters​

ParameterTypeRequiredDescription
statusstringNoA recurrence status.
expense_typestringNoAn expense type.
contract_keystringNoRecurrences of a contract.
limitintegerNoItems per page, from 0 to 100. Default: 10.
pageintegerNoPage, starting at 0. Default: 0.

The list goes from the most recent recurrence to the oldest.

STATUS
200
Response body
{
"data": [
{
"recurring_expense_key": "a0b1c2d3-e4f5-4a6b-8c7d-9e0f1a2b3c4d",
"fund_class": {
"name": "FIDC EXEMPLO",
"manager": {
"name": "EXEMPLO GESTORA LTDA",
"manager_key": "a7498c6c-1893-42ec-a8f3-bc6ad0c6b52c",
"document_number": "22.333.444/0001-81"
},
"fund_class_key": "c1d2e3f4-a5b6-4789-abcd-ef1234567890",
"document_number": "33.444.555/0001-81",
"accounting_date": "2026-11-06"
},
"expense_type": "audit_tax",
"description": "Auditoria anual - parcela mensal",
"recurring_configuration_data": {
"expense_type": "audit_tax",
"description": "Auditoria anual - parcela mensal",
"amount": 2500.0,
"accrual": {
"accrual_system": "monthly"
},
"consolidated_by_manager": true,
"payment": {
"payment_reference": {
"reference_date": "end_date",
"workdays_only": true
},
"target": {
"document_number": "44.555.666/0001-81",
"name": "AUDITORES EXEMPLO S.A."
}
},
"start_date": "2027-01-01",
"end_date": "2027-12-31",
"contract_key": "0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d",
"vendor_key": "5d2e7b9a-3c4f-4e8a-b1d6-9f0a2c3e4b57"
},
"amount": 2500.0,
"consolidated_by_manager": true,
"status": "active",
"contract_key": "0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d",
"vendor_key": "5d2e7b9a-3c4f-4e8a-b1d6-9f0a2c3e4b57",
"start_date": "2027-01-01",
"end_date": "2027-12-31"
}
],
"limit": 10,
"page": 0,
"is_last_page": true
}
FieldDescription
recurring_expense_keyRecurrence key (UUID).
fund_classFund class, as in expense retrieval.
expense_typeType of the generated expenses.
descriptionDescription of the generated expenses.
recurring_configuration_dataRecurrence configuration as it was registered. See below.
amountAmount of each expense.
consolidated_by_managertrue when the manager submits the invoice of each generated expense.
statusRecurrence status.
contract_key, vendor_keyContract and vendor, or null.
start_date, end_dateValidity, YYYY-MM-DD; end_date is null with no end.
disabled_atTime the recurrence was ended. Present only on ended recurrences.

Recurrence configuration​

In recurring_configuration_data:

  • accrual defines the period: accrual_system (monthly, bimonthly or yearly) and start_month.
  • payment.payment_reference defines the payment date of each expense: reference_date (start_date or end_date of the period), workdays_only, days_after and months_after.
  • payment carries the payee and, on recurrences without a contract, the payment method and destination.

On contract recurrences, each expense is paid to the vendor, to its main account, on the last business day of the month.

Retrieve a recurring expense​

Returns a recurrence and the expenses it generated.

Available on
ProfileHostRequired permission
Managermanager-apiRead
Consultantconsultant-apiRead Expenses or Read Consolidations

Base URL for each host: Environments (Hosts).

ENDPOINT
/expense/fund_class/{fund_class_key}/recurring_expense/{recurring_expense_key}
METHOD
GET

The response has the structure of the list, with one more field: expenses, the expenses generated by the recurrence (expense_key, status).

Errors​

StatuscodeWhen it happens
400EXP000069The fund class does not belong to the manager.
403EXP000124The consultant has no active link with the fund. Usually consultant-api rejects the request earlier, with 401 (CIT000018).
404EXP000028The recurrence does not exist in the fund.
500QIT000500limit or page out of range or not an integer. The validation of these parameters arrives as an internal error: fix the parameter and repeat the call.

Authentication, permission and host errors: see API Errors.