マルチカレンシー
マルチカレンシー決済を利用して、アカウントの契約国通貨以外の通貨でクレジットカードとデビットカードに課金します。Omiseは、カード会員が希望する通貨で購入できるようにサポートし、加盟店の契約国通貨(日本の場合は日本円:JPY)に換算します。 Omiseは、カード会員が希望する通貨で購入できるようにサポートし、加盟店の契約国通貨(日本の場合は日本円:JPY)に換算します。
使用方法については下記をご覧ください。
有効にする方法
- サポートされる国: タイ、シンガポール、日本
- 最小のAPIバージョン:
2014-07-27
マルチカレンシー決済を有効にするには、新規加盟店と既存加盟店で申請方法が異なります。詳細はこちらをご参照ください。 新しい利用規約を確認して同意する必要があります。
注:
- この機能は、クレジットカードおよびデビットカードの課金のみをサポートしています。その他の決済方法(PayPayなど)ではご利用いただけません。
- VisaおよびMastercardブランドのカードのみをサポートしています。
- 特定の状況では、カード会員が自国通貨で支払った場合でも、発行カード会社から外国取引手数料が課金される場合があります。
サポート済みの通貨
アカウントが登録されている国によって、サポートする通貨が異なります。
通貨 | 名前 | タイ | シンガポール | 日本 |
---|---|---|---|---|
AUD | オーストラリアドル | ✓ | ✓ | ✓ |
CAD | カナダドル | ✓ | ✓ | |
CHF | スイスフラン | ✓ | ✓ | ✓ |
CNY | 人民元(中国人民元) | ✓ | ✓ | ✓ |
DKK | デンマーククローネ | ✓ | ✓ | |
EUR | ユーロ | ✓ | ✓ | ✓ |
GBP | 英ポンド | ✓ | ✓ | ✓ |
HKD | 香港ドル | ✓ | ✓ | ✓ |
IDR | インドネシアルピア | ✓ | ✓ | ✓ |
JPY | 日本円 | ✓ | ✓ | ✓† |
MYR | マレーシアリンギット | ✓ | ✓ | |
SGD | シンガポールドル | ✓ | ✓† | ✓ |
THB | タイバーツ | ✓† | ✓ | ✓ |
USD | 米ドル | ✓ | ✓ | ✓ |
† アカウントの契約国通貨
実装
日本で登録されたアカウントを利用して1,000USDの課金を作成する手順を見てみましょう。
マルチカレンシーの課金を作成することは、通常の課金作成手順と似ています。
トークンを作成する
Omise.jsガイドの指示に沿って、新しいトークンを作成します。 テストについては、こちらにリストされている方法も試すことができます。 簡単な決済フォームを実装する場合、決済ページに次のコードを挿入します。
<form id="checkout-form" method="POST" action="/checkout">
<script type="text/javascript" src="https://cdn.omise.co/omise.js"
data-key="OMISE_PUBLIC_KEY"
data-amount="100000"
data-currency="USD">
</script>
</form>
マルチカレンシーの課金を作成する
前の手順で作成したトークンを使用して、新しいcharge APIリクエストを作成します。 返答される課金オブジェクトで次の属性を確認します。
currency
:課金が作成された通貨(USD)。現在小数点のない通貨でサポートされているは日本円のみなので、外貨通貨の金額はサブユニットで指定します。今回の場合1000USDなので100000と指定します。funding_currency
:アカウントの契約国通貨(JPY)。funding_amount
:アカウントの契約国通貨に換算した後の金額。
amount
とrefunded_amount
を除き、すべての金額はアカウントの契約国通貨で指定されます。
curl https://api.omise.co/charges \
-X POST \
-u $OMISE_SECRET_KEY: \
-d "amount=100000" \
-d "currency=USD" \
-d "card=$TOKEN_ID"
{
"object": "charge",
"id": "chrg_test_5vkl514m8b2vdc6a4a0",
"location": "/charges/chrg_test_5vkl514m8b2vdc6a4a0",
"amount": 100000,
"net": 3174670,
"fee": 120585,
"fee_vat": 8441,
"interest": 0,
"interest_vat": 0,
"funding_amount": 14447250,
"refunded_amount": 0,
"transaction_fees": {
"fee_flat": "0.0",
"fee_rate": "3.65",
"vat_rate": "7.0"
},
"platform_fee": {
"fixed": null,
"amount": null,
"percentage": null
},
"currency": "USD",
"funding_currency": "JPY",
"ip": null,
"refunds": {
"object": "list",
"data": [],
"limit": 20,
"offset": 0,
"total": 0,
"location": "/charges/chrg_test_5vkl514m8b2vdc6a4a0/refunds",
"order": "chronological",
"from": "1970-01-01T00:00:00Z",
"to": "2023-04-26T04:22:24Z"
},
"link": null,
"description": null,
"metadata": {},
"card": {
"object": "card",
"id": "card_test_5vkl50xxlu3b5hu2qwx",
"livemode": false,
"location": null,
"deleted": false,
"street1": null,
"street2": null,
"city": "Bangkok",
"state": null,
"phone_number": null,
"postal_code": "10320",
"country": "us",
"financing": "credit",
"bank": "JPMORGAN CHASE BANK N.A.",
"brand": "Visa",
"fingerprint": "XjOdjaoHRvUGRfmZacMPcJtm0U3SEIIfkA7534dQeVw=",
"first_digits": null,
"last_digits": "4242",
"name": "Somchai Prasert",
"expiration_month": 9,
"expiration_year": 2024,
"security_code_check": true,
"tokenization_method": null,
"created_at": "2023-04-26T04:22:22Z"
},
"source": null,
"schedule": null,
"customer": null,
"dispute": null,
"transaction": "trxn_test_5vkl518v7tgkff10rxo",
"failure_code": null,
"failure_message": null,
"status": "successful",
"authorize_uri": null,
"return_uri": null,
"created_at": "2023-04-26T04:22:23Z",
"paid_at": "2023-04-26T04:22:23Z",
"expires_at": "2023-05-03T04:22:23Z",
"expired_at": null,
"reversed_at": null,
"zero_interest_installments": true,
"branch": null,
"terminal": null,
"device": null,
"authorized": true,
"capturable": false,
"capture": true,
"disputable": true,
"livemode": false,
"refundable": true,
"reversed": false,
"reversible": false,
"voided": false,
"paid": true,
"expired": false
}
通貨換算
マルチカレンシー決済を利用した課金の場合、課金時に指定された元の金額には換算手数料が上乗せされるため、換算時に使用されるレートはミッドマーケット為替レートよりも2〜4%高くなります。 使用された為替レートを確認するには、Forex APIにリクエストを送信してください。
課金の最小額と最大額はアカウントの契約国通貨で設定されているため、マルチカレンシーで有効な決済最小額と最大額は、現在の為替レートによって異なります。
curl https://api.omise.co/forex/usd \
-u $OMISE_SECRET_KEY:
{
"object": "forex",
"rate": 144.4725,
"location": "/forex/usd",
"livemode": false,
"base": "USD",
"quote": "JPY"
}
課金の払い戻し
refund API またはダッシュボードを利用して、マルチカレンシー課金の全額または一部の払い戻しを作成できます。 使用される為替レートは、課金の払い戻しを作成した時点のレートです。 払い戻しは元の課金通貨で処理されるため、金額を入力するだけのプロセスとなります。
curl https://api.omise.co/charges/$CHARGE_ID/refunds \
-X POST \
-u $OMISE_SECRET_KEY: \
-d "amount=100000"
{
"object": "refund",
"id": "rfnd_test_5vkl51js322cag57de2",
"location": "/charges/chrg_test_5vkl50ovmiye8iui9ch/refunds/rfnd_test_5vkl51js322cag57de2",
"livemode": false,
"voided": true,
"currency": "USD",
"amount": 100000,
"metadata": {},
"charge": "chrg_test_5vkl50ovmiye8iui9ch",
"terminal": null,
"transaction": "trxn_test_5vkl51k12dp76doxgvk",
"status": "closed",
"funding_amount": 14447250,
"funding_currency": "JPY",
"created_at": "2023-04-26T04:22:25Z"
}
ダッシュボード
ダッシュボードでマルチカレンシーの課金詳細は次のように表示されます。
エラー
マルチカレンシー決済が有効になっていない場合、マルチカレンシーの課金を作成する際はfailed_multi_currency
のエラーが返答され、課金作成が失敗します。このエラーが発生した場合は、support@omise.coまでお問い合わせください。
課金通貨がサポートされていない場合、マルチカレンシーでの課金はinvalid_charge
のエラーが返答され、課金作成が失敗します。