Quando é criada uma cobrança (/charges) do tipo 3DS2 Malga e o status retornado é pending, significa que o banco emissor solicitou um desafio ao cliente. Nesse caso é necessário incluir um script no front-end que irá abrir um iframe de interação do cliente com o banco emissor. O banco emissor proporá um desafio ao cliente para que ele comprove sua autenticidade. Existem 2 campos necessários para o desafio, o stepUrl e o token. Esses campos são retornados na criação da cobrança 3DS2 Malga.

Exemplo de requisição

<div style="display: none;">
    <form id="step_up_form" name="stepup" method="POST">
        <input id="step_up_form_jwt_input" type="text" name="JWT">
    </form>

    <iframe id="step_up_iframe" style="border: none; margin-left: auto; margin-right: auto; display: block" height="800px" width="400px" name="stepUpIframe"></iframe>
</div>
<script>
    //Esses valores são retornados no criação da cobrança
    const stepUrl = ''; //stepUrl retornada no criação da cobrança(`/charges`)
    const token = ''; //token retornado no criação da cobrança(`/charges`)
    //Esses valores são retornados no criação da cobrança

    const docFormStep = document.getElementById('step_up_form');
    const docInputStepJwt = document.getElementById('step_up_form_jwt_input');
    docFormStep.action = stepUrl;
    docInputStepJwt.value = token;
    docFormStep.submit();
</script>