Alternativas
Alternativa a Coinbase Commerce: Crypto Merchant vs. Coinbase Commerce (2026)
Coinbase Commerce cerró después del 31 de marzo de 2026: Coinbase lo integró en Coinbase Business, que solo acepta empresas registradas en EE. UU. y Singapur, y les dijo a los demás comercios que hicieran la “transición a un proveedor alternativo”. Crypto Merchant les sirve a los comercios de fuera de esos dos países que quieren seguir aceptando USDC y otras monedas mediante una API o enlaces de pago. No es la opción adecuada si quieres guardar tus propias claves como con Commerce, o si necesitas plugins o liquidación bancaria.
Última revisión: 29 de octubre de 2026
Crypto Merchant escribió esta comparación, y no tenemos relación con ninguna de las pasarelas mencionadas. Cada dato sobre la competencia proviene de las propias páginas del proveedor, enlazadas debajo de la tabla. Los precios y las condiciones cambian, así que revísalos antes de decidir.
¿Cómo se compara Crypto Merchant con Coinbase Commerce?
Coinbase Business, el sucesor de Commerce, es custodio como Crypto Merchant, pero solo atiende a EE. UU. y Singapur y solo acepta USDC y USDT. Crypto Merchant acepta registros de cualquier país y 11 monedas, pero no tiene plugins ni retiros bancarios.
| Característica | Crypto Merchant | Coinbase Business |
|---|---|---|
| Comisión por pago | El 1 % de cada factura pagada, en la moneda del pago, descontado cuando se acredita. Las facturas vencidas o canceladas no cuestan nada. | 1% para comercios que migraron desde Commerce. No hay tarifa pública para comercios nuevos: Coinbase dice que inicies sesión para ver las comisiones actuales.[1][2] |
| Cuotas mensuales y de configuración | Ninguna, y sin costo de configuración. No hay ningún pago para activar la cuenta: una cuenta está activa en cuanto termina la configuración. | “Sin cargo por solicitud”. Cuota mensual no confirmada.[2] |
| Conversión | Opcional: convierte todo a una sola moneda de reserva. El tipo de cambio es el precio de mercado en vivo e incluye un margen de servicio del 1 %. | Los pagos se liquidan en USDC. La conversión automática de USDC a USD “está sujeta a una comisión”; el monto no es público.[2][3] |
| Retiros | Cuando quieras, con una comisión de gas por retiro. Sin mínimo fijo en retiros manuales; los automáticos esperan a 5 $ por moneda. Cada moneda a su propia dirección, o convertido primero a una sola moneda de reserva. | Retiros a tu banco “en cualquier momento”, “sin bloqueos ni mínimos”, y un producto de Payouts. La antigua herramienta de retiro de Commerce quedó desactivada de forma permanente después del 31 de marzo de 2026.[1][2][3] |
| KYC o KYB para registrarse | Correo electrónico, nombre y nombre del negocio. No pedimos documentos de identidad cuando creas una cuenta. | Una entidad empresarial registrada y una cuenta bancaria empresarial.[1][2] |
| Custodia | Custodio. Nosotros guardamos las claves; cada billetera proviene de una frase de recuperación guardada sin conexión, en papel. Los pagos se juntan en una billetera pool exclusiva de tu negocio. | Solo custodio. Commerce (versión anterior) era de autocustodia.[1] |
| Monedas y redes | 11 monedas en 11 redes. USDT en Ethereum, BNB Smart Chain, Polygon, Arbitrum One, Tron y Solana. USDC en Ethereum, BNB Smart Chain, Polygon, Base, Arbitrum One y Solana. Además, BTC, ETH, LTC, SOL, XRP, BNB, TRX, POL y GRAM (TON). | USDC en Ethereum, Base, Polygon, Optimism, Avalanche y Arbitrum. USDT solo en Ethereum, en EE. UU. y en determinadas jurisdicciones. No indica que acepte BTC, ETH, SOL ni TRX.[3] |
| Límites por país | Cualquier persona, en cualquier país, puede registrarse. Los Términos prohíben los bienes ilegales, el fraude y la evasión de sanciones. | Solo empresas de EE. UU. y Singapur.[2] |
| Plugins de comercio electrónico | Ninguno: no hay plugin para WooCommerce, Shopify ni WHMCS. Usa enlaces de pago, la página de pago alojada o la API. | WooCommerce, Magento (Adobe Commerce) y WHMCS, además de contabilidad con QuickBooks y Xero.[1][3] |
| Liquidación en fiat (bancaria) | No. Solo cripto: los retiros van a direcciones de cripto. | Sí: retiros a tu cuenta bancaria empresarial.[1][3] |
| API y webhooks | API REST con claves Bearer para facturas, enlaces de pago, saldos y monedas. Webhooks firmados con HMAC-SHA256 y reintentados durante unos dos días. | Checkouts API y pagos de agentes x402.[3] |
| Enlaces de pago | Sí: enlaces de precio fijo o de monto libre, una página de pago alojada y facturas. | Sí: enlaces de pago y facturación.[3] |
Fuentes
Cada dato sobre Coinbase Commerce de la tabla proviene de estas páginas, revisadas el 29 de octubre de 2026. “No confirmado” significa que ninguna de ellas lo indicaba.
- [1]Ayuda de Coinbase: transición de Commerce a Business: https://help.coinbase.com/en/transitioning-from-coinbase-commerce-to-coinbase-business
- [2]Coinbase Business: https://www.coinbase.com/business
- [3]Coinbase Business: checkouts: https://www.coinbase.com/business/features-checkouts
¿Cuándo es Coinbase Commerce la mejor opción?
Coinbase Business es la mejor opción si tu negocio está registrado en EE. UU. o Singapur y quieres el dinero en una cuenta bancaria.
- Tu negocio está registrado en EE. UU. o Singapur y tiene una cuenta bancaria empresarial. Puedes pasarte a Coinbase Business, y Coinbase dice que los comercios que migran desde Commerce mantienen una tarifa del 1%.
- Quieres dólares en el banco: Coinbase Business hace retiros a tu cuenta bancaria. Crypto Merchant solo hace retiros en cripto.
- Usas WooCommerce, Magento o WHMCS, o llevas tu contabilidad en QuickBooks o Xero. Coinbase Business funciona con ellos; Crypto Merchant no tiene plugins.
- Quieres un proveedor con trayectoria y reseñas. Crypto Merchant se lanzó el 28 de octubre de 2026 y todavía no tiene ninguna de las dos.
¿Cuándo conviene más Crypto Merchant?
Crypto Merchant conviene más si estás fuera de EE. UU. y Singapur, o si tus clientes pagan con algo más que USDC.
- Tu negocio está fuera de EE. UU. y Singapur. Cualquier persona, en cualquier país, puede registrarse, y no pedimos documentos de identidad cuando creas una cuenta.
- Tus clientes pagan USDT en Tron o en otra red, o pagan en BTC, ETH, SOL, LTC, XRP, BNB, TRX, POL o GRAM. Coinbase Business acepta USDC, y USDT solo en Ethereum.
- Quieres un precio publicado: el 1 % por factura pagada y sin cuota mensual.
- Estás migrando una integración de desarrollo. Las facturas, una API REST y los webhooks firmados cubren lo que hacía una integración con Commerce, y la guía de abajo traduce cada paso.
¿Cómo me cambio de Coinbase Commerce a Crypto Merchant?
Regístrate, termina la configuración y luego apunta tu página de pago y tus webhooks a Crypto Merchant. No hay plugin que instalar: usas enlaces de pago, la página de pago alojada o la API.
- 1
Crea una cuenta
Regístrate con tu correo electrónico, tu nombre y el nombre de tu negocio. No pedimos documentos de identidad cuando creas una cuenta.
- 2
Elige tus monedas
Activa las monedas y redes que quieras. No hay ningún pago para activar la cuenta: tu cuenta está activa en cuanto termina la configuración.
- 3
Empieza a recibir pagos
Comparte tu página de pago, crea enlaces de pago o facturas en el portal, o crea facturas desde tu sitio con la API.
- 4
Apunta tus webhooks
Agrega la dirección HTTPS de tu servidor en Desarrolladores, verifica el encabezado
CM-Signatureen cada evento y procesa los pedidos coninvoice.paid. Webhooks tiene los detalles. - 5
Migra tu integración
Si tu sitio creaba cobros de Commerce mediante la API, sigue la guía de migración de abajo. Si no, reemplaza los antiguos enlaces o botones de pago de tu sitio por enlaces de pago de Crypto Merchant o por tu página de pago.
¿Cómo migro de Coinbase Commerce a Crypto Merchant?
Tu integración con Commerce creaba cobros y recibía webhooks. Con Crypto Merchant creas una factura por cada pedido, envías al cliente a su página de pago y procesas webhooks firmados. Los pasos de abajo traducen cada tarea a nuestra API; la referencia de la API tiene todos los campos.
Qué reemplaza a qué
| Tarea en tu integración anterior | Con Crypto Merchant |
|---|---|
| Crear un pago para un pedido | POST /invoicesCrea una factura con el monto, la moneda y el ID de tu pedido. |
| Enviar al cliente a pagar | checkout_urlRedirige a la URL de pago de la factura. |
| Guardar tus propios datos con el pago | metadataCualquier objeto JSON de hasta 4 KB, que se devuelve en la factura y en los webhooks. |
| Enterarte cuando se completa un pago | invoice.paidUn endpoint de webhook que verifica la firma y luego procesa el pedido con este evento. |
| Consultar un pago | GET /invoices/{id}Obtén la factura. |
| Asociar pagos con pedidos | GET /invoices?status=paidLista las facturas pagadas, una página a la vez. |
| Retirar una solicitud de pago sin pagar | POST /invoices/{id}/cancelCancela la factura, antes de que se detecte algún pago. |
1. Crea una factura en lugar de un cobro
Crea una clave de API en el portal, en Desarrolladores (las claves de producción empiezan con cm_live_), y guárdala en tu servidor. Primero tu cuenta tiene que estar activa: hasta que se termine la configuración, la API responde 403 con el código merchant_not_live. Después, donde tu código creaba un cobro, crea una factura. El monto debe valer al menos 0.50 dólares estadounidenses.
curl https://cryptomerchant.online/api/v1/invoices \
-H "Authorization: Bearer $CM_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"amount": "49.90",
"currency": "USD",
"order_id": "1042",
"redirect_url": "https://yourstore.example/orders/1042",
"metadata": { "cart_id": "c_8812" }
}'{
"id": "inv_…",
"object": "invoice",
"status": "open",
"amount": "49.9",
"currency": "USD",
"amount_usd": "49.9",
"order_id": "1042",
"metadata": { "cart_id": "c_8812" },
"coin": null,
"pay_address": null,
"pay_amount": null,
"checkout_url": "https://cryptomerchant.online/pay/i/inv_…",
"redirect_url": "https://yourstore.example/orders/1042",
"expires_at": "2026-10-30T10:30:00.000Z",
…
}La respuesta, con estado 201, es el objeto factura. Guarda su id con tu pedido. Su estado empieza como open.
2. Envía a los clientes a la URL de pago
Redirige al cliente a la checkout_url de la factura. Ahí elige una moneda y una red, recibe una dirección de depósito que se usa solo para esta factura y ve el monto exacto con un tipo de cambio fijado. Define redirect_url para que vuelva a tu sitio después de pagar. Si no se detecta ningún pago antes de expires_at, la factura vence.
Commerce funcionaba en Ethereum, Polygon y Base, y Crypto Merchant acepta USDC en las tres. Para omitir la elección de moneda, envía coin, por ejemplo, USDC.BASE: entonces pay_address y pay_amount vienen completos, así que puedes mostrar tú mismo los datos del pago.
// orders: your own data layer
app.post("/orders/:id/pay", async (req, res) => {
const order = await orders.find(req.params.id);
const r = await fetch("https://cryptomerchant.online/api/v1/invoices", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.CM_SECRET_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
amount: order.total, // for example "49.90"
currency: "USD",
order_id: order.id,
redirect_url: `https://yourstore.example/orders/${order.id}`,
}),
});
if (!r.ok) {
const { error } = await r.json();
throw new Error(`${error.code}: ${error.message}`);
}
const invoice = await r.json();
await orders.update(order.id, { invoiceId: invoice.id });
res.redirect(303, invoice.checkout_url);
});3. Verifica la firma del webhook
Agrega la dirección HTTPS de tu endpoint en Desarrolladores. Cada endpoint recibe su propio secreto de firma, que empieza con whsec_. Cada evento es un POST con un encabezado CM-Signature: t= con una marca de tiempo Unix en segundos, y luego v1= con el HMAC-SHA256 en hexadecimal de la marca de tiempo, un punto y el cuerpo sin procesar, con el secreto de tu endpoint como clave.
Calcúlalo sobre el cuerpo sin procesar antes de analizar el JSON, compáralo en tiempo constante y rechaza las marcas de tiempo de más de cinco minutos. Responde con un estado 2xx en menos de 10 segundos; cualquier otra cosa se reintenta, hasta ocho veces a lo largo de unos dos días.
import crypto from "node:crypto";
import express from "express";
// CM-Signature: t=<unix seconds>,v1=<hex HMAC-SHA256 of "<t>.<raw body>">
function verify(rawBody, header, secret) {
const parts = Object.fromEntries(
String(header ?? "").split(",").map((p) => p.trim().split("=")),
);
if (!parts.t || !parts.v1) return false;
const expected = crypto
.createHmac("sha256", secret) // your endpoint secret, whsec_…
.update(`${parts.t}.${rawBody}`)
.digest("hex");
const a = Buffer.from(expected);
const b = Buffer.from(parts.v1);
if (a.length !== b.length || !crypto.timingSafeEqual(a, b)) return false;
return Math.abs(Date.now() / 1000 - Number(parts.t)) <= 300; // 5 minutes
}
const app = express();
// db, tx.webhookEvents, tx.orders: your own data layer
app.post(
"/webhooks/crypto-merchant",
express.raw({ type: "application/json" }), // keep the raw body for the signature
async (req, res) => {
const raw = req.body.toString("utf8");
if (!verify(raw, req.get("CM-Signature"), process.env.CM_WEBHOOK_SECRET)) {
return res.sendStatus(400);
}
const event = JSON.parse(raw);
const invoice = event.data;
try {
await db.transaction(async (tx) => {
// A unique key on the event id: a repeated delivery is skipped.
const isNew = await tx.webhookEvents.insertIfAbsent(event.id);
if (!isNew) return;
if (event.type === "invoice.paid") {
await tx.orders.markPaid(invoice.order_id, invoice.id); // one-way: never moves back
} else if (event.type === "invoice.expired" || event.type === "invoice.cancelled") {
await tx.orders.cancelIfUnpaid(invoice.order_id);
}
});
} catch {
return res.sendStatus(500); // not 2xx: Crypto Merchant tries again later
}
res.sendStatus(200); // within 10 seconds
},
);4. Asocia los estados de pago
Procesa los pedidos solo con invoice.paid, y asocia los demás estados a tu sistema de pedidos como se indica abajo. Una factura con pago incompleto todavía puede pasar a pagada si el cliente envía el resto a la misma dirección.
| Estado | Evento de webhook | Qué significa | Qué debe hacer tu sistema de pedidos |
|---|---|---|---|
open | invoice.created | Creada. El cliente todavía no eligió una moneda. | Esperando el pago. |
awaiting_payment | Ninguno | Se eligió una moneda, se asignó la dirección de depósito y se fijó el tipo de cambio. | Sigue esperando: el cliente ya eligió cómo pagar. |
confirming | invoice.confirming | Se detectó un pago en la blockchain y está esperando confirmaciones. | Muestra “pago recibido, confirmando”. Todavía no envíes el pedido. |
underpaid | invoice.underpaid | Al pago confirmado le falta más que tu tolerancia. El cliente puede pagar el resto o pedir un reembolso. | No envíes el pedido. El cliente puede pagar el resto o pedir un reembolso. |
paid | invoice.paid | Pagada y confirmada. El monto, menos la comisión, está en tu saldo. Un reembolso parcial mantiene este estado. | Márcalo como pagado y procesa el pedido. |
expired | invoice.expired | El tiempo se acabó antes de que se detectara algún pago. | Libera el stock o cancela el pedido. |
cancelled | invoice.cancelled | La factura se canceló antes de que se detectara algún pago. | Cancela el pedido. |
refunded | invoice.refunded | Al cliente se le reembolsó lo que envió en una factura con pago incompleto, o tú reembolsaste todo lo que te quedó de una factura pagada. | Cancela el pedido: el cliente ya recuperó sus monedas. |
5. Gestiona webhooks duplicados y fuera de orden
Los eventos pueden llegar más de una vez, y no siempre en orden. Guarda el id de cada evento (que también se envía en el encabezado CM-Event-Id) con una clave única, en la misma transacción de base de datos que la actualización del pedido, y omite los eventos que ya guardaste. Haz que los cambios de estado vayan en un solo sentido, para que un invoice.confirming tardío nunca haga retroceder un pedido pagado. Antes de enviar algo valioso, obtén la factura desde la API para volver a comprobar su estado.
6. Concilia
Lista las facturas pagadas de 100 en 100, siguiendo starting_after mientras has_more sea true, y asocia cada una a un pedido por order_id o metadata.
// Every paid invoice, newest first. Match each one to an order by order_id.
async function paidInvoices() {
const all = [];
let after = null;
do {
const url = new URL("https://cryptomerchant.online/api/v1/invoices");
url.searchParams.set("status", "paid");
url.searchParams.set("limit", "100");
if (after) url.searchParams.set("starting_after", after);
const r = await fetch(url, {
headers: { Authorization: `Bearer ${process.env.CM_SECRET_KEY}` },
});
const page = await r.json();
all.push(...page.data);
after = page.has_more ? page.data[page.data.length - 1].id : null;
} while (after);
return all;
}Tu saldo se acredita con el monto de la factura (o con el monto un poco menor que se recibió, si se aceptó un pago incompleto dentro de tu tolerancia), menos la comisión del 1 %, en la moneda del pago. Los pagos de más no se te acreditan: Crypto Merchant guarda el excedente para el cliente, que puede retirarlo desde la página de la factura. La página Reportes del portal da el bruto, las comisiones y el neto de cualquier período en CSV, y GET /balances muestra lo que tienes ahora.
Preguntas frecuentes
¿Qué pasó con Coinbase Commerce?
¿Cuál es la mejor alternativa a Coinbase Commerce fuera de EE. UU.?
¿Cuánto cobra Coinbase Business?
¿Crypto Merchant es custodio como Coinbase Business?
¿Puedo seguir aceptando USDC en Base?
Otras pasarelas comparadas
- Crypto Merchant vs. NOWPayments
- Crypto Merchant vs. CoinGate
- Crypto Merchant vs. BitPay
- Crypto Merchant vs. Cryptomus
- Crypto Merchant vs. Plisio
- Crypto Merchant vs. CoinPayments
- Crypto Merchant vs. OxaPay
- Crypto Merchant vs. Binance Pay
- Crypto Merchant vs. BTCPay Server
- Crypto Merchant vs. Heleket
- Crypto Merchant vs. Coinremitter
Todas las pasarelas en una tabla
Empieza a aceptar cripto hoy
Configuración gratis, sin documentos para registrarte, 1 % por factura pagada y retiros cuando quieras.