---
title: "Provider de Captura"
url: "https://devcenter.stone.com.br/sdk-android-provedor-captura"
image: "https://devcenter.stone.com.br/_og/d/c_Ocean.takumi,title_Provider+de+Captura,props_eyJ0aGVtZSI6eyJtb2RlIjoibGlnaHQiLCJjb2xvcnMiOnsicHJpbWFyeSI6IiMzMEE2NkQifX19,p_Ii9zZGstYW5kcm9pZC1wcm92ZWRvci1jYXB0dXJhIg,s_WXxmT-ZsT7h2nK2o.png"
---

# Provider de Captura

A operação de pagamento possui 2 etapas: Autorização e Captura. Por padrão, O SDK realiza a transação com autorização e captura, mas existe a possibilidade de você fazer uma transação somente de autorização e depois realizar uma Captura Posterior. A Captura Posterior irá executar uma operação de captura, ou cobrança, do valor autorizado previamente.

Uma transação pode ser realizada com a captura posterior, quando define-se o `setCapture` como "false" no `TransactionObject`, conforme segue:

```java
final TransactionObject transaction = new TransactionObject();

// Define se transação será feita com captura ou não.
transaction.setCapture(false);
```

Captura com Informações de Sub-Merchant

Para transações que requerem informações do sub-merchant, você pode adicionar os dados do estabelecimento comercial que está realizando a transação:\*

```java
final TransactionObject transaction = new TransactionObject();

// Define se transação será feita com captura ou não
transaction.setCapture(false);

// Informações do Sub-Merchant
transaction.setSubMerchantCity("São Paulo");
transaction.setSubMerchantPostalAddress("01310-100");
transaction.setSubMerchantStreetName("Avenida Paulista");
transaction.setSubMerchantTaxIdentificationNumber("12345678000190");
transaction.setSubMerchantRegisteredIdentifier("MERCHANT123");
transaction.setSubMerchantLegalName("Stark Corporation Ltda");
transaction.setSubMerchantBuildingNumber("1000");
transaction.setSubMerchantCountryCode("076");
transaction.setSubMerchantState("SP");
transaction.setSubMerchantNeighborhood("Bela Vista");
transaction.setSubMerchantEmail("contato@starkcorp.com.br");
transaction.setSubMerchantPhone("11987654321");
transaction.setSubMerchantTaxIdentificationType("CNPJ");
transaction.setSubMerchantSiteUrl("www.starkcorp.com.br");
transaction.setSubMerchantPaymentGatewayId("GATEWAY123");
```

Podemos buscar uma transação da seguinte forma:

```java
// Cria uma lista com todas as transacoes
transactionObjects = transactionDAO.getAllTransactionsOrderByIdDesc();

/* Seleciona uma transação da lista
 * transactionObjects.get(0) retorna a transação localizada na posição 0
 */
final TransactionObject selectedTransaction = transactionObjects.get(0);
```

Para verificar se a transação já foi capturada, você pode utilizar o método a seguir, que retornará "false" caso a transação não tenha sido capturada.

```java
//Retorna "false" se a transação ainda não foi capturada
selectedTransaction.isCapture();
```

Para finalmente realizar a captura, você deve fornecer a este provider uma Activity e um TransactionObject, que se trata da sua transação a ser capturada.

```java
//Captura da transação selecionada
final CaptureTransactionProvider provider = new CaptureTransactionProvider("SUA_ACTIVITY_AQUI", selectedTransaction);
provider.setDialogMessage("Efetuando Captura...");
provider.setConnectionCallback(new StoneCallbackInterface() {
    @Override
    public void onSuccess() {
        //Transação Capturada com sucesso
    }
    
    @Override
    public void onError() {
        //Ocorreu um erro na captura da transacao
    }
});
provider.execute();
```

📘 **Importante:**

Por exigência da Sodexo as transações dessa bandeira não devem ser enviadas com captura automática.

Quando uma transação da bandeira Sodexo é realizada com captura automática, o nosso SDK detecta essa informação e uma autorização sem captura automática é realizada. Uma requisição de captura é enviada automaticamente logo em seguida.

Os campos de sub-merchant são opcionais, porém em caso de sub-adquirente a passagem desses campos é obrigatória.

---

**Jornada: [Integrar pelos Providers](https://devcenter.stone.com.br/sdk-android-overview-da-sdk)**  
Etapa 7 de 18

[**Etapa anterior**Providers padrão: Provider de Ativação](https://devcenter.stone.com.br/sdk-android-provedor-ativacao)[**Próxima etapa**Providers padrão: Provider de Cancelamento](https://devcenter.stone.com.br/sdk-android-provedor-cancelamento)

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.