3D Secure 2.0 (Novo)

Disponível apenas para a adquirente Rede Rest.

Transações autenticadas 3D Secure ou 3DS 2.0, são transações que necessitam de uma autenticação adicional para garantir maior segurança ao portador do cartão nas compras online.

A autenticação 3DS é efetuada através da validação de dados que apenas o portador do cartão e o banco possuem, como por exemplo, senha do cartão, data de nascimento, código de segurança e o token do banco.

- Obrigatório para operações com cartão de Débito
- Opcional para operações com cartão de Crédito

🚧

Alguns cartões de débito não suportam a autenticação 3DS 2.0. Para poder decidir por transação qual cartão de débito pode ou não entrar em um fluxo 3DS, entre em contato com o suporte.

REQUISIÇÃO

🚧

POST

/v1/transactions

Além das propriedades da autorização, é necessário enviar as seguintes propriedades:

PROPRIEDADETIPOTAMANHOOBRIGATÓRIODESCRIÇÃO
userAgentTextoAté 500SimObrigatório para transações com 3DS. Identificador do browser utilizado pelo comprador no momento da compra.
card.authenticateNúmero1NãoPara débito sempre será: 1
Para crédito o default é: 3

Opções disponíveis:
1. Autorizar só transações autenticadas
2. Autorizar transações autenticadas ou não autenticadas
3. Autorizar sem autenticação
device
device.colorDepthNúmero2SimCampo que representa a estimativa da paleta de cores usada para a exibição de imagens, em bits por pixel.
device.deviceType3dsTexto20SimCampo que indica o tipo de dispositivo. Exemplo: BROWSER.
device.javaEnabledBooleano-SimCampo booleano que representa a capacidade do navegador para executar Java. O valor é aquele retornado pela propriedade navigator.javaEnabled, true ou false.
device.languageTexto10SimIdioma do navegador no formato IETF BCP47, contendo entre 1 e 8 caracteres.
device.screenHeightNúmero6SimA altura total da tela do cliente em pixels. O valor é aquele retornado pela propriedade screen.height.
device.screenWidthNúmero6SimA largura total da tela do cliente em pixels. O valor é aquele retornado pela propriedade screen.width.
device.timeZoneOffsetNúmero2SimNúmero de horas entre a hora local do usuário e o UTC (Horário Coordenado Universal).
{
   "referenceId": "19893211234",
   "amount": "1000",
   "description": "Mouse sem fio",
   "userAgent": "Mozilla/5.0 ...",
   "customer": {
      "name": "Comprador Teste",
      "document": "12345678909"
   },
   "payment": {
       "card": {
          "type": 1,
          "capture": false,
          "installments": 1,
          "interestType": 3,
          "authenticate": 3,
          "softDescriptor": "Pagamento GATE2all",
          "saveCard": false,
          "recurrent": false,
          "provider": "Cielo",
          "providerVersion": "3.0",
          "cardInfo": {
              "number": "4539708473330561",
              "expirationMonth": "04",
              "expirationYear": "2026",
              "cvv": "234",
              "brand": "VISA",
              "holderName": "HOLDER NAME"
            }
        }
   },
   "device": {
        "colorDepth": 1,
        "deviceType3ds": "BROWSER",
        "javaEnabled": false,
        "language": "pt-BR",
        "screenHeight": 500,
        "screenWidth": 500,
        "timeZoneOffset": 3
    }
}
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

URL obj = new URL("https://api.gate2all.com.br/v1/transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();

con.setRequestMethod("POST");
con.setRequestProperty("content-type", "application/json");
con.setRequestProperty("authenticationApi", "demo");
con.setRequestProperty("authenticationKey", "demo");

String body = "{"
        + "\"referenceId\": \"123456\","
        + "\"amount\": \"1000\","
        + "\"description\": \"Venda Teste\","
        + "\"userAgent\": \"Mozilla/5.0 ...\","
        + "\"postBackUrl\": \"http://url-notificacao\","
        + "\"customer\": {"
        + "    \"name\": \"COMPRADOR TESTE\","
        + "     \"document\": \"23650403811\""
        + "},"
        + " \"payment\": {"
        + "    \"card\": {"
        + "        \"type\": 1,"
        + "        \"capture\": false,"
        + "        \"installments\": 1,"
        + "        \"interestType\": 3,"
        + "        \"authenticate\": 3,"
        + "        \"saveCard\": false,"
        + "        \"recurrent\": false,"
        + "        \"softDescriptor\": \"Gate2All\","
        + "        \"cardInfo\": {"
        + "           \"number\": \"4539708473330561\","
        + "           \"expirationMonth\": \"04\","
        + "           \"expirationYear\": \"2026\","
        + "           \"cvv\": \"234\","
        + "           \"brand\": \"VISA\","
        + "           \"holderName\": \"COMPRADOR TESTE\""
        + "        }"
        + "      }"
        + "   }"
        + "}";

con.setDoOutput(true);
DataOutputStream dos = new DataOutputStream(con.getOutputStream());
dos.writeBytes(body);
dos.flush();
dos.close();

Scanner scanner = new Scanner(new BufferedReader(new InputStreamReader(con.getInputStream())));
String response = scanner.nextLine();
scanner.close();

System.out.println(response);

RESPOSTA

Além das propriedades da transação, será retornado a propriedade redirectUrl, para a qual deve ser redirecionado o cliente.

PROPRIEDADETIPOTAMANHODESCRIÇÃO
redirectUrlTextoAté 500Url de autenticação retornada pelo sistema 3DS 2.0.

A transação ficará com status TRANSACAO INICIADA até que receba o retorno da autenticação do 3DS 2.0.

{
  "transactionId": "92d50ba4-5d93-4ee5-90e8-9884b250310a",
  "referenceId": "1463697571584",
  "description": "TV LG 42",
  "amount": "1000",
  "status": 5,
  "userAgent": "Mozilla/5.0 ...",
  "dtTransaction": "2020-12-05T12:04:20",
  "payment": {
    "card": {
      "type": 1,
      "softDescriptor": "Gate2All",
      "interestType": 3,
      "installments": 1,
      "capture": false,
      "authenticate": 3,
      "saveCard": false,
      "recurrent": false,
      "provider": "CIELO",
      "providerVersion": "3.0",
      "authenticationECI": 7,
      "codAuthorization": "123456",
      "providerReference": "1006993069000834928A",
      "providerCode": "00",
      "providerMessage": "Transacao autorizada com sucesso",
      "cardInfo": {
        "number": "453970******0561",
        "expirationMonth": "04",
        "expirationYear": "2026",
        "cvv": "***",
        "brand": "VISA",
        "holderName": "HOLDER NAME"
      }
    }
  },
  "customer": {
    "name": "HOLDER NAME",
    "document": "12345678909"
  }
  "redirectUrl": "https://api.userede.com.br/Redirect/auth?token=qNRl..."
}
Transação autorizada e não capturada

Falha