Mensagens de 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/json
quando device_channel
= 01
. Neste formulário, deve ser enviado o parâmetro creq
, cujo conteúdo é o CReq (que é um JSON) codificado em Base64.
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>
<form action="https://www.acs.com/challenge" method="POST">
<input type="text" name="creq"
value="ewogICAgInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiMTIzNDEyMzQtMTIzNC0xMjM0LTEyMzQtMTIzNDEyMzQxMjM0IiwKICAgICJhY3NUcmFuc0lEIjoiNDMyMTQzMjEtNDMyMS00MzIxLTQzMjEtNDMyMTQzMjE0MzIxIiwKICAgICJjaGFsbGVuZ2VXaW5kb3dTaXplIjoiMDUiLAogICAgIm1lc3NhZ2VUeXBlIjoiQ1JlcSIsCiAgICAibWVzc2FnZVZlcnNpb24iOiIyLjIuMCIKfQ=="/>
<input type="submit"/>
</form>
</body>
</html>
Parâmetros do CReq
Parâmetro | Descrição | Formato | Obrigatório |
---|---|---|---|
threeDSRequestorAppURL | URL do aplicativo do lojista. | < 256 AN | NÃO |
threeDSServerTransID | ID da transação 3DS Server | = 36 AN | SIM |
acsTransID | ID da transação ACS | = 36 AN | SIM |
challengeCancel | Indicador que informa o ACS e o DS que a autenticação foi cancelada.
| = 2 N | NÃO |
challengeDataEntry | Contém os dados que o portador digitou no campo de texto da interface nativa. | < 45 AN | NÃO |
challengeHTMLDataEntry | Contém os dados que o portador digitou no campo de texto da interface HTML. | < 256 AN | NÃO |
challengeNoEntry | Indicador que informa que o portador submeteu uma resposta vazia.
| = 1 AN | NÃO |
challengeWindowSize | Dimensões da janela de desafio exibida ao portador.
| = 2 N | SIM |
messageType | Valor fixo CReq . | = 4 AN | SIM |
messageVersion | Versão de mensagem 3DS: 2.1.0 ou 2.2.0 . | < 8 AN | SIM |
oobContinue | Valor booleano que notifica o ACS que o portador completou a autenticação selecionando o botão "Continuar" numa forma de autenticação OOB. | < 5 AN | NÃO |
resendChallenge | Indicador para o ACS para reenviar o código de informação de desafio para o portador.
| = 1 AN | NÃO |
sdkTransID | ID de transação 3DS SDK. Obrigatório quando device_channel = 01 . | = 36 AN | COND. |
sdkCounterStoA | Contador usado como medida de segurança no canal seguro entre 3DS SDK e ACS. | < 3 AN | NÃO |
whitelistingDataEntry | Indicador fornecido pelo SDK ao ACS para confirmar se a lista branca foi optada pelo portador.
| = 1 AN | NÃO |
messageExtension[] | Dados necessários para auxiliar em requisitos não definidos na mensagem 3DS são carregados numa extensão de mensagem. | ||
criticalityIndicator | Um valor booleano que indica se o destinatário deve entender os conteúdos da extensão para interpretar a mensagem inteira. | < 5 AN | NÃO |
data | Dados carregados na extensão. | Object | NÃO |
id | Identificador único da extensão. | < 64 AN | NÃO |
name | Nome da extensão. | < 64 AN | NÃ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âmetro | Descrição | Formato |
---|---|---|
threeDSServerTransID | ID de transação 3DS Server | = 36 AN |
acsCounterAtoS | Contador usado como medida de segurança no canal seguro entre ACS e 3DS SDK. | < 3 AN |
acsTransID | ID de transação no ACS | = 36 AN |
challengeCompletionInd | Indicador do estado do desafio.
| = 1 AN |
messageType | Valor fixo CRes . | = 4 AN |
messageVersion | Versão de mensagem 3DS: 2.1.0 ou 2.2.0 . | < 8 AN |
sdkTransID | ID de transação no 3DS SDK | = 36 AN |
transStatus | Status da transação segundo o protocolo 3DS 2.0.
| = 1 AN |
messageExtension[] | Dados necessários para auxiliar em requisitos não definidos na mensagem 3DS são carregados numa extensão de mensagem. | |
criticalityIndicator | Um valor booleano que indica se o destinatário deve entender os conteúdos da extensão para interpretar a mensagem inteira. | < 5 AN |
data | Dados carregados na extensão. | Object |
id | Identificador único da extensão. | < 64 AN |
name | Nome da extensão. | < 64 AN |