Manual de Teste da API de 3DS.
Este manual foi criado para ajudar você a testar a API 3DS em seu ambiente de desenvolvimento. Com este manual, você será capaz de entender como a API funciona e como usá-la para realizar testes em seu sistema de pagamento.
Ao seguir as instruções deste manual, você poderá garantir que sua integração com a API do 3DS seja confiável e segura para seus usuários.
Atenção:
Os testes serão realizados em um ambiente de homologação do CARAT, o qual oferece um ambiente mais controlado e seguro para a realização dos testes.
Tabela com diferentes cartões para testes:
ID | BANDEIRA | NÚMERO CARTÂO |
---|---|---|
1 | Visa | 4551820000009478 |
2 | Mastercard | 5555555555555555 |
41 | Elo | 5091490000009011 |
3 | Amex | 3766001349171000 |
Tabela com os valores em centavos que podem ser utilizados para simular diferentes status no 3DS:
VALOR | STATUS | DESCRIÇÂO |
---|---|---|
10000 | AUY | Autenticação bem-sucedida |
10004 | AUC | Será necessário um desafio, seguindo o fluxo "challenge" |
10001 | AUN | Não autenticada/conta não verificada; transação negada |
#
ExemplosAbaixo, apresentaremos exemplos de testes nos fluxos Frictionless e Challenge, e um teste com um número de cartão que não está dentro do intervalo de cartões suportados para autenticação 3DS 2.0. Todos os testes serão realizados utilizando a ferramenta cURL.
#
Frictionless [Criando a transação]Tipo de requisição: POST
URL: https://mpi-homolog.softwareexpress.com.br/3ds-server/v2/authentication
Headers:
- Content-Type:
application/json
- merchant_id: {seu código de loja solicitar para equipe de suporte}
- merchant_key: {chave da sua loja solicitar para equipe de suporte}
Cartão Mastercard: 5555555555555555
Requisição:
Resposta:
Saiba mais sobre esse serviço.
#
Frictionless [Fazendo a autenticação]Tipo de requisição: PUT
Na URL acima, o ID da transação 3DS Server foi preenchido com o valor fb26dfb6-2486-442a-8887-d1241c940a61
, que foi obtido durante a criação da transação
Headers:
- Content-Type:
application/json
- merchant_id: {seu código de loja solicitar para equipe de suporte}
- merchant_key: {chave da sua loja solicitar para equipe de suporte}
Requisição:
Resposta:
Saiba mais sobre esse serviço.
#
Cartão não suportado para autenticação 3DS 2.0. [Criando a transação]Tipo de requisição: POST
URL: https://mpi-homolog.softwareexpress.com.br/3ds-server/v2/authentication
Headers:
- Content-Type:
application/json
- merchant_id: {seu código de loja solicitar para equipe de suporte}
- merchant_key: {chave da sua loja solicitar para equipe de suporte}
Cartão Mastercard: 5251743209931344
Requisição:
Resposta:
Saiba mais sobre os códigos de erros.
#
Challenge [Criando a transação]Tipo de requisição: POST
URL: https://mpi-homolog.softwareexpress.com.br/3ds-server/v2/authentication
Headers:
- Content-Type:
application/json
- merchant_id: {seu código de loja solicitar para equipe de suporte}
- merchant_key: {chave da sua loja solicitar para equipe de suporte}
Cartão Mastercard: 5555555555555555
Requisição:
Resposta:
Saiba mais sobre esse serviço.
#
Challenge [Fazendo a autenticação]Tipo de requisição: PUT
Na URL acima, o ID da transação 3DS Server foi preenchido com o valor fb26dfb6-2486-442a-8887-d1241c940a61
, que foi obtido durante a criação da transação
Atenção
Para simular o fluxo de Challenge, é necessário passar no campo
purchase.amount
o valor10014
da transação , conforme indicado na tabela apresentada no início deste manual.
Headers:
- Content-Type:
application/json
- merchant_id: {seu código de loja solicitar para equipe de suporte}
- merchant_key: {chave da sua loja solicitar para equipe de suporte}
Requisição:
Resposta:
#
Challenge [Desafio]Tipo de requisição: POST
URL: https://mpi-homolog.softwareexpress.com.br/e-sitef-homologacao/acs/challenge.se?brandId=2
Na URL acima, é preciso inserir valor do brandId
, que no nosso teste é definido como 2
, já que estamos utilizando o cartão da bandeira Mastercard.
Headers:
- Content-Type:
application/x-www-form-urlencoded
Envio do CReq
Para obter o desafio deve ser enviado o parâmetro creq, cujo conteúdo é o CReq codificado em Base64 URL-safe encoding.
CReq Json
Nesse JSON colocamos o mesmo ID da transação do 3DS Server three_ds_server.trans_id
e o ID da transação do ACS acs.trans_id
que foram obtidos nas duas etapas anteriores.
CReq Base64:
Saiba mais sobre esse serviço.
Após o CReq Json codificado em Base64 criamos a requisição abaixo.
Requisição:
Resposta:
Na resposta retornará um script do nosso simulador que simula um desafio do ACS (Emissor). Normalmente, este script seria adicionado na aplicação em um iframe, mas para fins de teste, vamos salvar como um arquivo HTML e abra ele no browser, após isso, selecione o status do desafio desejado - vamos escolher o Status Y, indicando sucesso - e clique no botão enviar
Arquivo HTML aberto no browser:
Atenção
Esse é apenas um simulador do CARAT para simular o desafio.
Script da resposta para simular o desafio conforme representado na imagem acima:
Atenção
Esse script é retornado na resposta do envio do CReq.
Consulta o status da transação após o desafio
Tipo de requisição: GET
Na URL acima, o ID da transação 3DS Server foi preenchido com o valor fb26dfb6-2486-442a-8887-d1241c940a61
, que foi obtido durante a criação da transação
Headers:
- Content-Type:
application/json
- merchant_id: {seu código de loja solicitar para equipe de suporte}
- merchant_key: {chave da sua loja solicitar para equipe de suporte}
Requisição:
Resposta:
E para saber mais sobre essas nomenclaturas (Bin, Software Express, Carat, e-Sitef) Saiba mais