---
title: インスタント支払通知（IPN）を設定する
url: ja/amazon-pay-paymentmethodonfile/ja-set-up-instant-payment-notifications.html
---

Amazon Payトランザクションに関連するイベントの通知を受信するように、インスタント支払通知（IPN）を設定します。 IPNを使用して注文の状態を更新し、トランザクションを処理します。

Note：IPNは <a href="../amazon-pay-checkout/asynchronous-processing.md" target="_blank" rel="noopener noreferrer">非同期トランザクション</a>からの更新を処理するために使用されます。

* TOC
{:toc}
{::options toc_levels="3" /}

***

### IPNの概要

IPNメッセージは、構成可能なエンドポイントに送信されるHTTPS POSTリクエストです。 IPN Message JSONオブジェクトを解析します。

#### IPNスキーマ

```
{
    "MerchantID": "Relevant Merchant for the notification",
    "ObjectType": "one of: CHARGE_PERMISSION, CHARGE, REFUND, CHARGEBACK", 
    "ObjectId": "Id of relevant object",
    "ChargePermissionId": "Id of relevant Charge Permission",
    "NotificationType": "STATE_CHANGE",
    "NotificationId": "Randomly generated Id, used for tracking only",
    "NotificationVersion": "V2"
}
```

#### IPNパラメータ

<table width="100%" border="1">
    <tbody>
        <tr id="HcR9CAJfgaz">
            <td id="s:HcR9CAJfgaz;HcR9CAW2jX0" style="vertical-align: top; font-weight: bold; width: 30%;" class="bold">
                パラメータ<br></td>
            <td id="s:HcR9CAJfgaz;HcR9CAXv3gY" style="vertical-align: top; font-weight: bold; width: 70%;" class="bold">
                説明<br></td>
        </tr>
        <tr id="HcR9CAaHAr6">
            <td id="s:HcR9CAaHAr6;HcR9CAW2jX0" style="vertical-align: top;">merchantID<br></td>
            <td id="s:HcR9CAaHAr6;HcR9CAXv3gY" style="vertical-align: top;"> IPNメッセージに関連付けられて事業者の識別子<br></td>
        </tr>
        <tr id="HcR9CA9IKP5">
            <td id="s:HcR9CA9IKP5;HcR9CAW2jX0" style="vertical-align: top;"> objectType<br></td>
            <td id="s:HcR9CA9IKP5;HcR9CAXv3gY" style="vertical-align: top;"> IPNメッセージに関連付けられているオブジェクトのタイプ<br><br>可能な値：
                "CHARGE_PERMISSION"、CHARGE "、" REFUND "、" CHARGEBACK " <br></td>
        </tr>
        <tr id="HcR9CALRXXa">
            <td id="s:HcR9CALRXXa;HcR9CAW2jX0" style="vertical-align: top;"> objectId<br></td>
            <td id="s:HcR9CALRXXa;HcR9CAXv3gY" style="vertical-align: top;"> IPNメッセージに関連付けられているオブジェクトの識別子<br></td>
        </tr>
        <tr>
            <td style="vertical-align: top;">chargePermissionId<br></td>
            <td style="vertical-align: top;"> IPNメッセージに関連付けられたCharge Permissionの識別子<br></td>
        </tr>
        <tr id="HcR9CAYklAh">
            <td id="s:HcR9CAYklAh;HcR9CAW2jX0" style="vertical-align: top;"> notificationType<br></td>
            <td id="s:HcR9CAYklAh;HcR9CAXv3gY" style="vertical-align: top;"> IPNメッセージタイプ<br><br>可能な値： "STATE_CHANGE"、"ATTRIBUTE_CHANGE"
                <br></td>
        </tr>
        <tr id="HcR9CAc0bBd">
            <td id="s:HcR9CAc0bBd;HcR9CAW2jX0" style="vertical-align: top;"> notificationId<br></td>
            <td id="s:HcR9CAc0bBd;HcR9CAXv3gY" style="vertical-align: top;"> IPNメッセージ識別子。追跡目的でのみ使用されます<br></td>
        </tr>
        <tr id="HcR9CA4O1EO">
            <td id="s:HcR9CA4O1EO;HcR9CAW2jX0" style="vertical-align: top;"> notificationVersion<br></td>
            <td id="s:HcR9CA4O1EO;HcR9CAXv3gY" style="vertical-align: top;">
                IPNメッセージ形式のversion。これはAmazon Pay API versionとは関係ありません。<br></td>
        </tr>
    </tbody>
