Powered by

カード決済・銀行Payの裏側【Developers Night#33登壇】

article-076_top.jpg

普段皆さんがお使いになっているクレジットカードやデビットカード。「カードを使う」その時に、裏ではどの様なシステムが稼働・連動して決済が行われているかご存じでしょうか。本記事では決済システムの裏側をその特徴と共にご紹介します。
併せて、銀行口座直結型コード決済の「銀行Pay」のサービスが稼働する仕組みを解説。
またそれぞれのサービスに従事する開発者が仕組みを解説すると共に、部門での働き方もご紹介します。

※本稿は2022年2月3日開催の「Developers Night #33」の登壇内容を加筆修正し掲載しています。

GMOペイメントゲートウェイという会社

article-076_thumb01.jpg

本題の前に、GMOペイメントゲートウェイについて会社紹介をさせていただきます。
上図中青枠部分、「PGマルチペイメントサービス」が当社のメインサービスであり、主にEC事業者様である左側の販売店と右側のカード、コンビニ、金融機関などの決済会社様をつなぐゲートウェイ部分を提供しています。
EC事業者様がカード、コンビニ、キャリア決済など、利便性を考え決済手段を追加していく際には、自前で直接つなごうとするといろいろな障壁が出てきます。
システム面では、契約、様々なIF(インターフェイス)や接続制約を踏まえてのシステム連携、精算といった手続きを決済手段毎に対応していく必要が出てきます。しかし、これでは時間・費用ともに高コストになってしまいます。

決済手段の多様化、リアル・非対面問わずキャッシュレスがトレンドとなってきている昨今、決済手段を増やしたいけれどそこに労力がかかってくることが問題、課題になります。
それを我々が各決済会社様と一元的に繋がせていただき、その結果EC事業者様に対してシンプルなインターフェイスを用意することで、簡単に手早く色々な決済手段をご利用いただくことができます。

契約も当社で集約させていただくことで課題であるシステム接続、精算、契約業務すべての課題をクリアするお手伝いができるものとなっています。

このように諸々の仕組みを当社にて集約し、ワンストップで各種決済手段をご利用いただくことができるサービスがこちらの「PGマルチペイメントサービス」となります。
決済ゲートウェイへのニーズは高まっており、現時点では、グループ連結で12万超のお客様にご利用いただき、35億件超、8兆円の年間トランザクションを処理しています。
会社としては、毎年25%の営業利益成長を目標とする中、16期連続で増収増益を達成しており、取引量だけでなくサービス拡充含め、開発ニーズも広がり続けています。
その処理を支えている我々システム本部ですが、現在エンジニアは200名程度で、内製開発にこだわり、Linux/Javaを中心としたオープンソースベースでの開発を行っています。
システム本部の拠点ベースは渋谷ですが、福岡にも開発拠点があります。毎年新卒と中途を合わせて30名以上のエンジニアを採用しております。

(上記数字は2021年9月末現在)

PGマルチペイメントサービス以外の主要サービス

article-076_thumb02.jpg

「PGマルチペイメントサービス」を筆頭に、多くのサービス・システム基盤を当社は提供しておりますが、あと3つほど紹介します。
1つ目は三井住友カード様が提供する「stera」という次世代決済プラットフォームにおける、決済システム提供です。「stera」は、当社とグループ会社のGMOフィナンシャルゲート、三井住友カード様、Visa様共同で構築したもので、ネット決済と店舗決済の双方を融合した新しい決済プラットフォームになります。

2つ目はコード決済基盤の提供です。
銀行口座直結型のQR/バーコード決済サービスである「銀行Pay」の基盤システム。こちらはゆうちょ銀行様の「ゆうちょPay」や横浜銀行様の「はまPay」などの名前で耳にすることがあるかと思います。
ここから派生して、各コード決済会社が提供しているコード決済サービスのゲートウェイ、リアル版「PGマルチペイメントサービス」のような仕組みである「GMO Cashless Platform」も展開しています。
「銀行Pay」はもとより、PayPay、楽天ペイ、LINE Pay、AliPayなど皆さんがよくお使いであろうコード決済は接続済みで網羅できていると思います。

