Skip to main content
Abaixo estão os principais erros que podem acontecer durante uma transação com 3DS, para te ajudar a identificar e entender melhor cada situação.

Erros de elegibilidade do provedor

Antes de criar a cobrança, a Malga verifica se há um provedor com as capacidades exigidas pela modalidade. Quando não há um provedor elegível para 3DS2 Malga ou MPI externo, a API retorna um dos erros abaixo: Os valores de details acima são fixos e não incluem PAN, CVV, CAVV/UCAF, XID, tokens, credenciais ou o payload bruto do MPI.
Esses declined_code não se aplicam ao 3DS nativo, com ou sem splitRules. Quando não há provedor com operation=3ds2 para o caminho nativo, a API mantém o erro HTTP 404, sem substituir esse comportamento pelos novos códigos 400.

Retentativas e SetupId

Os erros provider_not_configured_for_3ds2 e provider_not_configured_for_required_capabilities acontecem antes da criação da cobrança. Por isso, eles não consomem o setupId nem reservam a chave de idempotência. Após corrigir a configuração do provedor, você pode repetir a mesma requisição com a mesma chave de idempotência e o mesmo setupId, quando aplicável.
Se a tentativa avançar além da verificação de elegibilidade e consumir o setupId, não reutilize esse identificador. O setupId é válido para uma única tentativa de cobrança.
Para retentar após uma falha que consumiu o setupId, você deve:
  1. Criar um novo setup — Chame novamente o endpoint POST /v1/charges/3ds/setup para obter um novo setupId Veja aqui como criar o setup
  2. Realizar nova coleta de dados — Execute novamente a etapa de coleta de dados do dispositivo (Passo 2)
  3. Criar nova cobrança — Crie uma nova cobrança usando o novo setupId obtido
Tentar reutilizar um setupId já consumido resultará em erro e impedirá o processamento da transação.