</table>

トランザクションの状態を判別するには、メッセージで指定されたトランザクションに対してGET API実行する必要があります。詳細については、「IPNタイプ」セクションを参照してください。

***

### IPNエンドポイントの設定

Amazon Pay事業者のアカウント管理サイト <a href="http://sellercentral.amazon.com/" target="_blank" rel="noopener noreferrer">セラーセントラル</a>で本番環境ととSANDBOX環境のセットアップIPNエンドポイントを設定することができます。画面上部のメニュー中央にあるドロップダウンオプションから環境を選択します。 

<img style="width:100%;" src="https://m.media-amazon.com/images/G/01/EPSDocumentation/AmazonPay/Integration/SellerCentralEnvironment._CB1565018490_.png">

画面が最小化されている場合、environmentとドロップダウンオプションは次のボタンに置​​き換えられます。

<img style="width:40px;" src="https://m.media-amazon.com/images/G/01/EPSDocumentation/AmazonPay/Integration/SellerCentralEnvironmentMobile._CB440015892_.png">

環境を選択したら、次の手順に従ってIPNメッセージの受信を開始します。



1. セラーセントラルでエンドポイントを設定します。
    1. エンドポイントを設定するには、 <a href="http://sellercentral.amazon.com/" target="_blank" rel="noopener noreferrer">セラーセントラル</a>にサインインし、[<strong>設定]</strong>をクリックして、[<strong>インテグレーション設定]</strong>をクリックします。
    2. <strong>[インスタント通知の設定]</strong>セクションで、[<strong>編集</strong>]をクリックし、インスタント通知を受信するエンドポイントで<strong>事業者URL</strong>を入力します。本番環境ではHTTPSを使用する必要がありますが、SANDBOX環境では、HTTPSの代わりにHTTPを使用できます。ただし、HTTPSエンドポイントを指定する場合は、証明書が有効であり、証明書チェーンがルート証明書に接続されている必要があります。
    3. インテグレーターが2つの異なるエンドポイントで同じイベントのIPNを受信する必要がある場合は、<strong>Integrator URL</strong>フィールドに<strong>URLを入力でき</strong>ます。
2. <a href="https://digicert.com/help/" target="_blank" rel="noopener noreferrer">https://digicert.com/help/</a>などのツールを使用してエンドポイントとSSL証明書をチェックし、それらが正しく機能していることを確認します。
3. エンドポイントに対して行われたHTTPS POSTリクエストを受信し、通知を処理できるWebサービスを実行していることを確認します。ユーザーログインを必要とする.htaccessルールなどの潜在的なアクセス保護を削除します。
4. HTTPSが信頼できる証明書プロバイダーからの有効なSSL証明書を使用していることを確認します。詳細については、 <a href="https://developer.amazon.com/docs/amazon-pay-onetime/introduction-to-certificates.html" target="_blank" rel="noopener noreferrer">SSL認証</a>を参照してください。

***

### IPNタイプ

#### Charge Permission

Charge Permissionオブジェクトの<a href="../amazon-pay-paymentmethodonfile/charge-permission.md#states-and-reason-codes" target="_blank" rel="noopener noreferrer">state</a>が変化するたびにIPNを受け取ります。なお、いくつかのIPNはRecurringまたは、PaymentMethodOnFileのケースのみに送付され、OneTimeでは送付されません。 IPNを受け取るタイミングの例：