3つ目はクレジット、デビット、プリペイドカードなどの発行業務であるイシュイング機能、加盟店管理業務であるアクワイアリング機能をSaaSにて提供する「GMO-PGプロセシングプラットフォーム」です。
本日はこちらの2つ目「コード決済基盤」と3つ目「GMO-PG プロセシングプラットフォーム」について、掘り下げてご案内できればと思います。

決済関連の事業者で働くとは

article-076_thumb03.jpg

本日はシステムに加えて働くメンバーのご紹介もさせていただく予定ですので、当社のような決済にまつわる事業のシステムの特徴も説明いたします。
3つのキーワードで示すと、「ミッションクリティカル」、「マイサービス」、「フルスタック・フルフェーズ」というワードにできるかもしれません。
一つ一つのキーワードはシステムに関わる皆さんにとってなじみのあるものと思いますが、これら3つを同時に求められる点が特徴です。
チャレンジングと見るかタフすぎる条件と怯んでしまうか、思う所は様々と思いますが、実際に携わっている我々の実感としては「厳しい非機能要件だからこそ様々なアプローチ手法、スキルの引き出しが増える点」、これはわかりやすいメリットですね。
また接続先のシステムによっては新しい技術を即時に取り入れるのが難しかったり、時にはレガシーな仕組みを踏襲しなければならないなど、バランスも必要になります。
決してカッティングエッジ、最先端技術を追い求める世界だけでは無い、という点は事実としてあります。
またセキュリティ面では決済というお金を扱う事業・サービスを行っている手前、一番狙われるエリアなので、感度高くやらなければなりません。日々、切磋琢磨が必要で、防衛策だけでなく、継続的なモニタリングなど多面的なアプローチが必要となります。あまりに新しすぎるものを使ってしまうとセキュリティホールが見つかってしまう、パッチが出てないこともありますので、この側面においても、ある程度「枯れた」技術を採用するケースもあったりします。
また、決済にまつわる事業者としては、自身の事業のための開発であり、だからこそのスピード開発が可能で、これが我々の成長を支える根源の1つになっています。
常にスピード感を持って、新しいニーズにマッチすることを重要視している文化があります。
SI的な重厚長大な工程であったり、ドキュメンテーションに重きを置くことも大事だと思いますが、スピードとのバランスを持ち、無駄をそぎ落として最適化したプロセスで進めていく。そういう気持ちで日々の業務を行っています。
固いシステムではありますが、不要と思われる部分は最適化していく、こういったスタンスで開発を行っています。

「カード決済」「コード決済」にまつわるプロセシングサービス領域

article-076_thumb04.jpg

さて本題です。先ほど我々のサービスの一つとしてご説明した「GMO-PG プロセシングプラットフォーム」ですが、図のような相関になっています。
皆さんが普段使っているカード、たとえばクレジットカードやデビットカード、最近だとプリペイドカードもありますが、それらを利用される裏にはアクワイアラ、イシュアと呼ばれるカード会社や金融機関などが存在します。それぞれが行う業務をここではアクワイアリング、イシュイングと呼びます。
大まかにいうと、アクワイアリングは決済の窓口であり加盟店の管理を行うシステム、イシュイングはカードホルダの管理、決済可否の判断と会員への請求を行うシステムとなります。
皆さんもご存じであろうカード会社、三井住友カード様やUCカード様などは、イシュアとしての立場で目にすることが多いかと思います。アクワイアラは加盟店向けの業務の為あまり存在を意識することは少ないかもしれません。
ちなみに日本においてはこれら二つの業務を兼ねているカード会社が多いです。
図の下の方にある「銀行Pay基盤システム」は少し毛色が異なっています。PayPayやLINE Payでおなじみの、コードを表示して/読み取って決済するコード決済の一つとして我々が提供している基盤システムとなります。
利用シーンはその他サービスと同様ですが、登録した銀行口座から決済と同時に引き落としが行われる流れになります。デビットカード決済のコード版のようなイメージです。
こちらはバックエンドとしての提供に加え、ユーザ向けアプリも我々にて開発しているものとなります。
今日はアクワイアリングと「銀行Pay基盤システム」について、サービス担当のメンバーからもう少し説明をさせていただこうと思います。
ここからはスピーカーをバトンタッチして進めさせていただきます。

