← Volver al blog

Cómo Aceptar Pagos Cripto en Tu Sitio Web

· 4 min read
guía integración

Así que quieres aceptar cripto en tu sitio web. Buenas noticias: es más sencillo de lo que piensas. Malas noticias: la mayoría de guías lo complican innecesariamente. Aquí va la versión sin rodeos.

Lo Que Realmente Necesitas

Olvídate de ejecutar tu propio nodo o gestionar billeteras manualmente. Una pasarela de pagos cripto se encarga de lo difícil: generar direcciones de pago, monitorear las blockchains para confirmaciones y convertir tokens.

Necesitas tres cosas:

  1. Una dirección de billetera para recibir fondos
  2. Una pasarela de pagos con una API
  3. Unos 20 minutos

Paso 1: Elige Tu Moneda de Liquidación

Esta es la primera decisión que importa. ¿Quieres recibir ETH? ¿USDC? ¿Una mezcla?

La mayoría de los comerciantes optan por stablecoins (USDC, USDT, DAI) porque su valor no oscila un 10% de la noche a la mañana. Con MutoPay, tus clientes pueden pagar con cualquier token, pero tú siempre recibes tu stablecoin elegida. Problema resuelto antes de empezar.

Paso 2: Crea un Canal y Obtén Tu Clave API

En tu panel de MutoPay, ve a Configuración → Canales y haz clic en + Nuevo canal. Dale un nombre (por ejemplo, “Mi Sitio Web”) y opcionalmente configura una URL de webhook. Tu clave API (prefijo ep_...) se muestra una sola vez — cópiala.

Esta clave identifica tu canal y autentica tus llamadas API. Cada canal tiene su propia clave, URL de webhook, y puede tener su propio destino de liquidación.

Paso 3: Crea un Pago

Una llamada API. Eso es todo.

curl -X POST https://mutopay.com/api/payments \
  -H "X-API-Key: ep_your_channel_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "amount_usd": 50.00,
    "description": "Pedido #1234 — Widget Azul",
    "external_id": "order_1234",
    "callback_url": "https://yoursite.com/order/1234/complete"
  }'

Recibes un objeto de pago con un id. Redirige a tu cliente a mutopay.com/pay/{id}.

Campos disponibles:

CampoDescripción
amount_usdMonto en USD
amountMonto en otra moneda (usar con currency)
currencyCódigo de moneda si no es USD (ej. EUR, GBP)
descriptionSe muestra al cliente en la página de pago
external_idTu referencia interna (ej. ID de pedido)
callback_urlDónde redirigir al cliente tras el pago
metadataJSON arbitrario para tu propio uso
expires_in_minutes15 a 10080 (7 días); por defecto 60

Usa amount_usd o amount + currency, no ambos.

Paso 4: Gestiona el Webhook

Cuando el pago se completa (o falla, o expira), MutoPay envía un POST a la URL de webhook de tu canal. El payload te dice todo:

{
  "event": "payment.completed",
  "payment_id": "pay_abc123",
  "status": "completed",
  "amount_usd": 50.00,
  "currency": "USD",
  "dest_token": "USDC",
  "dest_chain_id": "137",
  "dest_amount": "50000000",
  "dest_decimals": 6,
  "external_id": "order_1234",
  "tx_hash": "0xabc...",
  "completed_at": "2026-04-12T14:30:00Z",
  "timestamp": "2026-04-12T14:30:01Z"
}

Verifica la firma. Cada webhook incluye una cabecera X-MutoPay-Signature con un hash HMAC-SHA256 del cuerpo JSON crudo, firmado con el secreto de webhook de tu canal (visible en tu panel). Formato: sha256=<hex>.

Interpreta el monto de liquidación. dest_amount está en unidades crudas del token. Divide entre 10^dest_decimals para obtener la cifra legible. En el ejemplo anterior: 50000000 / 10^6 = 50.00 USDC.

Eventos de webhook: payment.completed, payment.failed, payment.expired, payment.underpaid, payment.kyc_required, payment.needs_manual_check.

Las entregas fallidas se reintentan 5 veces con backoff exponencial (1 min → 5 min → 30 min → 2 horas → 12 horas).

Paso 5: Muestra al Cliente una Página de Pago

Tienes dos opciones:

Redirección — envía al cliente a la página de pago alojada en mutopay.com/pay/{id}. Ellos seleccionan su token, conectan su billetera y pagan. Cero trabajo de frontend de tu parte. Los clientes móviles ven un código QR para depósito fácil.

Polling — usa el ID del pago para construir tu propia interfaz. Llama a GET /api/payments/{id}/status para actualizaciones ligeras de estado.

La mayoría de los comerciantes empiezan con la redirección y personalizan después.

Preguntas Frecuentes

¿Qué pasa si el cliente paga con un token en una cadena diferente? La pasarela maneja el bridging cross-chain automáticamente. El cliente paga con ARB en Arbitrum, tú recibes USDC en Polygon.

¿Qué hay de los reembolsos? Los pagos cripto son irreversibles a nivel de protocolo. Los reembolsos se gestionan enviando una transacción separada a la billetera del cliente.

¿Cuánto tardan los pagos? Las transferencias directas de stablecoins se confirman en segundos. Los swaps cross-chain suelen liquidarse en menos de 2 minutos.

¿Cuál es la comisión? MutoPay cobra un 0,25% por transacción. Sin cuotas mensuales, sin mínimos.

¿Qué cadenas se soportan? Ethereum, Polygon, Arbitrum, Base, Optimism, Avalanche, BSC, TON, Solana y Tron. Los clientes pueden pagar con más de 1.000 tokens en las 10 cadenas.

Siguientes Pasos

Una vez que estés procesando pagos, querrás:

Toda la integración lleva unos 20 minutos para un desarrollador con experiencia en APIs. No se requieren conocimientos de blockchain.