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

# Portal do Cliente

> Capacite os clientes a se autoatenderem e gerenciarem suas assinaturas, histórico de faturamento, chaves de licença e perfil de forma segura.

<Info>
  O Customer Portal é uma área segura hospedada onde seus clientes podem gerenciar assinaturas, visualizar faturas e acessar detalhes das chaves de licença — sem entrar em contato com o suporte.
</Info>

<CardGroup cols={2}>
  <Card title="Create Portal Session (API)" icon="code" href="/api-reference/customers/create-customer-portal-session">
    Crie programaticamente sessões de portal seguras e com tempo limitado.
  </Card>

  <Card title="Subscriptions" icon="repeat" href="/features/subscription">
    Gerencie planos recorrentes, upgrades, downgrades e complementos.
  </Card>
</CardGroup>

<br />

<Frame>
  <img src="https://mintcdn.com/dodopayments/kCngKZVrb0rZMS1f/images/customer-portal/new-portal.png?fit=max&auto=format&n=kCngKZVrb0rZMS1f&q=85&s=9431b2e24142e47cb39dc84c1a0303fe" alt="Portal do Cliente reformulado mostrando assinaturas ativas, métodos de pagamento e histórico de cobrança" width="2876" height="1568" data-path="images/customer-portal/new-portal.png" />
</Frame>

## O que é o Portal do Cliente?

O portal oferece uma experiência de autoatendimento confiável e com a marca para os clientes:

* **Acessar histórico de faturamento**: Visualizar faturas e baixar recibos.
* **Gerenciar assinaturas**: Ver detalhes de assinaturas, cancelar assinaturas imediatamente ou na próxima data de faturamento.
* **Atualizar métodos de pagamento**: Alterar métodos de pagamento para assinaturas ativas ou reativar assinaturas em espera.
* **Recuperar chaves de licença**: Acessar todas as chaves vinculadas às compras.
* **Navegar com facilidade**: Use o botão de voltar para mover-se entre as seções do portal sem perder o contexto.

## Principais Benefícios

* **Menor volume de suporte**: Clientes resolvem solicitações comuns de faturamento por conta própria.
* **Tempo de valor mais rápido**: Acesso imediato a faturas e chaves.
* **Redução do risco de churn**: Visibilidade clara sobre renovações e detalhes do plano.
* **Seguro por design**: Acesso tokenizado com links que expiram.

## Métodos de Acesso

Os clientes podem acessar o portal usando um link estático ou um link dinâmico de uso único.

### Link estático (acesso baseado em e-mail)

Os clientes podem solicitar acesso ao portal inserindo seu e-mail em um link estático que nunca expira.

O formato do link estático do portal varia conforme o ambiente:

**Modo de Teste** (para testes e desenvolvimento):

```bash theme={null}
https://test.customer.dodopayments.com/login/{business_id}
```

**Modo Ao Vivo** (para produção com transações reais):

```bash theme={null}
https://customer.dodopayments.com/login/{business_id}
```

Substitua `{business_id}` pelo seu identificador comercial real, depois compartilhe o link apropriado com os clientes para que eles possam inserir o e-mail e receber acesso seguro ao portal.

<Frame>
  <img src="https://mintcdn.com/dodopayments/kIuKVjhdOQFWlzSx/images/customer-portal/email-login.png?fit=max&auto=format&n=kIuKVjhdOQFWlzSx&q=85&s=bd8ee54177bc23e12e3657c87f487bae" alt="Tela de login por e-mail" width="2880" height="1550" data-path="images/customer-portal/email-login.png" />
</Frame>

<Steps>
  <Step title="Merchant flow">
    1. Vá para Sales → Customer.
    2. Clique em <i>Share invite</i>.
    3. Copie o <i>Static link</i> e compartilhe-o com seu cliente.
  </Step>

  <Step title="Customer flow">
    1. Abra o link estático.
    2. Digite o e-mail usado na compra.
    3. Receba um link de login seguro para acessar o portal.

    <Check>
      Clientes existentes são reconhecidos automaticamente.
    </Check>
  </Step>
</Steps>

### Link dinâmico (link mágico)

