決済システムでの通貨コード(Stripe、PayPal、Square)

主要決済プロセッサーでのISO 4217通貨コードの使用方法。Stripe、PayPal、Square、Adyenの補助単位規約、サポート通貨、APIパターンを解説。

Payment Systems

詳細な説明

決済プロセッサーでの通貨処理

各決済プロセッサーは、APIで通貨コードと金額がどのように使用されるかについて独自の規約があります。決済統合時にこれらの違いを理解することが不可欠です。

Stripe

Stripeは小文字のISO 4217コードと最小通貨単位での金額を使用:

const paymentIntent = await stripe.paymentIntents.create({
  amount: 2999,      // セントで$29.99
  currency: "usd",   // 小文字のISO 4217
});

// JPY(0小数通貨)の場合:
const jpPayment = await stripe.paymentIntents.create({
  amount: 3000,      // ¥3,000(30.00ではない!)
  currency: "jpy",
});

PayPal

PayPalは大文字のISO 4217コードと10進数文字列での金額を使用:

{
  "amount": {
    "currency_code": "USD",
    "value": "29.99"
  }
}

主な違いの要約

プロセッサー 大文字/小文字 金額形式 JPY ¥3000
Stripe 小文字 補助単位(int) 3000
PayPal 大文字 主単位(string) "3000"
Square 大文字 補助単位(int) 3000
Adyen 大文字 補助単位(int) 3000

ユースケース

マルチプロセッサー決済統合や決済抽象化レイヤーを構築する開発者は、各プロセッサーが使用する特定の規約を知る必要があります。単一のコードベースがカード用のStripe、PayPal決済用のPayPal、地域固有の方法用のローカルプロセッサーと統合することがよくあります。フォーマットの違いを理解することで、顧客への過大・過少請求を防止できます。

試してみる — Currency Code Reference

フルツールを開く