<!-- Source: https://docs.infraio.xyz/pt-BR/payment-links/overview -->
<!-- Last updated: 2026-10-04 -->

# Links de pagamento — Visão geral

Um **Link de pagamento** é uma URL compartilhável que coloca um
comprador num checkout hospedado que você já configurou. Sem SDK,
sem integração de servidor — emita no dashboard, compartilhe e o
mesmo webhook `payment.settled` dispara quando os fundos confirmarem
on-chain.

Por baixo dos panos, um Link de pagamento **é** uma [CheckoutSession](https://docs.infraio.xyz/pt-BR/concepts/sessions) —
"Link de pagamento" é só o nome do lado do dashboard para uma sessão
que não foi criada por um fluxo de SDK dirigido pelo comprador. Mesmo
contrato de webhook, mesma liquidação on-chain, mesmas taxas.

Usos comuns:

- Faturar um cliente avulso sem escrever código
- Páginas de venda em que você não tem um carrinho customizado
- Follow-ups B2B: cole o link num e-mail
- Páginas de gorjeta de valor fixo no estilo "Buy me a coffee"

## Crie um

Crie links de pagamento no dashboard:

1. Entre no [dashboard do lojista](https://app.infraio.xyz)
2. **Payments → Payment Links → + New link**
3. Escolha um dos dois caminhos:
   - **New order** — informe itens, moeda, dados do cliente e
     metadata opcional. O dashboard cria o Order e o Link de
     pagamento numa única chamada.
   - **Existing order** — escolha um pedido `PENDING`
     (por exemplo, o comprador abandonou o link anterior).
     Re-emite um link novo apoiado pelo mesmo pedido, mantendo o
     histórico de pedido intacto.
   - Em **New order** você pode mudar para **Somente valor** para cobrar um valor fixo sem listar produtos.
4. Salve → o dashboard mostra a URL
   `https://checkout.infraio.xyz/cst_…` com botão de copiar e
   download de QR code. Links em modo de teste usam
   `checkout-dev.infraio.xyz` para que o ambiente fique codificado
   no hostname.

> **Note:**
>
> Cada Link de pagamento é de uso único hoje: assim que um comprador
> paga, a sessão é `COMPLETED`. Se uma sessão expirar antes do
> pagamento (TTL padrão de 30 minutos), abra a página de detalhe do
> pedido e clique em **Re-create link** para emitir um novo contra o
> mesmo pedido.

## O que o comprador vê

1. Ele aterrissa em `checkout.infraio.xyz/<session_key>` — a mesma
   UI hospedada de checkout que você teria a partir de uma sessão
   emitida pelo SDK.
2. Ele segue o fluxo padrão escolher-ativo → enviar fundos → esperar
   confirmação descrito em [Checkout — Visão geral](https://docs.infraio.xyz/pt-BR/checkout/overview).
3. `payment.settled` dispara no seu webhook com o pedido, o intent,
   o recibo, o tx hash on-chain e a contagem de confirmações — o
   mesmo payload de qualquer outro pagamento liquidado. Veja
   [Webhooks](https://docs.infraio.xyz/pt-BR/webhooks/overview) para o schema.

## O que o dashboard te dá

A superfície de Links de pagamento hoje vem com:

- **Visão de lista** — todo link que você emitiu, com paginação por
  cursor, status, valor, número do pedido pai, cliente, expiração e
  uma abertura com um clique para a URL do comprador.
- **Filtros** — status (`ACTIVE` / `COMPLETED` / `EXPIRED` /
  `CANCELED`), faixa de datas e busca em texto livre por número do
  pedido, nome do cliente, e-mail ou referência externa.
- **Exportação CSV** — um clique, respeita os filtros atuais.
- **Faixa de KPIs** — contagens por status para o ambiente atual
  (`live` ou `test`), batendo com o que a tabela mostra.
- **Página de detalhe** — resumo do pedido, histórico de sessões
  (cada tentativa para este pedido), histórico on-chain com links
  para o block explorer e uma ação **Re-create link** para sessões
  que expiraram antes do pagamento.

## Limitações hoje

- **Sem API programática** — os links precisam ser criados no
  dashboard. Você pode criar sessões de uso único equivalentes via
  `POST /b2b/v1/checkout-sessions/quick` (veja [Referência da API](https://docs.infraio.xyz/pt-BR/api-reference)),
  mas links compartilháveis só são criados no dashboard.
- **Sem autenticação por comprador** — qualquer um com a URL pode
  pagar. Cada link é de uso único, o que limita isso.
- **Branding é global** — o link usa o logo do lojista, a cor da
  marca e o raio das bordas configurados em **Settings → Branding**.
  Overrides de branding por link não estão disponíveis.

## Veja também

- [Conceitos → Sessões](https://docs.infraio.xyz/pt-BR/concepts/sessions) — o que está
  acontecendo nas camadas de sessão e de intent enquanto o
  comprador está pagando.
- [Checkout → Visão geral](https://docs.infraio.xyz/pt-BR/checkout/overview) — o que o
  comprador efetivamente vê.
- [Webhooks → Visão geral](https://docs.infraio.xyz/pt-BR/webhooks/overview) — o evento
  `payment.settled` ao qual o seu servidor reage.
