Recursos para IA

Integração avançada

A integração web do Fintoc permitirá que você ofereça este meio de pagamento em checkouts de lojas online que são acessadas através de navegadores web.

Por meio de nossos SDKs, é possível utilizar diferentes métodos que permitirão controlar a experiência de pagamento dos usuários dentro da própria loja, de maneira transparente e adaptável às suas necessidades.

Nesta documentação, você contará com o passo a passo necessário para realizar essa integração e, além disso, oferecemos um fluxo de teste para que possa verificar se a integração foi bem-sucedida.

Importar MercadoPago.js

Para integrar Fintoc e inicializar o widget posteriormente, capture os dados necessários para processar o pagamento, incluindo a biblioteca MercadoPago.js no seu projeto. Use o código a seguir para fazer isso via HTML ou bash.

<body>
  <script src="https://sdk.mercadopago.com/js/v2"></script>
</body>

Configurar credenciais

As credenciais são chaves únicas com as quais identificamos uma integração na sua conta. Servem para capturar pagamentos em lojas virtuais e outras aplicações de forma segura.

Utilize o código abaixo para configurar as credenciais na sua integração, substituindo "YOUR_PUBLIC_KEY" pela chave pública (Public Key) de produção atribuída à sua aplicação.

javascript
const mp = new MercadoPago('YOUR_PUBLIC_KEY');

Criar pagamento

O processo de implementação inicia-se a partir da criação de um pagamento, o qual retornará, dentro do nó data e entre outros parâmetros, o campo external_reference_id, cujo valor representa um token que você deve armazenar para utilizá-lo na inicialização do widget do Fintoc no seu frontend.

Para isso, envie um POST com os atributos obrigatórios requeridos ao endpoint /v1/payments e execute a requisição ou, se preferir, faça o envio das informações utilizando nossos SDKs.

Para esta etapa, ao fazer a requisição através da API ou SDKs, é necessário enviar seu Access Token produtivo. Consulte mais informações em Credenciais.
MercadoPagoConfig::setAccessToken("YOUR_ACCESS_TOKEN");
    
$client = new PaymentClient();

$createRequest = [
  "description" => "Titulo do produto",
  "payer" => [
     "email" => "test_user_cl@testuser.com",
  ],
  "payment_method_id" => "fintoc",
  "transaction_amount" => 5000,
  "callback_url" => "https://www.your-site.com",
  "point_of_interaction" => [
    "type" => "CHECKOUT",
    "sub_type" => "INTER_PSP"
  ]
];

    $client->create($createRequest, $request_options);
AtributoTipoDescriçãoExemplo
transaction_amountnumberValor da transação.2000
payment_method_idstringIdentificador do meio de pagamento. Sempre deve ser fintoc.fintoc
descriptionstringDescrição do motivo do pagamento.Producto1
callback_urlstringURL para qual o Mercado Pago faz o redirecionamento final.https://www.your-site.com
point_of_interaction.typestringInformação da aplicação que processa o pagamento. Para o atributo type, sempre deve ser CHECKOUTCHECKOUT
point_of_interaction.sub_typestringIdentificador secundário do tipo de pagamento. Para o atributo sub_type, sempre deve ser INTER_PSPINTER_PSP

A seguir, você verá um exemplo de resposta a essa solicitação, no qual informações foram omitidas para destacar os campos mais relevantes:

Lembre-se de armazenar o valor do campo external_reference_id para utilizá-lo na inicialização do widget. Tenha em mente que ele é válido apenas por 10 minutos. Após esse tempo, ele expirará e você precisará criar outro pagamento.
json
{
  ...
    "id":"<PAYMENT_ID>",
  "payment_method_id": "fintoc",
  "payment_method": {
    "data": {
      "external_reference_id": "<WIDGET_TOKEN>",
    }
   ...
  }
}
Caso ocorra algum erro ao gerar um pagamento, consulte a lista de possíveis erros na seção Referência de API.

Inicializar Fintoc

Para finalizar o pagamento, é necessário inicializar o iframe e implementar o widget do Fintoc no seu frontend. Para isso, utilize o método mp.fintoc(), que disponibilizamos dentro de nossos SDKs, e que permitirá que você inicialize os recursos existentes.

javascript
const fintoc = mp.fintoc();

Em seguida, abra o widget de pagamento do Fintoc utilizando o método mp.fintoc.open(), enviando os parâmetros necessários, conforme indicado a seguir.