<ul>
    <li>購入者が <a href="http://pay.amazon.co.jp/" target="_blank" rel="noopener noreferrer">pay.amazon.co.jp</a>でOneTime、Recurring及びPaymentMethodOnFileのCharge Permissionの支払い方法を更新</li>
    <li>支払いでdeclineとなり、RecurringまたはPaymentMethodOnFileのCharge Permissionがchargeableからnon-chargeablestateに移行</li>
    <li>購入者が <a href="http://pay.amazon.co.jp/" target="_blank" rel="noopener noreferrer">pay.amazon.co.jp</a>でRecurringまたはPaymentMethodOnFileのCharge Permissionをキャンセル</li>
    <li>不正取引のためにAmazon PayがRecurringまたはPaymentMethodOnFileのCharge Permissionを閉じるかキャンセル</li>
    <li>13か月間使用されなかった為、Amazon PayがRecurringまたはPaymentMethodOnFileのCharge Permissionをclosed stateに移行</li>
</ul>

**IPNメッセージの例**

```
{
    "Type" : "Notification", 
    "MessageId" : "a7045d68-12c9-5bc2-8447-0bb63262b8dd", 
    "TopicArn" : "arn:aws:sns:us-east-1:291180941288:A3BXB0YN3XH17HAEMGQX8TKDO54",
    "Message" : "{\"MerchantID\":\"AEMGQX8TKDO54\",\"ObjectType\":\"CHARGE_PERMISSION\",\"ObjectId\":\"S01-0539563-2966012\",\"NotificationType\":\"STATE_CHANGE\",\"NotificationId\":\"dda4e3a5-ed5f-4766-b47f-4d8eb133bb01\",\"NotificationVersion\":\"V2\"}",
    "Timestamp" : "2020-03-07T22:21:31.169Z",
    "SignatureVersion" : "1", 
    "Signature" : "hyj+azIy4dxAf2JmB/AgNSYmW+vL09+wXUq4oiLUUhfgQY1/wvNzT5Nq3ezF1+/EjVc+5RTe0axXgyhTn3vUO93q9nmWXm+LjojbGilcSg0Ey40P5XEaOTYhVWzq12ffR5cUqG2PN0uLFN2WQuNIFCko3uPf1N74mnQNj27FWVUt/NjNwZ6kigJBmzio/Vv25B6RGXp71fXPunT5CeoGkcQyhlUn3l0Y65jME0OjNaQhAG05t1F8D8h1vY9ouRjiTuUCdiprv6udnb1P3WyK4JtdAJ3OtORkKK73gklSKzC2rQL7y1VDOE2C4wJZcVxj57EcQFFkb4wAfzsUeZ+Sfg==",
    "SigningCertURL" : "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-a86cb10b4e1f29c941702d737128f7b6.pem",
    "UnsubscribeURL" : "https://sns.us-east-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:291180941288:A3BXB0YN3XH17HAEMGQX8TKDO54:9bea22b9-d89f-452c-bf36-4d6d20e12df4"
}
```

#### Charge

Chargeオブジェクトの<a href="../amazon-pay-paymentmethodonfile/charge.md#states-and-reason-codes" target="_blank" rel="noopener noreferrer">state</a>が変化するたびにIPNを受け取ります。 <a href="../amazon-pay-paymentmethodonfile/charge.md#get-charge" target="_blank" rel="noopener noreferrer">Get Charge</a>を使用してChargeの状態を確認し、Chargeが成功したかどうかを確認します。 IPNを受け取るタイミングの例：

<ul>
    <li><a href="../amazon-pay-paymentmethodonfile/charge.md#create-charge" target="_blank" rel="noopener noreferrer">Create
            Charge</a>を実行。
    </li>
    <li>Chargeのオーソリ実施すると、AuthorizationInitiated状態で保留のレスポンスを受信します</li>
    <li>Chargeの売上請求実施すると、CaptureInitiated状態で保留のレスポンスを受信します</li>
    <li>Chargeがキャンセルされる</li>
</ul>

**IPNメッセージの例**

