# Pagos con criptomonedas en PrestaShop

> Recibe Bitcoin, USDT, Ethereum, Litecoin y TRON en PrestaShop 1.7.8 u 8. Instala el módulo y pega la clave; el pedido pasa a pagado al confirmarse.

Source: https://cryptolike.net/es/integrations/prestashop
Updated: 2026-10-11

El módulo de CryptoLike agrega «Pagar con cripto» a tu tienda online en PrestaShop y pasa el pedido a «Pago aceptado» solo cuando el pago se confirma en la blockchain. Después, PrestaShop registra el pago y, si las usas, la factura. Tus clientes pagan en Bitcoin, USDT, Ethereum, Litecoin, TRON o USDC desde su propia billetera.

## Requisitos

El módulo es compatible con PrestaShop 8.x y declara 1.7.8 como versión mínima. Se probó de principio a fin en PrestaShop 8.1 con PHP 8.1; en 1.7.8 necesita PHP 7.4 o posterior. La tienda debe estar accesible desde internet por `https://` para que lleguen los webhooks. El endpoint de webhook no necesita sesión ni cookie y también responde en modo de mantenimiento.

| Aspecto | Compatibilidad |
|---|---|
| PrestaShop | 8.x; 1.7.8 como mínimo declarado |
| PHP | 7.4 y posteriores (probado en 8.1) |
| Monedas, países, transportistas | Todos activados al instalar; desmarca los que no quieras en **Pago → Preferencias** |
| Moneda de la tienda | USD, EUR, UAH, GBP o CAD (las cinco están habilitadas por defecto en todas las cuentas) |

## Qué hace el módulo

Al instalarse, el módulo crea tres estados de pedido propios: **Esperando pago con cripto** (la página de pago está abierta o la transferencia se está confirmando), **Pago con cripto insuficiente** (un pago insuficiente que el cliente todavía puede completar) y **Revisión del pago con cripto** (dinero que requiere la decisión de una persona). Los pedidos pagados pasan al estado **Pago aceptado** de PrestaShop; los vencidos y cancelados, a **Cancelado**. Puedes cambiar cada uno en la configuración.

- **Redirección o página integrada.** El cliente va a la página de pago de CryptoLike o la ve dentro de la página de estado del pedido de la tienda.
- **Una página de estado para el cliente**, enlazada desde los detalles de su pedido: «Pago detectado. Esperando confirmación.», «Pago confirmado.», cuánto falta después de un pago insuficiente y el botón **Crear un pago nuevo** cuando el pago venció.
- **Un mensaje privado en el pedido** en cada paso: pago creado, ID de la transacción, monto pagado, pago excedente y qué hacer en revisión.
- **Un solo pago abierto por pedido.** Si el cliente recarga la página o vuelve a hacer clic, recibe la misma página; si se edita el total del pedido, la página anterior se cancela y se crea una nueva.
- **Elección de moneda** en la página de pago de CryptoLike o en el paso de pago de la tienda. **Monedas ofrecidas** limita ambas opciones; en la página de pago, sin selección significa todas las monedas disponibles para facturas en tu cuenta.
- **Una URL de conciliación** para el cron del servidor, por si un webhook no logró llegar a la tienda.

## 1. Instala el módulo

En el back office abre **Módulos → Gestor de módulos → Subir un módulo**, elige el archivo del módulo que está en esta página y haz clic en **Configurar**. También puedes descomprimir el zip en `modules/` e instalar *CryptoLike: pagos con cripto* desde la lista. El módulo crea sus tablas y sus tres estados de pedido.

## 2. Conecta tu cuenta de CryptoLike

En el panel de CryptoLike abre **Desarrolladores → Claves API → Crear clave** con los permisos `create_invoice` y `read`, y pega el ID de la clave y el secreto en la configuración del módulo; el secreto se muestra una sola vez. Copia la **URL del webhook** desde la página de configuración (`https://shop/module/cryptolike/webhook`), agrégala en el panel en **Desarrolladores → Webhooks → Agregar endpoint** con los ocho eventos `invoice.*` y pega el secreto del endpoint en **Secreto del webhook**.

## 3. Comprueba la conexión y empieza a cobrar

Haz clic en **Comprobar la conexión**: verás «Conectado: N monedas disponibles». En **Pago → Preferencias**, desmarca las monedas, los países o los transportistas donde no quieras ofrecer cripto. Agrega la **URL de conciliación** de la configuración al cron del servidor cada 15 minutos. Haz primero una prueba con una clave `ck_test_` y la URL de la API de prueba en **URL de la API** (el valor predeterminado es producción; pide la URL de prueba a soporte de CryptoLike). Las claves de prueba funcionan con redes de prueba, el checkout muestra «Modo de prueba: monedas de red de prueba, sin fondos reales» y en modo de prueba se rechaza una clave real.

## Qué pasa con un pedido

