Documentos de despesas consolidadas
Anexe comprovantes (nota fiscal, memória de cálculo, contrato, boleto) a uma despesa da classe de fundo e consulte os documentos já anexados. A expense_key vem da consulta de despesas consolidadas.
O envio do arquivo acontece em duas etapas: a API registra o documento e devolve uma URL de upload; em seguida, você envia o arquivo diretamente para essa URL.
Anexar documento
| Perfil | Host | Permissão exigida |
|---|---|---|
| Gestora | manager-api | Escrita |
URL base de cada host: Ambientes (Hosts).
Path params
| Parâmetro | Tipo | Descrição |
|---|---|---|
fund_class_key | string | Chave da classe de fundo (UUID). |
expense_key | string | Chave da despesa (UUID). |
Atributos do body
| Campo | Tipo | Obrigatoriedade | Descrição |
|---|---|---|---|
name | string | obrigatório | Nome do documento. Máximo de 255 caracteres. |
document_type | string | obrigatório | invoice (nota fiscal), calculation_memory (memória de cálculo), contract (contrato) ou bank_slip (boleto). |
Nenhum outro campo é aceito.
{
"name": "NF-e 001234 - Auditoria jun/2026",
"document_type": "invoice"
}
Response
{
"name": "NF-e 001234 - Auditoria jun/2026",
"document_key": "d4e5f6a7-b8c9-0123-def4-567890abcdef",
"expense_key": "3571e292-3a83-4011-904d-20ee963022ef",
"document_type": "invoice",
"upload_url": {
"url": "https://<link-temporario-de-envio>",
"fields": {
"key": "d4e5f6a7-b8c9-0123-def4-567890abcdef",
"policy": "<policy>",
"x-amz-algorithm": "AWS4-HMAC-SHA256",
"x-amz-credential": "<credential>",
"x-amz-date": "20260701T120000Z",
"x-amz-signature": "<signature>"
}
}
}
| Campo | Tipo | Descrição |
|---|---|---|
document_key | string | Chave do documento (UUID). Use-a para consultar o documento depois. |
expense_key | string | Chave da despesa à qual o documento pertence. |
upload_url.url | string | Endereço para onde o arquivo deve ser enviado. |
upload_url.fields | object | Campos que precisam acompanhar o arquivo. Envie todos, sem alterar nomes nem valores; o conjunto exato de campos pode variar. |
Envio do arquivo
Faça um POST multipart/form-data para upload_url.url, com todos os campos de upload_url.fields e o arquivo no campo file (o último do formulário). A URL expira em 10 minutos e aceita arquivos de até 50 MB. Essa chamada vai direto para o armazenamento: não leva cabeçalhos de autenticação da QI Tech.
import requests
upload = response_body["upload_url"]
with open("nfe_001234.pdf", "rb") as arquivo:
resposta = requests.post(
upload["url"],
data=upload["fields"],
files={"file": arquivo},
)
resposta.raise_for_status() # 204 indica upload concluído
Se a URL expirar antes do envio, anexe o documento de novo para receber outra URL.
Listar documentos de uma despesa
Um expense_key que não existe na classe de fundo devolve data vazio, não 404.
| Perfil | Host | Permissão exigida |
|---|---|---|
| Gestora | manager-api | Leitura |
URL base de cada host: Ambientes (Hosts).
A listagem não é paginada e não traz a URL de download; para baixar um arquivo, consulte o documento pela chave.
{
"data": [
{
"name": "NF-e 001234 - Auditoria jun/2026",
"document_key": "d4e5f6a7-b8c9-0123-def4-567890abcdef",
"expense_key": "3571e292-3a83-4011-904d-20ee963022ef",
"document_type": "invoice"
}
]
}
Consultar documento por chave
| Perfil | Host | Permissão exigida |
|---|---|---|
| Gestora | manager-api | Leitura |
URL base de cada host: Ambientes (Hosts).
{
"name": "NF-e 001234 - Auditoria jun/2026",
"document_key": "d4e5f6a7-b8c9-0123-def4-567890abcdef",
"expense_key": "3571e292-3a83-4011-904d-20ee963022ef",
"document_type": "invoice",
"document_url": "https://<link-temporario-de-download>"
}
| Campo | Tipo | Descrição |
|---|---|---|
document_url | string | URL pré-assinada para baixar o arquivo, válida por 24 horas. Consulte o documento de novo para obter outra. |
Erros
| Status | Código | Quando acontece |
|---|---|---|
| 400 | EXP000069 | A classe de fundo não pertence à gestora da sua chave de API. |
| 400 | QIT000001 | Body inválido: falta name ou document_type, document_type fora da lista ou campo não previsto. |
| 404 | EXP000072 | A despesa está cancelada (canceled) e não aceita novos documentos. |
| 404 | EXP000071 | O document_key não existe para essa despesa. |
| 500 | QIT000500 | Anexar documento: o expense_key não existe nessa classe de fundo. Confira a chave na consulta de despesas. |
Erros de autenticação, permissão e host: veja Erros da API.