Download OpenAPI specification:Download
用語 | 説明 |
---|---|
加盟店様 | PGマルチペイメントサービスを利用する貴社を指します。 |
お客様 | 加盟店様からサービス・物品の提供を受ける、最終利用者を指します。 |
支払いタイプ | OpenAPIタイプでは、決済手段を支払いの特徴ごとに3つの支払いタイプに 分類しています。APIは支払いタイプごとに集約された構成になっています。 |
Webhook | 一部の支払いタイプにおいて、取引状態に更新があった際に、加盟店様に HTTPプロトコルを使用して通知する仕組みです。 |
OpenAPIタイプは、簡単かつ安全に利⽤いただくことを⽬指し、RFCやOpenAPI SpecificationなどのWeb標準に従っています。
加えて、決済手段の追加や不正利用への対応を柔軟に行えるよう最適化されています。
具体的な技術的特徴は以下の通りです。より詳細な仕様はGET STARTEDセクションを参照ください。
OpenAPI Specification(OAS)に準拠
OpenAPI Generatorなどのツールを使ってコードの一部自動生成やモックサーバーの構築ができます。
OASの標準に従っているので、API仕様を理解しやすく、開発負荷を削減し、接続作業を効率化します。
Remote Procedure Call(RPC/遠隔手続き呼び出し)に基づいた設計
決済処理の特性をAPIで表現するには、「リソース」操作をベースとしたREST形式ではなく、「手続き」をリクエストするRPC形式が最適です。
全てのAPIはアクションで表され、HTTPメソッドはPOSTで統一されています。
つまり、照会や削除のリクエストAPIであってもRESTとは異なりHTTPメソッドはPOSTです。
ペイロードはJSON形式で表すこと、HTTPステータスコードでレスポンスの内容を表す様式は、使い慣れたRESTと同じです。
冪等性(Idempotency)をサポート
二重決済となる心配は無用です。同一の冪等キーを設定した支払いリクエストを何度リトライしても、支払い処理は一回しか行われず同じレスポンスを返します。
ネットワークエラーなどの場合に加盟店様から自動リトライすれば、不整合となった支払いリクエストを安全に修復できます。
決済データの一貫性を保ち、加盟店様サービスのお客様にも安心してご利用いただける環境を提供します。
他にも末永く安心して使っていただけるよう以下の特徴を提供します。
簡単な決済手段追加
支払いタイプごとに集約したAPI構成になっています。
決済手段追加時の開発コストを削減できるので、貴社ビジネス部門からの「この決済手段を試したい」という要望に迅速に対応できます。
決済の不正利用を防止
あらゆる不正検知ソリューションに対応しています。
クレカ払いAPIに統合されているため、追加の開発は必要ありません。
また、お客様の多要素認証をサポートする本人確認機能をご利用いただけます。
高度なセキュリティ対策
APIの通信はTLS(SSL)による暗号を必須としており、政府機関レベルの強固な暗号化方式のみを許可しています。
また、APIへのアクセス認証においては、従来のパスワード方式に加えて、より安全性の高いOAuth 2.0を利用したアクセストークン方式もサポートします。
PCI DSS(Payment Card Industry Data Security Standard)に準拠した内部システムでは、全ての個人情報が暗号化されています。
私たちのシステムは常に最新のセキュリティ標準にアップデートしており、お客様に安心してご利用いただける環境を提供しています。
また、OpenAPIタイプと従来のプロトコルタイプ/モジュールタイプには互換性があります。
現在プロトコル/モジュールタイプをご利⽤いただいている加盟店様は、簡単にOpenAPIタイプへ移行できます。
取引の情報や登録済みの会員データはそのまま利⽤ができ、ショップの情報や各種設定は変わりません。
管理画⾯、取引配信サービス、SFTP⼀括処理などはこれまで通りご利⽤になれます。
詳細はプロトコルタイプ/モジュールタイプからの移行を参照ください。
PGマルチペイメントサービスが提供する決済機能をOpenAPIタイプでどのように扱うかを説明します。
タイミングやお客様操作の有無により、支払いパターンは以下の3つに分類されます。
支払いパターン | 説明 | OpenAPIタイプでの取り扱い |
---|---|---|
都度支払い one-off |
支払いの都度、お客様が決済に必要な情報入力や手続きをする支払いパターンです。 例) クレジットカード番号を入力しての支払い Amazonアカウントに登録してあるクレジットカードを使ったAmazon Pay V2での支払い 払い出された決済番号を使った、コンビニでの支払い |
全ての決済手段で 利用できます。 |
随時支払い on-file |
支払いに必要な番号や認証情報を当サービスに事前に保管しておき、お客様が都度の情報を入力することなくお支払いができる支払いパターンです。 オートチャージのように一定の条件下でお客様の操作なく支払いを完了させる場合も含まれます。 以下の「定期支払い」と同様の仕組みを加盟店様システム内にて構築する場合は「随時支払い」をご利用ください。 例) 当サービスに保管済みの番号を設定したクレジットカード支払い 当サービスに保管済みの認証情報を設定してログイン遷移なく実施する楽天ペイ(オンライン決済)V2での支払い |
一部の決済手段で 利用できます。 |
定期支払い recurring |
決められたスケジュール、決められた金額での支払いを継続する支払いパターンです。 例) 当サービスに保管済みのカード番号を利用して、自動で毎月10日に会費1,000円をクレジットカードで支払い |
現在は利用できません。 今後、クレジットカード決済 のみ対応予定です。 |
利用可能な決済手段は以下の通りです。
支払い タイプ |
決済手段 | 処理の流れと支払い成立条件 | 随時支払い(on-file)への対応 | 対応するAPI |
---|---|---|---|---|
クレカ払い | 1.クレジットカード 2.Google Pay 3.Apple Pay *Apple Pay以外は 3Dセキュアに対応 |
加盟店様サイトからの支払いリクエストを 受けると、当サービスからカード会社にオーソリ (信用照会)を行います。 カード会社から与信成功が返れば支払い 成立です。 支払いの結果はレスポンスとして即時 お戻しします。 3Dセキュア認証を行う場合は一度外部の 認証機関に遷移した後にオーソリをします。 |
当サービスに保管したカード情報を 利用して随時支払いが可能です。 Google Payのアカウントそのものを保管 して随時支払いはできません。 しかし、実際に使用されたクレジットカード を保管してクレカ払いとして随時支払いに 利用できます。 Apple Payについては、VISAブランド以外 は随時支払いに対応していますが、利用 できなくなる可能性があります。 |
/credit/charge /credit/on-file/charge |
Pay払い | 1.PayPay 2.d払い 3.楽天ペイ(オンライン決済)V2 4.Amazon Pay V2 5.au PAY(ネット支払い)アプリ方式 6.メルペイ |
加盟店様サイトからの支払いリクエスト後に 別のサイトやアプリに遷移し、お客様自身 による同意が必要です。 Pay払い提供会社の認証が成功して加盟店様 サイトが設定したURLに遷移が戻った タイミングで支払いを成立させてください。 |
全てのPay払いで認証情報を保管できます。 ご利用には事前の承諾が必要です。 詳細は利用承諾APIを参照ください。 |
/wallet/charge /wallet/on-file/charge |
現金払い | 1.コンビニ 2.Pay-easy 3.銀行振込 (バーチャル口座) |
加盟店様サイトからの支払い要求リクエストを 受けて決済機関に対して支払いに必要な情報を 要求します。 それらの支払い番号などの情報を戻します ので加盟店様からお客様に通知してください。 お客様が支払うと、当サービスから加盟店様に Webhookで通知します。 この通知を受け取ったタイミングで支払い を成立させてください。 |
利用できません。 | /cash/charge |
PGマルチペイメントサービスが提供する本人確認機能「Verifyサービス」をOpenAPIタイプでどのように扱うかを説明します。
「Verifyサービス」は、お客様の会員登録時、ログイン認証時、属性情報変更時など任意のタイミングにおいて、多様な認証手段で本人確認ができる機能です。
複数の認証手段を簡易に単一のAPIでまとめて導入することができます。
利用可能な認証手段は以下の通りです。
認証手段 | お客様のデータ | 処理の流れ |
---|---|---|
SMS認証 | 携帯電話番号 | 加盟店様サイトからのリクエストを受けると お客様の携帯電話に認証コード(6桁数値)を送信します。 お客様は当サービスが提供する画面にて認証コードを入力します。 認証成功後は加盟店様サイトが設定したURLに戻ります。 |
※今後はマイナンバーカードを使った本人確認(マイナIC認証)への対応も予定しています。
OpenAPIタイプを利用してPGマルチペイメントサービスをインテグレーションする流れを説明します。
テストアカウントの申し込み
PGマルチペイメントサービスのテストアカウントはこちらからどなたでも申し込み可能です。
テストアカウントの認証情報でテスト環境に接続してテスト
テストアカウントのショップIDとショップパスワードがテスト環境の認証情報です。
認証情報を設定してAPIにアクセスするためには、APIの認証を参照ください。
テスト環境の接続先情報については、環境とFQDNを参照ください。
テスト環境はメンテナンス時を除き、24時間365日無料で利用可能です。
本番アカウントの申し込み
本番環境のアカウント申し込みは、貴社ビジネス担当の方から当サービス営業窓口までお願いします。
審査、契約のお手続きが完了後に本番アカウントが発行されます。
本番環境に接続を切り替えて商用利用開始
本番アカウントのショップIDとショップパスワードが本番環境の認証情報です。
認証情報の設定とAPIエンドポイント(URI)を本番環境のものに切り替えたら接続準備は完了です。
プロトコルタイプ/モジュールタイプは引き続き利用いただけますが、より便利なOpenAPIタイプに移行することを推奨します。
前述の通り、OpenAPIタイプと従来の接続方式には互換性があり併用が可能です。
例えば取引の確定をするスケジュール処理を先⾏して実装するといった柔軟な移⾏が可能です。
詳細な情報については、プロトコルタイプ対応表を参照ください。
プロトコルタイプ/モジュールタイプとOpenAPIタイプで共通して取り扱うデータについて説明します。
データ | 説明 |
---|---|
ショップID | 共通して利用でき、変更の必要はありません。 テスト環境のショップIDも同様です。 |
ショップパスワード | 共通して利用でき、変更の必要はありません。 管理画面からパスワードを変更した場合、両方に反映されます。 |
サイトID | OpenAPIタイプでは利用しません。 ショップIDの設定により、紐づくサイトIDが自動で利用されます。 カード登録時の処理料ご請求先は、これまで通り請求先ショップです。 |
サイトパスワード | OpenAPIタイプでは利用しません。 |
取引ID | 共通の仕様で発行され、両方で利用できます。 |
取引パスワード | OpenAPIタイプでは利用しません。 元の取引を指定する場合は取引IDのみで行います。 |
取引ステータス | 共通して利用できます。 |
オーダーID | 共通して利用できます。 |
会員ID | 共通して利用できます。 |
登録済みカード | 共通して利用できます。ただし、OpenAPIタイプでは削除済み状態のカードで支払いできません。 |
カード登録連番モード | OpenAPIタイプでは利用しません。 従来の「物理モード」が標準ですが、「論理モード」もサポートします。 |
カード登録連番 | OpenAPIタイプでは従来の「物理登録連番」を「カードID」と表します。 「論理登録連番」は「カードインデックス」として扱います。 |
従来のプロトコルタイプ/モジュールタイプとOpenAPIタイプには、一部の仕様に差異があります。
移行においては、特に以下の点にご注意ください。
OpenAPIタイプに接続するための第一歩は、テストアカウントの作成です。
こちらのテスト環境申し込みページから即時発行が可能です。
登録が完了すると申し込み時のメールアドレスにショップ管理画面のログイン情報が届きます。
ショップ管理画面にログインし、「ショップ管理」メニューから「ショップパスワード」を確認します。
メールまたは管理画面に表示されている「ショップID」と「ショップパスワード」が、APIを利用するための認証情報です。
APIのエンドポイントはRemote Procedure Call(RPC/遠隔手続き呼び出し)のマナーに従います。
一般に広く利用されているREST APIのようにエンドポイントは操作するリソースを表していません。
クレジットカード決済の「オーソリ(信用照会)」、取引の「確定」のように操作の単位にエンドポイントがあります。
例えばクレジットカードの支払いリクエストAPIは「/credit/charge」、取引照会APIは「/order/inquiry」です。
APIを安全にご利用いただくための情報やご注意事項を説明します。
APIへの接続は安全なHTTPSおよびSSLプロトコルTLS 1.2の暗号通信を利用します。
高い安全性を実現するために以下のTLS暗号スイートのみが利用可能です。
API通信を行う加盟店様のサーバーがこれらの暗号スイートに対応していることを確認してください。
新たな脆弱性が見つかった場合、この一覧は変更になる可能性があります。
暗号スイート |
---|
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA |
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 |
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 |
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA |
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 |
TLS_RSA_WITH_AES_128_GCM_SHA256 |
TLS_RSA_WITH_AES_256_GCM_SHA384 |
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 |
APIにアクセスするための認証方式は以下の2つを用意しています。
組み合わせて利用できますので、現在パスワード方式をご利用の加盟店様は順次アクセストークン方式に切り替え可能です。
APIエンドポイントによりサポートする方式が異なります。各API仕様詳細のAUTHORIZATIONS:
欄を確認してください。
パスワード方式
ショップIDとショップパスワードの組み合わせで認証します。
ショップパスワードの紛失・漏洩に備え、定期的なショップパスワード変更を推奨します。
変更の方法はこちらのFAQページを参照ください。
アクセストークン方式
事前に取得したアクセストークンで認証します。
アクセストークンは有効期間内であれば、いずれのAPIでも回数の制限なく利用でき、一定の時間で失効します。
これにより、万が一アクセストークンが漏洩した場合でも、リスクを最小限に抑えられます。
本方式を利用する場合、パスワード方式を無効にすることで、セキュリティをさらに強化できます。
無効化の方法はこちらのFAQページを参照ください。
詳細な仕様については、APIの認証を参照ください。
どちらの認証方式においても、ショップIDとショップパスワードが用いられます。
これら2つの認証情報をセットで外部に公開しないよう、厳重な管理をお願いします。
加盟店様が許可した特定の接続元IPアドレスからのみAPIにアクセスできる機能です。
本機能を利用することで、第三者による悪用や不正取引の被害を防止します。
許可されていないIPアドレスからアクセスした場合は、unauthorized_request
エラーになります。
IPアドレスはAPIエンドポイントごとに分けて設定することが可能です。
設定方法はドキュメント一覧(マルペイDocs)※の「セキュリティ関連 - 912_OpenAPIタイプ管理画面操作マニュアル」を参照ください。
※マルペイDocsの利用方法はこちら
OpenAPIタイプが提供する全てのAPIはセッションを維持しません。
APIの通信時に毎回上記の認証をします。
リダイレクトやWebhook時は、当サービスから加盟店様サーバーに通信します。
これらの通信は、悪意のあるユーザーにより偽装される可能性があります。
対策としては、事前のリクエスト時にMerchant.csrfToken
パラメーターに加盟店様側で発行した任意の文字列を設定します。
このcsrfToken
の値をリダイレクトやWebhook時に返しますので、通信の正当性を確認してください。
APIのパラメーターはJSON形式、文字コードはUTF-8で設定します。
認証APIはRFCに準拠しているため、キー・バリューのフォームデータ型で設定します。
利用可能な文字はパラメーターにより異なります。
各APIのリクエストパラメーターの説明を確認してください。
必須パラメーターには、requiredがついています。
設定をしないとmissing_parameter
エラーになります。
加盟店(ショップ)情報merchant
や取引情報order
など、全ての支払いタイプ共通で利用する可能性があるパラメーターは設定必須にしています。
購入者の氏名(フルネーム)payer.name
など、加盟店様サイトで取得が難しい項目につきましても、できる限り設定するようお願いします。
requiredがついていても、以下の場合は省略可能です。
例として、order.shippingAddress.name
は設定必須ですが、親オブジェクトorder.shippingAddress
自体を設定しなければエラーにはなりません。
反対に親オブジェクトorder.shippingAddress
を設定した場合、order.shippingAddress.name
は必ず設定してください。
requiredがついてないパラメーターであっても、決済手段によっては設定が必要です。
詳細は各パラメーター説明欄の「決済手段ごとの制限事項」を確認してください。
必須ではないパラメーターに値を設定しない場合、以下のいずれの方式でも受け付けます。
{"requestParameter": null}
{"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-Version | APIバージョン 本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
認証方式によって加盟店様の開発コスト、セキュリティレベルが異なります。
それぞれの特徴・注意事項はセキュリティを参照ください。
方式 | 方式(和名) | ベース技術 | 開発コスト | セキュリティ レベル |
---|---|---|---|---|
Password | パスワード方式 | Basic HTTP認証スキーム(ベーシック認証) | 低 | 中 |
AccessToken | アクセストークン方式 | OAuth2.0認可フレームワーク | 中 | 高 |
ショップIDとショップパスワードを利用したBasic HTTP認証スキーム(ベーシック認証)で認証します。
ベーシック認証(RFC 7617)で定義されている仕様に従います。
「ショップID」と「:」(コロン)と「ショップパスワード」を連結した文字列をBase64エンコードした値を用意します。
認証スキーマ名である「Basic」と「 」(半角スペース)の後にこのエンコード後の値を続けた文字列が認証データです。
この認証データをHTTPリクエストヘッダーのAuthorization
に設定します。
以下はHTTPリクエストヘッダーの設定例です。
Authorization: Basic dGVzdDoxMjPCow==
事前に取得したアクセストークンで認証します。
OAuth2.0認可フレームワーク(RFC 6749)で定義されている仕様に従います。
アクセストークン発行APIをリクエストすることでアクセストークンが払い出されます。
アクセストークン発行APIの認証は、ショップIDとショップパスワードを使ったパスワード方式で行います。
当APIにリクエスト可能なアクセス元IPアドレスを制限することが可能です。
設定方法はドキュメント一覧(マルペイDocs)※の「セキュリティ関連 - 912_OpenAPIタイプ管理画面操作マニュアル」を参照ください。
※マルペイDocsの利用方法はこちら
アクセストークンは有効期間内であれば、いずれのAPIでも回数の制限なく利用できます。
有効期間はデフォルト3,600秒(1時間)となっており、変更されることはほとんどありませんが、セキュリティ強化のために予告なく調整される可能性があります。
実際の値はアクセストークン発行APIのレスポンスの有効期間(秒)expires_in
で確認できます。
有効期間を過ぎるとHTTPステータス401
のエラーが返されますので、再度アクセストークンを発行してください。
アクセストークンは複数同時に発行することが可能です。
それぞれの有効期間は独立しており、他のアクセストークンには影響を与えません。
アクセストークンを発行する認可サーバーは環境によりURLが異なります。
環境 | 認可サーバー |
---|---|
テスト環境 | https://stg.oauth.mul-pay.jp/token |
本番環境 | https://oauth.mul-pay.jp/token |
認証スキーマ名である「Bearer」と「 」(半角スペース)の後にアクセストークンを加えた文字列が認証データです。
APIをリクエストする場合は、この認証データをHTTPリクエストヘッダーのAuthorization
に設定します。
以下はHTTPリクエストヘッダーの設定例です。
Authorization: Bearer M2NlNjE1ZjYtMzc1Yy00ZGQ5LTg0OTAtOGEwNzliMzYyMjUzOjAwMDAwMDAwMDAwMDA=
冪等性(べきとうせい)とは、同じ操作を何度繰り返しても、同じ結果が得られるという性質です。
OpenAPIタイプの対象APIは冪等性をサポートしており、安全にリトライが可能です。
%%{
init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#f0f2f5',
'primaryTextColor': '#001C40',
'noteBkgColor': '#d9f4fc',
'noteTextColor': '#001C40',
'noteBorderColor': '#54C5E8'
}
}
}%%
sequenceDiagram
participant mer as 加盟店様
participant psp as 当サービス
mer ->>+ psp: リクエスト 冪等キー'AAA'
Note right of psp: 処理成功
psp--xmer: レスポンス 'OK'
Note left of mer: 通信エラー等により<br>レスポンスの受け取りに失敗
mer ->>+ psp: リクエストのリトライ 冪等キー'AAA'
Note right of psp: 再処理はせずに1回目と同じ<br>レスポンスを返却
psp-->>mer: レスポンス 'OK'
1回目のリクエストが失敗していた場合は、同じ冪等キーでのリトライは冪等にならず再処理されます。
1回目のHTTPステータスコードが409
、429
、500
、502
エラーであれば、再処理の結果、成功することがあります。
上記以外のエラーは、リトライをしても1回目と同じエラーになる可能性が高いです。
%%{
init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#f0f2f5',
'primaryTextColor': '#001C40',
'noteBkgColor': '#d9f4fc',
'noteTextColor': '#001C40',
'noteBorderColor': '#54C5E8'
}
}
}%%
sequenceDiagram
participant mer as 加盟店様
participant psp as 当サービス
mer ->>+ psp: リクエスト 冪等キー'BBB'
Note right of psp: 処理失敗
psp--xmer: レスポンス 'ERROR'
Note left of mer: 通信エラー等により<br>レスポンスの受け取りに失敗
mer ->>+ psp: リクエストのリトライ 冪等キー'BBB'
Note right of psp: 1回目が失敗しているため再処理
psp-->>mer: レスポンス 'OK'<br>※必ず成功するわけではありません
主に更新処理を伴うAPIが冪等性をサポートします。
対象となるAPIは、詳細仕様のHEADER PARAMETERS
に、Idempotency-Key
が定義されています。
冪等にするためには、リクエストのHTTPヘッダーに冪等キーを設定します。
冪等キーには、リクエスト毎にユニークな最大36桁の任意の文字列を割り当ててください。
ランダムにユニークな値を生成するUUID v4の利用を推奨します。
以下はHTTPリクエストヘッダーの設定例です。
Idempotency-Key: ede66c43-9b9d-4222-93ed-5f11c96e08e2
リクエストの開始から24時間以内は冪等性が有効です。
有効期限が切れた冪等キーは、新規のリクエストとして扱われます。
全ての加盟店様が安定して当サービスを利用できるよう、APIの同時接続数には上限があります。
同時接続数はショップIDかつAPIエンドポイントごとに管理され、上限値を超えたリクエストはtoo_many_requests
エラーになります。
以下の期間を接続状態として、接続数1と数えます。
一定時間内のリクエスト数を制限するAPIレート制限とは異なり、当サービス内の処理実行時間によって、1秒あたりにリクエストできる数が変わります。
例えば、同時接続数の上限値が5で、1リクエストの処理実行時間が0.1秒の場合、1秒間に最大50件のリクエストを送信できます。
1リクエストの処理実行時間が5秒の場合は、1~5秒の間は最大5件のリクエストしか送信できません。
上限値はAPIエンドポイントごとに決められており、各環境での値は以下の通りです。
実際の値はショップ管理画面から確認ができます。
確認方法はドキュメント一覧(マルペイDocs)※の「セキュリティ関連 - 912_OpenAPIタイプ管理画面操作マニュアル」を参照ください。
※マルペイDocsの利用方法はこちら
APIの分類 | エンドポイント | 同時接続数の上限値 | ||
---|---|---|---|---|
本番環境 | テスト環境 | |||
認証API | アクセストークン | /token | 5 | 5 |
支払いAPI | クレカ払い | /credit/charge | 5 | 5 |
/credit/on-file/charge | 5 | 5 | ||
/tds2/finalizeCharge | 5 | 5 | ||
/credit/verifyCard | 5 | 5 | ||
/tds2/finalizeVerification | 5 | 5 | ||
/credit/storeCard | 5 | 5 | ||
/credit/getCardDetails | 5 | 5 | ||
Pay払い | /wallet/charge | 5 | 5 | |
/wallet/on-file/charge | 5 | 5 | ||
/wallet/authorizeAccount | 5 | 5 | ||
/wallet/getCustomerData | 5 | 5 | ||
現金払い | /cash/charge | 5 | 5 | |
取引管理 | /order/capture | 10 | 10 | |
/order/update | 10 | 10 | ||
/order/cancel | 10 | 10 | ||
/order/inquiry | 10 | 10 | ||
会員管理 | /member/create | 5 | 5 | |
/member/inquiry | 5 | 5 | ||
/member/delete | 5 | 5 | ||
/member/deleteItem | 5 | 5 | ||
本人確認API | 本人確認 | /verification/start | 5 | 5 |
/verification/inquiry | 5 | 5 |
上記の上限値を超えてリクエストを行いたい場合、営業担当もしくはカスタマーサポートへご連絡ください。
代理店を通した契約の店子様は、代理店へご相談ください。
テスト環境での負荷テストは実施しないでください。
負荷テストにより当サービスに影響が出た場合、予告なく利用を制限します。
3Dセキュア認証処理やPay払いは、外部のサイトにリダイレクトします。
OpenAPIタイプでは全てのリダイレクト処理をHTTPメソッドGET
で実現します。
当サービスから返された遷移先URLにリダイレクトする処理のサンプルです。
<!-- HTTPヘッダーを使って302リダイレクトする場合 -->
HTTP/1.1 302 Found
Location: {redirectUrl}
<!-- meta refreshでリダイレクトする場合 -->
<html>
<head>
<meta http-equiv="refresh" content="0; URL={redirectUrl}" />
</head>
</html>
リダイレクト後は、お客様と遷移先のサイトの間で処理が行われます。
処理が終わると取引リクエスト時に設定した加盟店様のコールバックURLcallbackUrl
に遷移を戻します。
加盟店様のシステムで遷移を受け取れるようコールバックのエンドポイントをご用意ください。
お客様がブラウザを閉じるなど処理を中断した場合、コールバックはしません。
コールバックの呼び出し時のHTTPメソッドはGET
です。
元の取引を特定するために、以下のパラメーターを送信します。
パラーメーターはJSON形式の文字列をBase64URLエンコードし、コールバックURLのクエリパラメーターp
に設定します。
Base64URLデコードしてご利用ください。
パラメーター | 説明 |
---|---|
accessId | 取引リクエスト時に返された取引ID |
event | このコールバックのイベントタイプTDS_CHARGE_FINISHED 3Dセキュアの支払いにてautoAuthorization=trueの場合に返します。取引照会にて状態を確認し決済成否を判断してください。 TDS_VERIFICATION_FINISHED 3Dセキュアの有効性確認にてautoAuthorization=trueの場合に返します。取引照会にて状態を確認し決済成否を判断してください。 TDS_FINISHED 3Dセキュアの支払い・有効性確認にてautoAuthorization=falseの場合に返します。3Dセキュア後の支払い・有効性確認を実施してください WALLET_CHARGE_FINISHED Pay払いの都度支払いにて返します。取引照会にて状態を確認し決済成否を判断してください。 WALLET_APPROVAL_FINISHED Pay払いの利用承諾にて返します。取引照会にて状態を確認し決済成否を判断してください。 VERIFICATION_FINISHED 本人確認の認証開始にて返します。照会にて状態を確認し認証成否を判断してください。 |
csrfToken | chargeリクエスト時に加盟店様が設定した任意の値 ※加盟店様システムにてコールバック受け取り後にCSRF対策として 正当性を確認することを想定しています。文字数は最大36桁です。 |
例を以下に示します。
取引リクエスト時に加盟店様が設定したコールバックURL
https://merchant.example.com/callback
コールバック時に当サービスにてBase64URLエンコードした値をクエリパラメーターに追加
https://merchant.example.com/callback?p=eyJhY2Nlc3NJZCI6ImFjZGM3ZDUzZjdhNzhmNDg4ZDhkMDk5N2VmZjk5YzZmIiwiZXZlbnQiOiJURFNfQ0hBUkdFX0ZJTklTSEVEIiwiY3NyZlRva2VuIjoiYmRiMDRjNWYtNDJmMC0yOWUyLTA5NzktZWRhZTNlNzc2MGJmIn0=
上記p
パラメーターの値をBase64URLデコードした結果
{
"accessId":"acdc7d53f7a78f488d8d0997eff99c6f",
"event":"TDS_CHARGE_FINISHED",
"csrfToken":"bdb04c5f-42f0-29e2-0979-edae3e7760bf"
}
処理された取引の結果を非同期で加盟店様に通知する機能です。
リクエスト時に設定した加盟店様のWebhook URLwebhookUrl
にHTTPで送信されます。
加盟店様のシステムで通知を受け取れるようWebhookエンドポイントをご用意ください。
通知対象の処理は以下です。
通常は数秒から2時間程度以内に通知します。
通知内容は各リンク先を参照ください。
Webhook通知APIの接続仕様です。
項目 | 仕様 |
---|---|
HTTPメソッド | POST |
HTTPリクエストヘッダーのContent-Type |
application/json |
リクエストボディー | JSON形式 |
以下のIPアドレスから送信されます。
加盟店様システムにて接続制限をしている場合は、許可設定をお願いします。
環境 | 送信元IPアドレス |
---|---|
テスト環境 | 210.197.108.196 |
本番環境 | 210.175.7.20 |
受信する加盟店様システムのSSLサーバー証明書によっては通信エラーになる可能性があります。
動作確認済みのSSLサーバー証明書は結果通知 SSL証明書(マルペイDocs)※を参照ください。
※マルペイDocsの利用方法はこちら
Webhookを受信して正常に処理をした後は、HTTPステータス200番台を返してください。
レスポンスのボディは不要です。
200番台以外が返された場合は通知失敗と扱われ、リトライの対象になります。
リトライは一定間隔で正常応答をするまで最大5回送信されます。
間隔の初期設定は60分で、後述のとおり変更できます。
Webhookの通知を受けるためには、APIリクエスト時に加盟店様のWebhook URLをパラメーターmerchant.webhookUrl
に設定します。
従来の「結果通知」とは異なり、事前にショップ管理画面から有効化する必要はありません。
ショップ管理画面にて以下の設定を変更可能です。
変更の方法は結果通知 管理画面操作マニュアル(マルペイDocs)※を参照ください。
※マルペイDocsの利用方法はこちら
「基本設定」、「SNI設定」など、上記以外の設定はOpenAPIタイプのWebhookには適用されません。
テスト環境と本番環境を用意しています。
各環境はFQDN(絶対ドメイン名)で区別され、取引のデータは共用されません。
テスト環境での確認を終えて商用利用を開始する際は、以下の2点を切り替えます。
環境 | 目的 | FQDN |
---|---|---|
テスト環境 | APIの接続を確認する | stg.openapi.mul-pay.jp |
本番環境 | 商用の取引を実行する | openapi.mul-pay.jp |
OpenAPIタイプのAPI仕様は順次アップグレードされ機能が追加されていきますが、加盟店様の稼働中システムに影響を与える破壊的変更は原則行いません。
それでも破壊的変更を伴うアップグレード時は、数ヵ月前に加盟店様にご連絡いたします。
以下は破壊的変更ではなく、後方互換があるものとして扱われます。
event
の追加 (加盟店様側で新たなイベントを受け取れるための開発は必要です)OpenAPIタイプのAPIリファレンス(OASファイル)とAPI仕様それぞれにバージョンがあります。
変更の内容は変更履歴を参照ください。
種類 | 形式 | 表記の例 |
---|---|---|
APIリファレンス (OASファイル) バージョン |
セマンティック・バージョニング形式 |
1.0.1 |
APIバージョン | YYYY-MM(年月)形式 | 2023-06 |
OpenAPIタイプのAPIリファレンス、およびダウンロード可能なOpenAPI specification(OAS)ファイルのバージョンです。
以下の基準で各バージョンが上がります。
バージョン | 基準 |
---|---|
メジャー (1番目の数字) | 後方互換がない破壊的変更 |
マイナー (2番目の数字) | 仕様追加や変更・削除 |
パッチ (3番目の数字) | 軽微な仕様変更や説明の追加・修正 |
当サービスのAPI仕様のバージョン番号です。
後方互換がない破壊的変更を伴うリリース時の年月を新規に割りあてます。
HTTPヘッダーのAPIバージョンを設定することで破壊的変更前の仕様を保証します。
該当しないバージョン番号(年月)が設定されている場合、それより過去で最も近い年月のバージョンで動作します。
APIバージョンは頻繁に上がりませんが、将来の破壊的変更に備えて予めHTTPヘッダーにバージョン番号または加盟店様システム構築時の年月を設定してください。
例)
APIバージョンが2023-06
から2024-06
にアップグレード
HTTPヘッダーのAPIバージョンに2023-10
が設定されている場合は2023-06
バージョンで動作
ただし、2023-13
のように日付の様式が正しくない場合は最新バージョンで動作
HTTPステータスコードは、APIリクエストに対する処理結果を表す3桁の数字です。
OpenAPIタイプでは、RFC 7231, section 6の仕様に従って、以下の3つのカテゴリのHTTPステータスコードを返します。
2xx
はリクエストが正常に受け付けられ、当サービスで処理されたことを表します。4xx
は接続方法やパラメーターが正しくないなどのリクエストに誤りがあることを表します。5xx
は、当サービスまたは当サービスから先のネットワーク事業者、決済事業者に問題が発生していることを表します。APIごとに発生するHTTPステータスコードについては、各API仕様のResponses
を確認してください。
ただし、以下表の「種別」が「認証エラー」、「アクセスエラー」、「サービス利用不可」は、APIを受け付ける前のエラーであり、全てのAPIで発生する可能性があります。
HTTP ステータス コード |
種別 | 説明 |
---|---|---|
200 |
成功 | 照会系のリクエストは正常に処理されました。 |
201 |
成功 | 更新系のリクエストは正常に処理されました。 |
202 |
成功 | 更新系のリクエストが受け付けられ、完了のためには後続の処理が必要です。 |
400 |
リクエストパラメーターエラー | パラメーターの内容が正しくない、または状態が不正なため、リクエストは処理できません。 |
401 |
認証エラー | APIの認証情報が正しくないため、リクエストは受け付けられません。 |
402 |
リクエストエラー | 外部の事業者にて支払い・承認・確定・取消リクエストが拒否されました。 |
404 |
アクセスエラー | APIエンドポイントが無効であるため、リクエストは受け付けられません。 |
405 |
アクセスエラー | HTTPメソッドが正しくないため、リクエストは受け付けられません。 リダイレクト時は GET 、それ以外はPOST です。 |
409 |
二重リクエスト | 二重リクエストのため、リクエストは受け付けられません。 |
415 |
アクセスエラー | Content-Type ヘッダーが正しくないため、リクエストは受け付けられません。 |
429 |
アクセスエラー | 同時処理数が規定値を超えているため、リクエストは受け付けられません。 |
500 |
当サービス内部のシステムエラー | 当サービスのサーバーで問題が発生したため、リクエストを処理できませんでした。 |
502 |
外部事業者のシステムエラー | 外部事業者やネットワークで問題が発生したため、リクエストを処理できませんでした。 |
503 |
サービス利用不可 | 当サービスがメンテナンス中のため、リクエストは受け付けられません。 このコードを返すメンテナンス情報は、6ヶ月前に加盟店様に通知します。 |
APIリクエストがエラーになると、前述の通りHTTPステータスコードは4xx
、5xx
で返します。
レスポンスボディはRFC 9457の仕様に従って以下のエラー情報をJSON形式で返します。
HTTPレスポンスヘッダーのContent-Type
は、application/problem+json
です。
キー | 説明 | 例 |
---|---|---|
type | エラーの説明ページURL 該当のエラーに説明ページがない場合は何も返しません |
https://mp-faq.gmo-pg.com/s/article/D00923 |
title | エラーの内容サマリー エラーコードとして取り扱えます 一覧は以下の表を参照ください |
invalid_parameter |
detail | エラーの詳細説明 エラーメッセージとして取り扱えます 全て英文です。 |
The value provided for parameter is invalid.(orderid) |
instance | エラーが発生したエンドポイント | /credit/charge |
title
パラメーター(エラーの内容サマリー)の一覧は以下の通りです。
title名 | 説明 | HTTP ステータス コード |
---|---|---|
invalid_contract | 対象ショップの契約状態が無効であるか、ショップの設定が不足しています。 | 400 |
invalid_header | リクエストヘッダーの値が不正です。 | 400 |
invalid_parameter | リクエストパラメーターの書式または桁数が不正です。 | 400 |
invalid_request | 対象の取引に対して不正なリクエストです。 | 400 |
invalid_status | 対象の取引状態に対して処理できないリクエストです。 | 400 |
missing_parameter | 必須パラメーターが設定されていません。 | 400 |
transaction_count_exceeded | 同一取引に対する処理上限を超過しています。 所定の返金回数を超過した場合などに発生します。 |
400 |
transaction_expired | 処理期限を超過しています。 オーソリの有効期限超過後に確定を行った場合などに発生します。 |
400 |
unauthorized_request | 認証情報が正しくないか、許可されないIPアドレスのため、リクエストは受け付けられません。 | 401 |
operation_aborted_by_user | お客様の操作により決済手続きが中止されました。 | 402 |
card_declined | カード起因のエラーにより、リクエストが拒否されました。 | 402 |
insufficient_balance | 残高が不足しているため、リクエストが拒否されました。 | 402 |
amount_limit_exceeded | 上限金額を超過しているため、リクエストが拒否されました。 | 402 |
processing_failure | 決済事業者からエラーが返されました。 詳細は detail を参照ください。 |
402 |
resource_not_found | APIエンドポイントが無効であるため、リクエストは受け付けられません。 | 404 |
method_not_allowed | HTTPメソッドが正しくないため、リクエストは受け付けられません。 リダイレクト時は GET 、それ以外はPOST です。 |
405 |
conflict | 二重リクエストのため、リクエストは受け付けられません。 | 409 |
unsupported_media_type | Content-Type ヘッダーが正しくないため、リクエストは受け付けられません。application/json のみに対応しています。 |
415 |
too_many_requests | 同時接続数の上限を超過しています。 | 429 |
internal_server_error | 当サービスのサーバーで問題が発生したため、リクエストを処理できませんでした。 | 500 |
bad_gateway | 外部事業者やネットワークで問題が発生したため、リクエストを処理できませんでした。 | 502 |
maintenance | 外部事業者によるメンテナンスのため、リクエストは受け付けられません。 | 502 |
service_unavailable | 当サービスがメンテナンス中のため、リクエストは受け付けられません。 | 503 |
以下はエラーレスポンスのサンプルです。
{
"type":"https://mp-faq.gmo-pg.com/s/article/XXXXXX",
"title":"invalid_parameter",
"detail":"The parameter value is invalid.(order.amount)",
"instance":"/credit/charge"
}
アクセストークン方式の認証に利用するアクセストークンを発行するために呼び出すAPIです。
認証の詳細はAPIの認証を参照ください。
grant_type required | string Value: "client_credentials" グラントタイプ |
scope required | string Value: "openapi" スコープ
|
grant_type=client_credentials&scope=openapi
{- "access_token": "M2NlNjE1ZjYtMzc1Yy00ZGQ5LTg0OTAtOGEwNzliMzYyMjUzOjAwMDAwMDAwMDAwMDA=",
- "expires_in": "3600",
- "scope": "openapi",
- "token_type": "bearer"
}
クレカ払いで利用するAPIです。
以下の国際ブランドがついたクレジットカード・デビットカード、およびそのカード情報を登録したApple Pay、Google Payのお支払いに対応します。
テスト環境で利用可能なカード番号は、テストカード一覧(マルペイDocs)※を参照ください。
※マルペイDocsの利用方法はこちら
上記ページの「正常カード扱いテスト手順」は、OpenAPIタイプでも利用可能です。
「仮売上」については、こちらのFAQページを参照ください。
支払い要求のタイプcreditChargeOptions.authorizationMode
が仮売上AUTH
の取引は、確定処理により売上が確定します。
仮売上の有効期限は60日後の23時59分59秒であり、詳細な日時は支払い完了後に返される仮売上有効日時creditResult.captureExpiryDateTime
を確認してください。
例えば2020/1/8 17:00に仮売上の支払いをした場合、確定処理の期限は2020/3/8 23:59:59です。
支払い要求のタイプcreditChargeOptions.authorizationMode
が即時売上CAPTURE
の取引は、即座に売上が確定するため、確定処理は必要ありません。
都度支払い、随時支払い、有効性確認の処理の流れを説明します。
処理のシーケンスは、3Dセキュア認証(EMV 3-D Secure)と自動オーソリの有無で異なります。
不正検知サービスを利用する場合は、非同期モードの設定により処理のシーケンスが変わります。
いずれの場合も、カード情報のトークン化は本APIの呼び出し前に行ってください。
%%{
init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#f0f2f5',
'primaryTextColor': '#001C40',
'noteBkgColor': '#d9f4fc',
'noteTextColor': '#001C40',
'noteBorderColor': '#54C5E8'
}
}
}%%
sequenceDiagram
actor pyr as お客様
participant brw as ブラウザ
participant mer as 加盟店様
participant psp as 決済代行<br>(当サービス)
participant acq as カード会社
pyr->>+brw: 支払い<br>or<br>カード登録
brw->>+mer: 支払い<br>or<br>カード登録
mer->>+psp: /charge<br>or<br>/verifyCard<br>リクエスト
Note right of psp: 3Dセキュア利用なし<br>または未対応カード
psp->>+acq: オーソリ(信用照会)
acq-->>-psp: オーソリ結果
psp-->>-mer: /charge<br>or<br>/verifyCard<br>結果
mer-->>-brw: 結果画面
brw-->>-pyr: 結果表示
"autoAuthorization":true
場合のシーケンスです。%%{
init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#f0f2f5',
'primaryTextColor': '#001C40',
'noteBkgColor': '#d9f4fc',
'noteTextColor': '#001C40',
'noteBorderColor': '#54C5E8'
}
}
}%%
sequenceDiagram
actor pyr as お客様
participant brw as ブラウザ
participant mer as 加盟店様
participant psp as 決済代行<br>(当サービス)
participant tds as 3Dセキュア<br>サーバー
participant acq as カード会社
pyr->>+brw: 支払い<br>or<br>カード登録
brw->>+mer: 支払い<br>or<br>カード登録
mer->>+psp: /charge<br>or<br>/verifyCard<br>リクエスト
psp->>+tds: 認証初期化
tds-->>-psp: 認証URL
psp-->>-mer: リダイレクト<br>情報
mer->>-brw: 認証開始URLへの<br>リダイレクト
brw->>brw:
brw->>+psp:
psp->>-brw: 3DセキュアURLへのリダイレクト
brw->>brw:
brw->>+tds:
tds->>-brw: 当サービスのコールバックURLへのリダイレクト
brw->>brw:
brw->>+psp:
psp->>+tds: 認証依頼
tds-->>-psp: 認証結果
opt 認証チャレンジが必要な場合
psp->>-brw: チャレンジ画面へのリダイレクト
brw->>brw:
brw->>+tds:
tds-->>-brw: 認証チャレンジ画面
brw-->>-pyr: 認証画面
pyr->>+brw: パスワード入力
brw->>+tds: 本人認証情報
tds->>-brw: 当サービスのコールバックURLへのリダイレクト
brw->>brw:
brw->>+psp:
psp->>+tds: チャレンジ判定依頼
tds-->>-psp: チャレンジ結果
end
psp->>-brw: 当サービスのコールバックURLへのリダイレクト
brw->>brw:
alt 認証失敗、チャレンジ失敗の場合
brw->>+psp:
psp->>-brw: 加盟店様コールバックURLへのリダイレクト
else 認証成功の場合
brw->>+psp:
psp->>+acq: オーソリ(信用照会)
acq-->>-psp: オーソリ結果
psp->>-brw: 加盟店様コールバックURLへのリダイレクト
end
brw->>brw:
brw->>+mer:
mer->>+psp: /order/inquiry<br>リクエスト
psp-->>-mer: /order/inquiry<br>結果
mer-->>-brw: 結果画面
brw-->>-pyr: 結果表示
"autoAuthorization":false
場合のシーケンスです。%%{
init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#f0f2f5',
'primaryTextColor': '#001C40',
'noteBkgColor': '#d9f4fc',
'noteTextColor': '#001C40',
'noteBorderColor': '#54C5E8'
}
}
}%%
sequenceDiagram
actor pyr as お客様
participant brw as ブラウザ
participant mer as 加盟店様
participant psp as 決済代行<br>(当サービス)
participant tds as 3Dセキュア<br>サーバー
participant acq as カード会社
pyr->>+brw: 支払い<br>or<br>カード登録
brw->>+mer: 支払い<br>or<br>カード登録
mer->>+psp: /charge<br>or<br>/verifyCard<br>リクエスト
psp->>+tds: 認証初期化
tds-->>-psp: 認証URL
psp-->>-mer: リダイレクト<br>情報
mer->>-brw: 認証開始URLへの<br>リダイレクト
brw->>brw:
brw->>+psp:
psp->>-brw: 3DセキュアURLへのリダイレクト
brw->>brw:
brw->>+tds:
tds->>-brw: 当サービスのコールバックURLへのリダイレクト
brw->>brw:
brw->>+psp:
psp->>+tds: 認証依頼
tds-->>-psp: 認証結果
opt 認証チャレンジが必要な場合
psp->>-brw: チャレンジ画面へのリダイレクト
brw->>brw:
brw->>+tds:
tds-->>-brw: 認証チャレンジ画面
brw-->>-pyr: 認証画面
pyr->>+brw: パスワード入力
brw->>+tds: 本人認証情報
tds->>-brw: 当サービスのコールバックURLへのリダイレクト
brw->>brw:
brw->>+psp:
psp->>+tds: チャレンジ判定依頼
tds-->>-psp: チャレンジ結果
end
psp->>-brw: 加盟店様コールバックURLへのリダイレクト
brw->>brw:
brw->>+mer:
mer->>+psp: /finalizeCharge<br>or<br>/finalizeVerification<br>リクエスト
alt 認証失敗、チャレンジ失敗の場合
psp-->>mer: 3Dセキュア結果
else 認証成功の場合
psp->>+acq: オーソリ(信用照会)
acq-->>-psp: オーソリ結果
psp-->>-mer: /finalizeCharge<br>or<br>/finalizeVerification<br>結果
end
mer-->>-brw: 結果画面
brw-->>-pyr: 結果表示
"asyncMode":false
の場合のシーケンスです。%%{
init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#f0f2f5',
'primaryTextColor': '#001C40',
'noteBkgColor': '#d9f4fc',
'noteTextColor': '#001C40',
'noteBorderColor': '#54C5E8'
}
}
}%%
sequenceDiagram
actor pyr as お客様
participant brw as ブラウザ
participant mer as 加盟店様
participant psp as 決済代行<br>(当サービス)
participant acq as カード会社
participant frd as 不正防止<br>サービス
pyr->>+brw: 支払い
brw->>+mer: 支払い
mer->>+psp: /charge<br>リクエスト
psp->>+acq: オーソリ(信用照会)
acq-->>-psp: オーソリ結果
psp->>+frd: 不正検知リクエスト
frd-->>-psp: 審査結果
psp-->>-mer: /charge<br>結果
mer-->>-brw: 結果画面
brw-->>-pyr: 結果表示
"asyncMode":true
の場合のシーケンスです。%%{
init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#f0f2f5',
'primaryTextColor': '#001C40',
'noteBkgColor': '#d9f4fc',
'noteTextColor': '#001C40',
'noteBorderColor': '#54C5E8'
}
}
}%%
sequenceDiagram
actor pyr as お客様
participant brw as ブラウザ
participant mer as 加盟店様
participant psp as 決済代行<br>(当サービス)
participant acq as カード会社
participant frd as 不正検知<br>サービス
pyr->>+brw: 支払い
brw->>+mer: 支払い
mer->>+psp: /charge<br>リクエスト
psp->>+acq: オーソリ(信用照会)
acq-->>-psp: オーソリ結果
psp->>+frd: 不正検知リクエスト<br>(非同期)
psp-->>-mer: /charge<br>結果
mer-->>-brw: 結果画面
brw-->>-pyr: 結果表示
frd-->>-psp: 審査結果
mer-->>+psp: /order/inquiry<br>リクエスト
psp-->>-mer: /order/inquiry<br>結果<br>不正検知結果を含む
カード情報を都度設定して支払う場合に呼び出すAPIです。
Apple Pay、Google Payでのお支払いもこのAPIを利用します。
※ApplePayでは3Dセキュアおよび不正検知のご利用ができません。
Idempotency-Key | string <= 36 characters 冪等キー |
カード情報の設定方法は以下のいずれかです。
トークン化して設定
MPクレカトークン
当サービス標準のカード情報トークンです。
詳細はトークン決済v2 開発ガイドを参照ください。
Apple Payトークン
Apple Payに対応した端末で取得したApple PayのPayment tokenをbase64エンコードした値です。
詳細はBT01_ApplePay開発ガイド※を参照ください。
※マルペイDocsの利用方法はこちら
Google Payトークン
Google Pay APIで取得したPayment tokenをbase64エンコードした値です。
当サービスが提供するMpToken.js
を利用してトークンを取得することができます。
詳細はトークン決済v2 開発ガイドを参照ください。
Google Payに関する詳細はデベロッパー向けドキュメントを参照ください。
直接設定
PCI DSSの認定を得ている加盟店様のみが利用できます。
本番環境で利用するためにはお申し込みが必要です。
3Dセキュア認証利用時には、以下のカード会員の情報を必ず設定してください。
未設定でもエラーにはなりませんが、変更になる可能性があります。
creditInformation.card.cardholderName
が利用されます。payer
に設定した値が利用されます。required | object (Merchant) 加盟店(ショップ)情報 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
required | object (Order) 取引情報 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
required | object (Payer) 購入者情報 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
required | トークン化して設定 (object) or 直接設定 (object) (CreditInformation) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
One of
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object (Tds2Information) 3Dセキュア情報 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object (FraudDetectionInformation) 不正検知情報 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object (AdditionalOptions) 追加情報 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
{- "merchant": {
- "name": "サンプルストア",
- "nameKana": "ジーエムオーストア",
- "nameAlphabet": "Sample Store",
- "nameShort": "サンプル",
- "contactName": "サポート窓口",
- "contactEmail": "support@example.com",
- "contactPhone": "0120-123-456",
- "contactOpeningHours": "10:00-18:00",
- "csrfToken": "bdb04c5f-42f0-29e2-0979-edae3e7760bf"
}, - "order": {
- "orderId": "order-001",
- "amount": "1000",
- "currency": "JPY",
- "clientFields": {
- "clientField1": "加盟店自由項目1",
- "clientField2": "加盟店自由項目2",
- "clientField3": "加盟店自由項目3"
}, - "items": [
- {
- "name": "コーヒー豆",
- "description": "コーヒー豆の説明",
- "quantity": 3,
- "type": "DIGITAL",
- "price": "2000",
- "category": "5451",
- "productId": "123456789012",
- "productCode": "1234567890123"
}
], - "transactionType": "CIT",
- "shippingAddress": {
- "name": "見本 太郎",
- "line1": "道玄坂1丁目2-3",
- "line2": "渋谷ビル1F",
- "line3": "1号室",
- "city": "渋谷区",
- "state": "013",
- "postCode": "150-0043",
- "country": "392"
}, - "addressMatch": false,
- "billingAddress": {
- "name": "見本 太郎",
- "line1": "道玄坂1丁目2-3",
- "line2": "渋谷ビル1F",
- "line3": "1号室",
- "city": "渋谷区",
- "state": "013",
- "postCode": "150-0043",
- "country": "392"
}
}, - "payer": {
- "name": "見本 太郎",
- "nameKana": "ミホン タロウ",
- "nameAlphabet": "Taro Mihon",
- "gender": "MALE",
- "dateOfBirth": "19950308",
- "email": "taro.mihon@example.com",
- "deliveryEmail": "taro.mihon.delivery@example.com",
- "phones": [
- {
- "type": "MOBILE",
- "countryCode": "81",
- "number": "090-1234-5678"
}
], - "accountId": "account_123",
- "ip": "172.16.0.1",
- "deviceType": "PC_WEB",
- "httpUserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36"
}, - "creditInformation": {
- "tokenizedCard": {
- "type": "MP_TOKEN",
- "token": "Lg9sRgo5nx6yfefJ51z8bj/1VdNFAaCZYWZ+qLKJyqWwBS7yYvxSiC0zeMVH+O4F"
}, - "creditChargeOptions": {
- "authorizationMode": "AUTH",
- "useTds2": true,
- "useFraudDetection": true,
- "itemCode": "0000990",
- "paymentMethod": "ONE_TIME",
- "installments": "5"
}
}, - "tds2Information": {
- "tds2Options": {
- "skipNotEnrolledCard": false,
- "allowAttempt": "FOLLOW",
- "requiresChallenge": false,
- "autoAuthorization": true
}, - "tds2Data": {
- "chAccChange": "20230101",
- "chAccDate": "20230101",
- "chAccPwChange": "20230101",
- "nbPurchaseAccount": "6",
- "paymentAccAge": "20230101",
- "provisionAttemptsDay": "5",
- "shipAddressUsage": "20230101",
- "shipNameInd": "01",
- "suspiciousAccActivity": "01",
- "txnActivityDay": "1",
- "txnActivityYear": "12",
- "threeDSReqAuthData": null,
- "threeDSReqAuthMethod": null,
- "threeDSReqAuthTimestamp": null,
- "deliveryTimeframe": "01",
- "giftCardAmount": 999999999999999,
- "giftCardCount": 99,
- "giftCardCurr": "392",
- "preOrderDate": "20230101",
- "preOrderPurchaseInd": "01",
- "reorderItemsInd": "01",
- "shipInd": "01"
}
}, - "fraudDetectionInformation": {
- "fraudDetectionOptions": {
- "screeningType": "RED_SHIELD",
- "stopAuthorizationThreshold": null,
- "asyncMode": false
}, - "fraudDetectionData": {
- "userId": "userId-01",
- "identityDocType": "PASSPORT",
- "identityDocId": "TA0000001",
- "shippingCorporationName": "見本配送会社",
- "shippingPhone": "000-0000-0000",
- "shippingEmail": "user@example.com",
- "shippingMethod": "NEXT_DAY_OVERNIGHT",
- "shippingAmount": "200",
- "shippingTrackingNumber": "12345678901",
- "shippingComment": "Don't turn over.",
- "shippingSalutation": "Hi",
- "deviceInformation": null,
- "repeater": false,
- "userRegistrationElapsedDays": "180",
- "promotionCode": "INITIAL-BENEFITS-001",
- "giftCardMessage": "Here's to another year of being great together.",
- "giftCardType": "ANNIVERSARY"
}, - "fraudDetectionCustomData": {
- "customData1": null,
- "customData2": null,
- "customData3": null,
- "customData4": null,
- "customData5": null,
- "customData6": null,
- "customData7": null,
- "customData8": null,
- "customData9": null,
- "customData10": null,
- "customData11": 0,
- "customData12": 0,
- "customData13": null,
- "customData14": null,
- "customData15": true,
- "customData16": null,
- "customData17": 0,
- "customData18": 0,
- "customData19": null,
- "customData20": 0,
- "customData21": null,
- "customData22": null,
- "customData23": null,
- "customData24": null,
- "customData25": null,
- "customData26": null,
- "customData27": null,
- "customData28": null,
- "customData29": null,
- "customData30": null,
- "customData31": null,
- "customData32": null,
- "customData33": null,
- "customData34": null,
- "customData35": null,
- "customData36": null,
- "customData37": null,
- "customData38": null,
- "customData39": null,
- "customData40": null,
- "customData41": null,
- "customData42": null,
- "customData43": null,
- "customData44": null,
- "customData45": null,
- "customData46": null,
- "customData47": null,
- "customData48": null,
- "customData49": null,
- "customData50": null
}
}, - "additionalOptions": { }
}
{- "nextAction": "CAPTURE",
- "orderReference": {
- "accessId": "acdc7d53f7a78f488d8d0997eff99c6f",
- "accessPass": "8edc86b5c8b34e92a224f577dec63990",
- "orderId": "order-001",
- "status": "AUTH",
- "created": "2023-05-30T12:34:56+09:00",
- "updated": "2023-05-30T12:34:56+09:00",
- "amount": "1000",
- "clientFields": {
- "clientField1": "加盟店自由項目1",
- "clientField2": "加盟店自由項目2",
- "clientField3": "加盟店自由項目3"
}, - "chargeType": "CREDIT"
}, - "creditResult": {
- "cardType": "CREDIT_CARD",
- "cardResult": {
- "cardNumber": "4111********1111",
- "cardholderName": "TARO MIHON",
- "expiryMonth": "06",
- "expiryYear": "2033",
- "issuerCode": "2a99663"
}, - "forwardedAcquirerCode": "2a99663",
- "approvalCode": "1234567",
- "nwTransactionId": "2305301234602212345678912345",
- "transactionDateTime": "2023-05-30T12:34:56+09:00",
- "captureExpiryDateTime": "2023-06-30T12:34:56+09:00",
- "useTds2": false,
- "useFraudDetection": true
}, - "fraudDetectionResult": {
- "screeningType": "RED_SHIELD",
- "screeningTransactionId": "A0B26524E32C053A034F70B608054F6A",
- "screeningResultCode": "ACCEPT",
- "screeningResultRawData": "000.300.100"
}
}
登録されているカード情報を使って支払う場合に呼び出すAPIです。
対応している決済手段はクレジットカード、Apple Payです。
ただしVISAブランドのカード番号が登録されたApple Payはご利用になれません。
また、VISA以外のブランドについても、将来的に利用できなくなる可能性があります。
※ApplePayでは3Dセキュアおよび不正検知のご利用ができません。
Google Payについては、アカウント情報を当サービスに保管できません。
都度支払い時にGoogle Payで使用されたクレジットカード情報を保管することで、通常のクレジットカードとして随時支払いが利用可能です。
Idempotency-Key | string <= 36 characters 冪等キー |
カードのタイプはcreditOnfileInformation.onfileCard.type
で設定します。
プロトコルタイプとは異なりカード登録連番を物理モードで設定できません。
3Dセキュア認証利用時には、以下のカード会員の情報を必ず設定してください。
未設定でもエラーにはなりませんが、変更になる可能性があります。
creditOnfileInformation.onfileCard.cardholderName
が設定されている場合は、その値が利用されます。payer
に設定した値が利用されます。required | object (Merchant) 加盟店(ショップ)情報 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
required | object (Order) 取引情報 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
required | object (Payer) 購入者情報 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
required | object (CreditOnfileInformation) 登録済みクレカ払い情報 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object (Tds2Information) 3Dセキュア情報 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object (FraudDetectionInformation) 不正検知情報 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object (AdditionalOptions) 追加情報 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
{- "merchant": {
- "name": "サンプルストア",
- "nameKana": "ジーエムオーストア",
- "nameAlphabet": "Sample Store",
- "nameShort": "サンプル",
- "contactName": "サポート窓口",
- "contactEmail": "support@example.com",
- "contactPhone": "0120-123-456",
- "contactOpeningHours": "10:00-18:00",
- "csrfToken": "bdb04c5f-42f0-29e2-0979-edae3e7760bf"
}, - "order": {
- "orderId": "order-001",
- "amount": "1000",
- "currency": "JPY",
- "clientFields": {
- "clientField1": "加盟店自由項目1",
- "clientField2": "加盟店自由項目2",
- "clientField3": "加盟店自由項目3"
}, - "items": [
- {
- "name": "コーヒー豆",
- "description": "コーヒー豆の説明",
- "quantity": 3,
- "type": "DIGITAL",
- "price": "2000",
- "category": "5451",
- "productId": "123456789012",
- "productCode": "1234567890123"
}
], - "transactionType": "CIT",
- "shippingAddress": {
- "name": "見本 太郎",
- "line1": "道玄坂1丁目2-3",
- "line2": "渋谷ビル1F",
- "line3": "1号室",
- "city": "渋谷区",
- "state": "013",
- "postCode": "150-0043",
- "country": "392"
}, - "addressMatch": false,
- "billingAddress": {
- "name": "見本 太郎",
- "line1": "道玄坂1丁目2-3",
- "line2": "渋谷ビル1F",
- "line3": "1号室",
- "city": "渋谷区",
- "state": "013",
- "postCode": "150-0043",
- "country": "392"
}
}, - "payer": {
- "name": "見本 太郎",
- "nameKana": "ミホン タロウ",
- "nameAlphabet": "Taro Mihon",
- "gender": "MALE",
- "dateOfBirth": "19950308",
- "email": "taro.mihon@example.com",
- "deliveryEmail": "taro.mihon.delivery@example.com",
- "phones": [
- {
- "type": "MOBILE",
- "countryCode": "81",
- "number": "090-1234-5678"
}
], - "accountId": "account_123",
- "ip": "172.16.0.1",
- "deviceType": "PC_WEB",
- "httpUserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36"
}, - "creditOnfileInformation": {
- "onfileCard": {
- "memberId": "member-001",
- "type": "CREDIT_CARD",
- "cardId": "0",
- "index": "0",
- "cardholderName": "TARO MIHON"
}, - "creditChargeOptions": {
- "authorizationMode": "AUTH",
- "useTds2": true,
- "useFraudDetection": true,
- "itemCode": "0000990",
- "paymentMethod": "ONE_TIME",
- "installments": "5"
}
}, - "tds2Information": {
- "tds2Options": {
- "skipNotEnrolledCard": false,
- "allowAttempt": "FOLLOW",
- "requiresChallenge": false,
- "autoAuthorization": true
}, - "tds2Data": {
- "chAccChange": "20230101",
- "chAccDate": "20230101",
- "chAccPwChange": "20230101",
- "nbPurchaseAccount": "6",
- "paymentAccAge": "20230101",
- "provisionAttemptsDay": "5",
- "shipAddressUsage": "20230101",
- "shipNameInd": "01",
- "suspiciousAccActivity": "01",
- "txnActivityDay": "1",
- "txnActivityYear": "12",
- "threeDSReqAuthData": null,
- "threeDSReqAuthMethod": null,
- "threeDSReqAuthTimestamp": null,
- "deliveryTimeframe": "01",
- "giftCardAmount": 999999999999999,
- "giftCardCount": 99,
- "giftCardCurr": "392",
- "preOrderDate": "20230101",
- "preOrderPurchaseInd": "01",
- "reorderItemsInd": "01",
- "shipInd": "01"
}
}, - "fraudDetectionInformation": {
- "fraudDetectionOptions": {
- "screeningType": "RED_SHIELD",
- "stopAuthorizationThreshold": null,
- "asyncMode": false
}, - "fraudDetectionData": {
- "userId": "userId-01",
- "identityDocType": "PASSPORT",
- "identityDocId": "TA0000001",
- "shippingCorporationName": "見本配送会社",
- "shippingPhone": "000-0000-0000",
- "shippingEmail": "user@example.com",
- "shippingMethod": "NEXT_DAY_OVERNIGHT",
- "shippingAmount": "200",
- "shippingTrackingNumber": "12345678901",
- "shippingComment": "Don't turn over.",
- "shippingSalutation": "Hi",
- "deviceInformation": null,
- "repeater": false,
- "userRegistrationElapsedDays": "180",
- "promotionCode": "INITIAL-BENEFITS-001",
- "giftCardMessage": "Here's to another year of being great together.",
- "giftCardType": "ANNIVERSARY"
}, - "fraudDetectionCustomData": {
- "customData1": null,
- "customData2": null,
- "customData3": null,
- "customData4": null,
- "customData5": null,
- "customData6": null,
- "customData7": null,
- "customData8": null,
- "customData9": null,
- "customData10": null,
- "customData11": 0,
- "customData12": 0,
- "customData13": null,
- "customData14": null,
- "customData15": true,
- "customData16": null,
- "customData17": 0,
- "customData18": 0,
- "customData19": null,
- "customData20": 0,
- "customData21": null,
- "customData22": null,
- "customData23": null,
- "customData24": null,
- "customData25": null,
- "customData26": null,
- "customData27": null,
- "customData28": null,
- "customData29": null,
- "customData30": null,
- "customData31": null,
- "customData32": null,
- "customData33": null,
- "customData34": null,
- "customData35": null,
- "customData36": null,
- "customData37": null,
- "customData38": null,
- "customData39": null,
- "customData40": null,
- "customData41": null,
- "customData42": null,
- "customData43": null,
- "customData44": null,
- "customData45": null,
- "customData46": null,
- "customData47": null,
- "customData48": null,
- "customData49": null,
- "customData50": null
}
}, - "additionalOptions": { }
}
{- "nextAction": "CAPTURE",
- "orderReference": {
- "accessId": "acdc7d53f7a78f488d8d0997eff99c6f",
- "accessPass": "8edc86b5c8b34e92a224f577dec63990",
- "orderId": "order-001",
- "status": "AUTH",
- "created": "2023-05-30T12:34:56+09:00",
- "updated": "2023-05-30T12:34:56+09:00",
- "amount": "1000",
- "clientFields": {
- "clientField1": "加盟店自由項目1",
- "clientField2": "加盟店自由項目2",
- "clientField3": "加盟店自由項目3"
}, - "chargeType": "CREDIT"
}, - "creditResult": {
- "cardType": "CREDIT_CARD",
- "cardResult": {
- "cardNumber": "4111********1111",
- "cardholderName": "TARO MIHON",
- "expiryMonth": "06",
- "expiryYear": "2033",
- "issuerCode": "2a99663"
}, - "forwardedAcquirerCode": "2a99663",
- "approvalCode": "1234567",
- "nwTransactionId": "2305301234602212345678912345",
- "transactionDateTime": "2023-05-30T12:34:56+09:00",
- "captureExpiryDateTime": "2023-06-30T12:34:56+09:00",
- "useTds2": false,
- "useFraudDetection": true
}, - "fraudDetectionResult": {
- "screeningType": "RED_SHIELD",
- "screeningTransactionId": "A0B26524E32C053A034F70B608054F6A",
- "screeningResultCode": "ACCEPT",
- "screeningResultRawData": "000.300.100"
}
}
3Dセキュアに進んだ後に最終的に支払いをするためのAPIです。
Chargeリクエスト時に自動オーソリなしの場合には、コールバック後にこのAPIで支払いを完了してください。
Idempotency-Key | string <= 36 characters 冪等キー |
対象の取引のID
accessId required | string (AccessId) ^[a-zA-Z0-9]{32}$ 3Dセキュアにリダイレクトする前の支払いリクエスト時に返された取引ID | ||
object (AdditionalOptions) 追加情報 | |||
|
{- "accessId": "acdc7d53f7a78f488d8d0997eff99c6f",
- "additionalOptions": { }
}
{- "nextAction": "CAPTURE",
- "orderReference": {
- "accessId": "acdc7d53f7a78f488d8d0997eff99c6f",
- "accessPass": "8edc86b5c8b34e92a224f577dec63990",
- "orderId": "order-001",
- "status": "AUTH",
- "created": "2023-05-30T12:34:56+09:00",
- "updated": "2023-05-30T12:34:56+09:00",
- "amount": "1000",
- "chargeType": "CREDIT"
}, - "creditResult": {
- "cardType": "CREDIT_CARD",
- "cardResult": {
- "cardNumber": "4111********1111",
- "cardholderName": "TARO MIHON",
- "expiryMonth": "06",
- "expiryYear": "2033",
- "issuerCode": "2a99663"
}, - "forwardedAcquirerCode": "2a99663",
- "approvalCode": "1234567",
- "nwTransactionId": "2305301234602212345678912345",
- "transactionDateTime": "2023-05-30T12:34:56+09:00",
- "captureExpiryDateTime": "2023-06-30T12:34:56+09:00",
- "useTds2": true,
- "useFraudDetection": true
}, - "tds2Result": {
- "eci": "05",
- "requiresChallenge": false,
- "tds2TransResult": "Y",
- "tds2TransResultReason": "18"
}, - "fraudDetectionResult": {
- "screeningType": "RED_SHIELD",
- "screeningTransactionId": "A0B26524E32C053A034F70B608054F6A",
- "screeningResultCode": "ACCEPT",
- "screeningResultRawData": "000.300.100"
}
}
カード情報の有効性確認をするためのAPIです。
加えて有効性の確認が取れたカード情報を会員に紐づけて登録できます。
利用可能な決済手段はクレジットカード、Google Payであり、Apple Payは利用できません。
Google Payは通常のクレジットカードとして会員に紐づけて登録します。
Idempotency-Key | string <= 36 characters 冪等キー |
カード情報の設定方法は以下のいずれかです。
トークン化して設定
MPクレカトークン
当サービス標準のカード情報トークンです。
詳細はトークン決済v2 開発ガイドを参照ください。
Google Payトークン
Google Pay APIで取得したPayment tokenをbase64エンコードした値です。
当サービスが提供するMpToken.js
を利用してトークンを取得することができます。
詳細はトークン決済v2 開発ガイドを参照ください。
Google Payに関する詳細はデベロッパー向けドキュメントを参照ください。
登録済み情報を設定
登録されているカード情報を利用します。
対象の会員IDが必要です。
直接設定
PCI DSSの認定を得ている加盟店様のみが利用できます。
本番環境で利用するためにはお申し込みが必要です。
3Dセキュア認証利用時には、以下のカード会員の情報を必ず設定してください。
未設定でもエラーにはなりませんが、変更になる可能性があります。
creditVerificationInformation.onfileCard.cardholderName
が設定されている場合は、その値が利用されます。creditVerificationInformation.card.cardholderName
が利用されます。payer
に設定した値が利用されます。
詳細は共通パラメーター対応表 - クレカ払いを参照ください。有効性確認後にカード情報を会員に紐づけて登録した場合、設定した「カード名義人」が登録されます。
required | object (Merchant) 加盟店(ショップ)情報 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
required | object (OrderWithoutAmount) 取引情報 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
required | object (Payer) 購入者情報 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
required | トークン化して設定 (object) or 登録済み情報を設定 (object) or 直接設定 (object) (CreditVerificationInformation) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
One of
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object (Tds2Information) 3Dセキュア情報 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object (AdditionalOptions) 追加情報 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|