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

# Aprovação de produção

> Todo lojista começa em modo teste. Para receber dinheiro de verdade, o cadastro precisa ser aprovado pela equipe do V4 Pay.

Esta página é para quem acabou de criar a conta e quer entender **o que falta para operar
em produção** — e para o desenvolvedor que levou um `409` com
`codigo: PRODUCAO_NAO_LIBERADA` e quer saber o que fazer.

## A regra

Toda conta nova nasce operando **só em modo teste**. Dá para integrar, criar chave de
teste, emitir cobrança simulada e receber webhooks — tudo, menos dinheiro de verdade.
Para liberar a produção, a equipe do V4 Pay analisa o cadastro: os dados da empresa e
três documentos.

O status da sua conta aparece no painel (em **Ativar produção**) e em `GET /producao`:

| Status     | Significado                                                |
| ---------- | ---------------------------------------------------------- |
| `sandbox`  | estado inicial: só opera em teste                          |
| `pending`  | cadastro enviado, aguardando a análise                     |
| `approved` | produção liberada                                          |
| `rejected` | recusado — o motivo aparece na resposta; corrija e reenvie |

## O que é exigido

**Dados da empresa** (salvos pelo painel ou por `PUT /auth/profile`): razão social ou nome
da loja (`company`), CPF **ou** CNPJ válido, telefone, endereço com número, bairro, CEP e
o tipo de empresa. O campo `faltando` de `GET /producao` lista o que ainda está vazio.

**Três documentos**, enviados em `POST /producao/documentos` (ou pelo painel):

| `tipo`                    | O que enviar                       |
| ------------------------- | ---------------------------------- |
| `cnpj_ou_contrato_social` | cartão CNPJ ou contrato social     |
| `documento_responsavel`   | documento com foto do responsável  |
| `comprovante_endereco`    | comprovante de endereço da empresa |

PDF, JPG ou PNG, até **4 MB** por arquivo. O conteúdo é conferido pelos primeiros bytes —
renomear a extensão não passa. Reenviar um tipo substitui o anterior.

<Note>
  O envio de documentos só funciona com a **sessão do painel** e pelo **titular** da conta:
  chave de API responde `403` (`SOMENTE_PAINEL`) e membro de loja compartilhada também
  (`SOMENTE_TITULAR`). Documento de identificação é assunto do dono.
</Note>

## O fluxo

<Steps>
  <Step title="Complete os dados e envie os documentos">
    Em **Ativar produção** no painel. Enquanto o status é `sandbox` (ou `rejected`),
    dá para trocar e remover documentos à vontade.
  </Step>

  <Step title="Envie para análise">
    `POST /producao/solicitar` (ou o botão do painel). Se faltar algo, a resposta é
    `400` com `codigo: CADASTRO_INCOMPLETO` e as listas `faltando` e
    `documentos_faltando`. Enviado, o status vira `pending` e os documentos ficam
    travados até a análise terminar.
  </Step>

  <Step title="Aguarde a equipe">
    Aprovado, você recebe um e-mail e o status vira `approved` — o botão
    **Ir para produção** do painel ativa. Recusado, o motivo chega por e-mail e em
    `reject_reason`; corrija e reenvie (volta para a fila).
  </Step>
</Steps>

## O que fica bloqueado até a aprovação

Tudo que envolve dinheiro de verdade responde com `codigo: PRODUCAO_NAO_LIBERADA` e um
bloco `producao` dizendo em que pé o cadastro está:

| Ação                                                                           | Resposta              |
| ------------------------------------------------------------------------------ | --------------------- |
| Trocar a sessão para produção (`POST /auth/environment` com `live`)            | `409`                 |
| Criar chave `v4pay_live_` (`POST /api-keys` com `environment: live`)           | `409`                 |
| Usar uma chave `v4pay_live_` que já exista                                     | `403` em toda chamada |
| Emitir cobrança em produção (Pix, link, checkout, assinatura, `POST /charges`) | `409`                 |
| Sacar (`POST /withdrawals`)                                                    | `409`                 |

```json theme={null}
{
  "error": {
    "message": "Sua conta ainda opera em modo teste. Envie os dados da empresa e os documentos para liberar a produção.",
    "codigo": "PRODUCAO_NAO_LIBERADA",
    "producao": { "status": "sandbox", "motivo_recusa": null }
  }
}
```

O login também reflete a regra: enquanto não aprovado, **todo token de sessão nasce em
modo teste** — não existe caminho que deixe uma conta nova em produção por engano.

<Info>
  Pagamento de cobrança **já emitida** sempre confirma, e consultar o que você emitiu
  sempre funciona: o bloqueio vale só para criar coisa nova em produção.
</Info>

## E depois de aprovado?

Depende do [modo de recebimento](/modo-de-recebimento) do servidor. No modo subconta, o
cadastro da conta de recebimento (e a análise do próprio motor de pagamentos) continua
valendo por cima desta aprovação; no modo conta única, aprovar aqui já basta para emitir.