エンジニア紹介:五月女(ソウトメ)

article-076_thumb05.jpg

バトンタッチしました、システム本部 五月女と申します。
アクワイアリングのご説明の前に私の紹介をさせていただこうと思います。

来歴ですが、
2015年に新卒で入社した神奈川県の従業員100人程度のSIerから、2019年1月にGMOペイメントゲートウェイに中途で入社しました。
前職では業務委託として決済システムの開発、保守運用をやっていたため、てっきりマルチペイメントサービス部に配属になるものと思っていましたが、アクワイアリングシステムの担当となりました。
以降はアクワイアリングシステムを担当しております。
また、2020年10月から課長もやらせていただいておりまして、現在課長2年目です。

担当領域はアクワイアリングシステム全般です。
要件定義もやれば、開発や保守運用もやりますし、何でもやるプレイングマネージャーとして幅広く業務に携わっています。

過去思い入れのある案件としては、当社のアクワイアリングシステムを新規導入するお客様のシステム立ち上げをしたことが挙げられます。
私は開発の責任者として参画し、様々な事情で1年半ほど掛かりましたが、ゼロトラブルで導入することが出来ました。
システム立ち上げは様々な方が関わってくるのにも関わらず、コロナ禍でコミュニケーションを取るのも難しい状況だったので、無事リリースされた際は凄く嬉しかったですし、プロジェクト推進方法など勉強になることもとても多く、スキルアップに繋がったかなと思います。

一日のイメージを右にグラフ化してみました。
朝9時に出社して、10時まで今日のTODOやメールを確認し、頭の働く午前中は案件の進捗管理やレビューをやっています。
午後はミーティングが主ですが、コロナ禍になってからミーティングのほとんどがオンラインで行われているので、移動時間がなくなってできた合間時間を有効活用できるところで、ミーティングで発生したタスクだったりを片付けています。
役職的に、実際に手を動かすというよりはミーティングが多くなってしまうのは、まぁしょうがないかと思います。
部下は手を動かしている時間の方が多いです。
私は大体19時~20時ぐらいに退社しますので、夜はある程度まとまった時間が取れ、技術力向上のために勉強をするようにしています。
当社は最大週2日の在宅勤務が認められているので、私も最大限利用させていただいております。
簡単ではありますが、私の紹介は以上です。次はアクワイアリングでどのような業務を担っているかを説明します。

アクワイアリングとは?

article-076_thumb06.jpg

図を見ていただけるとわかるのですが、アクワイアリング業務には大きく分けて3つの業務があります。
1つ目は「加盟店獲得」です。
加盟店獲得は平たく言うと、カード決済が出来るお店を増やすということですが、最近は都内であれば、どこでもカード決済が利用できますよね。これはアクワイアラが加盟店獲得を行っていった結果となります。

2つ目は「加盟店審査と途上調査」です。
不正を行う可能性のある怪しいお店にカード決済を導入するわけにはいきませんので、カード決済を導入して問題ないお店なのかを審査し、継続的に調査をします。
こうして、皆様が日々安全にカード決済の利用が出来るように取り組まれています。

3つ目は「売上処理と精算業務」です。
私どもが担っているのはこの部分となりますので、少し掘り下げて説明させていただきます。
カード決済はオーソリと売上という2フェーズで決済が行われます。
1フェーズ目は「オーソリ」ですが、「オーソリ」の説明の前に、皆さんはクレジットカードをお持ちだと思いますが、クレジットカードには利用限度額がありませんか?
1か月に10万円だったり、カード会社によってそれぞれですが、何かしら設定されていると思います。
10万円の利用限度額が設定してあるのに、20万円の買い物が出来たら皆さんのお財布が空っぽになってしまい困るので、カード会社はそれを超えないように買い物をしていただく仕組みを作る必要があります。
話は戻って、「オーソリ」はその買い物の決済金額が利用限度額内に収まっているかをカード会社に照会し、その利用枠を取っておくことになります。
枠を確保しておくことで、限度額を超えた金額で決済することを防止し、お金の未回収リスクを下げています。
皆様からすると、払えないお金で決済することを防止しています。

