---
title: "App Demo SDK Providers"
url: "https://devcenter.stone.com.br/sdk-android-faq-duvidas-frequentes"
image: "https://devcenter.stone.com.br/_og/d/c_Ocean.takumi,title_App+Demo+SDK+Providers,props_eyJ0aGVtZSI6eyJtb2RlIjoibGlnaHQiLCJjb2xvcnMiOnsicHJpbWFyeSI6IiMzMEE2NkQifX19,p_Ii9zZGstYW5kcm9pZC1mYXEtZHV2aWRhcy1mcmVxdWVudGVzIg,s_CTe4y2BH7871dZud.png"
---

# App Demo SDK Providers

## [Qual a estrutura seguida pela SDK Stone?](#qual-a-estrutura-seguida-pela-sdk-stone)

A SDK é dividida em 4 módulos:

1.  Providers: todos os providers seguem o mesmo modelo. Todos herdam de uma classe modelo que extende da classe AsyncTask do Android, então toda escrita e leitura de comandos com o Pinpad, requisições de transações e ativações, conexões etc são executadas em uma thread secundária do método ‘doInBackground’.
2.  Utils: no módulo Utils você encontra ferramentas que podem ajudar na criação da sua aplicação.
3.  Comandos: Esse módulo contém os comandos de leitura e escrita que são utilizados para se comunicar com os Pinpads.
4.  Outros

