Inicio
Documentação
Recursos
Parcerias
Comunidade

Recursos

Confira as atualizaçÔes das nossas soluçÔes e do funcionamento do sistema ou peça suporte técnico.

Parcerias

Conheça nosso programa para agĂȘncias ou desenvolvedores que oferecem serviços de integração e vendedores que desejam contratĂĄ-los.

Comunidade

Fique por dentro das Ășltimas novidades, peça ajuda a outros integradores e compartilhe seu conhecimento.

Pagamentos online
Pagamentos presenciais
Ferramentas e recursos
APIs e SDKs
Open Finance - Configuração da integração - Mercado Pago Developers

Open Finance

Open Finance Ă© um novo sistema financeiro que permite que vocĂȘ tenha total controle dos seus dados e mais liberdade com suas finanças. Com ele Ă© possĂ­vel compartilhar histĂłricos financeiros com outras instituiçÔes para ter acesso a produtos e serviços mais vantajosos.

Com o Open Finance serå possível oferecer pagamentos Pix no Checkout Transparente, utilizando saldos que estejam em instituiçÔes financeiras distintas daquela que estå iniciando o pagamento.

Importante
É preciso ter uma Chave Pix cadastrada em sua conta Mercado Pago. Caso ainda nĂŁo tenha, clique aqui para mais informaçÔes sobre como cadastrĂĄ-las.

Criar um pagamento Pix

Antes de iniciar uma cobrança utilizando Open Finance é preciso ter configurado o meio de pagamento Pix. Para saber como realizar a configuração e a integração, acesse a documentação clicando aqui.

Uma vez que vocĂȘ tenha configurado o meio de pagamento corretamente, serĂĄ preciso inserir uma nova informação Ă  requisição de criar pagamento, atravĂ©s do parĂąmetro point_of_interaction, indicando a modalidade Open finance. Isso Ă© vĂĄlido tanto via API, quanto pelos nossos SDKs, conforme os exemplos a seguir:

          
    MercadoPago\SDK::setAccessToken("access_token");
    $payment = new MercadoPago\Payment();
    $payment->transaction_amount = 100;
    $payment->description = "TĂ­tulo do produto";
    $payment->payment_method_id = "pix";
    $payment->payer = array(
        "email" => "test@test.com",
        "first_name" => "Test",
        "last_name" => "User",
        "identification" => array(
            "type" => "CPF",
            "number" => "19119119100"
        ),
    );
    $payment->point_of_interaction = array(
    "linked_to" => "openfinance"
    );
    $payment->save();
    
        
          
    mercadopago.configurations.setAccessToken("access_token");
    var payment = {
        transaction_amount: 100,
        description: 'description',
        payment_method_id: 'pix',
        payer: {
            email: 'test@test.com'
        },
        point_of_interaction: {
            linked_to: "openfinance"
        }
    };
    mercadopago.payment.create(payment).then(function (data) {
        console.log(data.response);
    }).catch(function (error) {
        console.log(error);
    });
    
        
          
    MercadoPagoConfig.setAccessToken("access_token");
    PaymentClient client = new PaymentClient();

    PaymentCreateRequest createRequest =
    PaymentCreateRequest.builder()
        .transactionAmount(new BigDecimal(100))
        .description("description")
        .paymentMethodId("pix")
        .pointOfInteraction(
            PaymentPointOfInteractionRequest.builder().linkedTo("openfinance").build())
        .payer(PaymentPayerRequest.builder().email("test@test.com").build())
        .build();

    Payment payment = client.create(createRequest);
    
        
          
    sdk = Mercadopago::SDK.new('access_token')

    payment_request = {
        transaction_amount: 100,
        description: 'description',
        payment_method_id: 'pix',
        payer: {
            email: 'test@test.com'
        },
        point_of_interaction: {
            linked_to: "openfinance"
        }
    }
    payment_response = sdk.payment.create(payment_request)
    payment = payment_response[:response]
    
        
          
    MercadoPagoConfig.AccessToken = "access_token";

    var request = new PaymentCreateRequest
    {
        TransactionAmount = 100,
        Description = "description",
        PaymentMethodId = "pix",
        Payer = new PaymentPayerRequest
        {
            Email = "test@test.com"
        },
        PointOfInteraction = new PaymentPointOfInteractionRequest
        {
            LinkedTo = "openfinance"
        }
    };
    var client = new PaymentClient();
    Payment payment = await client.CreateAsync(request);
    
        
          
    sdk = mercadopago.SDK("access_token")

    payment_data = {
        "transaction_amount": 100,
        "description": "description",
        "payment_method_id": "pix",
        "payer": {
            "email": "test@test.com"
        },
        "point_of_interaction": {
            "linked_to": "openfinance"
        }
    }
    payment_response = sdk.payment().create(payment_data)
    payment = payment_response["response"]
    
        
          
    curl --location --request POST 'https://api.mercadopago.com/v1/payments' \
    --header 'Authorization: Bearer TOKEN' \
    --header 'Content-Type: application/json' \
    --data-raw '{
        "transaction_amount": 1000,
        "description": "Teste Pix Open Finance",
        "payment_method_id": "pix",
        "payer": {
            "email": "test_user_19734329@testuser.com"
        },
        "point_of_interaction": {
            "linked_to": "openfinance"
        },
        "callback_url": "https://example.com"
    }'
    
        
