カード情報非通過化対応のお願い

近年、セキュリティ対策が不十分なクレジットカード加盟店を狙った不正アクセスによるカード情報漏えい事故が増大しております。

こうした背景をふまえ、2018年6月頃に施行予定の改正割賦販売法 *1 によりクレジットカード番号の適切な管理と不正利用の防止が加盟店さまに義務付けられます。

これに伴い、一般社団法人日本クレジット協会および経済産業省により「クレジットカード取引におけるセキュリティ対策の強化に向けた実行計画」*2 (以下「実行計画」)が策定され、 改正割賦販売法の施行時期 2018年6月頃 を目安に、後述するクレジットカード番号の非通過対応が加盟店さま側で求められております。 非通過対応がされていない場合、加盟店さま側で別途「PCI DSS」*3 の準拠が必要となります。

PAY.JP の通過型処理のサポートについて

PAY.JP では加盟店・購入者の皆さまに安全な決済環境を提供するため、PAY.JP APIにおける下記にあげる通過型の処理を 非推奨 とし、下記に上げる一部APIのPOSTリクエストにおいて、2018年8月1日14:00を目処に 通過型のパラメーターに関して サーバー側から送信を受け付けない仕様に変更する予定 です。 後述する「クレジットカード番号の非通過対応」を参考に、非通過型へのシステム移行のご対応をお願いいたします。

エンドポイント パラメーター
/tokens
/charges
/customers
/customers/:id
card[number]
card[exp_month]
card[exp_year]
card[cvc]
card[address_state]
card[address_city]
card[address_line1]
card[address_line2]
card[address_zip]
card[country]
card[name]
/customers/:id/cards number
exp_month
exp_year
cvc
address_state
address_city
address_line1
address_line2
address_zip
country
name
/customers/:id/cards/:card_id cvc

通過型処理を実施されているPAY.JPの加盟店さまにおかれましては、以下の内容に従って非通過型処理への移行をお願いいたします。

クレジットカード番号の非通過化対応

クレジットカード番号の通過型、非通過型の違いについては下記をご参照ください。

内容 必要な対応 PAY.JP 実装
通過型 カード番号が加盟店のサーバーを通過 2018年6月を目安に、非通過型決済への移行もしくはPCI DSSへの準拠 サーバーサイドから直接カード番号を指定して PAY.JP API へリクエスト
非通過型 カード番号が加盟店のサーバーを通過しない 対応不要 payjp.js, Checkout, payjp-ios, payjp-android モジュール等でクライアントサイドから PAY.JP API へリクエスト

PAY.JP で非通過型に対応する

PAY.JP ではJSモジュールの payjp.js または Checkout を使ったトークン決済および iOS/Android モジュールの payjp-ios / payjp-androidで、非通過型にかんたんに対応することができます。下記のとおり、購入者のクライアントから直接PAY.JPへカード情報を送信するため、加盟店さまのサーバーに触れることなく安全に処理が可能です。

f:id:payjp:20171110172959p:plain
非通過対応がされたフロー

組込方法は下記チュートリアルやブログ記事にございますので参考にしてください。

通過型の処理について

一方で、PAY.JP APIに対して、サーバーサイドから直接カード番号を指定して処理を実施する方法がございます。

こちらは通過型となりますので、この方法で処理を実施している加盟店さまは、非通過型の対応が必要 となります。

f:id:payjp:20171110152459p:plain
非通過対応がされていないフロー

下記のようなリクエストを実施されている加盟店様は通過型に該当するため、先述の payjp.js, Checkout, payjp-ios/android を使った非通過型への対応をお願いいたします。

◯通過型対象: カード番号指定のリクエスト

下記カード番号を直接パラメーターに指定するケースのリクエストは通過型の対象となります。

リクエスト例(トークン作成):

curl https://api.pay.jp/v1/tokens -u KEY: \
-d card[number]=4242424242424242 \
-d card[exp_year]=2020 \
-d card[exp_month]=12 \
-d card[cvc]=123

リクエスト例(支払い作成):

curl https://api.pay.jp/v1/charges -u KEY: \
-d card[number]=4242424242424242 \
-d card[exp_year]=2020 \
-d card[exp_month]=12 \
-d card[cvc]=123 \
-d amount=500 \
-d currency=jpy

リクエスト(顧客作成):

curl https://api.pay.jp/v1/customers -u KEY: \
-d card[number]=4242424242424242 \
-d card[exp_year]=2020 \
-d card[exp_month]=12 \
-d card[cvc]=123 \
-d email=example@pay.jp

リクエスト(顧客のカード作成):

curl https://api.pay.jp/v1/customers/:id/cards -u KEY: \
-d number=4242424242424242 \
-d exp_year=2020 \
-d exp_month=12 \
-d cvc=123 \
-d email=example@pay.jp

リクエスト(顧客の更新):

curl https://api.pay.jp/v1/customers/:id -u KEY: \
-d card[number]=4242424242424242 \
-d card[exp_year]=2020 \
-d card[exp_month]=12 \
-d card[cvc]=123 \
-d email=example@pay.jp

非通過型への対応は、PAY.JP トークン作成ライブラリを使い カード番号指定リクエストをトークン作成ライブラリ経由で行うよう実装を変更してください。

◯通過型対象: CVC指定のみのカード更新リクエスト

下記、既存カードのCVCを更新するケースのリクエストは通過型の対象となります。

リクエスト(顧客のカードのCVC更新):

curl https://api.pay.jp/v1/customers/:id/cards/:card_id -u KEY: \
-d cvc=123 

非通過型への対応は、PAY.JP トークン作成ライブラリを使い、下記のステップでご対応いただく形となります。

CVC指定のみのカード更新リクエストの非通過型対応 1. PAY.JP トークン作成ライブラリにて、トークンを新規作成 (カード番号、有効期限、更新後のCVC) 2. 該当する顧客のカード新規作成で、1で作成したトークンを紐付ける (※1) 3. 2で紐付けたカードを顧客のデフォルトカードに変更する (※2)

※1 顧客のカードを作成 | PAY.JP API リファレンス

※2 顧客情報を更新 | PAY.JP API リファレンス

加盟店の皆さまにはご迷惑をおかけいたしますが、ご対応のほどどうぞよろしくお願いいたします。

クレジットカード番号の非通過対応についてご不明点などございましたら、 PAY.JP お問い合わせフォーム よりご連絡をお願いいたします。