| Pago | Estado del pedido (predeterminado) | Lo que ve el cliente en la página de estado |
|---|---|---|
| Creado | Esperando pago con cripto | El botón de la página de pago o la página integrada |
| Transferencia detectada | Esperando pago con cripto | «Pago detectado. Esperando confirmación.» |
| Confirmado | Pago aceptado | «Pago confirmado.» |
| Pago insuficiente, antes del plazo | Pago con cripto insuficiente | Cuánto falta, a la misma dirección y hasta cuándo |
| Pago insuficiente después del plazo, pago tardío, fondos para un pedido cancelado, reverso después de pagado, monto del pedido modificado | Revisión del pago con cripto | Un mensaje según el caso, por ejemplo «Pago recibido. La tienda lo está revisando y te contactará.» |
| Vencido | Cancelado, o sigue en espera (según la configuración) | «El pago venció. Crea un pago nuevo.» |

El tiempo para pagar es el de la configuración de tu cuenta (30 minutos por defecto), salvo que definas otro valor en el módulo. La página del pedido en el back office también muestra el pago actual: ID, estado, plazo y el enlace a la página de pago.


Las mismas reglas entre pago y pedido se aplican en todas las plataformas; las demás plataformas de tiendas se comparan en [pagos con cripto para tiendas online](https://cryptolike.net/es/use-cases/online-stores).
## Solución de problemas

| Lo que ves | Qué hacer |
|---|---|
| El método no aparece en el checkout | Guarda el ID de la clave, el secreto y el secreto del webhook; usa una clave cuyo prefijo coincida con el modo; marca la moneda del carrito en **Pago → Preferencias**. |
| Los pedidos siguen en «Esperando pago con cripto» después del pago | Abre las entregas del endpoint en el panel: `401` indica que el secreto del webhook no coincide; `404` o `503` apuntan a la URL, a un proxy o a un WAF. Detrás de un CDN, permite `POST` a la URL del webhook sin desafío. |
| «Falló la conexión: auth.…» | `auth.invalid_key` o `auth.invalid_signature`: el ID de la clave o el secreto son incorrectos. `auth.ip_not_allowed`: la lista de IP permitidas de la clave no incluye tu servidor. `auth.test_key`: una clave `ck_test_` con la URL de la API predeterminada; el modo de prueba también necesita la URL de la API de prueba. |
| El webhook respondió `503 not_configured` | El secreto del webhook está vacío: pégalo y guarda. |

Los registros están en **Parámetros avanzados → Registros**, tipo de objeto `Cryptolike`, sin secretos, firmas, cuerpos de webhooks ni datos de clientes. Al desinstalar el módulo se eliminan la configuración, ambos secretos y las tablas del módulo; los tres estados de pedido quedan ocultos porque los pedidos existentes los usan.

## Para desarrolladores

El módulo implementa el contrato común de los plugins de CryptoLike: creación del pago en el servidor con un solo pago abierto por pedido (`idempotency_by_order_id`), [firmas de webhook](https://cryptolike.net/docs/webhooks) verificadas sobre el cuerpo sin procesar, deduplicación por `event_id`, bloqueo de fila en el pedido y respuesta `200` solo después de guardar el estado. El archivo incluye un README para desarrolladores con la estructura del módulo.

## Preguntas frecuentes

### ¿Qué pasa si el cliente paga menos que el total del pedido?

El pedido pasa a Pago con cripto insuficiente, y la página de estado le muestra al cliente cuánto falta, a qué dirección enviarlo y hasta cuándo. Si el resto llega antes del plazo, el pedido pasa a Pago aceptado. Después del plazo pasa a Revisión del pago con cripto, y un mensaje privado en el pedido indica qué debes decidir.

### ¿Y si el cliente paga después de que el pago venció?

CryptoLike acredita los fondos a tu saldo, y el pedido pasa a Revisión del pago con cripto en lugar de Pago aceptado. El mensaje privado en el pedido muestra el monto. Tú decides si completas el pedido o le devuelves el dinero al cliente; el módulo nunca marca ese pedido como pagado por su cuenta.

### ¿Cómo funcionan los reembolsos?

La tienda no puede revertir una transferencia en la blockchain, así que los reembolsos son manuales. Pídele al cliente una dirección y envía el monto como retiro desde el panel de CryptoLike. La estimación muestra la comisión de la plataforma y la comisión de red antes de que confirmes; las comisiones vigentes están en la [página de precios](https://cryptolike.net/es/pricing).

### ¿Qué monedas puedo usar en la tienda?

El módulo crea cada pago en la moneda del carrito (USD, EUR, UAH, GBP o CAD), y CryptoLike la convierte a cripto con un tipo de cambio fijado hasta que el pago vence. Si tu cuenta no acepta una moneda, el pago falla con «El pago con cripto no está disponible», así que desmárcala en Pago → Preferencias.

### ¿Puedo probar el módulo sin dinero real?

Sí. Activa el modo de prueba, guarda una clave `ck_test_` e ingresa la URL de la API de prueba que te da el soporte de CryptoLike. Las claves de prueba funcionan con redes de prueba, y las monedas de prueba no tienen valor. La página de configuración muestra un aviso de «Modo de prueba», y el checkout dice «Modo de prueba: monedas de red de prueba, sin fondos reales». En modo de prueba, el formulario rechaza una clave real.

### ¿Qué ve el cliente si no se puede crear la página de pago?

El pedido sigue en Esperando pago con cripto y el cliente llega a la página de estado con el motivo y un botón **Crear un pago nuevo**. Esto pasa cuando la API no responde o la moneda no está habilitada. Esa misma página, enlazada desde los detalles del pedido del cliente, muestra después el estado actualizado.