Atenção
Para este meio de pagamento, o nĂșmero de CPF Ă© obrigatĂłrio. O parĂąmetro callback_url deve conter o valor da URL que mostra a tela de feedback.

O retorno da requisição serå muito similar ao retorno de um pagamento com Pix comum, com algumas mudanças:

  • O valor openfinance em point_of_interaction.linked_to
  • Valor null em point_of_interaction.transaction_data.qr_code e point_of_interaction.transaction_data.qr_code_base64
  • Valor de point_of_interaction.transaction_data.ticket_url com url para aplicação que finaliza o pagamento por Open Finance

Resposta:

json

{
  "point_of_interaction": {
    "linked_to": "openfinance",
    "transaction_data": {
      "qr_code": null,
      "ticket_url": "https://mercadopago.com.br/payments/1111111111/openfinance?caller_id=11111111&hash=1111",
      "qr_code_base64": null
    }
  }
}

Finalizar pagamento

Com a resposta da requisição de criação de pagamento, basta utilizar a url disponível no objeto point_of_interaction.transaction_data.ticket_url para que o comprador consiga finalizar o pagamento através de Open Finance.

Para isso, Ă© preciso redirecionar o usuĂĄrio para a URL diretamente ou apresentar um botĂŁo que faz o redirecionamento quando clicado.

A imagem a seguir apresenta um exemplo deste fluxo na visĂŁo do usuĂĄrio:

Exemplo de fluxo de pagamento Pix Open Finance

Testar integração

Para testar a integração é necessårio utilizar uma credencial de testes ao criar um pagamento e possuir um usuårio de testes com Chave Pix cadastrada. Clique aqui para acessar a documentação e encontrar mais detalhes sobre como fazer isso.

Crie um pagamento Pix Open Finance e utilize a URL disponĂ­vel no atributo point_of_interaction.transaction_data.ticket_url para acessar a pĂĄgina de redirecionamento.

json

{
  "point_of_interaction": {
    "linked_to": "openfinance",
    "transaction_data": {
      "qr_code": null,
      "ticket_url": "https://mercadopago.com.br/payments/1111111111/openfinance?caller_id=11111111&hash=1111",
      "qr_code_base64": null
    }
  }
}

Nesta pĂĄgina, vocĂȘ terĂĄ acesso Ă s informaçÔes do pagamento e terĂĄ a possibilidade de selecionar apenas o banco 370 - Mercado Pago - Payments para dar continuidade ao teste.

Ao selecionar o banco indicado, serĂĄ possĂ­vel Confirmar o pagamento e por fim, ocorrerĂĄ o redirecionamento para a tela de Feedback definido no parĂąmetro callback_url.