> ## 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.

# 注文が拒否されました — 原因は自分か、設定か、決済手段か？

> 加盟店から最も多く寄せられる拒否に関する判断ツリー：A0018 決済手段/契約の不一致とそれを引き起こすすべての次元、キーローテーション後の A0001、C0005 チャネル拒否とそれに付随して返される失敗理由、返金時の A0017、そして未有効化の決済手段と不正なパラメーターの見分け方。

本番移行時のチケットの大半は、3 つの拒否が占めています：`A0018`、`A0001`、`C0005` です。これらは見た目が似ています —
コード、短いメッセージ、詳細なし — が、必要な対応はまったく異なります。このページはその判断ツリーです。コードごとのリファレンスは
公開済みの [エラーコード一覧](/docs/ja/developer-docs/tools-and-references/developer-tools/error-codes) に、
各コードの仕組みは
[よくあるエラーのトラブルシューティング](/docs/ja/support/errors-troubleshooting-guide) と
[上限・通貨・設定エラー](/docs/ja/support/error-codes-and-limits-supplement) にあります。

## 私が見ているのはこのうちどれですか？

| コード | 一行での読み方 | 誰の問題か |
| - | - | - |
| `A0001` | API キーが受け付けられなかった | お客様の認証情報または環境 |
| `A0002` | 署名が検証できなかった | お客様の署名処理 |
| `A0003` | リクエスト自体が不正 | お客様のペイロード |
| `A0018` | このリクエスト全体に一致する契約がない | お客様の設定 — または絞り込みすぎたパラメーター |
| `A0008` / `A0020` / `A0021` | 金額または日次合計が上限の範囲外 | お客様のリクエストと上限の関係 |
| `A0035` / `A0036` | 手動キャプチャが利用できない、または今は利用できない | お客様の設定または注文の状態 |
| `C0005` | 決済手段が決済を拒否した | 決済手段 — 失敗理由を読む |
| `C0007` | 決済手段が現在利用できない | 一時的。再試行するか別の決済手段を提示する |
| `E0001` | 結果がまだ不明 | まだ誰の問題でもない — 照会を続ける |

先頭の文字が最速のトリアージです。`A` はお客様側で修正するもの、`C` は Waffo または決済手段側、
`E` は未確定を意味します。`E` を失敗として扱わないでください。ルールと再試行パターンは公開済みの
[エラーハンドリング](/docs/ja/developer-docs/core-concepts/error-handling) にあります。

## `A0018` は「まだ有効化されていない」なのか、それとも私が何か間違って送ったのですか？

どちらもありえます。これがこの質問の核心です。`A0018` は「指定した決済手段が契約されていない」という意味ではありません。
**お客様が契約しているもののうち、リクエスト全体を通過したものが何もなかった**という意味であり、リクエストは
多くの次元で同時に候補を絞り込みます。そのどれか 1 つでも集合を空にしうるうえ、すべて同じコード・同じメッセージで返されます。

次の順序で確認してください — 最初に見つかった不一致が答えです。

| # | 次元 | 確認事項 |
| - | - | - |
| 1 | **加盟店 ID** | ボディの加盟店 ID は、署名に使用した API キーに属していますか？ ここで不一致があると、以下はすべて無意味になります |
| 2 | **決済手段とタイプ** | `payMethodName` / `payMethodType` は Service → Payin に表示されているとおりですか — または完全に省略していますか？ |
| 3 | **注文通貨** | その決済手段に、この `orderCurrency` を持つ行がありますか？ 完全一致で照合されます |
| 4 | **ユーザー通貨** | `userCurrency` を固定した場合、そのペアが行にありますか？ 省略すればこの次元は除外されます |
| 5 | **契約のステータスと有効期間** | 行は `Active` で、本日はその有効期間内ですか？ 終了した行は照会レスポンスにまったく表示されません |
| 6 | **国** | `payMethodCountry` を固定した場合、行の決済手段の国と一致しますか？ グローバルに利用可能な決済手段は国に属さないため、固定しないでください |
| 7 | **端末** | 送信した `userTerminal` は、その決済手段がサポートするものですか？ |
| 8 | **条件付き必須フィールド** | 一部の決済手段は追加フィールドを必要とします。不足するとフィールドエラーではなく集合が空になります。[条件付き必須フィールド](/docs/ja/support/conditional-required-fields-faq) を参照 |
| 9 | **カードまたはトークンデータ** | 生のカードデータや保存済みトークンを送信すると候補はカード系の契約に限定され、トークンは契約済みの決済手段に解決できる必要があります |
| 10 | **クロスカレンシーの価格設定** | 価格を算出できないクロスカレンシー注文も、ここで拒否されます |
| 11 | **リアルタイムの利用可否** | 決済手段が契約済みでも、その時点で利用できない場合があります |

