Apple Pay や Google Pay でカード番号はどのように扱われますか?また、dynamic_last4 とは何ですか?

利用者が Apple Pay または Google Pay にカードを追加すると、Apple や Google により、新しい有効期限のある DPAN (Device PAN) という新しいカード番号が自動的に生成されます。DPAN は以下の点で実際のカード番号とは全く異なります。

カード発行会社は、多くの場合、PAN BIN ごとにペアの「DPAN BIN」を使用しますが (同じ売上タイプ、通常 8 桁)、常にそうであるとは限りません。

この処理はすべて裏側で行われ、カード保有者に明かされることはありません。利用者が Apple Pay または Google Pay を使って何かの支払いをするたびに、この DPAN が加盟店や代行業者に送信されます。実際のカード番号または実際の有効期限が通知されることはありません。

ただし、このフローには 1 つ問題があります。加盟店は DPAN の末尾 4 桁を参照するため、購入に関連するカードについて加盟店が表示できる情報と、利用者の実際のカード番号が異なるということです。

この問題を解決するために、Apple と Google は、DPAN とともに実際のカード番号の末尾 4 桁を代行業者に送信します。つまり、Stripe は DPAN に対して請求を行いますが、API の last4 プロパティーには実際のカード番号の末尾 4 桁が表示されるということです。これにより、加盟店は、使用されたカードに関する詳細を報告しやすくなります。また、Stripe が請求を行った DPAN に関する詳細情報を加盟店が確認できるように、別途、DPAN の末尾 4 桁が dynamic_last4 プロパティーに入力されます。ただし、Apple Pay に追加された Apple カードが使用された場合、Apple は実際のカード番号の末尾 4 桁を表示しません。このシナリオでは、last4dynamic_last4 のどちらも、DPAN の末尾 4 桁を示します。これは、Apple カードを Apple Pay で使用するという独特なケースです。

実際のカード番号はわからないため、代わりに DPAN に基づいて fingerprintが計算されます。つまり、同じカードが 2 つの別個のデバイスに追加された場合、同じカードが 2 つの異なる DPAN を表し、API またはダッシュボードで 2 つの異なるフィンガープリントが生じることになります。

テスト環境では、カードの last4 プロパティーは元のカードの末尾 4 桁と一致したままになります。ただし、Apple Pay の場合、DPAN は無視され、テストカード番号の 4242424242424242 が自動的に使用されます。テストカード番号の 4242 は Visa カードなので、使用された実際のカードのブランドや売上タイプにかかわらず、ダッシュボードと API に反映されるカードブランドは Visa、売上タイプはクレジットになります。 Google Pay の場合、DPAN は Google のテストスイートで提供されるテストカード番号の 1 つに置き換えられますが、使用される実際のカードと一致しないという同じ問題が生じます。