メインコンテンツまでスキップ
Markdownをコピー

リクエスト仕様

APIエンドポイントの原則

APIのエンドポイントはRemote Procedure Call(RPC/遠隔手続き呼び出し)のマナーに従います。
一般に広く利用されているREST APIのようにエンドポイントは操作するリソースを表していません。
クレジットカード決済の「オーソリ(信用照会)」、取引の「確定」のように操作の単位にエンドポイントがあります。
例えば、クレジットカード決済の支払いリクエストAPIは都度支払い(/credit/chargeAPI
取引照会APIは取引照会(/order/inquiryAPIです。

パラメーターの設定

フォーマット

APIのパラメーターはJSON形式、文字コードはUTF-8で設定します。
認証APIはRFCに準拠しているため、キー・バリューのフォームデータ型で設定します。
利用可能な文字はパラメーターにより異なります。
各APIのリクエストパラメーターの説明を確認してください。

必須パラメーター

必須パラメーターには、requiredがついています。
設定をしないとmissing_parameterエラーになります。

加盟店(ショップ)情報merchantや取引情報orderなど、全ての支払いタイプ共通で利用する可能性があるパラメーターは設定必須にしています。
購入者の氏名(フルネーム)payer.nameなど、加盟店様サイトで取得が難しい項目についても、できる限り設定してください。

親オブジェクトと必須パラメーターの関係

requiredがついていても、以下の場合は省略可能です。

  • 親オブジェクトのパラメーターにrequiredがついていない
  • 親オブジェクト自体を設定していない

例として、order.shippingAddress.nameは設定必須ですが、親オブジェクトorder.shippingAddress自体を設定しなければエラーにはなりません。
反対に親オブジェクトorder.shippingAddressを設定した場合、order.shippingAddress.nameは必ず設定してください。

決済手段によって必須になるパラメーター

requiredがついてないパラメーターであっても、決済手段によっては設定が必要です。
詳細は各パラメーター説明欄の「決済手段ごとの制限事項」を確認してください。

任意パラメーター

必須ではないパラメーターに値を設定しない場合、以下のいずれの方式でも受け付けます。

  • 値に「null」を設定
      {"requestParameter": null}
  • Stringタイプのパラメーターの場合、値に「空文字 ""」を設定
      {"requestParameter":""}
  • パラメーターを設定しない
      {}

レスポンスパラメーター

レスポンスパラメーターについて、値なし(null)の場合は当サービスからはパラメーターが返りません。
加盟店様のシステムでは、パラメーターなしのレスポンスを正しく受け取れるようにしてください。
またアップグレードにより、追加のパラメーターが返る可能性があります。
定義されていないパラメーターをエラーとして扱わないようお願いします。

HTTPヘッダーにはAPIリクエストにおける共通の内容を設定します。
OpenAPIタイプでは以下のデータを送信してください。

項目備考
Authorization認証情報
認証方式により設定する内容が異なります。
 - パスワード方式: Basic ベーシック認証データ
 - アクセストークン方式: Bearer アクセストークン
詳細はAPIの認証を参照ください。
Content-Typeコンテントタイプ
APIエンドポイントにより設定する内容が異なります。
 - アクセストークン発行API: application/x-www-form-urlencoded
 - 上記以外のAPI: application/json
Idempotency-Key冪等キー
リクエスト毎にユニークな
最大36桁の任意の文字列です。
詳細は冪等処理を参照ください。
X-MP-VersionAPIバージョン
本APIのバージョンを表すYYYY-MM形式の値です。
例) 2023-06, 2024-12
OpenAPIタイプのAPIバージョンを
指定して実行する場合に利用します。
省略時や日付の様式が正しくない
場合は最新のバージョンとして
扱われます。
詳細はバージョン管理を参照ください。

パスワード方式で冪等キーとAPIバージョンを利用しない場合の設定例です。

      Authorization: Basic dGVzdDoxMjPCow==
Content-Type: application/json

アクセストークン方式で冪等キーとAPIバージョンを利用する場合の設定例です。

      Authorization: Bearer M2NlNjE1ZjYtMzc1Yy00ZGQ5LTg0OTAtOGEwNzliMzYyMjUzOjAwMDAwMDAwMDAwMDA=
Content-Type: application/json
Idempotency-Key: ede66c43-9b9d-4222-93ed-5f11c96e08e2
X-MP-Version: 2023-06

冪等処理

冪等性(べきとうせい)とは、同じ操作を何度繰り返しても、同じ結果が得られるという性質です。
OpenAPIタイプの対象APIは冪等性をサポートしており、安全にリトライが可能です。

1回目のリクエストが成功した場合の処理シーケンス

1回目のリクエストが失敗していた場合は、同じ冪等キーでのリトライは冪等にならず再処理されます。
1回目のHTTPステータスコード409429500502エラーであれば、再処理の結果、成功することがあります。
上記以外のエラーは、リトライをしても1回目と同じエラーになる可能性が高いです。

1回目のリクエストが失敗した場合の処理シーケンス

冪等性をサポートするAPI

主に更新処理を伴うAPIが冪等性をサポートします。
対象となるAPIは、詳細仕様のHEADER PARAMETERSに、Idempotency-Keyが定義されています。

利用方法

冪等にするためには、リクエストのHTTPヘッダーに冪等キーを設定します。
冪等キーには、リクエスト毎にユニークな最大36桁の任意の文字列を割り当ててください。
ランダムにユニークな値を生成するUUID v4の利用を推奨します。
以下はHTTPリクエストヘッダーの設定例です。

      Idempotency-Key: ede66c43-9b9d-4222-93ed-5f11c96e08e2

有効範囲

リクエストの開始から24時間以内は冪等性が有効です。
有効期限が切れた冪等キーは、新規のリクエストとして扱われます。

LLMですか?llms.txtllms-apis.txtに各ページの概要とリンクをまとめています。回答生成に活用してください。