2フェーズ目の「売上」ですが、
後日ファイルで送られる売上データをもってオーソリで取得した枠が確定され、実際にお金が引き落としされるというわけです。
クレジットやデビット、プリペイドカードで変わってきますが、基本的にはこうなります。
これらのオーソリや売上データを加盟店様から受信し、VisaやMastercardといったブランドネットワークを通して全世界のイシュアに送信する処理が「売上処理」となります。
また、カード決済はお店で直接お金をやり取りすることはないため、後日お店はカード会社からお金が振り込まれるのですが、加盟店様から受信した売上データをもとに、アクワイアラは各加盟店様への振込額を計算し、振込を行っています。これが「精算業務」といわれるものです。

では、アクワイアラは振込するお金をどこから出しているのか?という点ですが、順を追って説明します。
図をご覧ください。アクワイアラも国際ブランドからお金を振り込まれています。そして国際ブランドもイシュアからお金を振り込まれていますね。
イシュアはユーザ様、つまりは皆様からお金をもらっています。
ですので、皆様から払ってもらっているお金が回りまわってきちんと加盟店様に振り込まれています。
ただ、皆様がクレジットカードで買い物をするとき、引き落としは月に1回とかですよね?
加盟店様は月に一回しか現金が入ってこないと活動資金が枯渇し、お店の経営がままならなくなる可能性もありますので、実際にはイシュアがお金を立て替えて先に払っており、加盟店様には決まったタイミングでアクワイアラが払うことが出来ます。

カードを発行するときの審査は厳しいと思うのですが、イシュアは皆様にきちんとお金を払ってもらえないとイシュア事業、つまりカードの発行ができなくなるため審査をしています。

さらに踏み込んだお話です。
図で登場している方々は慈善事業ではないので、どこかで儲ける必要があり、各所で手数料をいただいています。
国際ブランドはイシュアから振り込まれたお金から、アクワイアラへの手数料を徴収し、アクワイアラに振り込んでいます。
アクワイアラは国際ブランドから振り込まれたお金から加盟店様への手数料を徴収し、加盟店様に振り込んでいます。
結果として手数料は加盟店様が払っている構図です。
なぜ手数料を払ってまで加盟店様はカード決済を導入するかですが、皆様の手元に現金がない時にカード決済がないお店で買い物ができますか?という話です。
つまり「カード決済が出来るお店」は、他のお店と比べて有利になるわけです。そのため加盟店様はカード決済を導入したいのです。
ただこれだけカード決済が浸透していると、今はどちらかというとカード決済が無いと他のお店より劣って見えてしまうこともあるかもしれません。

話を戻します。
この手数料の流れでアクワイアラが気を付けなければならないこととして、加盟店様から徴収している手数料額よりも国際ブランドから徴収される手数料額が大きくなってはいけないという点です。
国際ブランドから徴収される手数料が大きくなるとアクワイアラが損をしますので、そこは気を付けて運用をしなければなりません。
アクワイアリングの業務説明は以上となります。次にシステム面の話をさせていただきます。

アクワイアリングシステム構成

article-076_thumb07.jpg

システム構成を図にしました。
まず当社のアクワイアリングシステムはクラウドではなく、オンプレ環境をLinuxで構築しています。
言語はJavaで、DBはOracleとMySQLの二つを採用し、利用用途に応じて使い分ける形を取っています。プログラミング言語はもちろんですが、OracleやMySQLといったミドルウェアに関する知識も必要になります。Linuxサーバやネットワーク等の知識もあると良いですね。私はまだまだですが。
アプリの知識だけではなく、アプリを動かす基盤の知識も得られるというのは非常にエンジニアとしては武器になると思います。

