代替サービス
Coinbase Commerceの代替サービス:Crypto MerchantとCoinbase Commerceの比較(2026年)
Coinbase Commerceは2026年3月31日をもって終了しました。CoinbaseはCommerceをCoinbase Businessに統合しましたが、Coinbase Businessが受け付けるのは米国とシンガポールの登記済みの事業者のみで、それ以外の加盟店には「代替の事業者に移行する」よう案内しました。Crypto Merchantは、この2か国以外の加盟店で、APIや決済リンクを通じてUSDCやその他のコインを引き続き受け付けたい方に適しています。Commerceのようにご自身で鍵を保管したい場合や、プラグインや銀行への精算が必要な場合には適していません。
最終確認日:2026年10月29日
この比較はCrypto Merchantが作成したもので、当社はここに挙げたどのゲートウェイとも提携していません。競合他社に関する情報はすべて各社自身のページに基づいており、表の下にリンクを掲載しています。料金や条件は変わるため、決める前にご確認ください。
Crypto MerchantとCoinbase Commerceを比べるとどうですか?
Commerceの後継であるCoinbase Businessは、Crypto Merchantと同じくカストディアル型ですが、対象は米国とシンガポールのみで、受け付けるのはUSDCとUSDTのみです。Crypto Merchantはどの国からでも登録でき、11種類のコインを受け付けますが、プラグインや銀行への出金はありません。
| 項目 | Crypto Merchant | Coinbase Business |
|---|---|---|
| 決済手数料 | 支払い済みの請求書1件につき1%。支払われたコインで、計上時に差し引かれます。期限切れ・キャンセルされた請求書に費用はかかりません。 | Commerceから移行した加盟店は1%。新規加盟店向けの公表料率はなく、Coinbaseは現在の手数料はログインして確認するよう案内しています。[1][2] |
| 月額料金・初期費用 | なし。初期費用もありません。有効化のための支払いはなく、設定が完了した時点でアカウントが有効になります。 | 「申込手数料なし」。月額料金は未確認。[2] |
| 変換 | 任意:すべてを1つの保有コインにスワップできます。レートはリアルタイムの市場価格で、1%のサービスマージンが含まれます。 | 決済はUSDCで精算されます。USDCからUSDへの自動変換には「手数料がかかります」が、金額は非公開です。[2][3] |
| 出金と引き出し | いつでも、出金ごとにガス手数料。手動出金は決まった最低額なし、自動出金はコインごとに 5 ドルまで待機。コインごとにそれぞれのアドレスへ、または先に1つの保有コインにスワップして出金。 | 銀行へ「いつでも」引き出し可能で、「ロックアップなし、最低額なし」。Payouts製品もあります。旧Commerceの引き出しツールは2026年3月31日以降、恒久的に無効化されています。[1][2][3] |
| 登録時のKYC・KYB | メールアドレス、氏名、ビジネス名。アカウントの作成時に本人確認書類は求めません。 | 登記済みの事業体と事業用の銀行口座。[1][2] |
| カストディ | カストディアル型。当社が鍵を保管し、すべてのウォレットは紙でオフライン保管されている1つのリカバリーフレーズから生成されます。決済はあなたのビジネス専用のプールウォレットに集まります。 | カストディアル型のみ。Commerce(旧サービス)はセルフカストディ型でした。[1] |
| コインとネットワーク | 11ネットワークで11種類のコイン。USDTはEthereum、BNB Smart Chain、Polygon、Arbitrum One、Tron、Solanaに対応。USDCはEthereum、BNB Smart Chain、Polygon、Base、Arbitrum One、Solanaに対応。さらにBTC、ETH、LTC、SOL、XRP、BNB、TRX、POL、GRAM(TON)。 | USDCはEthereum、Base、Polygon、Optimism、Avalanche、Arbitrumに対応。USDTはEthereumのみで、米国と一部の法域に限られます。BTC、ETH、SOL、TRXの受け付けについての記載はありません。[3] |
| 国の制限 | どの国の方でも、どなたでも登録できます。利用規約では、違法な商品、詐欺、制裁の回避を禁止しています。 | 米国とシンガポールの事業者のみ。[2] |
| ECプラグイン | なし:WooCommerce、Shopify、WHMCSのプラグインはありません。決済リンク、ホスト型チェックアウト、またはAPIをご利用ください。 | WooCommerce、Magento(Adobe Commerce)、WHMCSに加え、会計ソフトのQuickBooksとXero。[1][3] |
| 法定通貨(銀行)での精算 | いいえ。暗号資産のみ:出金は暗号資産のアドレスへ送られます。 | はい:事業用の銀行口座への引き出し。[1][3] |
| APIとWebhook | 請求書、決済リンク、残高、コインを扱う、Bearerキー方式のREST API。WebhookはHMAC-SHA256で署名され、約2日間再試行されます。 | Checkouts APIとx402エージェント決済。[3] |
| 決済リンク | はい:固定価格または金額自由のリンク、ホスト型チェックアウトページ、請求書。 | はい:決済リンクと請求書発行。[3] |
出典
表に記載したCoinbase Commerceに関する情報はすべて、2026年10月29日に確認した以下のページに基づいています。「未確認」は、どのページにも記載がなかったことを意味します。
- [1]Coinbaseヘルプ:CommerceからBusinessへの移行: https://help.coinbase.com/en/transitioning-from-coinbase-commerce-to-coinbase-business
- [2]Coinbase Business: https://www.coinbase.com/business
- [3]Coinbase Business:チェックアウト: https://www.coinbase.com/business/features-checkouts
Coinbase Commerceの方が適しているのはどんな場合ですか?
米国またはシンガポールで登記された事業者で、資金を銀行口座で受け取りたい場合は、Coinbase Businessの方が適しています。
- 事業が米国またはシンガポールで登記されており、事業用の銀行口座がある場合。Coinbase Businessに移行でき、CoinbaseはCommerceから移行した加盟店は1%の料率が維持されるとしています。
- ドルを銀行で受け取りたい場合:Coinbase Businessは銀行口座へ引き出せます。Crypto Merchantの出金は暗号資産のみです。
- WooCommerce、Magento、WHMCSを使っている場合や、QuickBooksやXeroで帳簿をつけている場合。Coinbase Businessはこれらと連携しますが、Crypto Merchantにはプラグインがありません。
- 実績やレビューのある事業者を選びたい場合。Crypto Merchantは2026年10月28日にサービスを開始したばかりで、まだどちらもありません。
Crypto Merchantの方が適しているのはどんな場合ですか?
米国とシンガポール以外にいる場合や、顧客がUSDC以外でも支払う場合は、Crypto Merchantの方が適しています。
- 事業が米国とシンガポール以外にある場合。どの国の方でも、どなたでも登録でき、アカウントの作成時に本人確認書類は求めません。
- 顧客がTronや他のネットワーク上のUSDTで支払う場合や、BTC、ETH、SOL、LTC、XRP、BNB、TRX、POL、GRAMで支払う場合。Coinbase Businessが受け付けるのはUSDCと、Ethereum上のUSDTのみです。
- 公表された料金を求める場合:支払い済みの請求書1件につき1%、月額料金なし。
- 開発者向けの連携を移行する場合。請求書、REST API、署名付きWebhookで、Commerceとの連携で行っていたことをカバーでき、下のガイドで各手順の対応関係を説明しています。
Coinbase CommerceからCrypto Merchantに切り替えるには?
登録して設定を完了してから、チェックアウトとWebhookをCrypto Merchantに向けます。インストールするプラグインはありません。決済リンク、ホスト型チェックアウト、またはAPIを使います。
- 1
アカウントを作成
メールアドレス、氏名、ビジネス名で登録します。アカウントの作成時に本人確認書類は求めません。
- 2
コインを選ぶ
受け付けるコインとネットワークをオンにします。有効化のための支払いはなく、設定が完了した時点でアカウントが有効になります。
- 3
- 4
Webhookを設定
開発者でサーバーのHTTPSアドレスを追加し、すべてのイベントで
CM-Signatureヘッダーを確認して、invoice.paidで注文を処理します。詳しくはWebhookをご覧ください。 - 5
連携を移行する
サイトがAPIを通じてCommerceのチャージを作成していた場合は、下の移行ガイドに従ってください。そうでない場合は、サイト上の古い決済リンクやボタンを、Crypto Merchantの決済リンクまたはチェックアウトページに置き換えてください。
Coinbase CommerceからCrypto Merchantに移行するには?
Commerceとの連携では、チャージを作成し、Webhookを受け取っていました。Crypto Merchantでは、注文ごとに請求書を作成し、顧客をそのチェックアウトページへ送り、署名付きWebhookを処理します。以下の手順で、それぞれの処理を当社のAPIに対応付けています。すべてのフィールドはAPIリファレンスに掲載しています。
何が何に置き換わるか
| 以前の連携での処理 | Crypto Merchantでは |
|---|---|
| 注文の支払いを作成する | POST /invoices金額、通貨、注文IDを指定して請求書を作成します。 |
| 顧客を支払いへ案内する | checkout_url請求書のチェックアウトURLにリダイレクトします。 |
| 支払いに独自のデータを持たせる | metadata最大4 KBの任意のJSONオブジェクト。請求書とWebhookで返されます。 |
| 支払いの完了を知る | invoice.paid署名を確認してから、このイベントで注文を処理するWebhookエンドポイント。 |
| 1件の支払いを確認する | GET /invoices/{id}請求書を取得します。 |
| 支払いを注文と照合する | GET /invoices?status=paid支払い済みの請求書を1ページずつ一覧で取得します。 |
| 未払いの支払いリクエストを取り下げる | POST /invoices/{id}/cancel支払いが検出される前に請求書をキャンセルします。 |
1. チャージの代わりに請求書を作成する
管理画面の開発者でAPIキーを作成し(本番用キーはcm_live_で始まります)、サーバー上に保管します。先にアカウントを有効化しておく必要があります。設定が完了するまで、APIはコードmerchant_not_liveとともに403を返します。その後、コードでチャージを作成していた箇所で、請求書を作成します。金額は0.50米ドル以上の価値である必要があります。
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",
…
}レスポンスはステータス201の請求書オブジェクトです。そのidを注文と一緒に保存してください。ステータスは最初openです。
2. 顧客をチェックアウトURLへ送る
顧客を請求書のcheckout_urlにリダイレクトします。顧客はそこでコインとネットワークを選び、この請求書専用の入金アドレスを受け取り、固定されたレートでの正確な金額を確認します。支払い後に顧客をサイトへ戻すにはredirect_urlを設定します。expires_atまでに支払いが検出されない場合、請求書は期限切れになります。
CommerceはEthereum、Polygon、Baseで動作しており、Crypto Merchantは3つすべてでUSDCを受け付けています。コインの選択を省くには、USDC.BASEのようにcoinを渡します。するとpay_addressとpay_amountが入力された状態で返されるため、支払いの詳細をご自身で表示できます。
// 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. Webhookの署名を検証する
開発者でエンドポイントのHTTPSアドレスを追加します。各エンドポイントには、whsec_で始まる専用の署名シークレットが発行されます。すべてのイベントはCM-Signatureヘッダー付きのPOSTです。ヘッダーには、t=に続いて秒単位のUnixタイムスタンプ、次にv1=に続いて、タイムスタンプ、ピリオド、生のボディをつなげたものを、エンドポイントのシークレットをキーとして計算したHMAC-SHA256の16進数の値が含まれます。
JSONを解析する前に生のボディに対して計算し、定数時間で比較し、5分より古いタイムスタンプは拒否してください。10秒以内に2xxのステータスで応答してください。それ以外は再試行され、約2日間で最大8回まで行われます。
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. 支払いステータスを対応付ける
注文の処理はinvoice.paidのときにのみ行い、その他のステータスは以下のように注文システムに対応付けます。支払い不足の請求書も、顧客が残りを同じアドレスに送れば支払い済みになる場合があります。
| ステータス | Webhookイベント | 意味 | 注文システムで行うこと |
|---|---|---|---|
open | invoice.created | 作成済み。顧客はまだコインを選んでいません。 | 支払い待ち。 |
awaiting_payment | なし | コインが選ばれ、入金アドレスが割り当てられ、レートが固定されています。 | 引き続き待機中:顧客は支払い方法を選択済みです。 |
confirming | invoice.confirming | オンチェーンで決済が確認され、承認を待っています。 | 「支払いを受領、承認中」と表示します。まだ発送しないでください。 |
underpaid | invoice.underpaid | 承認された決済の不足額が許容額を超えています。顧客は残りを支払うか、返金を求めることができます。 | 発送しないでください。顧客は残りを支払うか、返金を求めることができます。 |
paid | invoice.paid | 支払い済みで承認済み。手数料を差し引いた金額が残高に計上されています。一部返金してもこのステータスのままです。 | 支払い済みにして、注文を処理します。 |
expired | invoice.expired | 決済が確認される前に時間切れになりました。 | 在庫を戻すか、注文をキャンセルします。 |
cancelled | invoice.cancelled | 決済が確認される前に請求書がキャンセルされました。 | 注文をキャンセルします。 |
refunded | invoice.refunded | 支払い不足の請求書で顧客に送金分が返金されたか、支払い済みの請求書からあなたが受け取った額をすべて返金しました。 | 注文をキャンセルします:顧客にはコインが返還されています。 |
5. 重複したWebhookや順序が入れ替わったWebhookを処理する
イベントは複数回届くことがあり、常に順番どおりに届くとは限りません。各イベントのid(CM-Event-Idヘッダーでも送信されます)を、注文の更新と同じデータベーストランザクション内で一意のキーとして保存し、すでに保存したイベントはスキップしてください。ステータスの変更は一方向にして、遅れて届いたinvoice.confirmingによって支払い済みの注文が戻ることがないようにします。高額な商品を発送する前には、APIから請求書を取得してステータスを再確認してください。
6. 照合する
支払い済みの請求書を100件ずつ一覧で取得し、has_moreがtrueの間はstarting_afterをたどって、order_idまたは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;
}残高には、請求書の金額(許容額の範囲内の支払い不足を受け入れた場合は、受け取ったわずかに少ない金額)から1%の手数料を差し引いた額が、支払われたコインで計上されます。過払い分はあなたには計上されません。Crypto Merchantが超過分を顧客のために保持し、顧客は請求書ページからそれを引き出せます。管理画面のレポートページでは、任意の期間の総額、手数料、純額をCSVで取得でき、GET /balancesで現在の保有額を確認できます。
よくある質問
Coinbase Commerceはどうなりましたか?
米国外でCoinbase Commerceの代替として最適なのは?
Coinbase Businessの手数料はいくらですか?
Crypto MerchantはCoinbase Businessと同じくカストディアル型ですか?
Base上のUSDCを引き続き受け付けられますか?
他のゲートウェイとの比較
- Crypto MerchantとNOWPaymentsの比較
- Crypto MerchantとCoinGateの比較
- Crypto MerchantとBitPayの比較
- Crypto MerchantとCryptomusの比較
- Crypto MerchantとPlisioの比較
- Crypto MerchantとCoinPaymentsの比較
- Crypto MerchantとOxaPayの比較
- Crypto MerchantとBinance Payの比較
- Crypto MerchantとBTCPay Serverの比較
- Crypto MerchantとHeleketの比較
- Crypto MerchantとCoinremitterの比較
今日から暗号資産決済を始めましょう
初期設定無料、登録時の書類提出不要、支払い済みの請求書1件につき1%、出金はいつでも好きなときに行えます。