```
{
    "Type" : "Notification", 
    "MessageId" : "a7045d68-12c9-5bc2-8447-0bb63262b8dd", 
    "TopicArn" : "arn:aws:sns:us-east-1:291180941288:A3BXB0YN3XH17HAEMGQX8TKDO54",
    "Message" : "{\"MerchantID\":\"AEMGQX8TKDO54\",\"ObjectType\":\"CHARGE\",\"ObjectId\":\"S01-0000000-0000000-C000000\",\"ChargePermissionId\":\"S01-0000000-0000000\",\"NotificationType\":\"STATE_CHANGE\",\"NotificationId\":\"dda4e3a5-ed5f-4766-b47f-4d8eb133bb01\",\"NotificationVersion\":\"V2\"}",
    "Timestamp" : "2020-03-07T22:21:31.169Z",
    "SignatureVersion" : "1", 
    "Signature" : "hyj+azIy4dxAf2JmB/AgNSYmW+vL09+wXUq4oiLUUhfgQY1/wvNzT5Nq3ezF1+/EjVc+5RTe0axXgyhTn3vUO93q9nmWXm+LjojbGilcSg0Ey40P5XEaOTYhVWzq12ffR5cUqG2PN0uLFN2WQuNIFCko3uPf1N74mnQNj27FWVUt/NjNwZ6kigJBmzio/Vv25B6RGXp71fXPunT5CeoGkcQyhlUn3l0Y65jME0OjNaQhAG05t1F8D8h1vY9ouRjiTuUCdiprv6udnb1P3WyK4JtdAJ3OtORkKK73gklSKzC2rQL7y1VDOE2C4wJZcVxj57EcQFFkb4wAfzsUeZ+Sfg==",
    "SigningCertURL" : "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-a86cb10b4e1f29c941702d737128f7b6.pem",
    "UnsubscribeURL" : "https://sns.us-east-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:291180941288:A3BXB0YN3XH17HAEMGQX8TKDO54:9bea22b9-d89f-452c-bf36-4d6d20e12df4"
}
```

#### Refund

返金オブジェクトの<a href="../amazon-pay-api-v2/refund.md#states-and-reason-codes" target="_blank" rel="noopener noreferrer">state</a>が変わるたびにIPNを受け取ります。返金は<a href="../amazon-pay-checkout/asynchronous-processing.md" target="_blank" rel="noopener noreferrer">非同期で処理</a>されるため、返金の処理が完了するとIPNを受け取ります。 <a href="../amazon-pay-api-v2/refund.md#get-refund" target="_blank" rel="noopener noreferrer">Get Refund</a>を使用して返金の状態を確認し、返金が成功したかどうかを確認します。

**IPNメッセージの例**

```
{
    "Type" : "Notification", 
    "MessageId" : "a7045d68-12c9-5bc2-8447-0bb63262b8dd", 
    "TopicArn" : "arn:aws:sns:us-east-1:291180941288:A3BXB0YN3XH17HAEMGQX8TKDO54",
    "Message" : "{\"MerchantID\":\"AEMGQX8TKDO54\",\"ObjectType\":\"REFUND\",\"ObjectId\":\"S01-0000000-0000000-R000000\",\"ChargePermissionId\":\"S01-0000000-0000000\",\"NotificationType\":\"STATE_CHANGE\",\"NotificationId\":\"326100f2-eyd3-4a8b-113d-8f48cd2f8f0w\",\"NotificationVersion\":\"V2\"}",
    "Timestamp" : "2020-03-07T22:21:31.169Z",
    "SignatureVersion" : "1", 
    "Signature" : "hyj+azIy4dxAf2JmB/AgNSYmW+vL09+wXUq4oiLUUhfgQY1/wvNzT5Nq3ezF1+/EjVc+5RTe0axXgyhTn3vUO93q9nmWXm+LjojbGilcSg0Ey40P5XEaOTYhVWzq12ffR5cUqG2PN0uLFN2WQuNIFCko3uPf1N74mnQNj27FWVUt/NjNwZ6kigJBmzio/Vv25B6RGXp71fXPunT5CeoGkcQyhlUn3l0Y65jME0OjNaQhAG05t1F8D8h1vY9ouRjiTuUCdiprv6udnb1P3WyK4JtdAJ3OtORkKK73gklSKzC2rQL7y1VDOE2C4wJZcVxj57EcQFFkb4wAfzsUeZ+Sfg==",
    "SigningCertURL" : "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-a86cb10b4e1f29c941702d737128f7b6.pem",
    "UnsubscribeURL" : "https://sns.us-east-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:291180941288:A3BXB0YN3XH17HAEMGQX8TKDO54:9bea22b9-d89f-452c-bf36-4d6d20e12df4"
}
```