機能構成は大きく、オーソリ業務を行う「APサーバ」と売上業務を行う「バッチサーバ」、アクワイアラが取引検索等を出来る「管理画面」の3つに分かれています。
赤の動線は「オーソリの線」で、青の動線は「売上の線」、紫が「画面の線」です。
シンプルな機能構成なのですが、システム的に工夫しているところは、図でみて取れるように、入り口は国内ネットワーク事業者、出口は国際ブランドと、アクワイアリングシステムはネットワーク事業者に挟まれている形になっている点です。
カード決済と一口に言われますが、各ネットワーク事業者によって仕様は異なっていますので、それぞれの仕様差を吸収できるようにAPやバッチは機能を分離し、より柔軟に対応出来るように工夫しています。
アクワイアリングシステムで大変なところもまさにこの「挟まれている」というところです。
簡潔に言うなら文化の違いで苦戦しています。
左側の加盟店様は国内の事業者がほとんどですが、カードブランドは国際ブランドの名の通り、その先に海外のイシュアが居ますので、国内のカード事業の慣習が海外では通用しないなんてことがあります。

例えば、分割払いやボーナス払いが日本にはありますよね?
これら実は日本独自のもので海外にはありません。海外は基本的には一括支払のみとなります。
ですので、海外で発行したカードを日本で使うときに分割支払いは出来ません。
逆に日本で発行したカードを海外で使う時には、分割払い等はできないんじゃなかと思います。
これは分かりやすい例なのですが、もっと難しい課題に直面したりします。その場合はVisa様やMastercard様と直接やり取りして、課題解決にご協力いただいています。
もちろん英語でやり取りする機会もありますが、私のように日本語しか話せなくも何とかなっているので大丈夫です。(仕様書が英語なだけであって、リーディングは出来た方が良いかもしれません)

もう一点苦労しているのは、仕様改訂が頻繁に行われる点です。
カード決済は古くからある仕組みなので成熟しているものと思われがちですが、不正利用を減らす取り組みや新しいサービスの追加は常に行われています。それを主導しているのが国際ブランドのVisa様やMastercard様で、エンハンスメントといった仕様改訂が半年に1回行われています。インターフェイスやそもそもの仕組みが半年に1回変更されていることをイメージしてください。汎用的にシステム開発を行わないとその仕様改訂の速度に追い付けなくなってしまうため、そこを意識しながらの開発を行う必要があり、苦労しています。
アクワイアリングシステムについては、以上となります。

銀行Pay基盤システムにバトンタッチさせていただきます。

エンジニア紹介:井澤

article-076_thumb08.jpg

スマートペイGrで仕事をしています、井澤と申します。
スマートペイGrで担当しているうち、メインであります「銀行Pay基盤システム」に関してご説明したいと思いますが、まずは自己紹介からさせてください。

2016年にGMOペイメントゲートウェイに新卒で入社しまして、今年で6年目になります。
システム本部への配属当初から3年ほどデビットカードの発行業務を行うシステム、イシュイングシステムの案件に携わっていました。
その後、チームを異動しまして、現在に至るまでスマートペイGrにて「銀行Pay基盤システム」などを担当しております。
入社してからほぼすべて、金融機関向けのシステムに携わっております。
担当領域ですが、「銀行Pay基盤システム」にも携わりつつ、サービスの構築に向けた検討・設計なども行っております。
タフだったエピソードとして、金融機関とお仕事する機会が多いので、ドキュメントをはじめとした成果物を常に高いクオリティでアウトプットする必要がことが挙げられます。
また、スマートペイGrに異動してはじめての開発案件だった「銀行Pay基盤システム」への外部アプリ接続で、三井住友銀行様などと共に大型案件をさせていただいたことも思い入れがあります。
1日の仕事のイメージを図で示していますが、黄色の部分がミーティングの時間、青色の部分がタスクなどを行う時間になります。
日にもよりますが、全体の4~5割ぐらいがミーティングで、
それ以外が実際に手を動かしているというパターンが多いです。

口座直結コード決済:銀行Pay基盤システム

article-076_thumb09.jpg

