---
title: "Version Codes (Android)"
url: "https://devcenter.stone.com.br/tap-to-pay-version-codes"
image: "https://devcenter.stone.com.br/_og/d/c_Ocean.takumi,title_Version+Codes+(Android),props_eyJ0aGVtZSI6eyJtb2RlIjoibGlnaHQiLCJjb2xvcnMiOnsicHJpbWFyeSI6IiMzMEE2NkQifX19,p_Ii90YXAtdG8tcGF5LXZlcnNpb24tY29kZXMi,s_AJfnC4NJNL_3Av-6.png"
---

# Version Codes (Android)

Registro de version codes para Play Integrity.

O Android usa Play Integrity para validar a integridade do app. Registre os version codes na Stone para evitar erros de atestação.

Importante

Esse registro deve ser feito a cada nova versão publicada do app, antes de ela chegar aos lojistas.

## [Autenticação](#autenticação)

Token Gerencial — mesmo fluxo de [Consentimento e Ativação](https://devcenter.stone.com.br/tap-to-pay-consent-activation#token-gerencial).

## [Endpoint — POST /v1/partners/versions](#endpoint-post-v1partnersversions)

```text
POST {base_url}/v1/partners/versions
Authorization: Bearer {token_gerencial}
Content-Type: application/json

{ "package_name": "com.parceiro.app", "app_version": 10 }
```

| Campo        | Tipo   | Descrição                                 |
| :----------- | :----- | :---------------------------------------- |
| package_name | string | Package name do app Android               |
| app_version  | int    | Version code (build.gradle → versionCode) |

| HTTP | Descrição                            |
| :--- | :----------------------------------- |
| 201  | Registrado com sucesso (idempotente) |
| 401  | JWT inválido                         |
| 422  | Validação falhou                     |
| 424  | Erro de dependência externa          |

## [Exemplo](#exemplo)

```bash
TOKEN="seu_token_gerencial"

curl -X POST "https://tap-sdx.stone.com.br/v1/partners/versions" \
  -H "Authorization: Bearer ${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{ "package_name": "com.parceiro.app", "app_version": 10 }'
```

## [CI/CD — GitHub Actions](#cicd-github-actions)

```yaml
- name: Register version code
  run: |
    TOKEN=$(curl -s -X POST '${{ secrets.AUTH_URL }}' \
      -H 'Content-Type: application/x-www-form-urlencoded' \
      -d 'grant_type=client_credentials' \
      -d 'client_id=${{ secrets.GERENCIAL_CLIENT_ID }}' \
      -d 'client_secret=${{ secrets.GERENCIAL_CLIENT_SECRET }}' | jq -r '.access_token')

     curl -X POST "${{ secrets.API_BASE_URL }}/v1/partners/versions" \
       -H "Authorization: Bearer ${TOKEN}" \
       -H "Content-Type: application/json" \
       -d '{ "package_name": "com.parceiro.app", "app_version": ${{ env.VERSION_CODE }} }'
```

Nota

Inclua o registro de version code no seu pipeline de CI/CD para automatizar a cada release. As Credenciais Gerenciais ficam como secrets do pipeline, nunca no app.

## [Veja também](#veja-também)

[**Android**Onde o app é publicado e precisa do version code registrado.](https://devcenter.stone.com.br/tap-to-pay-android)[**Consentimento e Ativação**Mesmo Token Gerencial usado aqui.](https://devcenter.stone.com.br/tap-to-pay-consent-activation)[**Referência de API**Códigos de status e erros do SDK.](https://devcenter.stone.com.br/tap-to-pay-reference)

---

**Integração: [Tap to Pay para Terceiros](https://devcenter.stone.com.br/tap-to-pay)**  
Etapa 7 de 7

[**Etapa anterior**Referência de API](https://devcenter.stone.com.br/tap-to-pay-reference)

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.