# Integração de conta e compra Licentivo

Este guia descreve o provedor Licentivo atual. Comerciantes que usam outro sistema de licenciamento podem escolher o [provedor HTTP personalizado](/pt/launch-documents/external-licensing/); esse modo não chama Licentivo nem exige sua chave API.

## Configuração do administrador

1. Crie produtos e políticas no Licentivo.
2. Configure uma chave de gerenciamento de leitura/gravação em **Configurações do sistema → Licentivo** no Launch. A origem Licentivo é fixada em `https://www.licentivo.com`.
3. Escolha a política para cada versão de plano de vendas Launch. O Launch lê produto, versão da política e configurações de exibição de execução.
4. O Launch registra conexões separadas sandbox/live de confiança de conta sob sua única conexão de gerenciamento Licentivo, incluindo sua chave pública de assinatura de identidade e origem do comerciante.

A chave de gerenciamento permanece criptografada no servidor do comerciante. Arquivos de instalação do cliente contêm apenas informações públicas de roteamento e chaves públicas fixadas do produto.

## Sequência de API no servidor

Todos os caminhos abaixo estão no Licentivo, chamados pelo Launch com sua credencial de gerenciamento:

| Endpoint | Finalidade |
| --- | --- |
| `GET /api/v1/products` | Descoberta de produtos |
| `GET /api/v1/policies`, `GET /api/v1/policies/{id}` | Descoberta de políticas e verificações de versão |
| `GET /api/v1/launch/connections` | Encontrar conexões de confiança de origem/ambiente |
| `POST /api/v1/launch/connections`, `PUT /api/v1/launch/connections/{id}` | Registrar/atualizar chaves públicas de identidade e roteamento |
| `PUT /api/v1/launch/connections/{id}/plans/{plan}` | Registrar a versão imutável do plano de vendas e o mapeamento da política Licentivo |
| `POST /api/v1/launch/connections/{id}/events` | Enviar snapshot de compra absoluto e versionado |
| `GET /api/v1/launch/connections/{id}/events/{event}` | Recuperar/consultar o resultado original |
| `POST /api/v1/launch/connections/{id}/events/{event}/retry` | Repetir o mesmo evento após análise |
| `POST /api/v1/launch/connections/{id}/session-revocations` | Notificar revogação de conta/sessão |
| `GET /api/v1/launch/connections/{id}/session-revocations/{event}` | Verificar o recibo de revogação |

O Launch registra pagamentos verificados, cobertura paga imutável e tarefa de saída em uma transação local. Um worker envia datas absolutas completas de compra e ID estável de evento. Somente recibo `applied` confirma sincronização; recebimento HTTP sozinho não.

Reembolsos e reversões confirmadas removem a cobertura do pedido correspondente. O próximo snapshot completo pode preservar uma compra básica ativa, reduzir seu prazo, restaurar plano inferior ou encerrar toda a cobertura. Tentativas nunca adicionam dias novamente. Vinculações antigas de licenças emitidas usam eventos explícitos de migração em vez de replay automático de comandos antigos de gerenciamento.

## Fluxo do aplicativo do cliente

1. O aplicativo entra no Launch usando sessão de conta desktop.
2. `POST /api/v1/software/products/{id}/identity` no Launch retorna asserção de identidade de no máximo 120 segundos, vinculada à sessão real, produto, ambiente, emissor e audience.
3. O pacote Launch a passa em memória ao SDK oficial, que a troca com Licentivo em `POST /api/v1/launch/exchange`.
4. O Licentivo emite credencial de dispositivo e permissão assinada. O SDK verifica cada ação protegida, política de dispositivo, estado de execução e regra offline.

Login Launch, pedido pago ou compra sincronizada não é permissão de execução. O endpoint antigo `/credential` retorna HTTP 410. A entrega de provedor personalizado é API separada no escopo do proprietário e não restaura aquele endpoint.

Listagem de dispositivos, cotas de liberação, gerações de vinculação e recuperação de logout continuam responsabilidades do Licentivo. Revogações de sessão/conta usam notificações duráveis com recibos por ambiente; revogação offline continua limitada por grants SDK já emitidos.

Consulte [integração de aplicativo](/pt/launch-documents/software-sdk-integration/), [limite de compra/conta](/pt/launch-documents/account-purchase-boundary/), [integração manual](/pt/launch-documents/manual-integration/) e [aceitação](/pt/launch-documents/acceptance/). A implementação está em `internal/adapters/licentivo/launch_bridge.go`, `internal/app/launch_trust.go`, `internal/app/purchase_sync.go` e `internal/app/identity.go`.