#### チャージバック


<p>チャージバックステータスが変更されるたびにIPNを受け取ります。 <code
        class="language-plaintext highlighter-rouge">chargePermissionId</code>を参照して、セラーセントラルでチャージバックの詳細を確認してください。 IPNを受け取るタイミングの例：</p>

<ul>
    <li>購入者がチャージバックを提出しました</li>
    <li>チャージバックのケースは事業者申請で解決されました</li>
    <li>チャージバックのケースは、購入者申請で解決されました</li>
</ul>

**IPNメッセージの例**

```
{
    "Type" : "Notification", 
    "MessageId" : "b8043d28-13c9-1bc2-1883-0cc63262b8ee", 
    "TopicArn" : "arn:aws:sns:us-east-1:291180941288:A3BXB0YN3XH17HAEMGQX8TKDO54",
    "Message" : "{\"MerchantID\":\"AEMGQX8TKDO54\",\"ObjectType\":\"CHARGEBACK\",\"ObjectId\":\"S01-0000000-0000000-C000000\",\"ChargePermissionId\":\"S01-0000000-0000000\",\"NotificationType\":\"STATE_CHANGE\",\"NotificationId\":\"9b4155a0-c396-46d0-83f7-db1cd2cb1568\",\"NotificationVersion\":\"V2\"}",
    "Timestamp" : "2020-03-10T22:21:31.169Z",
    "SignatureVersion" : "1", 
    "Signature" : "utm+azIy4dxAf2JmB/YtHNYmW+vL09+wXUq4oiLIIKfgQY1/wvNzT5Nq3ezF1+/EjVc+1RTe0axXgyhTn3vUO93q9nmZXm+LjojbGilcSg0Ey40P5XEaOTYhVWzq12ffR5cUqG2PN0uLFN2WQuNIFCko3uPf1N74mnQNj27FWVUt/NjNwZ6kigJBmzio/Vv25B6RGXp71fXPunT5CeoGkcQyhlUn3l0Y65jME0OjNaQhAG05t1F8D8h1vY9ouRjiTuUCdiprv6udnb1P3WyK4JtdAJ3OtORkKK73gklSKzC2rQL7y1VDOE2C4wJZcVxj57EcQFFkb4wAfzsUeZ+Sfg==",
    "SigningCertURL" : "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-a86cb10b4e1f29c941702d737128f7b6.pem",
    "UnsubscribeURL" : "https://sns.us-east-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:291180941288:A3BXB0YN3XH17HAEMGQX8TKDO54:9bea22b9-d89f-452c-bf36-4d6d20e12df4"
}
```

***

### IPN再試行ロジック

次の場合、IPN送信を再試行します。

<ul>
    <li>エンドポイントがHTTPステータスコード100〜101および500〜599で応答</li>
    <li>リクエストがタイムアウト（15秒）。リクエストのタイムアウトが発生した場合、次の再試行は1時間ごとに、最大3時間にわたって行われます。</li>
    <li>タイムアウト、エンドポイントに到達できない、SSL証明書の不良などによる接続エラー。</li>
</ul>

***

### ベストプラクティス


#### SANDBOXでテストする

SANDBOXは本番環境に行く前に、インテグレーションをテストすることができます。常に最初にSANDBOX環境でIPN機能を設定してテストすることをお勧めします。本番運用開始前に、必ず本番エンドポイントを追加してください。

<!-- <p>IPNインテグレーションをテストする方法のヒントについては、 <a href="https://pay.amazon.com/blog/the-world-of-instant-payment-notifications" target="_blank" rel="noopener noreferrer">Amazon PayIPNブログ投稿</a>を参照してください。</p> -->

#### 重複通知を処理する

通知が重複する場合があります。 IPNを処理するためのコードがべき等であることを確認してください。考えられる解決策は、すでに処理した通知をログに記録し、同じ通知IDを持つ重複する通知をスキップすることです。












