Asset Query
Endpoints to query the assets inserted in an assignment batch. There are two query modes: the paginated listing of all assets in a batch, and the individual retrieval of a specific asset.
Use these endpoints to track asset statuses after insertion, verify which were approved or denied in eligibility, and check the denial reasons when applicable.
The listing accepts filters — including by status — which lets you query only the denied assets directly, without paginating through the whole batch. See Retrieving only the denied assets.
Asset listing
Returns the paginated list of the assets in a batch, with filter support. The response returns only the assets your profile can see.
| Profile | Host | Required permission |
|---|---|---|
| Manager | manager-api | Read |
| Consultant | consultant-api | View Assignments |
Base URL for each host: Environments (Hosts).
Request
Query params
All filters are optional and can be combined with one another. When no filter is provided, the route returns every asset of the batch.
| Parameter | Type | Default | Description |
|---|---|---|---|
page | integer | 0 | Page number (starts at 0). |
limit | integer | 10 | Number of records per page. Maximum: 100. |
status | string | — | Filters by an asset status. Accepts a single value, which must be one of the status enumerators. Use denied to retrieve only the denied assets. |
external_id | string | — | Filters by the asset external_id provided at creation. |
contract_number | string | — | Filters by the operation's contract number. |
invoice_access_key | string | — | Filters by the invoice access key (duplicatas and CT-e). |
invoice_number | string | — | Filters by the invoice number. |
invoice_serie | string | — | Filters by the invoice series. |
borrower_document_number | string | — | Filters by the debtor's CPF/CNPJ (drawee or borrower, depending on the asset type). |
purchase_value_min | number | — | Minimum purchase value of the asset (inclusive). |
purchase_value_max | number | — | Maximum purchase value of the asset (inclusive). |
maturity_date_start | string (YYYY-MM-DD) | — | Start maturity date of the range. |
maturity_date_end | string (YYYY-MM-DD) | — | End maturity date of the range. |
GET /trade_receivables/fund_class/{fund_class_key}/assignment/{assignment_external_id}/assets?page=0&limit=10
GET /trade_receivables/fund_class/{fund_class_key}/assignment/{assignment_external_id}/assets?status=denied&limit=100&maturity_date_start=2024-01-01&maturity_date_end=2024-12-31
If the value sent in status does not match any valid enumerator, the request returns TRC000163 (400). Check the enumerator table before assembling the filter.
Response
{
"data": [
{
"asset_key": "f4348106-01c4-4c59-a261-7c09db811c47",
"external_id": "e292656f-f7fb-44dc-96f3-667c36c88442",
"total_purchase_value": 1231.21,
"asset_type": "duplicata_mercantil",
"status": "denied",
"duration": 9177,
"denied_by": "document",
"denial_reason": "Invalid documents"
}
],
"limit": 10,
"page": 0,
"is_last_page": true
}
Response attributes
| Field | Type | Description |
|---|---|---|
data | array | List of asset objects. See table below. |
page | integer | Current page number. |
limit | integer | Number of records per page. |
is_last_page | boolean | Indicates whether this is the last page of results. |
Attributes of each asset (objects within data)
| Field | Type | Description |
|---|---|---|
asset_key | string | Unique asset identifier (UUID). |
external_id | string | External key provided by the partner at creation. |
total_purchase_value | number | Total purchase value of the asset. |
asset_type | string | Asset type (e.g., ccb, duplicata_mercantil, discounted_contract). |
ipoc_code | string | IPOC code of the asset, when available. |
purchase_irr | number | Purchase rate of the asset, when calculated. |
contract_number | string | Contract number, when available. |
premiums | array | Asset premiums (premium_type, total_value). Absent when there are none. |
deductions | array | Asset discounts (deduction_type, total_value). Absent when there are none. |
status | string | Current asset status. See the status table below. |
duration | integer | Asset duration in days. May not be present if not yet calculated. |
denied_by | string | Source of the denial. Present only when the asset was denied. See the sources table. |
denial_reason | string | Description of the denial reason. Present only when there is denial detail. |
denial_translation | string | Translation of the reason, when available. |
denial_description | string | Complementary description of the reason, when available. |
Depending on the asset type, the response includes the credit_operation object (CCB), discounted_credit_right (duplicatas, CT-e, discounted contracts) or contract (installment contracts), with the data submitted at creation and the originator object.
Retrieving only the denied assets
This is the most common use of the listing: finding out which contracts in the batch were denied, so you can reflect QI Tech's decision in the partner's internal controls and decide whether any asset needs to be removed from the batch.
Just provide status=denied:
GET /trade_receivables/fund_class/{fund_class_key}/assignment/{assignment_external_id}/assets?status=denied&limit=100
The response returns only the denied assets, each with denied_by (the source of the denial) and denial_reason (the description):
{
"data": [
{
"asset_key": "f4348106-01c4-4c59-a261-7c09db811c47",
"external_id": "e292656f-f7fb-44dc-96f3-667c36c88442",
"total_purchase_value": 1231.21,
"asset_type": "ccb",
"status": "denied",
"duration": 9177,
"denied_by": "eligibility",
"denial_reason": "Prazo do contrato acima do permitido pela política do fundo"
}
],
"limit": 100,
"page": 0,
"is_last_page": true
}
- Use
limit=100(the maximum allowed) to reduce the number of pages, and paginate untilis_last_pageistrue. - Query it after receiving the
pending_manager_approvalwebhook — at that point the eligibility analysis of every asset is complete and the list of denied assets is stable. - For the opposite — the assets approved in eligibility — use
status=pre_approved.
Denial sources (denied_by)
| Value | Meaning |
|---|---|
eligibility | Denied in the eligibility analysis. |
document | Denied in the validation of the submitted documents. |
inconsistency | Denied due to an inconsistency in the operation data identified during validation. |
invalid_invoice | Denied in the invoice validation. |
registry | Denied in the asset registration process. |
term | Denied at the Assignment Term stage. |
manager | Denied/removed by an action of the fund manager. |
consultant | Denied/removed by an action of the consultant. |
assignor | Denied/removed by an action of the assignor. |
accounting_close | Denied due to the fund's accounting close. |
denial_file | Denied by a denial file processed in batch. |
Individual asset retrieval
Returns the complete data of a specific asset in the batch, with the status history and the submitted documents.
| Profile | Host | Required permission |
|---|---|---|
| Manager | manager-api | Read |
| Consultant | consultant-api | View Assignments |
| Assignor | assignor-api | Read |
Base URL for each host: Environments (Hosts).
Request
Path params
| Parameter | Type | Description |
|---|---|---|
asset_external_id | string | The external_id provided at asset creation. |
Response
{
"asset_key": "074f8786-447f-4524-9f4f-a5cf8a890bb4",
"external_id": "acfbc329-4e67-40ea-bd8d-5debdaebe144",
"total_purchase_value": 1231.21,
"asset_type": "duplicata_mercantil",
"status": "denied",
"duration": 9184,
"denied_by": "document",
"denial_reason": "Invalid documents"
}
Response attributes
The response has the same structure as each object in the data array returned by the asset listing, plus:
| Field | Type | Description |
|---|---|---|
status_events | array | Asset status history: status, event_datetime (UTC) and, for denials, denial_reason and denial_metadata. |
documents | array | Documents submitted for the asset. |
Asset status enumerators
Any of the values below can be used in the listing's status filter.
| Status | Description |
|---|---|
created | Asset created, not yet submitted to analysis. |
pending_eligibility | Asset inserted, awaiting eligibility analysis. |
pending_documentation | Asset approved in eligibility, awaiting document submission. |
pending_invoice_validation | Awaiting invoice validation. |
pre_approved | Asset pre-approved in individual eligibility. |
pending_registry | Awaiting the start of the asset registration. |
pending_external_registry | Awaiting registration with an external clearinghouse. |
sending_to_registry | Being sent to the registration clearinghouse. |
waiting_registry | Registration submitted, awaiting the clearinghouse response. |
pending_formalization | Asset formalized and able to proceed in the batch. |
registry_denied | Asset registration refused by the clearinghouse. |
sending_to_wallet | Being added to the fund's portfolio. |
denied | Asset denied. Check denied_by for the source of the denial. |
discarded | Asset discarded from the batch. |
pending_after_assignment_documentation | Asset added to the portfolio, awaiting post-assignment documents. |
pending_deferred_registry | Awaiting post-assignment registration (deferred registration). |
completed | Asset added to the fund's portfolio. |
Errors
| Status | Code | When it happens |
|---|---|---|
| 400 | TRC000163 | Listing: status value that is not an asset status. |
| 400 | — | Listing: limit above 100 or negative page (parameter validation). |
| 404 | TRC000020 | Individual retrieval: no asset with that asset_external_id in the batch. |
Authentication, permission and host errors: see API Errors.