Um link mágico personalizado e de uso único que envia os clientes diretamente para o portal. O link expira em 24 horas.

<Warning>
  Links dinâmicos expiram após 24 horas. Se expirar, gere e envie um novo link.
</Warning>

<Frame>
  <img src="https://mintcdn.com/dodopayments/kIuKVjhdOQFWlzSx/images/customer-portal/magic-link.png?fit=max&auto=format&n=kIuKVjhdOQFWlzSx&q=85&s=8e63714f40468bd6e42c811e194f2698" alt="Acesso direto com link mágico" width="2880" height="1554" data-path="images/customer-portal/magic-link.png" />
</Frame>

<Steps>
  <Step title="Merchant flow">
    1. Vá para Sales → Customer.
    2. Clique em <i>Share invite</i>.
    3. Copie o <i>Dynamic link</i> e compartilhe-o com seu cliente.
  </Step>

  <Step title="Customer flow">
    1. Abra o link dinâmico.
    2. Acesse o Customer Portal diretamente sem inserir um e-mail.
  </Step>
</Steps>

## Recursos do Portal

O Portal do Cliente reformulado oferece uma interface limpa e unificada com uma barra lateral à esquerda e seções organizadas para todas as necessidades de gestão da conta.

<CardGroup cols={2}>
  <Card title="Active Subscriptions" icon="repeat">
    Veja todas as assinaturas ativas com nome do plano, preço, data de renovação e validade. Clique em "Manage subscription" para visualizar detalhes, editar informações de cobrança ou cancelar.
  </Card>

  <Card title="Payment Methods" icon="credit-card">
    Veja todos os métodos de pagamento salvos (cartões, UPI etc.) com facilidade. Edite os métodos de pagamento diretamente pelos detalhes da assinatura.
  </Card>

  <Card title="Billing History" icon="file-invoice">
    Veja todas as transações em uma tabela detalhada com data, status, tipo de precificação, direitos e faturas para download.
  </Card>

  <Card title="Billing Information" icon="user">
    Visualize e edite seu nome, e-mail, telefone e endereço de cobrança diretamente na página de detalhes da assinatura.
  </Card>
</CardGroup>

### Visão geral do portal

A página principal do portal exibe todas as assinaturas ativas, métodos de pagamento salvos e histórico de cobrança em uma única visualização rolável.

<Frame>
  <img src="https://mintcdn.com/dodopayments/kCngKZVrb0rZMS1f/images/customer-portal/new-portal.png?fit=max&auto=format&n=kCngKZVrb0rZMS1f&q=85&s=9431b2e24142e47cb39dc84c1a0303fe" alt="Página principal do Customer Portal mostrando assinaturas ativas e métodos de pagamento" width="2876" height="1568" data-path="images/customer-portal/new-portal.png" />
</Frame>

### Métodos de pagamento e histórico de cobrança

Role para baixo para visualizar os métodos de pagamento salvos e um histórico completo de cobrança com indicadores de status e faturas para download.

<Frame>
  <img src="https://mintcdn.com/dodopayments/kCngKZVrb0rZMS1f/images/customer-portal/payment-methods-invoices.png?fit=max&auto=format&n=kCngKZVrb0rZMS1f&q=85&s=1aed6644dbb338cda755798eda99a6f2" alt="Métodos de pagamento e histórico de cobrança com downloads de faturas" width="2880" height="1560" data-path="images/customer-portal/payment-methods-invoices.png" />
</Frame>

## Alterações de plano (Upgrade/Downgrade)

Quando os produtos estão organizados em **Product Collections**, os clientes podem fazer upgrade ou downgrade entre planos diretamente pelo Customer Portal.

<Tip>
  **Deseja habilitar upgrade/downgrade para assinaturas existentes?** Adicione seus produtos de assinatura a uma Product Collection. Após agrupados, os clientes podem alternar entre planos na mesma coleção pelo Customer Portal.
</Tip>

