決済導入

USDT・USDC 向け暗号資産決済 API

サーバーから注文を作成し、支払い状況を照会して Webhook の署名を検証。USDT・USDC のウォレット決済や手動送金を業務システムに連携できます。

対応決済ネットワーク

TRON の USDC には対応しません。決済経路の有効化と受取ウォレットの設定が必要です。USDbC、USDC.e、その他のコントラクトで代用できません。

Ethereum、Polygon、Solana、Base では Circle が発行する USDC に対応します。 BNB Smart Chain は精度18桁の Binance-Peg USDC を使用します。Circle 発行のネイティブ USDC ではありません。 Base メインネットでネイティブ USDC とブリッジ USDT に対応。利用可否は決済経路の有効化と受取ウォレットの状態によります。

手順

BoltUtil は、開発者に USDT / USDC 支払い注文、チェーン監視、チェックアウト ページ、およびサーバー間の支払い通知のためのシンプルな API サーフェスを提供します。

ステーブルコインチェックアウト用に構築された暗号決済 API

  1. 01

    バックエンドから金額、ネットワーク、外部注文IDを指定して決済注文を作成します。

  2. 02

    購入者に決済URL、ネットワーク、受取アドレス、QRコード、正確なUSDT / USDC金額を表示します。

  3. 03

    BoltUtilがネットワーク、トークンコントラクト、宛先、金額、有効期限、承認数を確認します。

  4. 04

    支払い確認後、Webhook署名を検証し、冪等に商品やサービスを提供します。

BoltUtil は支払いを照合し、署名付きコールバックを送信します。加盟店のサーバーで署名と注文状態を確認し、重複処理を防いでから納品・開通・入金処理を行います。

>統合に関するメモ

制作前に大切なこと

ノンカストディアル決済

USDT / USDCは加盟店ウォレットへ直接送金され、BoltUtilが資金や秘密鍵を保管することはありません。

6 つの決済ネットワーク

TRON、Ethereum、BNB Smart Chain、Polygon、Solana、Base に対応。TRON は USDT / USDC のみ。その他の USDT / USDC 決済も、資産の有効化と有効な受取ウォレットが必要です。

署名付きWebhook

HMAC署名、タイムスタンプ、再送ログにより、安全な決済後処理を実装できます。

Node.js 22+ · USDC / Base
import crypto from 'node:crypto'

// Node.js 20+ server module. Call only after authenticating the buyer.
// order must come from your database, with ownership and price checked.
// Never pass req.body directly; persist externalOrderId before calling.
export async function createStablecoinCheckout(order) {
  const key = process.env.BOLTUTIL_API_KEY
  const secret = process.env.BOLTUTIL_API_SECRET
  if (!key || !secret) throw new Error('Missing server credentials')

  const payload = JSON.stringify({
    externalOrderId: order.externalOrderId,
    amount: order.amount,
    currency: 'USDC',
    network: 'BASE',
    notifyUrl: 'https://merchant.com/webhooks/boltutil',
    returnUrl: 'https://merchant.com/orders/complete'
  })
  const timestamp = Date.now().toString()
  const signature = crypto.createHmac('sha256', secret)
    .update(`${timestamp}.${payload}`).digest('hex')

  // A timeout does not prove creation failed. Query order/status using
  // the SAME externalOrderId before deciding whether to retry.
  const response = await fetch('https://api.boltutil.com/api/v1/order/create', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-Bolt-Key': key,
      'X-Bolt-Timestamp': timestamp,
      'X-Bolt-Signature': signature
    },
    body: payload,
    signal: AbortSignal.timeout(10000)
  })
  const result = await response.json()
  if (!response.ok || result.code !== 200 || !result.data?.checkoutUrl) {
    throw new Error('Create order failed; reconcile the saved order')
  }
  // Save result.data on the server. Return only checkout data to the buyer.
  return result.data
}

導入・調査用の例です。リクエストは送信されません。注文データ、ネットワーク設定、API ドキュメントを確認してください。

API ドキュメントを読む

注文作成はサーバー側で行う

APIキーをブラウザーへ公開せず、決済画面を表示する前に外部注文IDを保存します。

ネットワークを明確に表示する

アドレスだけでなく、TRC20、ERC20、BEP20、Polygon、Solanaのどれを使うか明示します。

検証後にサービスを提供する

戻り先URLは支払い証明ではありません。署名付きWebhookかサーバー側の状態照会を使用します。

決済導入

販売者が公開前に尋ねる質問

BoltUtilは加盟店の資金を保管しますか?

いいえ。資金は加盟店ウォレットへ直接送られ、BoltUtilは送金を監視して通知します。

USDT / USDC決済はどのように照合されますか?

ネットワーク、トークン、宛先、正確な金額、注文状態、有効期限を確認します。

USDT と USDC はどのネットワークに対応していますか?

TRON は USDT のみ対応します。Ethereum、BNB Smart Chain、Polygon、Solana、Base は設定された USDT / USDC に対応します。利用可否は有効なチャネルと加盟店ウォレットによります。

よりクリーンな USDT / USDC 支払いフローの開始

顧客にスクリーンショットの送信を依頼することなく、注文を作成し、転送を監視し、バックエンドに通知します。