# QI Tech — Investment-as-a-Service › Boletador de Títulos Públicos

Documentação da QI Tech em texto corrido, para colar em um LLM.
Fonte: https://docs.qitech.com.br
2 página(s).

Índice:
- Boletador de Títulos Públicos (/documentation/iaas/boletador/boletador_titulos_publicos)
- Listagem de Títulos Públicos (/documentation/iaas/boletador/listagem_titulos_publicos)

---

# Boletador de Títulos Públicos

URL: /documentation/iaas/boletador/boletador_titulos_publicos

## Request

ENDPOINT /trade_treasury/fund_class/{fund_class_key}/operation
MÉTODO POST

### Path params

| Parâmetro | Tipo | Descrição |
| :---- | :---- | :---- |
| `fund_class_key` | string | Identificador único do fundo. |

```json title="Request Body"
{
    "external_id": "a3f1c2e4-7b8d-4e6f-9a0b-1c2d3e4f5a6b",
    "operation_date": "2025-12-04",
    "payment_date": "2025-12-04",
    "operation_part": "assignee",
    "operation_type": "outright_operation",
    "counterparty": {
        "iselic_number": "20824264",
        "selic_account_number": "123456789",
        "document_number": "20.824.264/0001-77"
    },
    "treasury_type": "ntn_b",
    "unit_price": 1234.567891,
    "units": 10,
    "maturity_date": "2035-05-15"
}
```

### Atributos do body

| Campo | Tipo | Obrigatoriedade | Descrição |
| :---- | :---- | :---- | :---- |
| `external_id` | string | opcional | Identificador externo para idempotência (UUID). Se não informado, será gerado automaticamente. Máximo de 36 caracteres. |
| `operation_date` | string (date) | obrigatório | Data da operação no formato `YYYY-MM-DD`. Deve ser um dia útil e igual à `accounting_date` do fundo. |
| `payment_date` | string (date) | obrigatório | Data de liquidação no formato `YYYY-MM-DD`. Deve ser `>= operation_date`. Em operações não-a-prazo (`outright_operation`, `buyback_operation`), deve ser igual à `operation_date`. |
| `operation_part` | string | obrigatório | Papel do fundo na operação: `assignee` (comprador) ou `assignor` (vendedor). |
| `operation_type` | string | obrigatório | Tipo de operação: `outright_operation`, `buyback_operation`. `buyback_operation` exige `operation_part == "assignee"`. |
| `counterparty` | object | obrigatório | Dados da contraparte. Ver objeto abaixo. |
| `treasury_type` | string | obrigatório | Tipo de título: `lft`, `ltn`, `ntn_b` ou `ntn_f`. |
| `unit_price` | number | obrigatório | Preço unitário do título. Aceita qualquer precisão decimal; o servidor trunca para baixo conforme o tipo: `buyback_operation` → 8 casas decimais; demais → 6 casas decimais. |
| `units` | integer | obrigatório | Quantidade de títulos (inteiro positivo). |
| `maturity_date` | string (date) | obrigatório | Data de vencimento do título (`YYYY-MM-DD`). Deve ser estritamente posterior à `operation_date`. |
| `yearly_negotiated_rate` | number | condicional | Taxa negociada anual (%). **Obrigatório para** `buyback_operation`. |
| `return_date` | string (date) | condicional | Data de retorno (`YYYY-MM-DD`). **Obrigatório para** `buyback_operation`. Deve ser `> operation_date`. |

#### Objeto `counterparty`

| Campo | Tipo | Obrigatoriedade | Descrição |
| :---- | :---- | :---- | :---- |
| `iselic_number` | string | obrigatório | Número iSELIC da contraparte (8 dígitos). |
| `selic_account_number` | string | obrigatório | Conta SELIC da contraparte (9 dígitos). |
| `document_number` | string | obrigatório | CNPJ da contraparte com pontuação (formato `XX.XXX.XXX/XXXX-XX`). |

## Response

STATUS 201

```json title="Response Body"
{
    "operation_key": "85cfd700-54a4-40f4-bc61-2ece992864ea",
    "external_id": "a3f1c2e4-7b8d-4e6f-9a0b-1c2d3e4f5a6b",
    "fund_class": {
        "fund_class_key": "5122bf31-660a-4f61-a447-38e5e17162dd",
        "manager_key": "bea7581a-f901-4995-a486-46e18ae61aab",
        "name": "FUNDO EXEMPLO DTVM",
        "document_number": "81.692.758/0001-30",
        "accounting_date": "2025-12-04"
    },
    "status": "pending_manager_approval",
    "operation_part": "assignee",
    "operation_type": {
        "enumerator": "outright_operation",
        "code": 1052
    },
    "treasury": {
        "enumerator": "ntn_b",
        "code": 760199
    },
    "operation_date": "2025-12-04",
    "payment_date": "2025-12-04",
    "maturity_date": "2035-05-15",
    "total_operation_value": 12345.67,
    "units": 10,
    "unit_price": 1234.567891,
    "counterparty": {
        "iselic_number": "20824264",
        "document_number": "20.824.264/0001-77",
        "selic_account_number": "123456789"
    },
    "isin_code": "BRSTNCNTB633",
    "issue_date": "2025-11-04",
    "operation_data": {}
}
```

### Atributos da resposta

