こんにちは! スマートバンクでソフトウェアエンジニアをしている uribou です。
今回は B/43 のカード決済システムのしくみについて解説しようと思います!
B/43 では Visa のプリペイドカードを発行しており、普段はあまり触れる機会のないカード決済の業務やシステムの裏側を知ることができます。
前編ではカード決済システムの一般的なしくみ、後編では B/43 での詳細な実装方法について解説していこうと思います!
カード決済の基本的なしくみ
スマートバンクは Visa のプリペイドカードを発行しているカード発行会社になります。
このカードは、世界中どこの Visa 加盟店でも利用できますが、これは Visa が運営している決済ネットワークに B/43 のシステムを繋ぎこむことで実現しています。
カード決済システムを作るためには、Visa が要求する業務やシステムを構築し、Visa の決済ネットワークに繋ぎこんだ上で運用していく必要があります。
オーソリゼーションとクリアリング
カード決済は大きく分けて、オーソリゼーション(オーソリ)とクリアリングという2つの工程があります。
オーソリはいわゆる信用照会で、カードの有効性をお店からカード発行会社に確認する工程になります。
お店でカードを利用すると、どこのお店でいくら利用するのかといった決済の情報が含まれたオーソリ電文が、お店からカード発行会社に送信されます。カード発行会社は、その情報をリアルタイムに判定して承認可否をお店へ返却します。
カード発行会社は、カードの有効期限が切れていないか、ユーザの与信枠が充分かといった様々なロジックを元に承認可否を判定します。
一方、クリアリングはお店とカード発行会社の精算処理になります。 オーソリを承認してから数日後に、お店がカード発行会社へ売上データを連携して精算が行われます。この時、お店が立て替えている代金から一定の手数料を引いた額が、カード発行会社からお店へ支払われます。この処理をもって、ユーザに対する代金の請求も確定します。
クレジットカードとプリペイドカードの違い
クレジットカードでもプリペイドカードでも、オーソリとクリアリングのしくみは同様ですが、ユーザに代金が請求されるタイミングがそれぞれ異なります。
プリペイドカードは、ユーザが事前に残高をチャージしているので、オーソリが到着した時点で代金をチャージ残高から引きます。一方、クレジットカードは月に1回の請求になるので、クリアリング到着済の代金がユーザに一括で請求されます。
この時に特徴的なのが、プリペイドカードではオーソリの後に追加で代金が請求されたり返金されたりすることです。前述の通り、ユーザへの請求が確定するのはクリアリング時ですが、その際の代金がオーソリの代金と異なることがあります。例えば、外貨で決済してオーソリからクリアリングが到着するまでの間に為替レートが変動した時などです。
この時、クリアリングの代金が最終的な請求金額になるため、オーソリとの差額をユーザに追加で請求または返金することがあります。
そのため、カード発行会社のシステムとしても、このような追加徴収・返金に対応する必要があります。
異常系のしくみ
基本的な、商品を購入した際の流れは前項の通りですが、返金が発生した時やシステムに不具合があった場合のリカバリーはどうなっているでしょうか。
Visa の決済ネットワークでは、オーソリにいくつかのバリエーションを持たせることで、これらの(準)異常系のケースに対応しています。
準異常系:リバーサルオーソリ
商品を返品したなどで返金が発生した際は、リバーサルオーソリが利用されます。リバーサルオーソリは元のオーソリを取り消すためのオーソリで、返金する際にお店からカード発行会社に送信されます。
カード発行会社はリバーサルオーソリを受け取ると、対応する元のオーソリを確認し、問題がなければ元のオーソリを取り消します。
プリペイドカードの場合は、この際に元オーソリの代金をユーザの残高に返金します。
異常系:リピート・アドバイスオーソリ
ネットワークの不調等でオーソリが正常に処理されなかった際は、リピート・アドバイスオーソリが利用されます。
リピートオーソリは、オーソリのレスポンスがお店まで到達しなかった時に、お店側のシステムから再送されるオーソリになります。カード発行会社は、リピートオーソリの元オーソリが既に処理されていないかを確認し、処理されていなければリピートオーソリを承認します。
一方アドバイスオーソリは、オーソリのレスポンスが Visa の決済ネットワークまで到達しなかった際に、Visa ネットワークから送信されるオーソリです。この時、Visa ネットワークはお店へ元オーソリの承認結果を代行して送信し、その代行結果をカード発行会社へアドバイスオーソリとして連携します。その際、カード発行会社は元オーソリの処理状況によって、アドバイスオーソリの処理内容を決定します。
画像の例は、元オーソリを承認したが、アドバイスオーソリによって元オーソリが拒否代行されたケースです。この場合、許可した元オーソリの結果を拒否に変更する必要があるので、元オーソリを許可した際に引いた代金をユーザに返金します。
このような異常系に対するリカバリー手段が、Visa の決済ネットワークに実装されているのはとても便利ですが、カード発行会社として対応するシステムを実装するのもそれなりに大変です。B/43 では、オーソリのエンドポイントをテストするための E2E テストを用意していますが、異常系も含めたテストケースは100ケースほどになっています。
一口にオーソリといっても様々な責務を持つので、内部でいかに責務を分割するか、動作することをどのように担保するかといった所が重要になってきます。
さいごに
カード決済システムのしくみについて、ざっくり解説してみましたがいかがでしたでしょうか。中々複雑ですが、カード決済システムのしくみを把握していると、各カード会社の仕様が何故そのようになっているのか分かって結構楽しかったりします。
次回の後編では、オーソリ実装時の工夫やテスト方法、予想外のケースに対処するための監視手法などについて解説できたらと思います!ぜひぜひご一読ください。
参考文献
より深く理解したい方におすすめの参考文献もあげておきます!
カード決済業務のすべて - ペイメントサービスの仕組みとルール
決済サービスとキャッシュレス社会の本質
クレジットのすべてがわかる! 図解 カードビジネスの実務 第2版
スマートバンクでは一緒に B/43 を作り上げていくメンバーを募集しています!
カジュアル面談も受け付けていますので、お気軽にご応募ください 🙌