つまり、**「未有効化」と「送信ミス」はコードではなく、消去法で区別します。** 最速の切り分け方法：

1. `/api/v1/paymethodconfig/inquiry` を呼び出します。決済手段、国、通貨の組み合わせがレスポンスにない場合、
   それは設定の問題です。ペイロードを何を変えても解決しません。
2. レスポンスにあり、利用可否が「available」であれば、その組み合わせは契約済みであり、拒否はリクエスト自体が追加した
   何か — 上記の 1、6、7、8、9 のいずれか — に起因します。任意の絞り込みパラメーターを 1 つずつ外して再試行してください。

`A0018` の隣にある 2 つのコードは、契約の欠如とは反対の意味を持ちます。**複数**の一致があるため、より具体的に
指定する必要があるという意味です：`A0022`（プロダクトを指定する）と `A0033`（決済手段の国を指定する）。

## サポートされていない通貨に、なぜ専用のエラーコードがないのですか？

通貨は上記の次元のひとつであり、独立した検証ではないためです。契約していない注文通貨や通貨ペアは、決済手段の
文言で `A0018` として返されます。通貨固有のコードを待たないでください。
[通貨は使用前に有効化する必要がありますか？](/docs/ja/support/currency-and-method-enablement-faq) を参照してください。

## 同じコードがサブスクリプションで表示されました。同じ意味ですか？

コードは共通ですが、読み方が異なります。アクワイアリング側では上記の契約の不一致です。
**サブスクリプション**側では、その契約者に課金するために使用できる決済手段が残っていないことを意味します —
たとえば、保存済みの決済手段が削除された場合です。公開済みのコード一覧は後者の意味で注釈しており、
受信するメッセージテキストは契約の文言です。呼び出した API と合わせて読んでください。

実装上考慮すべき結果がひとつあります。初回期間後の更新において、このコードは**再試行不可**として扱われます —
スケジュールは再試行を続けません。再試行を待つのではなく、決済手段を修正してください。
[サブスクリプションの再試行と決済手段](/docs/ja/support/subscription-retry-and-payment-methods-faq) を参照してください。

## キーをローテーションしたら `A0001` が出るようになりました。新しいキーが壊れているのですか？

通常はそうではありません。次の 3 点を順番に除外してください。

| 確認事項 | 詳細 |
| - | - |
| **環境** | サンドボックスと本番は別々のキー**と**別々のドメインを持ちます。サンドボックスのキーを本番ドメインに送ると `A0001` になり、逆も同様です |
| **有効化状態** | 提出したキーは有効になるまで使用できません。審査中の提出、または却下された提出は、存在しないキーと同じように振る舞います |
| **伝播** | 有効になった直後のキーは、すべての場所で同じ瞬間に受け付けられるわけではありません。ローテーションは切り替えではなく重複期間を設けて行ってください — 新しいキーを追加し、待ち、新しいキーで実トラフィックが検証できるまで古いキーを残しておきます |

この期間の長さ、キー・そのスコープ・署名・IP 許可リストが検証される正確な順序、`A0001` と `A0002` およびスコープ拒否との違いは
[API 認証情報のスコープと認証エラーのトリアージ](/docs/ja/support/api-credential-scope-and-triage-faq) にあります。
提出とローテーションの手順、提出が却下された理由の確認場所は
[本番 API キーと公開鍵](/docs/ja/support/production-api-key-and-public-key-faq) にあります。

キーは受け付けられたのに呼び出しが拒否される場合、原因は通常そのキーに許可されている操作の範囲です — `A0001` ではなく、
別の拒否になります。

## `C0005` は実際に何を教えてくれるのですか？ 理由はどこにありますか？