* **Detecção automática**: Na primeira visita, o portal detecta o idioma preferido do cliente a partir das configurações do navegador e carrega a tradução correspondente, se disponível. O inglês é usado como padrão.
* **Substituição manual**: Os clientes podem alterar o idioma ativo a qualquer momento através do seletor de idiomas no cabeçalho do portal (disponível tanto em desktop quanto em dispositivos móveis).
* **Preferência persistente**: O idioma selecionado é armazenado no cookie `NEXT_LOCALE` (válido por 1 ano) para que o portal lembre-se da escolha em diferentes sessões.

| Ação          | Descrição                                                    | Quando disponível                              |
| ------------- | ------------------------------------------------------------ | ---------------------------------------------- |
| **Upgrade**   | Mova para um plano de nível superior dentro da mesma coleção | O negócio habilitou atualizações de assinatura |
| **Downgrade** | Mova para um plano de nível inferior dentro da mesma coleção | O negócio habilitou atualizações de assinatura |

### Como funcionam as alterações de plano

1. O cliente visualiza a assinatura atual no portal
2. As opções de upgrade/downgrade disponíveis são exibidas com base na coleção de produtos
3. O cliente seleciona o novo plano
4. A prorrata é calculada e o pagamento é processado imediatamente (quando aplicável)
5. A assinatura é atualizada para o novo plano

<Info>
  Alterações de plano estão disponíveis apenas entre produtos dentro da mesma coleção. Os produtos devem ser do tipo assinatura ou cobrança baseada em uso.
</Info>

### Controles comerciais

As empresas podem configurar o comportamento de alteração de plano em Configurações de Assinatura:

* **Permitir atualizações de assinatura**: habilite ou desabilite a capacidade dos clientes de fazer upgrade ou downgrade das assinaturas

<Card title="Product Collections" icon="layer-group" href="/features/product-collections">
  Aprenda como configurar Product Collections e definir caminhos de upgrade/downgrade.
</Card>

## Detalhes da assinatura

Quando os clientes clicam em "Manage subscription" em qualquer assinatura ativa, eles são levados à página de detalhes da assinatura. Essa página mostra:

* **Detalhes do plano**: nome da assinatura, preço, data de renovação e período de validade
* **Método de pagamento**: o cartão ou método vinculado à assinatura, com um botão "Edit"
* **Informações de cobrança**: nome, e-mail, telefone e endereço de cobrança com um botão "Edit"
* **Histórico de cobrança**: uma tabela detalhada de todos os pagamentos dessa assinatura
* **Cancelar assinatura**: um botão em destaque para cancelar a assinatura

<Frame>
  <img src="https://mintcdn.com/dodopayments/kCngKZVrb0rZMS1f/images/customer-portal/subscription-details.png?fit=max&auto=format&n=kCngKZVrb0rZMS1f&q=85&s=4ae46f6878c9343b2e963c516952c9d3" alt="Página de detalhes da assinatura mostrando informações do plano, método de pagamento, informações de cobrança e opção de cancelamento" width="2880" height="1560" data-path="images/customer-portal/subscription-details.png" />
</Frame>

## Cancelamento de uma assinatura

Os clientes podem cancelar a assinatura diretamente na página de detalhes da assinatura. Ao clicar em "Cancel Subscription", é exibido um diálogo de confirmação com duas opções:

* **Cancelar na próxima data de cobrança**: a assinatura permanece ativa até o fim do período atual de cobrança e, então, é cancelada automaticamente.
* **Cancelar agora**: a assinatura é cancelada imediatamente.

<Frame>
  <img src="https://mintcdn.com/dodopayments/kCngKZVrb0rZMS1f/images/customer-portal/cance-sub.png?fit=max&auto=format&n=kCngKZVrb0rZMS1f&q=85&s=66eb6e380c991826c431fd0c563cbfa6" alt="Diálogo de cancelamento de assinatura com opções para cancelar na próxima data de cobrança ou cancelar imediatamente" width="2880" height="1550" data-path="images/customer-portal/cance-sub.png" />
</Frame>

## Atualizando métodos de pagamento

Os clientes podem atualizar métodos de pagamento diretamente na página de detalhes da assinatura clicando em "Edit" ao lado do método de pagamento. Esse recurso é especialmente importante para reativar assinaturas que foram colocadas em espera devido a pagamentos falhos.

