Erros da API
Toda resposta de erro das APIs do IaaS tem o mesmo corpo. O status HTTP e o code dizem o que aconteceu; o prefixo do code diz em que área.
Formato do corpo de erro
| Campo | Tipo | Descrição |
|---|---|---|
title | string | Nome curto do erro, em inglês. |
description | string | Descrição em inglês. Em erros de validação, traz o campo que falhou. |
translation | string | Descrição em português. |
code | string | Três letras que indicam a área, seguidas de seis dígitos. Use este campo no seu tratamento de erro. |
Exemplo: uma integração de gestora sem a permissão de escrita chamando um POST.
{
"title": "Manager does not have permission to access this endpoint",
"description": "Manager does not have permission to access this endpoint",
"translation": "Gestor nao tem permissão para acessar esse endpoint",
"code": "MIT000017"
}
Trate o erro pelo status HTTP e pelo code. Os textos de title, description e translation podem mudar.
Prefixo do code
| Prefixo | Onde o erro aconteceu |
|---|---|
MIT | Host da gestora (manager-api): autenticação, permissão e roteamento. |
CIT | Host da consultoria (consultant-api): autenticação, permissão e roteamento. |
AIT | Host do cedente (assignor-api): autenticação, permissão e roteamento. |
QIT | Erro genérico, em qualquer host ou serviço: rota inexistente, método não aceito, body inválido, erro interno. |
SET | Liquidação de ativos (/settlement). |
TRC | Cessão de recebíveis (/trade_receivables). |
TRF | Arquivos de cessão (/trade_receivables_files). |
TRR | Venda e recompra de ativos (/trade_resolve). |
TTR | Boletador de títulos públicos (/trade_treasury). |
ASR | Homologação de cedente (/assignor_registry). |
ASS | Cedentes (/assignor). |
ACT | Contrato de cessão (/assignment_contract). |
AAM | Aditamento de recebíveis (/asset_amendment). |
ADF | Documentos de ativos (/asset_document_files). |
BSC | Boletos (/bankslip_collection). |
CSH | Contas e extrato (/cash_account). |
TSF | Transferência interna (/transfer). |
TRV | Estorno de transação (/transaction_reversal). |
CMP | Composição de carteira (/composition). |
WLT | Carteira (/wallet). |
EXP | Despesas (/expense). |
IVR | Cadastro de investidor (/investor_registry). |
IAD | Termo de adesão (/investor_adhesion). |
QTA | Cotas (/quota). |
QOF | Controle de oferta (/quota_offering_control). |
TFQ | Cotas de fundo como ativo (/trade_fund_quota). |
Um 400 com code QIT000001 indica corpo da requisição inválido: o campo com problema vem em description.
Autenticação
Os erros de header, chave de API e assinatura (*000007 a *000016 e *000020) e como corrigir cada um estão em Teste de autenticação.
Permissão e rota
Depois de autenticar a requisição, o host confere se a sua integração pode chamar aquela rota. Falta de permissão volta como 401, não 403: não procure erro de assinatura quando o code for um destes.
| Status | code | Quando acontece | O que fazer |
|---|---|---|---|
| 401 | MIT000017 | A integração da gestora não tem a permissão que a rota exige: Leitura, Escrita ou as duas. | Confira a permissão no bloco "Disponível em" da página do endpoint e o status em Permissões, na tela da integração. Veja liberação das permissões. |
| 401 | CIT000018 | A consultoria não tem vínculo ativo com o fundo (fund_class_key) ou não tem, nesse fundo, a permissão que a rota exige. | Confira o fund_class_key e a permissão indicada em "Disponível em". As permissões da consultoria são dadas por fundo. Se a permissão aparece como Liberada pelo time de integração, ela não é configurável no portal: peça a liberação em integracao.dtvm@qitech.com.br. |
| 401 | AIT000017 | A integração do cedente não tem a permissão de leitura ou escrita que a rota exige. | Fale com integracao.dtvm@qitech.com.br. |
| 400 | *000009 | A integração está desativada. | Reative a integração (como) ou fale com o time de integração. |
| 404 | QIT000404 | O host não expõe esse caminho. | Numa rota documentada, quase sempre é a URL base de outro perfil: confira o bloco "Disponível em" da página e a URL base do seu perfil. Confira também o caminho, sem a base_url. |
| 405 | QIT000405 | O caminho existe no host, mas não com esse método. | Confira o método na página do endpoint. |
Reenvio e duplicidade
Em caso de erro, reenvie a requisição. Se o recurso já existir, a criação devolve um erro de duplicidade em vez de criar outro: consulte o recurso existente.
| Criação | code de duplicidade | Status | Como consultar o recurso existente |
|---|---|---|---|
| Lote de pagamento (liquidação) | SET000009 | 409 | Recuperação do lote, pelo external_id do lote. |
| Liquidação dentro de um lote | SET000013 | 400 | Recuperação da liquidação, pelo external_id da liquidação. |
| Lote de venda ou recompra | TRR000015 | 409 | GET /trade_resolve/fund_class/{fund_class_key}/assignment/{assignment_external_id}, exposto só no host do cedente. Gestora e consultoria não têm essa consulta. |
| Operação do boletador de títulos públicos | TTR000044 | 409 | GET /trade_treasury/fund_class/{fund_class_key}/operations, procurando o seu external_id na lista. |
external_idNo boletador o external_id é opcional. Envie-o sempre: sem ele, a API não reconhece uma operação já criada.
Erro interno
500 com QIT000500 é erro do lado da QI. Se persistir, envie a requisição (sem a chave privada), o horário em UTC e o code para integracao.dtvm@qitech.com.br.