Esta página reúne, em um só lugar, todos os códigos que a API da Malvo pode retornar: o status HTTP e seu significado, o codeDescription do envelope de erro, os executionStatus de erro de uma execução de Item e os códigos de item.error com a resolução recomendada. Para o formato do envelope, os erros de validação errors[] e o que enviar num ticket, veja Erros.

Status HTTP e significado

Todo code no envelope espelha o status HTTP.
Semântica crítica 403 vs. 401: falha de autenticação em POST /connect_token aparece como 403, não 401. Trate um 403 desse endpoint como “renove a apiKey via POST /auth e tente de novo”, não como problema de permissão.

codeDescription conhecidos

O codeDescription é o discriminador estável (SCREAMING_SNAKE_CASE) no qual os clientes devem ramificar. Os valores devem casar exatamente.

executionStatus de erro

O executionStatus é o estado fino da última execução de um Item. Os valores finais de erro são:
Há também os valores finais de sucesso SUCCESS (todos os produtos coletados) e PARTIAL_SUCCESS (alguns produtos falharam — inspecione statusDetail por produto). O PARTIAL_SUCCESS aparece, por exemplo, quando um limite mensal da rede de Open Finance é atingido (aviso 423). Veja Limites do Open Finance.

Códigos de item.error

Entregues via webhook item/error e em GET /items/{id}error.code. Cada um tem uma resolução recomendada.
O usuário digitou usuário ou senha incorretos. Resolução: envie o usuário pelo update mode do widget com o mesmo itemId para reinserir as credenciais.
Token MFA incorreto ou expirado. Resolução: reinicie o MFA no update mode.
A sessão na instituição está retida por outro dispositivo. Resolução: peça ao usuário para sair (logout) dos outros dispositivos e tente novamente.
A instituição bloqueou a conta após muitas falhas. Resolução: intervenção manual do usuário no app do banco; não é recuperável via API.
A instituição exige que o usuário aceite termos ou atualize o perfil. Resolução: o usuário faz login no app do banco, executa a ação e então repete.
A instituição está indisponível (correlaciona com connector/status_updatedOFFLINE). Resolução: aguardar, monitorar a página de status e tentar mais tarde.
O fluxo de consentimento do Open Finance não foi concluído (ou o consentimento foi revogado). Resolução: reemitir o consentimento via update mode do widget; se expirou, é necessário um novo consentimento.
O conector não suporta este perfil de usuário (ex.: conta empresarial em conector PF). Resolução: usar o conector correto.
O conector está temporariamente desabilitado pela plataforma. Resolução: aguardar a reabilitação; não fazer retry programático.
Erro genérico transitório de rede ou da instituição. A Malvo já realiza até 3 tentativas no total, separadas por 10 segundos, antes de finalizar a execução. Resolução: se ainda falhar, tente novamente mais tarde; não recrie o Item.
Após a recuperação, o Item segue UPDATINGUPDATED e um webhook item/updated é disparado.

Relacionado