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
recurrencesof the expense contract when it takes effect. - QI Tech: the others are registered by QI Tech.
Recurrence status
| Status | Description |
|---|---|
active | Generating expenses. |
pending_approval | Awaiting QI Tech's approval. |
finished | Reached its end (end_date). |
canceled | Ended before its end date. |
reproved | Rejected by QI Tech. |
List recurring expenses
Available on
| Profile | Host | Required permission |
|---|---|---|
| Manager | manager-api | Read |
| Consultant | consultant-api | Read Expenses or Read Consolidations |
Base URL for each host: Environments (Hosts).
ENDPOINT
/expense/fund_class/{fund_class_key}/recurring_expensesMETHOD
GETQuery parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
status | string | No | A recurrence status. |
expense_type | string | No | An expense type. |
contract_key | string | No | Recurrences of a contract. |
limit | integer | No | Items per page, from 0 to 100. Default: 10. |
page | integer | No | Page, starting at 0. Default: 0. |
The list goes from the most recent recurrence to the oldest.
STATUS
200Response 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
}
| Field | Description |
|---|---|
recurring_expense_key | Recurrence key (UUID). |
fund_class | Fund class, as in expense retrieval. |
expense_type | Type of the generated expenses. |
description | Description of the generated expenses. |
recurring_configuration_data | Recurrence configuration as it was registered. See below. |
amount | Amount of each expense. |
consolidated_by_manager | true when the manager submits the invoice of each generated expense. |
status | Recurrence status. |
contract_key, vendor_key | Contract and vendor, or null. |
start_date, end_date | Validity, YYYY-MM-DD; end_date is null with no end. |
disabled_at | Time the recurrence was ended. Present only on ended recurrences. |
Recurrence configuration
In recurring_configuration_data:
accrualdefines the period:accrual_system(monthly,bimonthlyoryearly) andstart_month.payment.payment_referencedefines the payment date of each expense:reference_date(start_dateorend_dateof the period),workdays_only,days_afterandmonths_after.paymentcarries 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
| Profile | Host | Required permission |
|---|---|---|
| Manager | manager-api | Read |
| Consultant | consultant-api | Read Expenses or Read Consolidations |
Base URL for each host: Environments (Hosts).
ENDPOINT
/expense/fund_class/{fund_class_key}/recurring_expense/{recurring_expense_key}METHOD
GETThe response has the structure of the list, with one more field: expenses, the expenses generated by the recurrence (expense_key, status).
Errors
| Status | code | When it happens |
|---|---|---|
| 400 | EXP000069 | The fund class does not belong to the manager. |
| 403 | EXP000124 | The consultant has no active link with the fund. Usually consultant-api rejects the request earlier, with 401 (CIT000018). |
| 404 | EXP000028 | The recurrence does not exist in the fund. |
| 500 | QIT000500 | limit 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.