javascript
async function openFintoc() {
  try {
    await fintoc.open({
      institutionId: <INSTITUTION_ID>,
      username: <USERNAME>
      widgetToken: <EXTERNAL_REFERENCE_ID>
      onSuccess,
      onExit,
      onEvent,
    })
  } catch(e) {
    console.error(e)
  }
}
AtributoTipoDescriçãoRequerido/opcional
institutionIdstringIdentificador da instituição financeira. Quando é incluído, pré-seleciona a instituição que aparecerá na abertura do widget. Por exemplo, o valor cl_banco_de_chile indicará que o widget será aberto com o Banco Estado.Opcional
usernamestringSe preenchido, ao selecionar o banco para a transação, o usuário já estará identificado e precisará apenas fornecer sua senha.Opcional
widgetTokenstringToken criado no backend ao momento da criação de um pagamento. É o valor recebido para o parâmetro external_reference_id, que inicializa e configura o widget.Requerido
onSuccessfunctionCallback que será chamado após uma criação bem-sucedida do widget.Requerido
onExitfunctionCallback que será chamado quando o usuário fechar o widget antes do tempo.Requerido
onEventfunctionCallback que será chamado cada vez que o usuário executar alguma ação no widget.Requerido
Importante
O reembolso de pagamentos efetuados através do Fintoc poderá ser solicitado através da seção "Atividades" do Painel do Mercado Pago do vendedor. O processamento pode levar até 72 horas. Leve em consideração que as solicitações feitas após as 14h terão o prazo contado a partir do dia seguinte.

Fechar e eliminar Fintoc

Se necessário, é possível fechar e eliminar o iframe do Fintoc previamente inicializado utilizando outros dois métodos.

- Fechar Fintoc

Utilize o método mp.fintoc.close() para fechar o iframe sem destruir o widget, ocultando-o para o usuário.

javascript
function closeFintoc() {
      fintoc.close()
}

- Eliminar Fintoc

Utilize e método mp.fintoc.destroy() quando for necessário eliminar diretamente a instância da sua aplicação.

javascript
function destroyFintoc() {
      fintoc.destroy()
}

Caso precise reinicializar a instância, você pode chamar novamente o método mp.fintoc.open().

Teste de integração avançada

É possível testar o funcionamento da sua integração e do processamento de pagamentos com Fintoc. Para isso, você deve inicializar o widget em um ambiente de testes, utilizando credenciais de teste do Mercado Pago.

Para começar, inicialize o widget do Fintoc adicionando o parâmetro sandbox: true ao método mp.fintoc:

javascript
const fintoc = mp.fintoc({sandbox: true});

Uma vez que o escopo de testes do Fintoc esteja instanciado, continue com a abertura do widget conforme descrito na etapa Inicializar Fintoc.

javascript
async function openFintoc() {
                  try {
                    await fintoc.open({...})
                  } catch(e) {
                    console.error(e)
                  }

Os diferentes cenários de pagamento a serem testados dependerão dos últimos dois dígitos enviados no campo transaction_amount, a partir dos quais você poderá definir casos de sucesso ou erro. Siga as indicações da tabela abaixo para cada caso:

CenárioÚltimos dígitos do campo transaction_amountExemplo
Pagamento aprovado01transaction_amount: 10701
Pagamento aprovado02transaction_amount: 10702
Pagamento rejeitado03transaction_amount: 10703
Pagamento aprovado04transaction_amount: 10704
Pagamento aprovado05transaction_amount: 17505
Pagamento aprovado06transaction_amount: 3006
Pagamento aprovado07transaction_amount: 3007
Pagamento aprovado08transaction_amount: 3008
Pagamento aprovado09transaction_amount: 3009

Dentro do iframe, você deverá selecionar um banco para realizar a transação de teste, que pode ser qualquer um dos exibidos. Lá, você deverá fazer login simulando um usuário comprador com uma das contas de teste que disponibilizamos a seguir:

UsuárioSenha
41614850-3jonsnow
40427672-7jonsnow
41579263-8jonsnow

Na tela seguinte, ainda dentro do ambiente de testes, será solicitado que você selecione uma conta a partir da qual a transação de teste será paga. Nenhuma das contas ou valores é real.

O código de autorização MFA que deve ser inserido posteriormente dependerá da conta selecionada, conforme mostramos a seguir.

Número de contaTipo de MFACódigo
813990168Dispositivo de segurança000000
422159212Aplicativo móvelN/A
5233137377Aplicativo móvelN/A
170086177SMS0000
746326042Cartão de coordenadas['00', '00', '00']
4420245701Cartão de coordenadas['00', '00', '00']

Por último, após inserir o código correto, clique no botão Pagar e valide o resultado do pagamento de acordo com o valor inserido para a transação.

Dessa forma, você terá concluído seus testes com o Fintoc e poderá começar a operar em um ambiente produtivo.