支払いDeclineと処理エラー
Alexaスキルで使用されているAmazon Payの支払い機能は、 EUおよび英国では2022年12月31、日本では2023年1月31日、米国では2023年3月31日に無効になります。
詳細については、廃止された機能を参照してください。
このセクションの内容
Alexaエラー
connections.Responseのstatus属性は戻りステータスを返します。これはHTTPステータスとメッセージを含むオブジェクトです。
返されるエラーの応答のサンプルを次に示します。
{
"type":"Connections.Response",
"status":{"code":"403",
"message":"UnsupportedClientPlatform"},
"name":"Charge",
"payload":object,
"token":"TestToken"
}
Alexaスキル向けAmazon Payエラー
Setup APIエラー
次の表に、Amazon Payによって処理されるSetupエラーの一覧を示します。
エラータイプとステータスコード | エラーコード | ユーザー向け音声プロンプト | エラーメッセージと是正措置 |
ランタイムエラー 403 |
UnsupportedClientPlatform | すみません。問題が発生しました。 | ユーザーのAlexaデバイスはサポートされていません。続行するには、ユーザーがデバイスソフトウェアを更新してからリクエストをやり直す必要があります。 |
ランタイムエラー 400 |
InvalidShippingAddress | Amazonアカウントのお届け先の住所に問題があります。Amazonアカウントのお届け先の住所を更新してください。 | ユーザーのアカウントで指定されている配送先住所が有効ではないため、Billing Agreementをセットアップできませんでした。ユーザーは、アカウントの配送先住所の設定を更新してからやり直す必要があります。 |
ランタイムエラー 403 |
InvalidMerchantAccountStatus | すみません。現在、{merchantName}には注文できません。 | 販売事業者のアカウントが、このリクエストを実行するのに適切な状態ではありません。たとえば、販売事業者のアカウントが停止されている場合や登録が完了していない場合にこのエラーが発生します。この問題の解決方法については、販売事業者向けサポートに問い合わせてください。 |
ランタイムエラー 429 |
RequestThrottled | すみません。問題が発生しました。後でもう一度試してください。 | リクエストレートがこのサービスに割り当てられているスロットリング制限を超えているため、リクエストが拒否されました。後でもう一度試してみてください。 |
次の表に、販売事業者によって処理されるSetupエラーの一覧を示します。これらのエラーは、Amazon Payのインテグレーション段階で解決する必要があります。
エラータイプとステータスコード | エラーコード | エラーメッセージと是正措置 |
インテグレーションエラー 400 |
InvalidSellerId | 出品者IDが有効ではありません。出品者IDフィールドで有効な出品者ID(マーチャントIDとも呼ばれます)を指定してください。出品者IDは、セラーセントラルのインテグレーション>MWS Access Keyページで確認できます。 |
インテグレーションエラー 400 |
UnsupportedCurrency | 指定した元帳通貨はサポートされていません。ledgerCurrencyCodeフィールドで有効な通貨を指定してください。 ISO 4217形式の通貨コード(たとえば、日本はJPY)を使用してください。 |
インテグレーションエラー 400 |
UnsupportedCountryOfEstablishment | 指定した設立国はサポートされていません。countryOfEstablishmentフィールドで有効な国を指定してください。 ISO 3166-2形式の国コードを使用してください。入力する国は、Amazon Payへの登録時に選択した国と同じである必要があります。 |
インテグレーションエラー 400 |
InvalidParameterValue |
<数値>のパラメーター検証エラーが検出されました。<パラメーター名>で指定された値<'指定された値'>が制約を満たしていません:<制約の詳細>。 リクエストを解析するために必要な1つ以上のパラメーターが見つからないか、または正しくありません。(エラーメッセージに示されているように)エラーを修正してから、もう一度試してください。 |
インテグレーションエラー 400 |
BuyerEqualsSeller | 指定したアカウントはこのトランザクションに使用できません。ユーザーフローのテストに使用したアカウントが販売事業者アカウントです。ユーザーフローをテストするときは、別のアカウントを使用する必要があります。ユーザーテストアカウントを作成してから、もう一度試してください。 |
インテグレーションエラー 403 |
UnauthorizedAccess | 指定された販売事業者アカウントにはこのリクエストを行う権限がありません。 |
ランタイムエラー 400 |
InvalidBillingAgreementType | 指定されたBillingAgreementのTypeが正しくありません。正しい値:CustomerInitiatedTransaction or MerchantInitiatedTransaction |
ランタイムエラー 400 |
InvalidSubscriptionAmount | 指定された金額か通貨が正しくありません。正しい金額と通貨を設定し、再度実行してください。 |
インテグレーションエラー 403 |
ReleaseEnvironmentNotAllowed | SandboxのリクエストはDevelopmentステージでのみ許可されています。 |
Sandboxモードエラー 400 |
InvalidSandboxCustomerEmail | SandboxCustomerEmailIdパラメーター値が有効ではありません。指定されたSandboxCustomerEmailIdに関連付けられたサンドボックスユーザーがありません。セラーセントラルのインテグレーション>テストアカウントページで作成したテストアカウントに指定されているメールアドレスを使用してください。 |
ランタイムエラー 500 |
InternalServerError | 内部サーバーエラーが発生しました。エラーにより、サービスがユーザーのリクエストに正しく応答できませんでした。ユーザーエクスペリエンスの低下を防ぐために、このエラーが発生した場合の再試行ロジックを追加することをお勧めします。追加しない場合、ユーザーが再試行する必要があります。 |
ランタイムエラー 500 |
ServiceUnavailable | サービスが一時的に使用できません。これにより、サービスがユーザーのリクエストに正しく応答できませんでした。ユーザーエクスペリエンスの低下を防ぐために、このエラーが発生した場合の再試行ロジックを追加することをお勧めします。 |
アクセス権限エラー
次の表に、アクセス権限エラーの一覧を示します。これらはすべて販売事業者によって処理されます。
エラータイプとステータスコード | エラーコード | 販売事業者へのエラーメッセージ | 是正措置 |
インテグレーションエラー 403 |
MissingPermissionsToAccessResource | なし | アクションは不要です。Amazon Payが自動的にAlexaアプリにカードを送付して、音声ショッピングの設定とAmazon Pay権限設定を有効にするよう促します。 |
インテグレーションエラー 403 |
FORBIDDEN | このリソースへのアクセスをリクエストできません。 | 販売事業者のスキルが、リクエストされているアクセス権限を宣言していません。このエラーを解決するには、開発者ポータルでスキルに対してAmazon Payのアクセス権限をリクエストします。 |
ランタイムエラー 403 |
ACCESS_NOT_REQUESTED | このリソースへのアクセスはまだリクエストされていません。 | ユーザーにアクセス権限の管理ページが表示されていません。ユーザーにアクセス権限の管理ページが表示されるようにスキルを設定する必要があります。このエラーを解決するには、スキルでAmazon Payのアクセス権限を有効にするようにユーザーに依頼するを参照してください。 |
ランタイムエラー 403 |
ACCESS_DENIED | このリソースへのアクセスが拒否されました。 | ユーザーにアクセス権限の管理ページが表示されていません。setup か charge をコールする前にユーザがアクセス権限があるをご確認ください。、ユーザーが権限ない場合にユーザー権限を許可するようお求めください。 このエラーを解決するには、スキルでAmazon Payのアクセス権限を有効にするようにユーザーに依頼するを参照してください。 |
Amazon Payからの応答の例:
{
"type":"Connections.Response",
"status":{"code":"403",
"message":"InvalidAccountStatus"},
"name":"Charge",
"payload": { "errorCode": "InvalidAccountStatus",
"errorMessage": "Merchant account is not in an appropriate state to execute this request"
}
}
スキルでAmazon Payのアクセス権限を有効にするようにユーザーに依頼する
ユーザーが、音声ショッピングの設定 か スキルでAmazon Payのアクセス権限を、有効にしていない場合は、有効にするように依頼できます。 SetupやChargeを呼び出す前に手動で権限チェックする、か、Setupを呼び出せばAlexaが自動で権限チェックとその後の発話を実施してくれます。 もし、Buyer IDや購入者住所を取得している場合は、APIを呼び出す前に手動で権限チェックを呼び出す必要があります。
次のコードサンプルは、Amazon Payのアクセス権限を有効にするようにユーザーに指示する方法を示しています。
この処理は、ユーザーが請求フローに入った直後か、スキルの起動時に使用します。
function handleErrors(statusCode, handlerInput ) {
let errorCode = handlerInput.requestEnvelope.request.payload.errorCode;
let errorMessage = handlerInput.requestEnvelope.request.payload.errorMessage;
switch ( errorCode ) {
case "ACCESS_NOT_REQUESTED":
case 'ACCESS_DENIED':
return handlerInput.responseBuilder
.speak('Amazon Payの権限が有効になっておりません。Alexaアプリにカードを送りましたのでAlexaアプリからAmazon Payを有効にしてください。’)
.withAskForPermissionsConsentCard([ 'payments:autopay_consent' ])
.getResponse();
break;
default:
// for debug
//return handlerInput.responseBuilder
// .speak(’エラーが発生しました。エラーコード ' + errorCode + '。エラーペイロードメッセージ ' + errorMessage’)
// .getResponse();
return handlerInput.responseBuilder
.speak('申し訳ございません、エラーが発生しました。しばらくたってからもう一度お試しください。')
.getResponse();
}
}
Charge APIエラー
次の表に、Amazon Payによって処理されるChargeエラーの一覧を示します。
エラータイプとステータスコード | エラーコード | ユーザー向け音声プロンプト | エラーメッセージと是正措置 |
ランタイムエラー 403 |
UnsupportedClientPlatform | すみません。問題が発生しました。 | ユーザーのAlexaデバイスはサポートされていません。続行するには、ユーザーがデバイスソフトウェアを更新してからリクエストをやり直す必要があります。 |
ランタイムエラー 400 |
InvalidPaymentMethod | Amazonアカウントの支払方法に問題があります。Amazonアカウントのお支払情報を修正してください。 | ユーザーのアカウントで指定されている支払方法が有効ではないため、支払いを処理できませんでした。ユーザーは、アカウントの支払方法の設定を更新してからやり直す必要があります。 |
ランタイムエラー 403 |
InvalidAccountStatus | すみません。現在、${merchantName}には注文できません。 | 販売事業者のアカウントが、このリクエストを実行するのに適切な状態ではありません。たとえば、販売事業者のアカウントが停止されている場合や登録が完了していない場合にこのエラーが発生します。この問題の解決方法については、販売事業者向けサポートに問い合わせてください。 |
ランタイムエラー 429 |
RequestThrottled | すみません。問題が発生しました。後でもう一度試してください。 | リクエストレートがこのサービスに割り当てられているスロットリング制限を超えているため、リクエストが拒否されました。後でもう一度試してください。 |
次の表に、販売事業者によって処理されるChargeエラーの一覧を示します。これらのエラーは、Amazon Payのインテグレーション段階で解決する必要があります。
エラータイプとステータスコード | エラーコード | エラーメッセージと是正措置 |
インテグレーションエラー 400 |
InvalidSellerId | 出品者IDが有効ではありません。出品者IDフィールドで有効な出品者ID(マーチャントIDとも呼ばれます)を指定してください。出品者IDは、セラーセントラルのインテグレーション>MWS Access Keyページで確認できます。 |
インテグレーションエラー 400 |
InvalidParameterValue |
<数値>のパラメーター検証エラーが検出されました。<パラメーター名>で指定された値<'指定された値'>が制約を満たしていません:<制約の詳細>。 リクエストを解析するために必要な1つ以上のパラメーターが見つからないか、または正しくありません。(エラーメッセージに示されているように)エラーを修正してから、もう一度試してください。 |
インテグレーションエラー 403 |
UnauthorizedAccess | 指定された販売事業者アカウントにはこのリクエストを行う権限がありません。 |
インテグレーションエラー 403 |
ReleaseEnvironmentNotAllowed | サンドボックス環境は、開発のステージのみでご利用頂けます。開発の環境を利用してサンドボックスをご利用ください。 |
ランタイムエラー 400 |
InvalidBillingAgreementId | このリクエストで送信したBilling Agreement IDが有効ではありません。有効なIDを指定してください。ユーザーの有効なIDを取得するには、Setup APIをもう一度呼び出します。 |
ランタイムエラー 400 |
InvalidBillingAgreementStatus | Billing Agreementオブジェクトの操作を、その操作が許可されていない状態のオブジェクトに対して試みました。ユーザーに請求するためには、ユーザーがAmazonにアクセスして有効な支払方法を更新または入力することによって、Billing Agreementの状態をOpenに戻す必要があります。Billing AgreementがOpenでない場合は、ユーザーの住所を受け取れない可能性があります。 |
ランタイムエラー 400 |
InvalidPaymentAction | 指定された支払いアクションは有効ではありません。 有効な支払いアクションは次のとおりです。
|
ランタイムエラー 400 |
InvalidAuthorizationAmount | 指定されたオーソリ金額または通貨が有効ではありません。有効なオーソリ金額または通貨を指定してからやり直してください。 |
ランタイムエラー 400 |
PeriodicAmountExceeded | このリクエストで要求されたBilling Agreementオブジェクトは、指定期間内で設定金額に対して既にオーソリされています。指定されたオーソリ金額以上のオーソリを受け付けることはできません。 |
ランタイムエラー 403 |
ProviderNotAuthorized | 指定されたプロバイダーIDは、このトランザクションを処理することを認可されていません。 |
ランタイムエラー 400 |
DuplicateRequest | 指定されたAuthorizationReferenceIdのリクエストは、別のパラメーターで既に処理されています。 |
ランタイムエラー 500 |
InternalServerError | 内部サーバーエラーが発生しました。エラーにより、サービスがユーザーのリクエストに正しく応答できませんでした。ユーザーエクスペリエンスの低下を防ぐために、このエラーが発生した場合の再試行ロジックを追加することをお勧めします。追加しない場合、ユーザーが再試行する必要があります。 |
ランタイムエラー 500 |
ServiceUnavailable | サービスが一時的に使用できないため、ユーザーのリクエストに正しく応答できませんでした。ユーザーエクスペリエンスの低下を防ぐために、このエラーが発生した場合の再試行ロジックを追加することをお勧めします。 |
PINエラー
次の図に、PINエラーの一覧を示します。これらはすべてAmazon Payによって処理されます。
エラータイプとステータスコード | エラーコード | ユーザー向け音声プロンプト | エラーメッセージと是正措置 |
ランタイムエラー 403 |
CustomerApprovalFailure | すみません、まだ問題が解決しません。{active user}さんのAlexaアプリで、音声ショッピング用の確認コードを確認するか、リセットしてください。 | ユーザーが承認を確認するための音声PINを設定していません。ユーザーにやり直しを求めるようにスキルを設定する必要があります。 |
ランタイムエラー 403 |
VoicePurchaseNotEnabled | お支払いを進めるには、{active user}さんのAlexaアプリの「設定」タブで、音声ショッピングを有効にしてください。 | ユーザーが音声ショッピング機能を有効にしていません。販売事業者からのアクションは必要ありません。Alexaのプロンプトにより、アクションが必要であることがユーザーに通知されます。 |
Amazon PayサーバーAPIエラー
Amazon Pay APIエラーコードについては、Amazon Pay APIの仕様を参照してください。
Declineハンドリング
Amazon Payは、支払いにユーザーの1-Click設定を使用します。ユーザーが1-Click設定をしてない場合、 Amazon Payは自動的にご案内のプロンプトをAlexa アプリに送信します。
エラー種類と ステータスコード |
エラーコード | ユーザー向け音声プロンプト | エラーメッセージと是正措置 |
Runtime error 400 |
InvalidShippingAddress | お支払いを進めるには、${activeUser} さんのAmazonアカウントで1-Click設定を有効にする必要があります。有効化の設定については、Alexaアプリにリンクを送信しました。設定が完了したら、もう一度試してください。 |
ユーザーが1-Clickの設定をしていません。 Amazon Payは、自動的にユーザーに1-Clickの設定の更新方法のプロンプトを送信します。 |
Runtime error 400 |
InvalidPaymentMethod |
既定の1-Click設定のお支払い方法を更新する必要があります。お支払い方法の更新については、${activeUser} さんのAlexaアプリにリンクを送信しました。更新が完了したら、もう一度試してください。 OR 既定の1-Click設定のお支払い方法に請求先住所が設定されていません。請求先住所の設定については、${activeUser} さんのAlexaアプリにリンクを送信しました。設定が完了したら、もう一度試してください。 OR この事業者では既定の1-Click設定のお支払い方法を利用できません。お支払い方法の変更については、${activeUser} さんのAlexaアプリにリンクを送信しました。完了したら、もう一度試してください。 |
ユーザーのアカウントで既定のお支払い情報が設定されていません。 Amazon Payは、自動的にユーザーに既定のお支払い情報の更新方法のプロンプトを送信します。 |
Runtime error 400 |
UnsupportedCustomerAccount | Eメールアドレスが登録されていません。${activeUser} さんのAmazonアカウントでアカウントサービスを選択し、ログインとセキュリティから登録をしてください。設定が完了したら、もう一度試してください。 |
ユーザーのアカウントにメールアドレスが登録されていない。 Amazon Payは、自動的にユーザーにメールアドレスの更新方法のプロンプトを送信します。 |
次の表に、Declineのコード、音声プロンプト、および求められる対応の一覧を示します。厳密にはDeclineエラーでないものも含まれますが、正しく処理する必要があります。
Declineタイプ | 応答 | ユーザー向け音声プロンプト |
InvalidPaymentMethod | AuthorizationStatus.state= Declined; AuthorizationStatus.reasonCode= InvalidPaymentMethod; |
既定の1-Click設定のお支払い方法を更新する必要があります。お支払い方法の更新については、${activeUser} さんのAlexaアプリにリンクを送信しました。更新が完了したら、もう一度試してください。 |
TransactionTimedOut | AuthorizationStatus.state= Declined; AuthorizationStatus.reasonCode= TransactionTimedOut; |
現在、お支払いを処理できません。後でもう一度試してください。 |
AmazonRejected | AuthorizationStatus.state= Declined; AuthorizationStatus.reasonCode= AmazonRejected; |
現在、お支払いを処理できません。後でもう一度試してください。 |
ProcessingFailure | AuthorizationStatus.state= Declined; AuthorizationStatus.reasonCode= ProcessingFailure; |
現在、お支払いを処理できません。後でもう一度試してください。 |
Billing Agreementの状態とエラーコード
Billing Agreementの状態とエラーコードは下記のリストからご確認ください。
状態 | 説明 | 理由コード |
Open | Billing Agreementオブジェクトが有効で、Charge APIを制約なく呼び出せている状態 | N/A |
Suspended | Billing Agreementオブジェクトは、Amazonがオーソリ処理にて支払方法に問題があった場合は、Suspendedに遷移します。 | InvalidPaymentMethod— 支払い方法に問題があります。事業者はSetup APIで受け取ったBilling Agreementの状態に関係なく、Charge APIを呼び出す必要があります。ステータスは単なるBilling Agreementの現在の状態を示すものであり、Charge APIには、購入者のアカウント設定の更新(支払い方法の更新など)を処理し、購入者に請求する前にBilling AgreementをOpenの状態に遷移させる機能があります。 |
Buyer ID エラー
If there is a problem fulfilling your request, you receive an HTTP error. The error codes for an Amazon Pay buyer ID request include:
Status | Error code | Description |
403 | Forbidden | 指定の事業者アカウントが、このリクエストを許可されていない |
400 | InvalidRequest | リクエストに必要なパラメーターが欠落している。もしくは誤ったフォーマットである。 |
400 | InvalidToken | 期限切れ、取り消し、不正なフォーマット、もしくはそ の他の理由で無効になった access token が使われてい る。 |
401 | InsufficientScope | リクエストに必要なスコープにアクセスできない access token が使われている。 |
500 | ServerError | サーバーが実行時エラーになっている。 |
エラーコードに加えて、JSON payload を受け取ります。この例は、エラーレスポンスのサンプルを示しています。
HTTP/1.1 400 Bad Request
Content-Type: application/json;
{
"errorCode": "invalid_token",
"errorMessage": "The access token provided is expired, revoked, malformed, or invalid for other reasons.",
"requestId": "bef0c2f8-e292-4l96-8c95-8833fbd559df"
}
Last updated: Jan 12, 2023