# Confirme pagamentos em stablecoins com webhooks | Cosmos Pay

URL: https://payments.cosmospay.lat/learn/confirm-stablecoin-payments?lang=pt

> Confirme pagamentos em stablecoins no servidor com webhooks assinados: verifique a assinatura, responda rápido, trate reenvios e duplicados e teste antes.

## Como confirmar um pagamento em stablecoins no seu servidor

Para confirmar um pagamento em stablecoins, deixe seu servidor agir com base no webhook assinado da Cosmos Pay, não na página que seu cliente vê. Quando a rede confirma um pagamento, a Cosmos Pay envia PAYMENT_INTENT_SUCCEEDED para o seu endpoint, assinado com o segredo desse endpoint. Verifique a assinatura, responda com um status 2xx e entregue o pedido uma vez por evento.

Atualizado em 2 de novembro de 2026 · Por Cosmos Pay

### Por que o seu servidor, e não o navegador

Um checkout que diz Pago é só o que o navegador do seu cliente mostra. A aba pode ser fechada antes de voltar ao seu site, e qualquer pessoa pode abrir sua página de sucesso manualmente. O que torna um pagamento definitivo é a confirmação da rede.

A Cosmos Pay monitora a rede por você e avisa o seu servidor quando um pagamento é confirmado. É no seu servidor que o pedido deve ser marcado como pago e entregue.

### O que a Cosmos Pay envia

- Um POST HTTPS para o endpoint que você registra, com um evento JSON: id (começa com evt_), type, createdAt e data. Para um pagamento, data é o pagamento com status, valor, ativo, rede e transação.
- O cabeçalho X-Cosmos-Signature: t=<hora unix>,v1=<assinatura>. A assinatura é o HMAC-SHA256 de t, um ponto e o corpo bruto, com o segredo do endpoint como chave, em hexadecimal.
- Os tipos de evento que você escolher, como PAYMENT_INTENT_SUCCEEDED, PAYMENT_INTENT_FAILED ou ZK_PAYMENT_SUCCEEDED. Compare-os exatamente como estão escritos, em maiúsculas e com underscores.
- Os cabeçalhos X-Cosmos-Event, X-Cosmos-Event-Id e X-Cosmos-Delivery, que identificam o evento e a entrega.

- [Webhooks no SDK](https://dev.cosmospay.lat/docs/sdk/server/webhooks/)
- [API de webhooks](https://dev.cosmospay.lat/docs/api/webhooks/)

### Configure um webhook, passo a passo

1. **Adicione um endpoint**: No dashboard, abra Webhooks e adicione o endereço HTTPS de uma rota do seu servidor. Escolha os eventos que vai receber; PAYMENT_INTENT_SUCCEEDED já vem selecionado. O endereço precisa ser público: endereços privados e locais são recusados.
2. **Guarde o segredo**: O dashboard mostra o segredo do endpoint (começa com whsec_) uma única vez. Guarde-o no ambiente do seu servidor, nunca numa página web.
3. **Verifique cada requisição**: Leia o corpo bruto antes de qualquer parser JSON e confira o X-Cosmos-Signature com ele. Com o SDK em TypeScript, Webhooks.constructEvent verifica a assinatura, recusa por padrão uma com mais de cinco minutos e retorna o evento.
4. **Responda rápido e depois trabalhe**: Responda com um status 2xx assim que a assinatura for validada e faça o trabalho demorado, como e-mails ou atualizações de estoque, depois disso.
5. **Trate cada evento uma vez**: Guarde o id de cada evento que você trata e ignore um que já tenha visto: uma nova tentativa ou um reenvio manda o mesmo evento de novo.
6. **Envie um teste**: Use Enviar teste no endpoint para receber um evento ping, depois faça um pagamento de teste no Sandbox e acompanhe a entrega na lista do endpoint.

- [Webhooks no SDK](https://dev.cosmospay.lat/docs/sdk/server/webhooks/)
- [Primeiros passos](https://dev.cosmospay.lat/docs/getting-started/)

### Quando o seu servidor não responde

Só uma resposta 2xx conta como entregue, e redirecionamentos não são seguidos. A Cosmos Pay tenta de novo uma entrega que falhou até três vezes, com uma pausa cada vez maior, e depois em rodadas posteriores, e o evento mantém o mesmo id em todas as tentativas.

No dashboard, cada endpoint lista as suas entregas, com um filtro para as que falharam, e você pode enviar qualquer uma delas de novo. A Cosmos Pay guarda o corpo de uma entrega por 30 dias, então reenvie dentro desse prazo.

### Ou verifique um pagamento você mesmo

Você também pode consultar um pagamento específico: busque-o pelo id para ler o status, ou envie o hash da transação dele (na Solana, a assinatura da transação) para POST /v1/payment-intents/:id/validate. Use isso como alternativa, por exemplo quando seu cliente volta antes de o webhook chegar; o webhook continua sendo o sinal principal.

- [API de intenções de pagamento](https://dev.cosmospay.lat/docs/api/payment-intents/)

### Perguntas e respostas.

Pagamentos por rede: [Pagamentos na Stellar](https://payments.cosmospay.lat/stellar?lang=pt), [Pagamentos na Solana](https://payments.cosmospay.lat/solana?lang=pt), [Pagamentos na Monad](https://payments.cosmospay.lat/monad?lang=pt)

#### O dashboard mostra payment_intent.succeeded. Qual nome o evento traz?

O tipo do evento é PAYMENT_INTENT_SUCCEEDED, em maiúsculas e com underscores. O dashboard só o exibe de forma mais curta.

#### O que acontece quando eu rodo o segredo?

O novo segredo funciona na hora e o antigo para de funcionar na hora, então atualize seu servidor logo depois de rodá-lo.

#### E se o meu servidor estava fora do ar?

A Cosmos Pay tenta de novo as entregas que falharam, e você pode enviar qualquer entrega de novo pelo dashboard durante 30 dias.

#### Posso ter vários endpoints?

Sim. Cada endpoint tem o seu próprio endereço, os seus próprios eventos e o seu próprio segredo, e cada evento vai para todos os endpoints inscritos nele.

### Mais guias

[Ver todos os guias](https://payments.cosmospay.lat/learn?lang=pt)

#### [Como aceitar pagamentos em USDC online](https://payments.cosmospay.lat/learn/accept-usdc-payments?lang=pt)

Cobre em USDC com um link de pagamento, o checkout hospedado ou a API, e experimente antes numa rede de testes.

#### [Como aceitar USDC com links do Solana Pay](https://payments.cosmospay.lat/learn/accept-usdc-with-solana-pay?lang=pt)

Crie um link do Solana Pay para USDC, teste na Devnet e veja cada pagamento confirmado no seu servidor.

#### [O que é um gateway de pagamento em stablecoins?](https://payments.cosmospay.lat/learn/stablecoin-payment-gateway?lang=pt)

O que faz um gateway, onde o dinheiro é liquidado, quem paga a taxa de rede e a diferença entre com custódia e sem custódia.

### Comece a aceitar stablecoins.

Crie uma conta grátis, gere uma chave de teste e envie hoje o seu primeiro link de pagamento.

[Criar um link de pagamento](https://dev.cosmospay.lat/login?next=%2Fdashboard%3Fview%3Dpayments)

#### Fale com a gente

Dúvidas sobre planos, integração ou pagamentos protegidos: conte para nós e respondemos por e-mail.

[organization@cosmospay.lat](mailto:organization@cosmospay.lat)
