> ## Documentation Index
> Fetch the complete documentation index at: https://waffo.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 金額と通貨

> Waffo の金額フォーマット仕様とマルチ通貨決済のガイド。

## 金額フォーマット

Waffo の金額はすべて **String 型** で統一して表します。Number、float、double は使用しないでください。

```
✅ "100.00"
✅ "0.99"
✅ "10000"     (JPY などの小数なし通貨)

❌ 100.00      (Number 型 — 浮動小数点精度の問題が発生)
❌ 100         (Number 型)
```

<Note>
  Number ではなく String を必須としているのは、浮動小数点精度の問題を避けるためです。`0.1 + 0.2 = 0.30000000000000004` のような挙動は金融の文脈では許容されません。
</Note>

## 小数桁数のルール

通貨ごとに必要な小数桁数は異なります。

<Warning>
  誤った小数桁数を渡した場合、パラメータエラー (A0003) が返されます。
</Warning>

### 小数 2 桁(大半の通貨)

以下の通貨は、金額をちょうど小数 2 桁で表記する必要があります:

```
"100.00"  ✅
"9.99"    ✅
"100"     ❌ (小数桁が不足)
"100.0"   ❌ (小数 1 桁のみ)
```

| 地域         | 通貨                                                                                                                                                                                |
| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| アジア太平洋     | `PHP` (フィリピン・ペソ), `MYR` (マレーシア・リンギット), `THB` (タイ・バーツ), `KHR` (カンボジア・リエル), `SGD` (シンガポール・ドル), `HKD` (香港ドル), `MOP` (マカオ・パタカ), `CNY` (中国人民元), `AUD` (オーストラリア・ドル), `MNT` (モンゴル・トゥグルグ) |
| 南北アメリカ     | `USD` (米ドル), `BRL` (ブラジル・レアル), `MXN` (メキシコ・ペソ), `PEN` (ペルー・ソル), `CAD` (カナダ・ドル), `AWG` (アルバ・フロリン)                                                                                  |
| ヨーロッパ・アフリカ | `EUR` (ユーロ), `GBP` (英ポンド), `RUB` (ロシア・ルーブル), `TRY` (トルコ・リラ), `PLN` (ポーランド・ズロチ), `SEK` (スウェーデン・クローナ), `NGN` (ナイジェリア・ナイラ)                                                           |
| 暗号資産       | `USDC`, `USDT`                                                                                                                                                                    |

### 小数 0 桁の通貨

以下の通貨の小数桁数は 0 桁です。`VND` の場合、小数部を省略するか、すべて 0 にできます。小数部に 0 以外の数字が含まれると、金額の検証に失敗します。

```text theme={null}
"10000"    ✅
"10000.00" ✅ (小数部はすべて 0)
"10000.01" ❌ (0 以外の小数値を含む)
```

| 通貨    | 名称      |
| ----- | ------- |
| `JPY` | 日本円     |
| `KRW` | 韓国ウォン   |
| `VND` | ベトナム・ドン |
| `CLP` | チリ・ペソ   |

### 特殊通貨(同一通貨注文は 0 桁、クロス通貨注文は 2 桁)

以下の通貨は、同一通貨注文では小数不可ですが、クロス通貨注文では小数 2 桁が許容されます:

| 通貨    | 名称         | 同一通貨注文                       | クロス通貨注文        |
| ----- | ---------- | ---------------------------- | -------------- |
| `IDR` | インドネシア・ルピア | `"10000"` ✅ / `"10000.50"` ❌ | `"10000.50"` ✅ |
| `COP` | コロンビア・ペソ   | `"5000"` ✅ / `"5000.00"` ❌   | `"5000.00"` ✅  |
| `KES` | ケニア・シリング   | `"100"` ✅ / `"100.50"` ❌     | `"100.50"` ✅   |
| `TWD` | 新台湾ドル      | `"300"` ✅ / `"300.00"` ❌     | `"300.00"` ✅   |

## 同一通貨注文とクロス通貨注文

| シナリオ      | 例                                | 説明                             |
| --------- | -------------------------------- | ------------------------------ |
| **同一通貨**  | 商品が IDR 建て、ユーザーが DANA (IDR) で支払い | `orderCurrency` がユーザーの決済通貨と一致  |
| **クロス通貨** | 商品が USD 建て、ユーザーが DANA (IDR) で支払い | `orderCurrency` がユーザーの決済通貨と異なる |

### クロス通貨注文のパラメータ

```json theme={null}
{
  "orderCurrency": "USD",
  "orderAmount": "10.00"
}
```

クロス通貨のシナリオでは `userCurrency` は任意です。ただし、`payMethodType` または `payMethodName` が完全に指定されていない場合は、ユーザーがどの国にいるかを Waffo に伝えるために `payMethodCountry` を渡してください。

為替換算は Waffo が自動的に処理します。ユーザーはチェックアウトページでローカル通貨の金額を確認できます。

## 通貨一覧

| 通貨コード  | 名称          | 小数桁数  | 備考                  |
| ------ | ----------- | ----- | ------------------- |
| `IDR`  | インドネシア・ルピア  | 0 / 2 | 同一通貨: 0、クロス通貨: 2    |
| `USD`  | 米ドル         | 2     |                     |
| `PHP`  | フィリピン・ペソ    | 2     |                     |
| `BRL`  | ブラジル・レアル    | 2     |                     |
| `MXN`  | メキシコ・ペソ     | 2     |                     |
| `MYR`  | マレーシア・リンギット | 2     |                     |
| `THB`  | タイ・バーツ      | 2     |                     |
| `CAD`  | カナダ・ドル      | 2     |                     |
| `EUR`  | ユーロ         | 2     |                     |
| `AUD`  | オーストラリア・ドル  | 2     |                     |
| `GBP`  | 英ポンド        | 2     |                     |
| `VND`  | ベトナム・ドン     | 0     | 小数部を省略するか、すべて 0 にする |
| `CLP`  | チリ・ペソ       | 0     | 小数なし                |
| `COP`  | コロンビア・ペソ    | 0 / 2 | 同一通貨: 0、クロス通貨: 2    |
| `PEN`  | ペルー・ソル      | 2     |                     |
| `RUB`  | ロシア・ルーブル    | 2     |                     |
| `KES`  | ケニア・シリング    | 0 / 2 | 同一通貨: 0、クロス通貨: 2    |
| `NGN`  | ナイジェリア・ナイラ  | 2     |                     |
| `TWD`  | 新台湾ドル       | 0 / 2 | 同一通貨: 0、クロス通貨: 2    |
| `HKD`  | 香港ドル        | 2     |                     |
| `JPY`  | 日本円         | 0     | 小数なし                |
| `KRW`  | 韓国ウォン       | 0     | 小数なし                |
| `MOP`  | マカオ・パタカ     | 2     |                     |
| `SGD`  | シンガポール・ドル   | 2     |                     |
| `CNY`  | 中国人民元       | 2     |                     |
| `PLN`  | ポーランド・ズロチ   | 2     |                     |
| `TRY`  | トルコ・リラ      | 2     |                     |
| `KHR`  | カンボジア・リエル   | 2     |                     |
| `SEK`  | スウェーデン・クローナ | 2     |                     |
| `AWG`  | アルバ・フロリン    | 2     |                     |
| `MNT`  | モンゴル・トゥグルグ  | 2     |                     |
| `USDC` | USD Coin    | 2     | 暗号資産                |
| `USDT` | Tether      | 2     | 暗号資産                |
