PayPayポイントコードAPIは、加盟店がポイントコード関連の操作を行い、エンドユーザーに最良の体験を提供するように設計されています。 PayPayクライアントとして登録されると、次の機能が提供されます。
本ドキュメントでは、上記の機能をサポートするAPIについて説明します。
なお、PayPay商品券コードも対応しており、ご利用される場合は、"ポイントコード"を"商品券コード"と読み替えてください。
PayPay OPAの利用を開始するには、事前に定義されたプロセスに従って、PayPay加盟店として登録をしなければなりません。 このプロセスは、情報収集、手動検証、契約確認、およびクレデンシャル情報の発行から構成されます。 PayPayに加盟店が登録されると、加盟店用にOPAクライアントが作成され、以下の項目が設定されます。
これらの設定は、マーチャントパネルを使用して管理するか、または弊社営業担当までご連絡ください。
ポイントコードAPIでは、ポイントコードgroupIdの登録も必要です。加盟店はビジネス要件に応じて、複数のポイントコードgroupIdを持つことができます。
ポイントコードgroupIdの作成については、弊社営業担当による設定が必要です。
ユーザーからのPayPayアプリ、PayPayWeb画面への日本国外からのアクセスは制限されています。詳細については個別にご相談ください。
APIのリクエスト時に加盟店識別子をセットする必要があります。 加盟店識別子をセットするには2つの方法があります。
クエリの中にセットする:
?assumeMerchant={MerchantId}
HTTPヘッダにセットする:
X-ASSUME-MERCHANT: {MerchantId}
両方を指定した場合、クエリにセットしたパラメーターが優先されます。
OPA API認証に関わることは全て API認証のページ にあります。
PayPay OPAはhttpレスポンスステータスコードとOPAエラーコードを使用してリクエストの成功または失敗を示します。 これらの情報を使用して、どのようなエラー対応をするかを判断できます。 通常、PayPay OPAは以下のhttpレスポンスステータスコードを返します。
| Status | Code | Description |
|---|---|---|
| 200 | SUCCESS | Success |
| 400 | INVALID_REQUEST_PARAMS | リクエストにより提供された情報に無効なデータが含まれています。例: サポートされていない通貨 |
| 400 | MISSING_REQUEST_PARAMS | 設定されたパラメータが無効です。 |
| 401 | UNAUTHORIZED | 有効なapi keyとsecretが提供されていません。 |
| 401 | OP_OUT_OF_SCOPE | オペレーションが許可されていません。 |
| 404 | OPA_CLIENT_NOT_FOUND | OPAクライアントが見つかりません。 |
| 429 | RATE_LIMIT | リクエスト制限超過。 |
| 500 | SERVICE_ERROR | サービスエラーが発生しました。 |
| 500 | INTERNAL_SERVER_ERROR | このコードは問題が発生したことを意味しますが、トランザクションが発生したかどうか正確にはわかりません。不明なステータスとして処理する必要があります。 |
| 503 | MAINTENANCE_MODE | メンテナンス中です。 |
| Status | Code | Description |
|---|---|---|
| 400 | BUDGET_NOT_ENOUGH | ポイントコードグループ予算が不足しています。 |
| 400 | EXCEED_CHARGE_CODE_GROUP_MAX_PERIOD | startAtからendAtまでの期間がmaxPeriodDaysの設定値を超えています。 |
| 400 | GIFT_CARD_GROUP_NOT_EXIST | ポイントコードグループが存在しません。 |
| 400 | INVALID_CHARGE_CODE_AMOUNT | ポイントコード金額が最低設定金額を下回っています。 |
基本的に、すべてのAPIレスポンスには X-REQUEST-ID がレスポンスヘッダーとして含まれます(一部例外を除きます)。
PayPayへお問い合わせの際は、このリクエストIDをご提示ください。
フォーマット: 英数字とハイフン(最大64文字)
例:
OPA45F681001AEF4605B2A50939F611F4B8
ポイントコードを作成します。
タイムアウト、または内部エラー(HTTP 5XX ステータスコード)の場合、加盟店は同一のrequestIdで安全にリクエストを再試行できます。
タイムアウト: 30秒
| requestId required | string ポイントコードを作成するための一意となるキー |
| groupId required | integer <int64> |
| giftCardName required | string [ 1 .. 40 ] トップアップ後、PayPayアプリに表示されるポイントコード名 |
| giftCardValue required | integer <int32> [ 1 .. 999999 ] ポイントコード金額(円) |
| startAt required | string <yyyy-MM-dd> |
| endAt required | string <yyyy-MM-dd> |
{- "requestId": "ea233cbd-f949-42f3-98e7-ddd1cb5e6ffd",
- "groupId": 29952775505428480,
- "giftCardName": "Points Code 01",
- "giftCardValue": 1000,
- "startAt": "2021-10-10",
- "endAt": "2022-10-09"
}{- "resultInfo": {
- "code": "string",
- "message": "string",
- "codeId": "string"
}, - "data": {
- "groupId": 29952775505428480,
- "giftCardName": "ポイントコード名",
- "giftCard": "MYOG-6BKL-CRPP-19U7",
- "giftCardValue": 1000,
- "startAt": "2021-10-10",
- "endAt": "2022-10-09",
- "inquiryNumber": 706637276862275600
}
}{- "resultInfo": {
- "code": "string",
- "message": "string",
- "codeId": "string"
}, - "data": {
- "merchantId": 13145928525414400,
- "groups": [
- {
- "id": 29952775505428480,
- "name": "Points Code group name",
- "balanceType": "CASHBACK",
- "maxPeriodDays": 365,
- "chargeLimit": 5,
- "status": "enable",
- "totalBudget": 10000,
- "remainingBudget": 10000
}
]
}
}