本題の「銀行Pay基盤システム」の説明に移ります。
これは「QRコード/バーコードなどを用いた、銀行口座からの即時引き落としによる支払いが可能なスマホ決済サービス」の基盤となるシステムになります。
PayPayなどのコード決済を利用されたことがある方も多いかと思いますが、スマートペイGrは、基盤システム面より、銀行様と共にコード決済のサービスを提供させていただいております。
「銀行Pay基盤システム」は加盟店様の管理や加盟店精算といったアクワイアリングの業務と利用者や口座の管理といったイシュイングの業務どちらも行うシステムであるところが特徴です。
これから「銀行Pay基盤システム」を用いた決済のやり方を説明していきますが、利用者はスマホアプリ上で口座登録をしますとそれ以降決済が可能になります。

QRコード/バーコードを用いた決済の方法として大きく2種類あります。
「CPM」と書いている部分になりますが、利用者がお店の店員にスマホアプリ上のQRコード/バーコードを見せ、店員がQRコード/バーコードを読み取って決済を行うパターンをCPM(Consume Presented Mode)決済と言います。
反対に、「MPM」と書いている部分になりますが、お店の店員が提示したQRコード/バーコードだったり、お店に置かれているQRコード/バーコードを利用者がスマホアプリで読み取って決済を行うパターンをMPM(Merchant Presented Mode)決済といいます。

その後、読み取ったQRコード/バーコードのデータが「銀行Pay基盤システム」に連携されまして、
「銀行Pay基盤システム」内で管理しているデータとの突合及び精査を行い、「OK」と判定されれば、銀行口座へ出金依頼をかけるというのが決済の流れになります。

銀行Pay基盤システムの構成

article-076_thumb10.jpg

これらの業務を支えるシステムの構成をこのスライドで示しています。
機能構成を大きく言いますと
利用者向け、加盟店向けにUIを提供しているスマホアプリと、「銀行Pay基盤システム」プラットフォームと記載している部分になりますが、銀行の勘定系システムと接続しまして、各種決済や加盟店管理などの業務を行うサーバサイドのアプリケーションがあります。あとは、ユーザ情報や取引の検索、閲覧ができる管理画面などがあります。
中央のプラットフォームの部分を、下にもう少し詳しく記載していますが、APIサーバがメインになります。
アクワイアリングシステムと同様、「銀行Pay基盤システム」もオンプレ環境のLinux上にJavaのアプリケーションを構築しております。
それぞれのサーバについてですが、「銀行Payアプリ向けAPIサーバ」と記載されているサーバはその名の通り、利用者向け、加盟店向けアプリで使用する各種APIを実装しています。ユーザ登録や、口座登録過程で使用する機能、CPMのコード生成はこのアプリケーションで実現をしています。
同じような機能を「銀行Pay基盤システム」とは異なる外部アプリに対しても一部提供しています。それを「外部アプリ向けAPIサーバ」と記載している部分で実現をしています。

続いて、その下の「POSシステム向けAPIサーバ」と記載されているサーバは先ほどの「銀行Payアプリ向けAPIサーバ」で発行したCPMのコードを受け取り、CPM決済処理を行うアプリケーションになります。
多くの加盟店様は、POS事業者、またはネットワーク事業者経由で「銀行Pay基盤システム」と接続しております。
接続している事業者も多く、POS事業者の管理もこのアプリケーションの責務になっています。また、CPM処理の決済を行っています。
その3つのコンポーネントの右に、メール、PUHS通知を送るサーバや銀行システムと接続している入出金の依頼をしているサーバもあります。
ざっくりとした構成に関する説明になりますが
「銀行Pay基盤システム」はiOS/Androidアプリに始まり、APIや管理画面、バッチといった幅広いことをやっております。
「銀行Pay基盤システム」の紹介について以上になります。

話者

GMOペイメントゲートウェイ IT戦略ビジネス推進統括部

  • 統括部長 目野
  • アクワイアリングシステム担当 五月女
  • 銀行Pay基盤システム担当 井澤

features03_mainv.png

エンジニアイベント書き起こし記事一覧はこちら

recruit_btn.png

採用情報はこちら

feature01_btn.png

パートナーインタビュー記事一覧はこちら

※本コンテンツ内容の著作権は、GMOペイメントゲートウェイ株式会社に属します。

SSL GMOグローバルサインのサイトシール