---
title: "Pagamento"
url: "https://devcenter.stone.com.br/sdk-android-pagamento-deeplink"
image: "https://devcenter.stone.com.br/_og/d/c_Ocean.takumi,title_Pagamento,props_eyJ0aGVtZSI6eyJtb2RlIjoibGlnaHQiLCJjb2xvcnMiOnsicHJpbWFyeSI6IiMzMEE2NkQifX19,p_Ii9zZGstYW5kcm9pZC1wYWdhbWVudG8tZGVlcGxpbmsi,s_o0JuSXQVwRnS7oXv.png"
---

# Pagamento

## [Enviar um pagamento](#enviar-um-pagamento)

Para fazer o pagamento, é preciso criar uma Intent, adicionando as informações como parâmetros dessa Intent.

```kotlin
val uriBuilder = Uri.Builder()
uriBuilder.authority("pay")
uriBuilder.scheme("payment-app")
uriBuilder.appendQueryParameter("return_scheme", "return_scheme")
uriBuilder.appendQueryParameter("amount", "amount")
uriBuilder.appendQueryParameter("editable_amount", "0/1")
uriBuilder.appendQueryParameter("transaction_type", "debit")
uriBuilder.appendQueryParameter("installment_type", "none")
uriBuilder.appendQueryParameter("installment_count", "2")
uriBuilder.appendQueryParameter("order_id", "123")

val intent = Intent(Intent.ACTION_VIEW)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
intent.data = uriBuilder.build()
startActivity(intent)
```

### [Campos utilizados para envio](#campos-utilizados-para-envio)

Todos os campos estão em formato String

Atenção

Se os campos opcionais não forem enviados via deeplink, serão solicitados no aplicativo de Pagamento.

| Campo             | Obrigatório? | Descrição                                                                        |
| :---------------- | :----------- | :------------------------------------------------------------------------------- |
| amount            | Não          | Valor do pagamento, em centavos. Aceita valores entre 0 e 999999999.             |
| transaction_type  | Não          | Modalidade do pagamento: DEBIT, CREDIT, VOUCHER, INSTANT_PAYMENT e PIX. Esse campo aceita valor nulo. |
| installment_type  | Não          | Tipo de parcelamento: MERCHANT (parcelado sem juros), ISSUER (parcelado com juros) e NONE (à vista). Esse campo aceita valor nulo. |
| installment_count | Não          | Quantidade de parcelas. Aceita valores entre 2 e 99.                             |
| order_id          | Não          | Identificador do pedido. Aceita valores até 9223372036854775807. Caso queira utilizá-lo, habilitar a funcionalidade no aplicativo de Ajustes do POS. |
| editable_amount   | Não          | Permite que o valor do pagamento seja editado diretamente no aplicativo de Pagamento. Valor 1 para true e 0 para false. |
| return_scheme     | Sim          | Determina para onde será o retorno do deeplink. Deve ser o mesmo valor configurado no lugar da variável scheme no AndroidManifest. |

## [Retorno do pagamento](#retorno-do-pagamento)

Para conseguir o retorno do deeplink de pagamento, pode ser utilizada a função abaixo que captura a informação que foi retornada pela Intent.

Atenção

As mensagens de erro no pagamento são enviadas como `Exception`, por isso é importante utilizar alguma medida que capture as Exceptions emitidas. A função abaixo é apenas um exemplo de como pode ser implementado.

```kotlin
override fun onNewIntent(intent: Intent?) {
    super.onNewIntent(intent)
    try {
        Log.i("onNewIntent", intent?.data.toString())
        if (intent?.data != null) {
            Toast.makeText(this, intent.data.toString(), Toast.LENGTH_LONG).show()
            Log.i("Deeplink Response", intent.data.toString())
        }
    } catch (e: Exception) {
        Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show()
        Log.e("Deeplink error", e.toString())
    }
}
```

| chave                       | Descrição                                                                 |
| :-------------------------- | :------------------------------------------------------------------------ |
| cardholder_name             | Nome impresso no cartão                                                   |
| itk                         | Initiator Transaction Key                                                 |
| atk                         | Authorizer Transaction Key                                                |
| authorization_date_time     | Data/hora da autorização                                                  |
| brand                       | Bandeira do cartão                                                        |
| order_id                    | Identificador do Pedido                                                   |
| authorization_code          | Código da autorização da transação                                        |
| installment_count           | Quantidade de parcelas                                                    |
| pan                         | sequencia do PAN                                                          |
| type                        | Tipo da Transação DEBIT, CREDIT, VOUCHER, INSTANT_PAYMENT e PIX)          |
| entry_mode                  | Identifica o modo de entrada do ponto de venda. (Tarja, CHIP & PIN, etc). |
| account_id                  | identificador da carteira digital                                         |
| customer_wallet_provider_id | identificador do Provider da carteira digital                             |
| code                        | código de sucesso ou erro                                                 |
| transaction_qualifier       | Qualificador da transação, como Prepaid, para indicar cartão pré-pago     |

## [Exemplos de Retorno](#exemplos-de-retorno)

### [Pagamento feito com Debito](#pagamento-feito-com-debito)

```java
Sucesso
deeplinktest://pay-response?code=0&amount=100&cardholder_name=JOAO%2FSILVA&itk=PB0419AL60480-1.17.7-2278-0003&atk=37820073187607&authorization_date_time=05%2F10%2F2022%2002%3A36%3A17&brand=MASTERCARD&authorization_code=187607&installment_count=0&pan=627303****2166&type=D%C3%A9bito&entry_mode=ICC
```

### [Exemplo Erro](#exemplo-erro)

```java
Encerrou o pagamento
deeplinktest://pay-response?code=2&message=Usu%C3%A1rio%20encerrou%20o%20aplicativo
```

```java
1016 - Não Autorizado
"deeplinktest://pay-response?success=false&reason=1016&response_code=-6&code=-6&message=N%C3%A3o%20autorizada"

// success=false
// reason=1016
// message=N%C3%A3o%20autorizada (Não Autorizado)
```

Código de Erro

Transação de sucesso o retorno é 0  
diferente disso é considerado como erro

| Chave    | Descrição        |
| :------- | :--------------- |
| code     | Código de erro   |
| mensagem | Mensagem de erro |

---

**Jornada: [Integrar por Deeplink](https://devcenter.stone.com.br/sdk-android-explicacao-deeplink)**  
Etapa 4 de 11

[**Etapa anterior**Configuração](https://devcenter.stone.com.br/sdk-android-configuracao-deeplink)[**Próxima etapa**Cancelamento](https://devcenter.stone.com.br/sdk-android-cancelamento-deeplink)

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.