# Pagamentos Google Play — Fase 1

Data do inventario: 28 de agosto de 2026.

## Objetivo

Criar uma fonte unica de verdade para pagamentos antes de alterar qualquer
checkout. Esta fase nao integra Google Play Billing, nao bloqueia operacoes,
nao altera a versao Android e nao muda o saldo existente.

O contrato corre em inventory_only.

Base oficial consultada:

- https://developer.android.com/google/play/billing/
- https://support.google.com/googleplay/android-developer/answer/9858738
- https://developer.android.com/google/play/billing/backend

## Regra central

A 1MZ continua com uma unica carteira contabilistica.

- No site, o saldo pode continuar a pagar VIP e outros servicos.
- No Android distribuido pela Google Play, produtos e servicos digitais
  devem migrar para Google Play Billing ou ficar apenas para consulta.
- Um deposito externo iniciado no Android so pode financiar um projeto fisico
  identificado, como producao de videoclipe ou multa contratual do projeto.
- Ganhos, levantamentos e creditos internos continuam operacoes financeiras,
  nao compras digitais.

## Matriz auditada

| Operacao | Natureza | Site | Android alvo | Estado |
|---|---|---|---|---|
| Subscricao VIP | Digital | Carteira ou transferencia | Billing: subscription | Migracao necessaria |
| Ativacao paga da conta | Digital | Em revisao | Remover gate ou criar produto Play | Decisao necessaria |
| Impulsionamento | Digital | Carteira | Billing: one-time product ou consulta | Migracao necessaria |
| Licenciamento/distribuicao | Digital | Carteira | Billing: one-time product ou consulta | Migracao necessaria |
| Taxa de alteracao de lojas | Digital | Carteira | Billing: one-time product ou consulta | Migracao necessaria |
| Producao de videoclipe | Servico fisico | Carteira/transferencia | Carteira/transferencia ligada ao projeto | Permitido com referencia |
| Multa de projeto | Servico fisico | Carteira | Carteira ligada ao projeto | Permitido com referencia |
| Deposito na carteira | Financeiro | Generico | Apenas vinculado a projeto fisico | Precisa de restricao na Fase 2 |
| Levantamento | Financeiro | Payout | Payout | Permitido |
| Ganhos/recompensas | Financeiro | Ledger interno | Ledger interno | Permitido |

## Pontos reais encontrados no codigo

- Subscricoes: includes/subscription-functions.php e controller de subscricao.
- Depositos/levantamentos: includes/wallet-functions.php e controller da carteira.
- Impulsionamento: artists/includes/artist/artist-boost-wallet.php.
- Producao: controller de projetos e includes/form-handler.php.
- Multas: includes/project-fine.php.
- Licenciamento: controller de licenciamento.
- Alteracao de lojas: controller de pedidos de distribuicao.
- Ganhos: monetizacao de downloads e indicacoes.

## Entregue nesta fase

1. Contrato central includes/payment-policy.php.
2. Payload Android no endpoint publico /system/policies.
3. Modelo Android compativel com o novo payload.
4. Smoke tests WordPress para invariantes de canal.
5. Teste Android de serializacao do contrato.

O payload publico nao inclui caminhos internos nem o inventario de metodos
antigos.

## Invariantes verificadas

- Nenhuma operacao digital tem wallet ou external_transfer como destino
  no canal Android Play.
- VIP Android tem google_play_billing como destino.
- VIP web continua a aceitar a carteira unica.
- Deposito externo Android exige referencia de projeto e so pode ser associado
  a videoclip_production ou project_fine.
- Servico fisico Android que aceita transferencia exige referencia de projeto.

## Fase 2 proposta

1. Criar os produtos no Play Console e o mapa seguro de product IDs.
2. Integrar BillingClient no app.
3. Verificar purchase token no servidor, com idempotencia.
4. Conceder o direito VIP somente depois da confirmacao do servidor.
5. Bloquear no Android os caminhos antigos de VIP por carteira/M-Pesa/e-Mola.
6. Tornar o deposito Android um fluxo com project_id, finalidade e reserva.
7. Fazer rollout interno, testes de compra e restauracao antes da revisao.

## Fora do escopo

- Alteracao de precos.
- Criacao de produtos na Play Console.
- Mudanca de versao Android.
- Alteracao do checkout do site.
- Migracao ou separacao de saldo.
