Guia de integração

Aceite pagamentos em cripto no seu site

Um guia prático: escolha uma integração, crie um pedido com uma única chamada de API e confirme o pagamento por webhook. Funciona com qualquer stack, de um site estático a um checkout próprio.

Em resumo

A integração mais simples é uma chamada a partir do servidor: crie um pedido com o total do carrinho, redirecione o comprador para o checkout_url retornado e marque o pedido como pago quando o seu webhook receber payment.succeeded. A cripto vai direto para a sua carteira; a UTOPAY fica com 1,5%.

Tempo de integração
Cerca de uma hora
Linguagens
Qualquer uma (REST + JSON)
Checkout
Hospedado ou próprio
Confirmação
Webhooks assinados
Modo de teste
Sim, com chaves de teste

Escolha como o comprador paga

OpçãoIdeal paraEsforço
Página de pagamento hospedada — redirecione para checkout_urlQualquer site, lançamento mais rápido. Mostra valor, rede, endereço, QR e status ao vivoUma chamada de API
Seu próprio checkout — mostre crypto.address e crypto.amount_coinUX própria, o comprador não sai do seu domínioChamada de API + sua interface
CMS — WooCommerce, ShopifyLojas em plataformasVeja as seções abaixo

Passo 1: crie um pedido no seu servidor

Nunca crie pedidos pelo navegador com uma chave secreta. Chame a API a partir do seu backend com o total do carrinho e a moeda que o comprador escolheu:

curl -X POST https://api.utopay.app/v1/crypto/payments \
  -H "Authorization: Bearer utopay_sk_live_..." \
  -H "content-type: application/json" \
  -d '{ "coin": "bep20/usdt", "amount": 49.90, "currency": "EUR",
        "description": "Order #1042",
        "success_url": "https://shop.example/thanks",
        "cancel_url": "https://shop.example/cart" }'

Com conta, a carteira de recebimento vem das configurações do projeto. Sem conta, use POST /v1/crypto/pay e informe payout_address. A lista de moedas e redes com os mínimos está em GET /v1/crypto/coins.

Passo 2: envie o comprador para pagar

  • Redirecione para checkout_url: a página mostra o valor exato, a rede, o QR code e o status ao vivo, e depois devolve o comprador ao seu success_url.
  • Ou mostre você mesmo crypto.address e crypto.amount_coin e consulte GET /v1/payments/:id enquanto o comprador está na página.

Passo 3: confirme o pagamento por webhook

Não confie só no redirecionamento. Marque o pedido como pago quando o seu endpoint receber um evento assinado payment.succeeded; trate payment.underpaid se chegou menos do que o pedido. Verifique o cabeçalho x-utopay-signature com o seu segredo whsec_…: há exemplos em Node.js, PHP e Python na documentação de webhooks.

<?php // PHP: verificar um webhook da UTOPAY
$raw = file_get_contents("php://input");
parse_str(str_replace(",", "&", $_SERVER["HTTP_X_UTOPAY_SIGNATURE"]), $sig);
$expected = hash_hmac("sha256", $sig["t"] . "." . $raw, getenv("UTOPAY_WHSEC"));
if (!hash_equals($expected, $sig["v1"] ?? "") || abs(time() - (int)$sig["t"]) > 300) {
  http_response_code(400); exit;
}
$event = json_decode($raw, true);
if ($event["event"] === "payment.succeeded") { /* marcar $event["data"]["id"] como pago */ }
http_response_code(200);

WordPress e WooCommerce

Existe um plugin pronto da UTOPAY para WooCommerce: veja os plugins. Sem o plugin, uma loja WooCommerce integra pela API: crie o pedido no hook woocommerce_checkout_order_processed, redirecione para checkout_url e conclua o pedido a partir do handler do webhook.

Shopify

A Shopify só mostra como gateway de pagamento os apps de pagamento aprovados. A configuração prática é um método de pagamento manual (por exemplo, «Pagar com cripto») mais uma página de pagamento da UTOPAY: quando o pedido é feito, seu app ou automação cria um pedido na UTOPAY com o total e envia ao comprador o checkout_url por e-mail. Depois, o webhook marca o pedido da Shopify como pago.

Checklist antes de lançar

  • Teste o fluxo completo com chaves de teste (utopay_sk_test_…): pedidos de teste nunca tocam a blockchain.
  • Confira se a carteira de recebimento suporta todas as redes que você oferece.
  • Mostre o nome da rede ao lado do valor: transferências para a rede errada são o pedido de suporte mais comum.
  • Guarde o id do pedido UTOPAY junto com o seu pedido e deduplique os webhooks por ele.
  • Decida antes do lançamento o que fazer com pedidos underpaid.

Atualizado · Equipe UTOPAY

FAQ

Aceitar cripto no site — perguntas frequentes

Posso aceitar cripto sem um desenvolvedor?

Você precisa de uma chamada de API no servidor e de um handler de webhook: algumas dezenas de linhas em qualquer linguagem. Sem nenhum código, dá para criar um pedido com um comando curl e enviar ao comprador o checkout_url.

Com quais moedas meus clientes podem pagar?

Hoje: USDT, ETH, BNB, POL, DAI e outros tokens em redes EVM (Ethereum, BNB Smart Chain, Polygon, Base, Optimism, Arbitrum, Avalanche, Linea). Bitcoin, Tron, Solana e TON estão sendo conectados. A lista atual está em GET /v1/crypto/coins.

Para onde vai o dinheiro?

Direto para a sua carteira. Cada pagamento é repassado on-chain assim que chega; a UTOPAY fica com 1,5% e nunca guarda os fundos.

Também posso aceitar cartões?

Sim. O gateway de cartões funciona na mesma conta: os compradores pagam com cartão, Apple Pay e outros métodos e você recebe cripto.

Existe um plugin para WooCommerce?

Sim, ele está disponível em plugins. Sem o plugin, use o fluxo via API descrito acima.

Continue lendo

Adicione pagamento em cripto ao seu site

Crie uma conta gratuita para ter chaves de API, webhooks e alertas no Telegram, ou chame o endpoint sem conta só com o endereço da sua carteira.