Alternativas
Alternativa a Coinbase Commerce: Crypto Merchant vs Coinbase Commerce (2026)
O Coinbase Commerce foi encerrado depois de 31 de março de 2026: a Coinbase o incorporou ao Coinbase Business, que aceita apenas empresas registradas nos EUA e em Singapura, e disse aos outros lojistas que fizessem a “transição para um provedor alternativo”. O Crypto Merchant atende lojistas fora desses dois países que querem continuar aceitando USDC e outras moedas por meio de uma API ou de links de pagamento. Ele não é a escolha certa se você quer guardar as próprias chaves, como fazia com o Commerce, ou se precisa de plugins ou de liquidação bancária.
Última verificação: 29 de outubro de 2026
Esta comparação foi escrita pelo Crypto Merchant, e não temos vínculo com nenhum dos gateways citados aqui. Cada dado sobre a concorrência vem das próprias páginas do fornecedor, com links abaixo da tabela. Preços e condições mudam, então confira antes de decidir.
Como o Crypto Merchant se compara com Coinbase Commerce?
O Coinbase Business, sucessor do Commerce, é custodial como o Crypto Merchant, mas atende apenas os EUA e Singapura e aceita apenas USDC e USDT. O Crypto Merchant aceita cadastros de qualquer país e 11 moedas, mas não tem plugins nem saques para banco.
| Recurso | Crypto Merchant | Coinbase Business |
|---|---|---|
| Taxa por pagamento | 1% de cada fatura paga, na moeda do pagamento, descontados quando ele é creditado. Faturas expiradas ou canceladas não custam nada. | 1% para lojistas que migraram do Commerce. Não há tarifa pública para novos lojistas: a Coinbase diz para fazer login e ver as taxas atuais.[1][2] |
| Mensalidade e taxa de configuração | Nenhuma, e sem taxa de configuração. Não há pagamento para ativar a conta: ela fica ativa assim que a configuração é concluída. | “Sem taxa de adesão”. Mensalidade não confirmada.[2] |
| Conversão | Opcional: converta tudo para uma única moeda de reserva. A cotação é o preço de mercado atual e inclui uma margem de serviço de 1%. | Os pagamentos são liquidados em USDC. A conversão automática de USDC para USD “está sujeita a uma taxa”; o valor não é público.[2][3] |
| Saques | A qualquer hora, com uma taxa de gas por saque. Sem mínimo fixo em saques manuais; os automáticos esperam US$ 5 por moeda. Cada moeda para o próprio endereço, ou convertida antes para uma moeda de reserva. | Saque para o seu banco “a qualquer momento”, “sem bloqueios, sem mínimos”, e um produto de Payouts. A antiga ferramenta de saque do Commerce foi desativada permanentemente depois de 31 de março de 2026.[1][2][3] |
| KYC ou KYB no cadastro | E-mail, nome e nome da empresa. Não pedimos documentos de identidade quando você cria uma conta. | Uma pessoa jurídica registrada e uma conta bancária empresarial.[1][2] |
| Custódia | Custodial. Nós guardamos as chaves; todas as carteiras vêm de uma única frase de recuperação guardada offline, em papel. Os pagamentos se acumulam em uma carteira pool exclusiva da sua empresa. | Somente custodial. O Commerce (legado) era de autocustódia.[1] |
| Moedas e redes | 11 moedas em 11 redes. USDT na Ethereum, BNB Smart Chain, Polygon, Arbitrum One, Tron e Solana. USDC na Ethereum, BNB Smart Chain, Polygon, Base, Arbitrum One e Solana. Além de BTC, ETH, LTC, SOL, XRP, BNB, TRX, POL e GRAM (TON). | USDC na Ethereum, Base, Polygon, Optimism, Avalanche e Arbitrum. USDT apenas na Ethereum, nos EUA e em jurisdições selecionadas. Não informa aceitar BTC, ETH, SOL nem TRX.[3] |
| Restrições por país | Qualquer pessoa, em qualquer país, pode se cadastrar. Os Termos proíbem produtos ilegais, fraude e evasão de sanções. | Apenas empresas nos EUA e em Singapura.[2] |
| Plugins de e-commerce | Nenhum: não há plugin para WooCommerce, Shopify nem WHMCS. Use links de pagamento, o checkout hospedado ou a API. | WooCommerce, Magento (Adobe Commerce) e WHMCS, além de contabilidade com QuickBooks e Xero.[1][3] |
| Liquidação em moeda fiduciária (banco) | Não. Apenas cripto: os saques vão para endereços de cripto. | Sim: saques para a conta bancária da sua empresa.[1][3] |
| API e webhooks | API REST com chaves Bearer para faturas, links de pagamento, saldos e moedas. Webhooks assinados com HMAC-SHA256 e reenviados por cerca de dois dias. | Checkouts API e pagamentos de agentes x402.[3] |
| Links de pagamento | Sim: links com preço fixo ou valor livre, uma página de checkout hospedada e faturas. | Sim: links de pagamento e faturamento.[3] |
Fontes
Cada dado sobre Coinbase Commerce na tabela vem destas páginas, verificadas em 29 de outubro de 2026. “Não confirmado” significa que nenhuma delas informava isso.
- [1]Ajuda da Coinbase: transição do Commerce para o 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
Quando Coinbase Commerce é a melhor escolha?
O Coinbase Business é a melhor escolha se a sua empresa está registrada nos EUA ou em Singapura e você quer o dinheiro em uma conta bancária.
- A sua empresa está registrada nos EUA ou em Singapura e tem uma conta bancária empresarial. Você pode migrar para o Coinbase Business, e a Coinbase diz que os lojistas que vêm do Commerce mantêm a tarifa de 1%.
- Você quer dólares no banco: o Coinbase Business faz saques para a sua conta bancária. O Crypto Merchant faz saques apenas em cripto.
- Você usa WooCommerce, Magento ou WHMCS, ou faz a contabilidade no QuickBooks ou no Xero. O Coinbase Business funciona com eles; o Crypto Merchant não tem plugins.
- Você quer um fornecedor com histórico e avaliações. O Crypto Merchant foi lançado em 28 de outubro de 2026 e ainda não tem nenhum dos dois.
Quando o Crypto Merchant é mais adequado?
O Crypto Merchant é mais adequado se você está fora dos EUA e de Singapura, ou se os seus clientes pagam com mais do que USDC.
- A sua empresa está fora dos EUA e de Singapura. Qualquer pessoa, em qualquer país, pode se cadastrar, e não pedimos documentos de identidade quando você cria uma conta.
- Os seus clientes pagam USDT na Tron ou em outra rede, ou pagam em BTC, ETH, SOL, LTC, XRP, BNB, TRX, POL ou GRAM. O Coinbase Business aceita USDC, e USDT apenas na Ethereum.
- Você quer um preço publicado: 1% por fatura paga e sem mensalidade.
- Você está migrando uma integração de desenvolvimento. Faturas, uma API REST e webhooks assinados cobrem o que uma integração com o Commerce fazia, e o guia abaixo mapeia cada etapa.
Como migrar de Coinbase Commerce para o Crypto Merchant?
Cadastre-se, conclua a configuração e depois aponte o seu checkout e os seus webhooks para o Crypto Merchant. Não há plugin para instalar: você usa links de pagamento, o checkout hospedado ou a API.
- 1
Crie uma conta
Cadastre-se com seu e-mail, seu nome e o nome da sua empresa. Não pedimos documentos de identidade quando você cria uma conta.
- 2
Escolha as suas moedas
Ative as moedas e redes que você quer. Não há pagamento para ativar a conta: a sua conta fica ativa assim que a configuração é concluída.
- 3
Comece a receber pagamentos
Compartilhe a sua página de checkout, crie links de pagamento ou faturas no portal, ou crie faturas no seu site com a API.
- 4
Aponte os seus webhooks
Adicione o endereço HTTPS do seu servidor em Desenvolvedores, verifique o header
CM-Signatureem todo evento e atenda os pedidos eminvoice.paid. Webhooks traz os detalhes. - 5
Migre a sua integração
Se o seu site criava cobranças do Commerce pela API, siga o guia de migração abaixo. Se não, substitua os antigos links ou botões de pagamento do seu site por links de pagamento do Crypto Merchant ou pela sua página de checkout.
Como migrar do Coinbase Commerce para o Crypto Merchant?
A sua integração com o Commerce criava cobranças e recebia webhooks. Com o Crypto Merchant, você cria uma fatura para cada pedido, envia o cliente para a página de checkout dela e trata webhooks assinados. As etapas abaixo mapeiam cada tarefa para a nossa API; a referência da API traz todos os campos.
O que substitui o quê
| Tarefa na sua integração antiga | Com o Crypto Merchant |
|---|---|
| Criar um pagamento para um pedido | POST /invoicesCrie uma fatura com o valor, a moeda e o ID do seu pedido. |
| Enviar o cliente para pagar | checkout_urlRedirecione para a URL de checkout da fatura. |
| Guardar os seus próprios dados com o pagamento | metadataQualquer objeto JSON de até 4 KB, devolvido na fatura e nos webhooks. |
| Saber quando um pagamento é concluído | invoice.paidUm endpoint de webhook que verifica a assinatura e depois atende o pedido com este evento. |
| Consultar um pagamento | GET /invoices/{id}Consulte a fatura. |
| Vincular pagamentos a pedidos | GET /invoices?status=paidListe as faturas pagas, uma página por vez. |
| Retirar uma solicitação de pagamento não paga | POST /invoices/{id}/cancelCancele a fatura, antes que qualquer pagamento seja detectado. |
1. Crie uma fatura em vez de uma cobrança
Crie uma chave de API no portal, em Desenvolvedores (as chaves de produção começam com cm_live_), e mantenha-a no seu servidor. A sua conta precisa estar ativa primeiro: até que a configuração seja concluída, a API responde 403 com o código merchant_not_live. Depois, onde o seu código criava uma cobrança, crie uma fatura. O valor precisa ser de pelo menos 0.50 dólar americano.
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",
…
}A resposta, com status 201, é o objeto de fatura. Salve o id dela com o seu pedido. O status começa como open.
2. Envie os clientes para a URL de checkout
Redirecione o cliente para a checkout_url da fatura. Lá ele escolhe uma moeda e uma rede, recebe um endereço de depósito usado só para esta fatura e vê o valor exato com uma cotação garantida. Defina redirect_url para trazê-lo de volta ao seu site depois do pagamento. Se nenhum pagamento for detectado até expires_at, a fatura expira.
O Commerce funcionava na Ethereum, na Polygon e na Base, e o Crypto Merchant aceita USDC nas três. Para pular a escolha da moeda, envie coin, por exemplo USDC.BASE: aí pay_address e pay_amount já vêm preenchidos, e você pode exibir os dados do pagamento por conta própria.
// 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. Verifique a assinatura do webhook
Adicione o endereço HTTPS do seu endpoint em Desenvolvedores. Cada endpoint recebe o próprio segredo de assinatura, que começa com whsec_. Todo evento é um POST com um header CM-Signature: t= um timestamp Unix em segundos, depois v1= o HMAC-SHA256 em hexadecimal do timestamp, um ponto e o corpo bruto, usando o segredo do seu endpoint como chave.
Calcule-o sobre o corpo bruto antes de interpretar o JSON, compare em tempo constante e rejeite timestamps com mais de cinco minutos. Responda com um status 2xx em até 10 segundos; qualquer outra resposta gera novas tentativas, até oito vezes ao longo de cerca de dois dias.
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. Mapeie os status de pagamento
Atenda os pedidos apenas em invoice.paid e mapeie os outros status no seu sistema de pedidos como abaixo. Uma fatura paga a menos ainda pode ficar paga se o cliente enviar o restante para o mesmo endereço.
| Status | Evento de webhook | O que significa | O que o seu sistema de pedidos deve fazer |
|---|---|---|---|
open | invoice.created | Criada. O cliente ainda não escolheu uma moeda. | Aguardando o pagamento. |
awaiting_payment | Nenhum | Uma moeda foi escolhida, o endereço de depósito foi atribuído e a cotação está garantida. | Ainda aguardando: o cliente escolheu como pagar. |
confirming | invoice.confirming | Um pagamento foi detectado on-chain e está aguardando confirmações. | Mostre “pagamento recebido, confirmando”. Não envie o pedido ainda. |
underpaid | invoice.underpaid | O pagamento confirmado ficou abaixo do valor em mais do que a sua tolerância. O cliente pode pagar o restante ou pedir reembolso. | Não envie o pedido. O cliente pode pagar o restante ou pedir reembolso. |
paid | invoice.paid | Paga e confirmada. O valor, descontada a taxa, está no seu saldo. Um reembolso parcial mantém este status. | Marque como pago e atenda o pedido. |
expired | invoice.expired | O tempo acabou antes de algum pagamento ser detectado. | Libere o estoque ou cancele o pedido. |
cancelled | invoice.cancelled | A fatura foi cancelada antes de algum pagamento ser detectado. | Cancele o pedido. |
refunded | invoice.refunded | O cliente recebeu o reembolso do que enviou em uma fatura paga a menos, ou você reembolsou tudo o que ficou com você de uma fatura paga. | Cancele o pedido: o cliente recebeu as moedas de volta. |
5. Trate webhooks duplicados e fora de ordem
Os eventos podem chegar mais de uma vez, e nem sempre em ordem. Armazene o id de cada evento (também enviado no header CM-Event-Id) com uma chave única, na mesma transação de banco de dados da atualização do pedido, e ignore os eventos que você já armazenou. Faça as mudanças de status em um só sentido, para que um invoice.confirming atrasado nunca faça um pedido pago voltar atrás. Antes de enviar algo de alto valor, consulte a fatura na API para confirmar o status.
6. Faça a conciliação
Liste as faturas pagas de 100 em 100, seguindo starting_after enquanto has_more for true, e vincule cada uma a um pedido por order_id ou 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;
}O seu saldo é creditado com o valor da fatura (ou com o valor um pouco menor recebido, se um pagamento a menos dentro da sua tolerância foi aceito), menos a taxa de 1%, na moeda do pagamento. Pagamentos a mais não são creditados a você: o Crypto Merchant guarda o excedente para o cliente, que pode sacá-lo na página da fatura. A página Relatórios do portal mostra o bruto, as taxas e o líquido de qualquer período em CSV, e GET /balances mostra o que você tem agora.
Perguntas frequentes
O que aconteceu com o Coinbase Commerce?
Qual é a melhor alternativa ao Coinbase Commerce fora dos EUA?
Quanto o Coinbase Business cobra?
O Crypto Merchant é custodial como o Coinbase Business?
Posso continuar aceitando USDC na Base?
Outros gateways comparados
- 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
Todos os gateways em uma tabela
Comece a aceitar cripto hoje
Configuração gratuita, sem documentos no cadastro, 1% por fatura paga e saques quando você quiser.