![](https://files.readme.io/7d4082e-1.png)

## [Como eu posso enviar uma transação?](#como-eu-posso-enviar-uma-transação)

Passar transações com a nova SDK é simples e rápido. O primeiro passo é instanciar um objeto do tipo TransactionObject, e então populá-lo. Após fazer isso, você pode passá-lo para o TransactionProvider, que será o responsável por enviar a transação para o autorizador e trabalhar com a inserção e atualização no TransactionDAO.  
É importante lembrar que TransactionProvider segue a mesma estrutura do ActiveApplicationProvider, BluetoothConnectionProvider e os demais. Esse provider pede uma Activity, o TransactionObject que foi criado anteriormente, o usuário atual do aplicativo e o pinpad que está sendo utilizado.  
Para mais informações e exemplos, acesse a nossa documentação em:  
[http://sdkandroid.stone.com.br/docs/provedor-de-transação-1](http://sdkandroid.stone.com.br/docs/provedor-de-transa%C3%A7%C3%A3o-1)"

## [Como fazer a comunicação com o Pinpad?](#como-fazer-a-comunicação-com-o-pinpad)

Para criar uma conexão, basta instanciar um objeto do tipo PinpadObject e informar o nome e o mac address do dispositivo. Estas informações podem ser obtidas com os itens que são retornados da função BluetoothAdapter.getBondedDevices(); do Android.  
Depois de fazer isso, com a conexão realizada com sucesso, o Pinpad então é adicionado em uma lista de Pinpads conectados na classe Stone. Para obter a lista, você pode utilizar o método Stone.getPinpadListSize(). Esse método é retornado como null caso o Bluetooth esteja desligado ou se não houver conexão.  
Sempre que a SDK solicitar um Pinpad como parâmetro, você pode passar Stone.getPinpadFromListAt(0), se você estiver conectado somente com um Pinpad.

## [Eu consigo me comunicar com mais de um Pinpad ao mesmo tempo?](#eu-consigo-me-comunicar-com-mais-de-um-pinpad-ao-mesmo-tempo)

Sim, é possível conectar com mais de um Pinpad, sendo possível selecionar um deles no momento da transação.

## [Quais Pinpads são homologados com a Stone?](#quais-pinpads-são-homologados-com-a-stone)

A SDK Mobile Android se comunica exclusivamente com Pinpads Bluetooth. Os Pinpads Bluetooth homologados conosco são:

-   Gertec MobiPin 10
-   PAX D180
-   PAX D200.

## [Consigo imprimir um QR Code?](#consigo-imprimir-um-qr-code)

Sim, disponibilizamos uma função que permite a impressão de QR Codes. Para ver mais instruções, acesse a nossa documentação em: [http://sdkandroid.stone.com.br/docs/provedor-de-impressão-1](http://sdkandroid.stone.com.br/docs/provedor-de-impress%C3%A3o-1)

## [Como faço um cancelamento de uma transação?](#como-faço-um-cancelamento-de-uma-transação)

O provider de Cancelamento, CancellationProvider, é um dos provedores mais simples.  
Para efetuar um cancelamento, você deve instanciar o CancellationProvider e passar a sua Activity e o ID da transação que deseja cancelar (você pode obter todos os IDs das transações com o TransactionDAO).

## [Como consigo uma chave de acesso para iniciar a integração?](#como-consigo-uma-chave-de-acesso-para-iniciar-a-integração)

Para acessar o ambiente de integração é necessário, primeiro, se cadastrar no nosso programa de parcerias. Cadastre-se [aqui](https://devcenter.stone.com.br/sdk-android-evolua-ao-nosso-lado).  
Caso já tenha preenchido e ainda não recebeu nosso contato, você deve enviar um e-mail para o [aloparceiro@stone.com.br](mailto:aloparceiro@stone.com.br) com as seguintes informações:

-   O nome da empresa parceira que realizará transações na Stone;
-   O CNPJ da empresa;
-   Uma descrição sucinta do negócio parceiro (em uma frase);
-   E-mail para o qual a credencial deve ser enviada.

## [Quais bandeiras são aceitas?](#quais-bandeiras-são-aceitas)

-   Visa
-   Mastercard
-   ELO
-   ALELO

## [Como consigo consultar uma transação?](#como-consigo-consultar-uma-transação)

Quando você faz uma busca por TransactionID nós indicamos qual é o status atual daquela transação — isto é, se ela já foi compensada ou não.

## [Preciso usar o SAK?](#preciso-usar-o-sak)

Não, o SAK é uma informação utilizada pelo SDK Android conforme a ativação por meio do Stonecode.

## [Como ativo a solução de SDK Android no cliente final?](#como-ativo-a-solução-de-sdk-android-no-cliente-final)

Depois de finalizada a integração/desenvolvimento no ambiente de testes, usando um StoneCode de teste, você precisa solicitar ao representante comercial um StoneCode de produção.  
Caso você não tenha um representante comercial, é possível fazer essa solicitação pelo canal: [meajuda@stone.com.br](mailto:meajuda@stone.com.br).

## [Existe um padrão que a filipeta segue?](#existe-um-padrão-que-a-filipeta-segue)

Sim, o SDK monta todo o comprovante automaticamente (de acordo com o ID de transação fornecido e contanto que a transação exista no TransactionDAO).  
Por padrão, todas as notinhas são impressas com a logo da Stone.

## [Existe um fluxo para aviso prévio de atualização das soluções?](#existe-um-fluxo-para-aviso-prévio-de-atualização-das-soluções)

Atualmente não temos um fluxo de aviso prévio das atualizações, porém estamos desenvolvendo isso. Para se manter atualizado das novas versões, acompanhe sempre as mudanças no changelog da documentação.

## [O provedor StoneTransaction foi removido da SDK?](#o-provedor-stonetransaction-foi-removido-da-sdk)

Sim, hoje é possível preencher todas os dados necessários diretamente no provedor TransactionObject

## [Quais são as diferenças entre TransactionProvider e TransactionObject](#quais-são-as-diferenças-entre-transactionprovider-e-transactionobject)

O TransactionObject deve ser utilizado para instanciar dados como: Valor da transação, Modelo de operação, à vista/ Parcelado, etc. Já o provedor TransactionProvider e responsável pelo leitura do cartão inserido e por encaminhar efetivamente a transação ao autorizador Stone.

## [Quais são as diferenças entre PosTransactionProvider e TransactionProvider?](#quais-são-as-diferenças-entre-postransactionprovider-e-transactionprovider)

Deve-se utilizar o objeto PosTransactionProvider apenas para terminais POS com sistema operacional Android.

---

**Jornada: [Começar a integrar](https://devcenter.stone.com.br/sdk-android-evolua-ao-nosso-lado)**  
Etapa 7 de 14

[**Etapa anterior**Pré-requisitos](https://devcenter.stone.com.br/sdk-android-android-sdk-pre-requisitos)[**Próxima etapa**Getting Started](https://devcenter.stone.com.br/sdk-android-preparando-aplicacao)

Siga a Stone nas redes sociais

[](https://www.facebook.com/stonepagamentos/)[](https://x.com/sejastone/)[](https://www.instagram.com/stone/)[](https://br.linkedin.com/company/stone-co)[](https://www.youtube.com/channel/UCk4L4JykgoDkN8YeuxkNqIQ)

© Stone Instituição de Pagamento S.A. CNPJ 16.501.555/0001-57

Av. Rebouças, 2880, 4º andar, Pinheiros, CEP 05.402-500 – São Paulo/SP

Instituição de pagamento autorizada pelo Banco Central do Brasil, nas modalidades de credenciadora e emissora de moeda eletrônica.