Desafio

Para iniciar um desafio, não basta apenas redirecionar o comprador para a URL obtida no campo acs.url, é necessário fazer um POST do CReq. Ao fim dos desafios, o 3DS Requestor receberá informações (na URL apontada no campo notification_url) referentes à transação 3DS dentro do objeto CRes.

Envio do CReq#

O POST do CReq deve ser feito com o cabeçalho Content-Type = application/x-www-form-urlencoded quando device_channel = 02 ou application/jose quando device_channel = 01. Neste formulário, deve ser enviado o parâmetro creq, cujo conteúdo é o CReq codificado em Base64 URL-safe encoding.

Exemplos#

CReq JSON:

{
"threeDSServerTransID":"12341234-1234-1234-1234-123412341234",
"acsTransID":"43214321-4321-4321-4321-432143214321",
"challengeWindowSize":"05",
"messageType":"CReq",
"messageVersion":"2.2.0"
}

CReq Base64:

ewogICAgInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiMTIzNDEyMzQtMTIzNC0xMjM0LTEyMzQtMTIzNDEyMzQxMjM0IiwKICAgICJhY3NUcmFuc0lEIjoiNDMyMTQzMjEtNDMyMS00MzIxLTQzMjEtNDMyMTQzMjE0MzIxIiwKICAgICJjaGFsbGVuZ2VXaW5kb3dTaXplIjoiMDUiLAogICAgIm1lc3NhZ2VUeXBlIjoiQ1JlcSIsCiAgICAibWVzc2FnZVZlcnNpb24iOiIyLjIuMCIKfQ

HTML de redirecionamento para o desafio:

<!DOCTYPE html>
<html>
<body onload="javascript:iniciar();">
<script type="text/javascript">
function iniciar() {
document.forms.form.submit();
}
</script>
<form action="https://www.acs.com/challenge" method="POST">
<input type="hidden" name="creq" value="ewogICAgInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiMTIzNDEyMzQtMTIzNC0xMjM0LTEyMzQtMTIzNDEyMzQxMjM0IiwKICAgICJhY3NUcmFuc0lEIjoiNDMyMTQzMjEtNDMyMS00MzIxLTQzMjEtNDMyMTQzMjE0MzIxIiwKICAgICJjaGFsbGVuZ2VXaW5kb3dTaXplIjoiMDUiLAogICAgIm1lc3NhZ2VUeXBlIjoiQ1JlcSIsCiAgICAibWVzc2FnZVZlcnNpb24iOiIyLjIuMCIKfQ"/>
</form>
</body>
</html>

Parâmetros do CReq#

ParâmetroDescriçãoFormatoObrigatório
threeDSRequestorAppURLURL do aplicativo do lojista.< 256 ANNÃO
threeDSServerTransIDID da transação 3DS Server= 36 ANSIM
acsTransIDID da transação ACS= 36 ANSIM
challengeCancelIndicador que informa o ACS e o DS que a autenticação foi cancelada.
  • 01 = Portador selecionou "Cancelar"
  • 03 = Timeout de autenticação decoupled
  • 04 = Timeout no ACS
  • 05 = Primeiro CReq não recebido pelo ACS
  • 06 = Erro na transação
  • 07 = Desconhecido
  • 08 = Timeout no 3DS SDK
= 2 NNÃO
challengeDataEntryContém os dados que o portador digitou no campo de texto da interface nativa.< 45 ANNÃO
challengeHTMLDataEntryContém os dados que o portador digitou no campo de texto da interface HTML.< 256 ANNÃO
challengeNoEntryIndicador que informa que o portador submeteu uma resposta vazia.
  • Y = Sem entrada de dados
= 1 ANNÃO
challengeWindowSizeDimensões da janela de desafio exibida ao portador.
  • 01 = 250 x 400
  • 02 = 390 x 400
  • 03 = 500 x 600
  • 04 = 600 x 400
  • 05 = Tela cheia
= 2 NSIM
messageTypeValor fixo CReq.= 4 ANSIM
messageVersionVersão de mensagem 3DS: 2.1.0 ou 2.2.0.< 8 ANSIM
oobContinueValor booleano que notifica o ACS que o portador completou a autenticação selecionando o botão "Continuar" numa forma de autenticação OOB.< 5 ANNÃO
resendChallengeIndicador para o ACS para reenviar o código de informação de desafio para o portador.
  • Y = Reenviar
  • N = Não reenviar
= 1 ANNÃO
sdkTransIDID de transação 3DS SDK. Obrigatório quando device_channel = 01.= 36 ANCOND.
sdkCounterStoAContador usado como medida de segurança no canal seguro entre 3DS SDK e ACS.< 3 ANNÃO
whitelistingDataEntryIndicador fornecido pelo SDK ao ACS para confirmar se a lista branca foi optada pelo portador.
  • Y = Lista branca confirmada
  • N = Lista branca não confirmada
= 1 ANNÃO
messageExtension[]Dados necessários para auxiliar em requisitos não definidos na mensagem 3DS são carregados numa extensão de mensagem.
criticalityIndicatorUm valor booleano que indica se o destinatário deve entender os conteúdos da extensão para interpretar a mensagem inteira.< 5 ANNÃO
dataDados carregados na extensão.ObjectNÃO
idIdentificador único da extensão.< 64 ANNÃO
nameNome da extensão.< 64 ANNÃO

Recebimento do CRes#

O CRes chegará em formato JSON codificado em Base64 na URL informada no serviço de autenticação (campo notification_url).

Parâmetros do CRes#

ParâmetroDescriçãoFormato
threeDSServerTransIDID de transação 3DS Server= 36 AN
acsCounterAtoSContador usado como medida de segurança no canal seguro entre ACS e 3DS SDK.< 3 AN
acsTransIDID de transação no ACS= 36 AN
challengeCompletionIndIndicador do estado do desafio.
  • Y = Desafio concluído, e não serão necessárias novas mensagens de desafio
  • N = Desafio não concluído, e serão necessárias novas mensagens de desafio
= 1 AN
messageTypeValor fixo CRes.= 4 AN
messageVersionVersão de mensagem 3DS: 2.1.0 ou 2.2.0.< 8 AN
sdkTransIDID de transação no 3DS SDK= 36 AN
transStatusStatus da transação segundo o protocolo 3DS 2.0.
  • Y = Autenticado com sucesso
  • N = Não autenticado; transação negada.
  • U = Autenticação não pôde ser realizada; problemas técnicos ou outros.
  • A = Tentativas de processamento realizadas; não autenticado, mas uma prova de autenticação é fornecida.
  • C = Desafio requerido.
  • D = Autenticação decoupled requerida.
  • R = Autenticação rejeitada pelo emissor.
= 1 AN
messageExtension[]Dados necessários para auxiliar em requisitos não definidos na mensagem 3DS são carregados numa extensão de mensagem.
criticalityIndicatorUm valor booleano que indica se o destinatário deve entender os conteúdos da extensão para interpretar a mensagem inteira.< 5 AN
dataDados carregados na extensão.Object
idIdentificador único da extensão.< 64 AN
nameNome da extensão.< 64 AN