| Campo | Tipo | Descrição |
| :---- | :---- | :---- |
| `operation_key` | string | Identificador único da operação gerado pela QI Tech (UUID). |
| `external_id` | string | Identificador externo fornecido ou gerado automaticamente. |
| `fund_class` | object | Dados do fundo associado à operação. |
| `status` | string | Status inicial da operação. |
| `operation_part` | string | `assignee` (comprador) ou `assignor` (vendedor). |
| `operation_type` | object | `{ enumerator, code }` — tipo de operação e código SELIC correspondente. |
| `treasury` | object | `{ enumerator, code }` — tipo de título e código SELIC correspondente. |
| `operation_date` | string | Data da operação (`YYYY-MM-DD`). |
| `payment_date` | string | Data de liquidação (`YYYY-MM-DD`). |
| `maturity_date` | string | Data de vencimento do título (`YYYY-MM-DD`). |
| `total_operation_value` | decimal | Valor total da operação (units × unit_price). |
| `units` | integer | Quantidade de títulos. |
| `unit_price` | number | Preço unitário do título. |
| `counterparty` | object | Dados da contraparte (`iselic_number`, `document_number`, `selic_account_number`). |
| `isin_code` | string | Código ISIN do título. |
| `issue_date` | string | Data de emissão do título (`YYYY-MM-DD`). |
| `operation_data` | object | Metadados internos adicionais da operação. |

---

# Listagem de Títulos Públicos

URL: /documentation/iaas/boletador/listagem_titulos_publicos

## Request

ENDPOINT /trade_treasury/fund_class/{fund_class_key}/operations
MÉTODO GET

### Path params

| Parâmetro | Tipo | Descrição |
| :---- | :---- | :---- |
| `fund_class_key` | string | Identificador único do fundo. |

### Query params

| Parâmetro | Tipo | Padrão | Máximo | Descrição |
| :---- | :---- | :---- | :---- | :---- |
| `limit` | integer | 100 | 500 | Quantidade de itens por página. |
| `page` | integer | 0 | — | Número da página (base 0). |
| `status` | string | — | — | Filtra pelo status exato da operação. |
| `not_status` | string | — | — | Exclui operações com determinado status. |
| `treasury_type` | string | — | — | Filtra por tipo de título (`lft`, `ltn`, `ntn_b`, `ntn_f`). |
| `operation_type` | string | — | — | Filtra por tipo de operação (`outright_operation`, `buyback_operation`). |
| `operation_date` | string | — | — | Filtra pela data exata da operação (`YYYY-MM-DD`). |
| `from_operation_date` | string | — | — | Filtra operações com data `>=` ao valor (`YYYY-MM-DD`). |
| `to_operation_date` | string | — | — | Filtra operações com data `<=` ao valor (`YYYY-MM-DD`). |
| `maturity_date` | string | — | — | Filtra pela data exata de vencimento (`YYYY-MM-DD`). |
| `from_maturity_date` | string | — | — | Filtra vencimentos `>=` ao valor (`YYYY-MM-DD`). |
| `to_maturity_date` | string | — | — | Filtra vencimentos `<=` ao valor (`YYYY-MM-DD`). |

## Response

STATUS 200

```json title="Response Body"
{
    "data": [
        {
            "operation_key": "e96ff035-e0bc-4819-931a-6a9f7fc1c597",
            "external_id": "a3f1c2e4-7b8d-4e6f-9a0b-1c2d3e4f5a6b",
            "fund_class": {
                "fund_class_key": "9b6145dc-2207-428d-84c1-2f949461891a",
                "manager_key": "73a21e11-0ab7-461d-a93f-1e90c0a5dc0d",
                "name": "FUNDO DE INVESTIMENTO TESTE",
                "document_number": "41.202.838/0001-45",
                "accounting_date": "2025-04-14",
                "custodian": {
                    "name": "QI DISTRIBUIDORA DE TITULOS E VALORES MOBILIARIOS LTDA",
                    "document_number": "46.955.383/0001-52",
                    "iselic_number": "46955383"
                },
                "selic_account_number": "000216832",
                "target_account_key": "d3dcbf3c-1bbf-495b-b792-ac448ee20ac4"
            },
            "status": "pending_manager_approval",
            "operation_part": "assignee",
            "operation_type": {
                "enumerator": "outright_operation",
                "code": 1052
            },
            "treasury": {
                "enumerator": "ntn_b",
                "code": 760199
            },
            "operation_date": "2025-04-14",
            "payment_date": "2025-04-14",
            "maturity_date": "2025-05-15",
            "total_operation_value": 250.0,
            "units": 5,
            "unit_price": 50.0,
            "counterparty": {
                "iselic_number": "20824264",
                "document_number": "20.824.264/0001-77",
                "selic_account_number": "123456789"
            },
            "isin_code": "BRSTNCNTB633",
            "issue_date": "2000-07-15",
            "operation_data": {}
        }
    ],
    "limit": 100,
    "page": 0,
    "is_last_page": true
}
```

### Atributos da resposta

| Campo | Tipo | Descrição |
| :---- | :---- | :---- |
| `data` | array | Lista de operações. Cada item contém os mesmos campos da consulta individual. |
| `limit` | integer | Quantidade de itens retornados na página. |
| `page` | integer | Página atual (base 0). |
| `is_last_page` | boolean | Indica se esta é a última página de resultados. |