> ## Documentation Index
> Fetch the complete documentation index at: https://documentacao.legitimuz.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Ir para produção

> O que preparar antes de atender a primeira pessoa real, passo a passo.

Produção é uma integração nova, não uma chave trocada. O que existe na sandbox não é copiado: fluxo,
origens, chaves e webhooks são criados de novo, agora com dado real.

## O que você vai precisar

* A integração sandbox funcionando de ponta a ponta.
* O domínio real do seu site, ou o identificador do app publicado na loja.
* Um endpoint de webhook em produção, com HTTPS.

## Passo a passo

<Steps>
  <Step title="Crie a integração de produção">
    Em [Integrações](https://painel.legitimuz.com/integrations), clique em **Criar integração** e
    escolha **Produção**.

    [Como criar uma integração](/platform/integrations#criar-uma-integração)
  </Step>

  <Step title="Confirme o fluxo com a Legitimuz">
    O fluxo de produção é montado e publicado pela Legitimuz junto com você. Confirme com o time
    quais etapas ele terá e quais delas são cobradas.

    [Como os fluxos funcionam](/platform/flows)
  </Step>

  <Step title="Cadastre a origem de produção">
    O domínio real ou o app bundle. A origem fica **Aguardando validação** até a Legitimuz confirmar
    a posse. Cadastre com antecedência.

    [Autorizar origens](/platform/domains)
  </Step>

  <Step title="Crie uma chave nova">
    A chave de sandbox não funciona em produção. Conceda só a permissão de criar verificação e
    guarde no cofre de segredos do seu servidor.

    [Chaves de API](/start/authentication)
  </Step>

  <Step title="Aponte o webhook para o endpoint de produção">
    Com segredo próprio. Dispare a entrega de teste pelo dashboard e confirme que a assinatura
    confere nesse endpoint.

    [Configurar webhooks](/webhooks/introduction)
  </Step>

  <Step title="Troque as variáveis de ambiente">
    Chave, `integration_origin_public_id` e segredo do webhook. As três mudam juntas.
  </Step>
</Steps>

## Antes de liberar

<AccordionGroup>
  <Accordion title="O seu handler trata review?">
    "Em revisão" não é recusa. Se o seu código só trata aprovada e reprovada, uma pessoa legítima
    fica presa sem ninguém perceber.

    E ele precisa aceitar `verification.decided` duas vezes: a segunda chega quando um analista
    decide no dashboard.
  </Accordion>

  <Accordion title="A assinatura do webhook é conferida?">
    Um endpoint que processa qualquer `POST` aceita um desfecho forjado. Confira antes de confiar.

    [Segurança dos webhooks](/webhooks/security)
  </Accordion>

  <Accordion title="A chave está só no servidor?">
    Procure `lz_` no bundle do seu front e no código do app. Se aparecer, crie outra chave e
    revogue essa antes de subir.
  </Accordion>

  <Accordion title="Você guarda o vínculo antes de responder?">
    O webhook chega com o `ref_id` que você mandou na criação. Se a associação não foi gravada, o
    evento chega e não há a quem atribuí-lo.
  </Accordion>

  <Accordion title="A pessoa sabe o que está sendo coletado?">
    A jornada captura biometria e documento. O aviso à pessoa é responsabilidade sua, antes de a
    verificação abrir.

    [Dados e privacidade](/help/data-and-privacy)
  </Accordion>
</AccordionGroup>

## Depois de subir

Mantenha a sandbox viva. É onde qualquer mudança é testada antes de alcançar pessoas reais.

<Columns cols={2}>
  <Card title="Acompanhe o funil" icon="chart-bar" href="/platform/dashboard#funil">
    A página inicial mostra onde as pessoas desistem.
  </Card>

  <Card title="Boas práticas" icon="bulb" href="/help/best-practices">
    O que separa uma integração que funciona de uma que gera chamado.
  </Card>
</Columns>
