Guía de integración

Acepta pagos con cripto en tu web

Una guía práctica: elige una integración, crea un pedido con una sola llamada a la API y confirma el pago por webhook. Funciona con cualquier stack, de una web estática a un checkout propio.

En resumen

La integración más simple es una llamada desde el servidor: crea un pedido por el total del carrito, redirige al comprador al checkout_url devuelto y marca el pedido como pagado cuando tu webhook reciba payment.succeeded. La cripto va directa a tu wallet; UTOPAY se queda el 1,5%.

Tiempo de integración
Una hora aprox.
Lenguajes
Cualquiera (REST + JSON)
Checkout
Alojado o propio
Confirmación
Webhooks firmados
Modo de prueba
Sí, con claves de prueba

Elige cómo paga el comprador

OpciónIdeal paraEsfuerzo
Página de pago alojada — redirige a checkout_urlCualquier web, el lanzamiento más rápido. Muestra importe, red, dirección, QR y estado en vivoUna llamada a la API
Tu propio checkout — muestra crypto.address y crypto.amount_coinUX propia, el comprador no sale de tu dominioLlamada a la API + tu interfaz
CMS — WooCommerce, ShopifyTiendas en plataformasVer las secciones de abajo

Paso 1: crea un pedido en tu servidor

Nunca crees pedidos desde el navegador con una clave secreta. Llama a la API desde tu backend con el total del carrito y la moneda que eligió el comprador:

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" }'

Con cuenta, la wallet de cobro se toma de los ajustes del proyecto. Sin cuenta, usa POST /v1/crypto/pay y pasa payout_address. La lista de monedas y redes con sus mínimos está en GET /v1/crypto/coins.

Paso 2: envía al comprador a pagar

  • Redirige a checkout_url: la página muestra el importe exacto, la red, el código QR y el estado en vivo, y luego devuelve al comprador a tu success_url.
  • O muestra tú mismo crypto.address y crypto.amount_coin y consulta GET /v1/payments/:id mientras el comprador está en la página.

Paso 3: confirma el pago por webhook

No te fíes solo de la redirección. Marca el pedido como pagado cuando tu endpoint reciba un evento firmado payment.succeeded; gestiona payment.underpaid si llegó menos de lo pedido. Verifica la cabecera x-utopay-signature con tu secreto whsec_…: hay ejemplos en Node.js, PHP y Python en la documentación de webhooks.

<?php // PHP: verificar un webhook de 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 pagado */ }
http_response_code(200);

WordPress y WooCommerce

Hay un plugin de UTOPAY listo para WooCommerce: consulta los plugins. Sin el plugin, una tienda WooCommerce se integra con la API: crea el pedido en el hook woocommerce_checkout_order_processed, redirige a checkout_url y completa el pedido desde el manejador del webhook.

Shopify

Shopify solo muestra como pasarela de pago las apps de pago aprobadas. La configuración práctica es un método de pago manual (por ejemplo «Pagar con cripto») más una página de pago de UTOPAY: al realizarse el pedido, tu app o automatización crea un pedido de UTOPAY por el total y envía al comprador el checkout_url por email. El webhook marca después el pedido de Shopify como pagado.

Lista de comprobación antes del lanzamiento

  • Prueba todo el flujo con claves de prueba (utopay_sk_test_…): los pedidos de prueba nunca tocan la blockchain.
  • Comprueba que la wallet de cobro admite todas las redes que ofreces.
  • Muestra el nombre de la red junto al importe: las transferencias a la red equivocada son la consulta de soporte más habitual.
  • Guarda el id del pedido de UTOPAY junto a tu pedido y deduplica los webhooks por él.
  • Decide antes del lanzamiento qué harás con los pedidos underpaid.

Actualizado · Equipo de UTOPAY

FAQ

Aceptar cripto en una web — preguntas frecuentes

¿Puedo aceptar cripto sin un desarrollador?

Necesitas una llamada a la API desde el servidor y un manejador de webhooks: unas decenas de líneas en cualquier lenguaje. Sin nada de código, puedes crear un pedido con un comando curl y enviar al comprador el checkout_url.

¿Con qué monedas pueden pagar mis clientes?

Hoy: USDT, ETH, BNB, POL, DAI y otros tokens en redes EVM (Ethereum, BNB Smart Chain, Polygon, Base, Optimism, Arbitrum, Avalanche, Linea). Bitcoin, Tron, Solana y TON se están conectando. La lista actual está en GET /v1/crypto/coins.

¿A dónde va el dinero?

Directo a tu wallet. Cada pago se reenvía on-chain en cuanto llega; UTOPAY se queda el 1,5% y nunca guarda los fondos.

¿También puedo aceptar tarjetas?

Sí. La pasarela de tarjetas funciona desde la misma cuenta: los compradores pagan con tarjeta, Apple Pay y otros métodos y tú recibes cripto.

¿Hay un plugin para WooCommerce?

Sí, está disponible en plugins. Sin el plugin, usa el flujo con la API descrito arriba.

Sigue leyendo

Añade el pago con cripto a tu web

Crea una cuenta gratuita para obtener claves API, webhooks y avisos por Telegram, o llama al endpoint sin cuenta solo con la dirección de tu wallet.