### Reativando assinaturas em espera

Quando uma assinatura é colocada no estado `on_hold` devido a um pagamento falho, os clientes devem atualizar o método de pagamento para reativá-la. O processo de atualização automaticamente:

1. **Cria uma cobrança** pelos valores em aberto
2. **Gera uma fatura** para a cobrança
3. **Processa o pagamento** usando o novo método de pagamento
4. **Reativa a assinatura** para o estado `active` após o pagamento ser concluído com sucesso

<Warning>
  Assinaturas no estado `on_hold` não renovarão automaticamente. Os clientes devem atualizar o método de pagamento para quitar os valores em aberto e reativar a assinatura.
</Warning>

### Motivos de Cancelamento

Antes de confirmar o cancelamento, os clientes são perguntados **"Por que você está cancelando?"** e devem escolher um motivo em uma lista curada. O motivo é armazenado na assinatura e exibido em payloads de webhook e na API, para que você possa analisar os motivos de churn e adaptar seus fluxos de recuperação.

<Frame>
  <img src="https://mintcdn.com/dodopayments/RlXcM7JO-E_w40Np/images/customer-portal/cancellation-reasons.png?fit=max&auto=format&n=RlXcM7JO-E_w40Np&q=85&s=979394da2a9aa3907cbf9f4e225f9a4b" alt="Modal de cancelamento com o menu suspenso 'Por que você está cancelando?' mostrando razões como Muito caro, Faltando funcionalidades, e Outros" style={{ maxHeight: '500px', width: 'auto' }} width="2880" height="1564" data-path="images/customer-portal/cancellation-reasons.png" />
</Frame>

| Valor              | Rótulo para o cliente    |
| ------------------ | ------------------------ |
| `too_expensive`    | Muito caro               |
| `missing_features` | Faltando funcionalidades |
| `switched_service` | Mudou para outro serviço |
| `unused`           | Não usa o suficiente     |
| `customer_service` | Serviço ao cliente ruim  |
| `low_quality`      | Baixa qualidade          |
| `too_complex`      | Muito complexo           |
| `other`            | Outro                    |

O valor selecionado é escrito no campo `cancellation_feedback` da assinatura. Um texto livre opcional `cancellation_comment` também pode ser capturado.

```typescript theme={null}
// Read the captured feedback after a customer cancels
const subscription = await client.subscriptions.retrieve('sub_123');
console.log(subscription.cancellation_feedback); // e.g., "too_expensive"
console.log(subscription.cancellation_comment);  // e.g., "Switching to a competitor"
```

Ambos os campos também estão incluídos no payload do webhook `subscription.cancelled`, e você pode preenchê-los programaticamente em `PATCH /subscriptions/{id}` ao agendar ou executar um cancelamento através da API.

<Tip>
  Combine `cancellation_feedback` com [Subscription Dunning](/features/recovery/subscription-dunning) para personalizar e-mails de recuperação — por exemplo, envie um código de desconto para canceladores `too_expensive` e uma pesquisa "o que está faltando?" para canceladores `missing_features`.
</Tip>

## Atualizando Métodos de Pagamento

Os clientes podem atualizar seus métodos de pagamento diretamente da página de detalhes da assinatura clicando em "Editar" ao lado do método de pagamento. Este recurso é especialmente importante para reativar assinaturas que foram colocadas em espera devido a falhas de pagamento.

### Reativando Assinaturas em Espera

Quando uma assinatura é colocada em estado `on_hold` devido a uma falha de pagamento, os clientes devem atualizar seu método de pagamento para reativá-la. O processo de atualização automaticamente:

1. **Cria uma cobrança** para valores devidos remanescentes
2. **Gera uma fatura** para a cobrança
3. **Processa o pagamento** usando o novo método de pagamento
4. **Reativa a assinatura** para o estado `active` após o pagamento bem-sucedido

<Warning>
  Assinaturas em estado `on_hold` não renovarão automaticamente. Os clientes devem atualizar seu método de pagamento para liquidar débitos e reativar a assinatura.
</Warning>