`C0005` — *Payment channel rejection* — は、決済手段が決済を拒否したことを意味します。これ単体ではほとんど何も
分かりません。さまざまな根本的な拒否がこのコードに対応付けられており、すべてのカード拒否も含まれるからです。

詳細は**注文とともに返される失敗理由**にあり、これには 2 つの部分があります。

| フィールド | 用途 |
| - | - |
| `orderFailedCode` | 自社コードで分岐に使用する安定した値 |
| `orderFailedDescription` | サポートとのやり取りやログ向けの、人が読めるテキスト |

これらは [注文照会](/docs/api-reference/introduction) で `orderFailedReason` として一緒に返され、Portal では取引レコード上に
同じペアが *Order Failure Code* と *Order Failure Description* として表示されます。
[取引フィールドリファレンス](/docs/ja/support/transaction-field-reference-faq) を参照してください。

したがって手順はこうです。**`C0005` で分岐せず、その中の失敗コードで分岐してください。** 認証ステップを開始できなかった、
発行銀行が不正または法的理由でカードを拒否した、といった説明はまさにこの形で届くもので、それぞれまったく異なる対応が必要です。

## `C0005` の失敗のうち、再試行する価値があるのはどれですか？

再試行可能かどうかは `C0005` ではなく、根本的な理由に属します。分類と各クラスへの対応 — 決して再試行してはいけない拒否、
顧客に認証情報を再入力してもらう必要があるものを含む — は
[カードが拒否されました。再試行すべきですか？](/docs/ja/support/order-amount-precision-and-decline-faq) にあります。

それに加えて 2 つのルールがあります。

* **顧客に分かりやすいメッセージを表示し、別の決済手段を提示してください。** Waffo は連携受け入れテストにおいて、
  チャネル拒否とシステム利用不可のレスポンスについて、まさにこの振る舞いを確認します。公開済みの
  [受け入れ基準](/docs/ja/developer-docs/tools-and-references/references/acceptance-criteria) を参照してください。
* サンドボックスでは、いくつかの予約済み金額が意図的に `C0005` を返すため、この経路を構築できます。特別だと想定していない
  金額で `C0005` が返された場合は、結論を出す前に予約済み一覧を確認してください。
  [サンドボックスシミュレーター](/docs/ja/developer-docs/tools-and-references/developer-tools/sandbox-simulator) を参照してください。

## 返金が `A0017` で返されました。この注文は API で返金できるようになりますか？

`A0017` — *決済チャネルがサポートしていないため、注文を返金できない* — は決済手段自体に由来し、**再試行不可**です。
変更せずに再送信しても同じ結果になります。

これを最終的なものとして扱う前に、他の返金拒否と区別してください。

| 状況 | 確認場所 |
| - | - |
| 決済手段が返金をまったく許可していない、または要求した形式の返金を許可していない | 契約上の返金ポリシー — 照会レスポンスの `refundAllowed`、Service → Payin の `Refundable` |
| 返金期間が終了している | 同じ行の返金期間 |
| 注文が返金可能な状態でない、またはすでに全額返金済み | 注文自体 |
| 決済手段が API 経由の返金を処理できない | `A0017` |

この 4 つと、それぞれの場合の対応は
[決済手段の返金と上限](/docs/ja/support/payment-method-refund-limits-faq) と
[返金 FAQ](/docs/ja/support/refund-faq) にあります。

## 次にどこを見ればよいですか？

| 質問 | ページ |
| - | - |
| 自分の上限は何で、どの上限に達したのか？ | [Payin 契約と取引上限](/docs/ja/support/payin-agreements-and-limits-faq) |
| コードから、自分が何を契約しているかを知るには？ | [決済手段の設定と上限](/docs/ja/support/payment-method-config-and-limits-faq) |
| これは通貨の問題か？ | [通貨と決済手段の有効化](/docs/ja/support/currency-and-method-enablement-faq) |
| これはそもそも自分で修正できるものか？ | [自分で変更できるものは何ですか？](/docs/ja/support/self-service-boundaries-faq) |
| 署名、冪等性、不明ステータスの処理 | [よくあるエラーのトラブルシューティング](/docs/ja/support/errors-troubleshooting-guide) |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.