利用者が Apple Pay または Google Pay にカードを追加すると、Apple や Google により、新しい有効期限のある DPAN (Device PAN) という新しいカード番号が自動的に生成されます。DPAN は以下の点で実際のカード番号とは全く異なります。
- 利用者が同じカードを複数のデバイスに追加すると、その都度、異なる DPAN が生成されます。
- カードがデバイスから削除されると、DPAN は自動的に無効化されます。
- 同じカードが再び追加されると、新しい 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 桁を表示しません。このシナリオでは、last4
と dynamic_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 つに置き換えられますが、使用される実際のカードと一致しないという同じ問題が生じます。