Princípios básicos

É possível integrar o sistema do Pagar.me com um mPOS (PinPad) de forma extremamente simples e direta. Com isso você tem a vantagem de usar os produtos do Pagar.me, como Marketplace, Recorrência, metadata e visualização das transações via Dashboard.

O termo mPOS quer dizer Mobile Point of Sale. Ou seja, é uma forma de capturar os dados de cartão em um device certificado, em seguida passar a um PSP como o Pagar.me, para criar uma transação financeira.

O requisito básico é que sua empresa esteja habilitada junto ao Pagar.me para processar tais tipos de transações, então caso você esteja avaliando a utilização de mPOS na sua operação, entre em contato com [email protected], que podemos ajudar a pensar no melhor modelo inicial para a realidade do seu negócio.

Antes de colocar a mão na massa, é importante apresentarmos alguns conceitos que podem facilitar a sua integração com mPOS Pagar.me. Veja as perguntas e respostas a seguir.

O que é um PinPad e como "falo" com ele?

PinPad um equipamento de comunicação serial: Bluetooth, USB, RS232 etc. Ele é capaz de capturar de forma segura dados de cartão, seja por chip ou por tarja magnética. Com esses dados em "mãos", uma aplicação consegue então criar transações financeiras junto ao respectivo banco emissor do cartão.

É possível "falar" com o PinPad abrindo programaticamente uma Serial Port, que especifica o endereço do PinPad e estabelece uma conexão entre uma aplicação e o próprio aparelho. Isto é, o equipamento apenas faz a leitura e captura dos dados do cartão, então é preciso que o seu sistema continue o fluxo de compra.

O que são tabelas EMV? Onde consigo?

As tabelas EMV contém informações que dizem ao pinpad como se comportar quando determinado cartão é inserido, por exemplo um Visa Crédito. Você precisa baixar estas tabelas junto à API Pagar.me, algo que é feito via SDK.

É preciso que você entre em contato pelo e-mail [email protected] para explicarmos melhor como o processo deve ser feito, além de habilitar algumas configurações para sua empresa.

Preciso atualizar sempre as tabelas EMV?

Não, dado o volume de sua operação, indicamos que apenas uma vez na semana seja realizada a atualização das tabelas em seu PinPad.

O que é uma aplicação EMV (EMVApplication)?

Uma aplicação EMV é o conjunto de Bandeira + Tipo de Pagamento que você pode limitar o seu Pinpad a aceitar — por exemplo, um Mastercard + Debito é uma aplicação. Você pode programaticamente estabelecer quais EMVApplication gostaria de aceitar. Veja o exemplo a seguir:

/* aceitar somente Visa Crédito */
NSArray *applications = @[ [PMEmvApplication applicationWithCardBrand:@"visa" paymentMethod:MPM_CREDIT] ];
var applications = [ PMEmvApplication(cardBrand: "visa", paymentMethod: MPM_CREDIT) ];
EmvApplication visaCredit = new EmvApplication(PaymentMethod.CreditCard, "visa");
/* aceitar somente Visa Crédito */
List<EmvApplication> applications = new List<EmvApplication>();
applications.Add(new EmvApplication("visa", PaymentMethod.Credit));

Então quais bandeiras podemos especificar em uma EMVApplication?

As seguintes bandeiras podem ser usadas: Visa, Mastercard, Amex, Elo, Diners, e Hipercard. A função de débito só pode ser configurada para visa e mastercard.

E se eu não especificar uma EMVApplication?

Quando você não especifica uma EMVApplication, o próprio PinPad dá a opção para o portador do cartão selecionar a função débito ou crédito no display do aparelho.

O que é magstripePaymentMethod ?

Ao chamar uma das funções de captura e criptografia dos dados de cartão — por exemplo: payAmount para Objective-C, ou ProcessPayment para C# —, é possível passar um parâmetro de configuração para cartões de tarja.

Isso é feito já que o PinPad não consegue selecionar esse dado automaticamente para esse tipo de cartão. Caso você não aceite cartões de tarja, pode passar qualquer umas das opções: crédito ou débito.

O que é e qual a diferença entre Pin Online e Pin Offline?

Dependendo do banco emissor do cartão, são definidas regras em relação à criação de transações, sendo que algumas precisam ser validadas online e outras não. Ou seja, em alguns casos o Pagar.me precisa enviar as informações do cartão direto ao banco emissor para que os dados sejam conferidos. Para os outros casos, a validação ocorre offline, somente via chip do cartão inserido.

Já que isso depende de cartão para cartão, é preciso verificar em sua aplicação o valor de uma propriedade chamada card_pin_mode. Este é um parâmetro enviado pela API Pagar.me após a criação de transações via mPOS, que diz se o modo foi Online ou Offline.

O modo Online obriga sua aplicação a chamar uma função finishTransaction, independente do SDK que estiver usando, mas no caso de ser Offline a chamada de finishTransaction torna-se desnecessária.

O que os SDK's mPOS Pagar.me fazem afinal?

A função das bibliotecas de mPOS do Pagar.me é capturar os dados do cartão de forma segura, criptografar e deixar em forma de Card Hash. Ou seja, uma versão segura dos dados, que a API do Pagar.me entende e consegue criar transações com a informação.

Quais os passos fundamentais para capturar dados de cartão usando uma biblioteca Pagar.Me mPOS e um PinPad?

O detalhe de implementação será apresentado para cada SDK, em seu respectivo tutorial. Os passos abaixo apresentam apenas uma visão macro.

  1. Estabelecer e abrir uma conexão junto ao PinPad, via USB ou Bluetooth;
  2. Atualizar tabelas EMV se necessário, dado que existe um parâmetro chamado forceUpdate que aceita verdadeiro ou falso. Esse parâmetro significa que você está "dizendo" à aplicacão: "Atualize as tabelas EMV com certeza" caso seja true, ou "Atualize as tabelas apenas se elas mudaram nos servidores da Pagar.Me" quando false;
  3. Crie um novo processo de pagamento. Veja mais detalhes em cada SDK;
  4. Com os dados retornados do processo anterior, crie uma transação junto ao Pagar.Me;
  5. Assim que a API Pagar.Me apresentar retorno, valide se a operação foi feita com PinOnline — se sim, chame a respectiva função finishTransaction, dependendo de qual biblioteca mPOS Pagar.Me você estiver usando;
  6. Feche a conexão com o PinPad.

Próximo

Para aprender sobre os passos técnicos de cada SDK e como implementar sua operação com mPOS, siga: