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

# Após receber com um Link de pagamento

> Separe cada compra criada pela mesma URL, acompanhe suas Checkout Sessions e mantenha a oferta reutilizável sob controle.

Um Link de pagamento representa uma **oferta reutilizável**, não uma venda.
Cada pessoa que abre a URL cria uma Checkout Session nova, com ID, comprador,
estado e resultado próprios. Depois da compra, acompanhe essa sessão — o link
continua disponível para as próximas pessoas.

<Info>
  Este artigo é para vendas que nascem de uma URL compartilhada. Se seu backend
  cria uma Checkout Session para um pedido já conhecido, veja [Após receber com
  um Checkout](/payments/checkout-post-payment).
</Info>

## Separe a oferta de cada compra

| Recurso           | O que representa                                          | Como usar depois da compra                                           |
| ----------------- | --------------------------------------------------------- | -------------------------------------------------------------------- |
| Link de pagamento | A oferta e a URL compartilhada.                           | Gerencie disponibilidade, itens e configuração para visitas futuras. |
| Checkout Session  | Uma tentativa criada quando alguém abre o link.           | Identifique o comprador, o método e o resultado daquela compra.      |
| Payment Intent    | O ciclo financeiro ligado à sessão.                       | Consulte o estado da cobrança quando precisar reconciliar.           |
| Subscription      | A relação recorrente criada por uma sessão de assinatura. | Acompanhe trial, renovação, cancelamento e cobrança futura.          |
| Invoice           | A cobrança de cada período recorrente.                    | Renove acesso quando `invoice.paid` confirmar o ciclo.               |

<Warning>
  Não marque uma venda como paga olhando o estado do Link de pagamento. O link
  pode continuar ativo mesmo depois de centenas de compras. O resultado está na
  Checkout Session criada para cada acesso.
</Warning>

## Como cada venda aparece

<Steps>
  <Step title="Alguém abre o link">
    A Chargefy materializa uma Checkout Session e emite
    `checkout.session.created`. Itens, URLs, regras de assinatura e `metadata`
    do link são copiados para essa sessão.
  </Step>

  <Step title="O comprador conclui a página">
    A sessão recebe o Customer e o método escolhido. Cartão pode confirmar na
    hora; Pix e boleto podem continuar aguardando compensação.
  </Step>

  <Step title="Seu backend recebe o resultado">
    Os eventos `checkout.session.*` identificam a sessão específica. Seu sistema
    valida, deduplica e executa a entrega uma única vez.
  </Step>

  <Step title="O link continua disponível">
    A mesma URL pode materializar outras sessões sem misturar compradores ou
    resultados financeiros.
  </Step>
</Steps>

O `session.id` é a chave de cada compra. O `metadata` configurado no link é
copiado para todas as sessões e pode ajudar a identificar oferta, campanha ou
canal, mas não é um número único de pedido por comprador.

## Escolha o sinal correto

| Situação                            | Sinal confiável                                             | O que fazer                                                                   |
| ----------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------------------------- |
| Nova visita materializou uma sessão | `checkout.session.created`                                  | Registre a tentativa se seu sistema precisa acompanhar abandono ou conversão. |
| Cartão aprovado                     | `checkout.session.completed` com `payment_status: "paid"`   | Entregue de forma idempotente.                                                |
| Pix ou boleto gerado                | `checkout.session.completed` com `payment_status: "unpaid"` | Registre como pagamento pendente.                                             |
| Pix ou boleto compensado            | `checkout.session.async.payment.succeeded`                  | Entregue na primeira vez em que processar o evento.                           |
| Pagamento assíncrono falhou         | `checkout.session.async.payment.failed`                     | Encerre a espera daquela sessão; o link continua disponível.                  |
| Sessão expirou aberta               | `checkout.session.expired`                                  | Libere reservas daquela tentativa; não desative o link automaticamente.       |
| Assinatura renovou                  | `invoice.paid`                                              | Renove o acesso do período indicado pela invoice.                             |

`status: "complete"` informa que o comprador terminou o checkout.
`payment_status` informa se o pagamento foi confirmado. Sempre leia os dois.

Para implementar assinatura, persistência, reentrega e idempotência uma única
vez, use [Entregar pedidos](/payments/fulfill-orders) e [Entrega de
webhooks](/integrate/webhooks/delivery). Essas regras são iguais para qualquer
origem; esta página trata apenas do que muda quando a origem é um link
reutilizável.

## Configure um retorno que identifique a sessão

O mesmo `success_url` do Link de pagamento será usado pelas sessões geradas. Se
sua página precisa mostrar uma compra específica, inclua o placeholder:

```text theme={"theme":"css-variables"}
https://meusite.com/pedido/confirmado?session_id={CHECKOUT_SESSION_ID}
```

A Chargefy substitui o placeholder pelo ID da sessão materializada antes do
redirect. Sua página envia esse ID ao backend e mostra o estado já persistido a
partir dos webhooks.

<Warning>
  Chegar à `success_url` não comprova pagamento. Pix e boleto podem redirecionar
  enquanto continuam `unpaid`. A página deve mostrar “Aguardando confirmação” e
  nunca criar outra cobrança automaticamente.
</Warning>

Sem `success_url`, o comprador permanece na confirmação hospedada. `cancel_url`
é usada quando ele volta antes de concluir a página; esse retorno também não
cancela automaticamente uma tentativa assíncrona já criada.

## Acompanhe as vendas no Dashboard

Abra **Checkouts** para ver cada sessão criada pelo link e **Pagamentos** para
consultar o resultado financeiro. O detalhe do Link de pagamento continua
representando a oferta reutilizável.

<Frame caption="Visão geral do Dashboard com faturamento, pedidos, receita líquida, ticket médio e vendas recentes.">
  <img src="https://mintcdn.com/scaleup-28315a31/GdKGcv_QioRyE_fe/assets/dashboard-overview-light.webp?fit=max&auto=format&n=GdKGcv_QioRyE_fe&q=85&s=99ef6faf44c71b73fd9bb6c0d0b5989c" alt="Dashboard da Chargefy mostrando faturamento, pedidos, receita líquida, ticket médio e vendas recentes" width="2000" height="1360" data-path="assets/dashboard-overview-light.webp" />
</Frame>

| Área                      | O que você encontra                                                                                |
| ------------------------- | -------------------------------------------------------------------------------------------------- |
| **Links de pagamento**    | Oferta, URL, itens e disponibilidade para novas visitas.                                           |
| **Checkouts**             | Uma sessão por acesso, com comprador, método, `status` e `payment_status`.                         |
| **Pagamentos**            | Payment Intent, tentativas de cobrança, valor e resultado financeiro.                              |
| **Analytics → Aquisição** | Aberturas, pagamentos enviados, aprovações, receita e conversão por campanha quando há atribuição. |

<Card title="Abrir o Dashboard" icon="arrow-up-right-from-square" href="https://app.chargefy.io">
  Consulte a oferta, as sessões materializadas e os pagamentos relacionados.
</Card>

## Decida o que acontece com o link

Uma ação sobre uma compra não deve alterar automaticamente a oferta inteira:

| Ação             | Efeito na compra atual                           | Efeito no link                                  |
| ---------------- | ------------------------------------------------ | ----------------------------------------------- |
| Reembolsar       | Devolve total ou parte do pagamento escolhido.   | Continua ativo.                                 |
| Sessão expirar   | Encerra somente aquela tentativa.                | Continua ativo.                                 |
| Pagamento falhar | Mantém aquela compra sem entrega.                | Continua ativo para outra tentativa.            |
| Desativar o link | Sessões que já existem mantêm seu próprio ciclo. | Impede novas visitas de materializarem sessões. |
| Atualizar o link | Não reescreve o snapshot de sessões já criadas.  | Novas visitas usam a configuração atualizada.   |

Desative o link quando a oferta terminar, o estoque acabar ou você não quiser
novas compras. Não o desative apenas porque uma venda foi reembolsada ou uma
sessão expirou.

## Quando o link inicia assinaturas

Um link com preço recorrente pode criar várias assinaturas independentes — uma
por comprador que concluir sua sessão.

* use `checkout.session.completed` para relacionar a primeira sessão à
  subscription criada;
* trate `no_payment_required` conforme a política de trial;
* acompanhe os ciclos seguintes por `invoice.paid` e eventos de subscription;
* ofereça o [Portal do cliente](/payments/customer-portal) para atualização de
  método, consulta de invoices e gestão da assinatura;
* não use novamente o Link de pagamento para cobrar cada renovação.

## Reembolsos, disputas e conciliação

Essas operações pertencem ao pagamento, não ao Link de pagamento. Localize a
compra em **Pagamentos** ou pela Checkout Session e trabalhe sobre o recurso
financeiro correspondente.

<CardGroup cols={2}>
  <Card title="Reembolsar pagamento" icon="arrow-rotate-left" href="/payments/refund-payment">
    Crie uma devolução sem desativar a oferta compartilhada.
  </Card>

  <Card title="Conciliar pagamentos" icon="scale-balanced" href="/payments/reconcile-payments">
    Relacione a sessão, o pagamento, a devolução e os movimentos financeiros.
  </Card>
</CardGroup>

## Checklist de produção

* [ ] Cada compra é identificada pelo `cs_*`, não apenas pelo Link de pagamento.
* [ ] O backend recebe `checkout.session.created` quando precisa registrar cada acesso.
* [ ] A página de retorno usa `{CHECKOUT_SESSION_ID}` e consulta seu backend.
* [ ] Pix e boleto só liberam a compra depois da confirmação assíncrona.
* [ ] O mesmo evento e a mesma sessão não executam a entrega duas vezes.
* [ ] `metadata` do link é tratada como contexto compartilhado, não ID único de pedido.
* [ ] Reembolso, falha ou expiração de uma compra não desativa a oferta inteira.
* [ ] Desativar ou atualizar o link afeta novas visitas, não sessões existentes.
* [ ] Renovações de assinatura são acompanhadas por invoices.

## Próximos passos

<CardGroup cols={2}>
  <Card title="Criar um Link de pagamento" icon="link" href="/payments/create-payment-link">
    Configure a oferta, o retorno e as regras copiadas para cada sessão.
  </Card>

  <Card title="Entregar pedidos" icon="box-open" href="/payments/fulfill-orders">
    Implemente webhooks, idempotência, retry e compensação.
  </Card>

  <Card title="Configurar pixel de conversão" icon="chart-line" href="/payments/configure-conversion-pixel">
    Envie eventos de abertura, pagamento e receita para seus destinos.
  </Card>

  <Card title="Portal do cliente" icon="user-gear" href="/payments/customer-portal">
    Dê autonomia a compradores que iniciaram uma assinatura pelo link.
  </Card>
</CardGroup>
