---
title: "Estrutura da SDK"
url: "https://devcenter.stone.com.br/sdk-android-estrutura-da-sdk"
image: "https://devcenter.stone.com.br/_og/d/c_Ocean.takumi,title_Estrutura+da+SDK,props_eyJ0aGVtZSI6eyJtb2RlIjoibGlnaHQiLCJjb2xvcnMiOnsicHJpbWFyeSI6IiMzMEE2NkQifX19,p_Ii9zZGstYW5kcm9pZC1lc3RydXR1cmEtZGEtc2RrIg,s_R3JP0HPI7kJ6Ghfa.png"
---

# Estrutura da SDK

O SDK Android foi desenvolvido utilizando _Providers_, um padrão de projeto que simplesmente define um contrato entre a API e camada de dados/lógica.  
Todos os providers possuem o mesmo padrão e herdam de uma classe modelo que herda da classe AsyncTask do Android. Portanto, toda a comunicação com o terminal e chamadas para APIs externas são executadas em background e devem ter algum feedback para o usuário, como por exemplo, informar que o cartão precisa ser inserido no terminal.

Após a execução de um provider, ele realizará uma chamada de retorno para a sua aplicação (Callback) com o objetivo de informar o status da sua chamada: se teve sucesso, erro ou qual é o próximo passo a ser executado.

![](https://files.readme.io/04d208b-fluxo.png)

Temos os seguintes providers em nossa SDK:

-   **ActiveApplicationProvider**: Responsável por ativar a sua aplicação.
-   **BluetoothConnectionProvider**: Responsável por criar conexão bluetooth com um pinpad a partir de um mac address.
-   **TransactionProvider**: Responsável por realizar as transações com um pinpad
-   **CaptureTransactionProvider**: Responsável por realizar a captura de transações que foram autorizadas sem captura automática.
-   **CancellationProvider**: Responsável por realizar um cancelamento de uma transação.
-   **ValidateTransactionByCardProvider**: Responsável por validar no banco de transações do SDK se existe transação para um cartão específico.
-   **DisplayMessageProvider**: Exibe uma mensagem de até 32 caracteres na tela do Pinpad.
-   **SendEmailTransactionProvider**: Responsável por enviar o comprovante da transação por e-mail.
-   **PrintProvider**: Responsável por realizar impressões nos Pinpads que possuem suporte para impressão.
-   **ReversalProvider**: Responsável por procurar no banco local do SDK transações com o status WITH\_ERROR e cancelá-las
-   **PosTransactionProvider**: Responsável por realizar as transações com um POS Android
-   **PosPrintProvider**: Responsável pela impressão em terminais POS Android

---

**Jornada: [Entender a SDK Android](https://devcenter.stone.com.br/sdk-android-o-que-e-a-sdk-android)**  
Etapa 3 de 10

[**Etapa anterior**Conceitos Stone](https://devcenter.stone.com.br/sdk-android-conceitos-stone)[**Próxima etapa**Dispositivos suportados](https://devcenter.stone.com.br/sdk-android-dispositivos-suportados-1)

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.