<Info>
  Após atualizar com sucesso o método de pagamento para uma assinatura `on_hold`, os clientes verão uma página de confirmação e receberão notificações por e-mail sobre o pagamento bem-sucedido e a reativação da assinatura.
</Info>

### Fluxo de Atualização do Método de Pagamento

<Steps>
  <Step title="Access subscription details">
    Clique em "Gerenciar assinatura" em qualquer assinatura ativa na página inicial do portal.
  </Step>

  <Step title="Click Edit on payment method">
    Clique no botão "Editar" ao lado do método de pagamento para abrir a interface de atualização do método de pagamento.
  </Step>

  <Step title="Select or add payment method">
    Escolha um método de pagamento salvo existente ou adicione um novo inserindo os detalhes do cartão com segurança.
  </Step>

  <Step title="Confirm changes">
    Confirme a atualização. Para assinaturas `on_hold`, isso criará automaticamente uma cobrança por débitos remanescentes.
  </Step>

  <Step title="Complete payment (if on hold)">
    Se a assinatura estiver em espera, os clientes serão redirecionados para concluir o pagamento dos débitos remanescentes. Após o pagamento bem-sucedido, a assinatura é automaticamente reativada.
  </Step>

  <Step title="Confirmation">
    Os clientes recebem confirmação de que o método de pagamento foi atualizado e, se aplicável, que a assinatura foi reativada.
  </Step>
</Steps>

## Exemplos de Integração

Crie uma sessão de Portal do Cliente com prazo definido para um cliente específico via API, depois redirecione o usuário para a URL da sessão.

<CodeGroup>
  ```typescript Node.js theme={null}
  const session = await client.customers.customerPortal.create('cus_123');

  // Redirect the user to the hosted Customer Portal
  window.location.href = session.link;
  ```
</CodeGroup>

## Portal do Cliente Unificado

Além dos portais de clientes específicos para empresas, o Dodo Payments oferece um **Portal do Cliente Unificado** em [customer.dodopayments.com](https://customer.dodopayments.com) onde os clientes podem visualizar e gerenciar todas as suas compras e assinaturas em diferentes empresas usando o Dodo Payments.

<Frame>
  <img src="https://mintcdn.com/dodopayments/eNGWg9ca-WxQ9nMf/images/changelog/unified-customer-portal.png?fit=max&auto=format&n=eNGWg9ca-WxQ9nMf&q=85&s=bceabb06ca0f00aa2a458f4af95a5cda" alt="Portal do Cliente Unificado" style={{ maxHeight: '500px', width: 'auto' }} width="1640" height="953" data-path="images/changelog/unified-customer-portal.png" />
</Frame>

### Funcionalidades do Portal Unificado

* **Visibilidade cruzada de empresas**: Veja todas as compras e assinaturas de qualquer comerciante Dodo Payments em um único lugar
* **Gestão centralizada**: Gerencie assinaturas de diferentes empresas a partir de um único painel
* **Histórico de faturamento unificado**: Acesse faturas e histórico de pagamentos de todas as compras
* **Single sign-on**: Faça login uma vez com e-mail para acessar compras de todos os comerciantes Dodo Payments

<Tip>
  O Portal do Cliente Unificado complementa os portais específicos para empresas. Os clientes podem usar tanto o portal do comerciante com marca quanto o portal unificado, de acordo com sua preferência.
</Tip>

## Solução de Problemas

* **Link expirado**: Gere e envie um novo link dinâmico.
* **E-mail não reconhecido**: Peça ao cliente que use o e-mail associado à sua compra
* **Assinatura em espera**: Se uma assinatura estiver em espera, os clientes devem atualizar seu método de pagamento através do portal para liquidar débitos e reativar a assinatura. O processo de atualização cobrará automaticamente por débitos remanescentes.
* **Falha na atualização do método de pagamento**: Se o pagamento falhar durante o processo de atualização para uma assinatura `on_hold`, a assinatura permanecerá em espera. Os clientes podem tentar novamente com um método de pagamento diferente.

<Card title="Design & Theme Customization" icon="palette" href="/features/design">
  Personalize a aparência do seu portal do cliente com temas pré-construídos, tipografia, cores e pré-visualização ao vivo na página de design.
</Card>
