Antes de realizar transações com 3DS2, é necessário preparar sua conta Malga com as configurações adequadas:

Habilitando o 3DS2 na Conta Malga

  • Solicite a ativação do 3DS2: Entre em contato com a equipe Malga para habilitar a funcionalidade 3D Secure 2 em sua conta. A Malga irá configurar o suporte ao 3DS2 para o seu ambiente. Somente após essa habilitação você poderá prosseguir com os próximos passos.
  • Provedor de pagamento compatível: Verifique se você possui ou configurou um provedor de pagamento que suporte 3DS2 em sua conta Malga. Você pode consultar a lista de provedores suportados nesse link Introdução - Malga (3DS2_Malga)

Criando um Merchant com Suporte a 3DS2

Após ter o 3DS2 habilitado e um provedor compatível, você deve criar ou atualizar o Merchant com informações adicionais exigidas. A criação de um merchant na Malga segue o padrão usual, porém alguns campos extras são necessários:
  • merchantUrl – URL do site da loja que está usando 3DS2 (geralmente a página inicial ou domínio do e-commerce).
  • merchantName – Nome do estabelecimento que aparecerá para o cliente durante o desafio 3DS.
  • providers.acquirer.merchantId – O identificador do seu merchant junto ao provedor de pagamento. Muitos provedores usam um único Merchant ID para todas as bandeiras de cartão;
  • providers.acquirer.bin – Lista de BINs do adquirente cadastrados para cada bandeira de cartão. Inclui:
    • brand: Nome da bandeira (por exemplo, “Visa”, “Mastercard”, “Elo”).
    • value: BIN (Bank Identification Number) do adquirente associado àquela bandeira.
    • merchantId (opcional por bandeira): Se o seu provedor utilizar um Merchant ID diferente para cada bandeira, você pode especificá-lo aqui. Caso contrário, se for igual para todas as bandeiras, use apenas o campo principal providers.acquirer.merchantId.
Importante: As configurações de acquirer (BINs e MerchantIDs) devem ser fornecidas pelo seu provedor de pagamento. Certifique-se também de que o provedor confirmou o cadastro desses dados junto às bandeiras de cartão. Sem esse cadastro adequado, as tentativas de transação com 3DS podem resultar em erro.
A seguir, um exemplo de requisição cURL para criar um merchant e atualizar com as configurações 3DS2 (substitua <SEU_API_KEY> e <SEU_CLIENT_ID> pelos valores da sua conta, e ajuste os dados conforme o seu caso):
curl --request POST 'https://api.malga.io/v1/merchants' \
  --header 'x-api-key: <SEU_API_KEY>' \
  --header 'x-client-id: <SEU_CLIENT_ID>' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "mcc": "4814",
    "merchantUrl": "https://www.sualoja.com.br",
    "merchantName": "Minha Loja Online",
    "providers": [
      {
        "priority": 1,
        "name": "SandboxProvider",
        "credentials": {
          "type": "SANDBOX",
          "apiKey": "SUaChaveDeAPI_Provedor"
        },
        "acquirer": {
          "merchantId": "ABC123MERCHANTID",
          "bin": [
            {
              "brand": "Visa",
              "value": "000001"
            },
            {
              "brand": "Mastercard",
              "value": "000002"
            }
          ]
        }
      }
    ],
    "status": true
  }'
No exemplo acima, o merchant é criado com um provedor de pagamento sandbox e informações fictícias (MCC, nome, URLs, Merchant ID e BINs). Ajuste esses campos para os valores reais fornecidos pelo seu provedor.

Configurando o Fluxo de Pagamento 3DS2

A Malga utiliza Fluxos de Pagamento para orquestrar qual provedor será usado em cada transação. É necessário criar (ou atualizar) um fluxo de pagamento específico para 3DS2, indicando o merchant e o provedor configurado acima. Defina o atributo paymentMethod como “3ds2_malga” para que a Malga saiba que esse fluxo usará a solução 3DS2 própria. Exemplo de requisição cURL para criar um fluxo 3DS2 apontando para um provedor específico:
curl --request POST 'https://api.malga.io/v1/flows' \
  --header 'x-api-key: <SEU_API_KEY>' \
  --header 'x-client-id: <SEU_CLIENT_ID>' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "name": "Fluxo 3DS2",
    "merchantId": "<MERCHANT_ID_CRIADO>",
    "paymentMethod": "3ds2_malga",
    "flow": {
      "root": [
        {
          "rule": "provider",
          "id": "<1__ID_DO_PROVEDOR_COM_SUPORTE_3DS2>"
        },
        {
          "rule": "provider",
          "id": "<2__ID_DO_PROVEDOR_COM_SUPORTE_3DS2>"
        }
      ]
    }
  }'
Nesse exemplo, substitua <MERCHANT_ID_CRIADO> pelo ID do merchant criado no passo anterior, e <1__ID_DO_PROVEDOR_COM_SUPORTE_3DS2> pelo identificador do provedor (conforme retornado na criação do merchant ou obtido via API). O fluxo acima direciona todas as transações 3DS2 do merchant para o provedor especificado. Após essa configuração, sua conta Malga está pronta para realizar transações com autenticação 3DS2.
Recomendação: Esta etapa pode ser feita pelo Dashboard Malga, para tornar a configuração mais simples e prática.