fincode

Product Blog

「FAQ(よくあるご質問)サイト」リニューアルのお知らせ

このたび、fincode byGMOのFAQサイトをリニューアルいたしました。 リニューアルに伴い、サイトのURLも変更となりますので、以下にて詳細をご案内いたします。 ■概要   「fincode byGMO」では、お客様がよりスムーズに疑問を解決できる環境を目指し、   FAQサイトのリニューアルを実施しました。    生成AIによる回答機能の追加やデザインの刷新により、    これまでよりも見やすく、探しやすい構成になっています。 ■リニューアル日   2026年10月2日(金) ■URLの変更   TOPページ(https://support.fincode.jp/)のURLに変更はありませんが、各記事の個別URLが変更となります。    <変更例>     旧:https://support.fincode.jp/dashboard/245/     新:https://support.fincode.jp/hc/ja/articles/5591788217758    ・ブックマーク(お気に入り)に登録されている場合は、お手数ですが新しいURLの再登録をお願いいたします。    ・リニューアル後、旧URLの記事は閲覧できなくなります。     ※切替に伴い、一時的にメンテナンス画面が表示される場合がございます。あらかじめご了承ください。 ■リニューアル内容   ・生成AIによる回答機能を追加    検索欄に質問や困りごとを入力すると、AIが即時に回答を作成・提示します。    関連性の高い記事もあわせて案内されるので、効率的に解決策を見つけられます。    ※AIの回答が探している内容と異なる場合は、関連する他の記事もあわせてご確認ください。   ・見やすく、探しやすいデザインに刷新    画面デザインや情報の配置を見直し、視認性と操作性を向上させました。    また、各記事の末尾には「評価ボタン(参考になった/参考にならなかった)」を設置しています。    いただいた評価は今後の改善に活用しますので、フィードバックにぜひご協力ください。 お問い合わせ    本件についてのお問い合わせは、下記フォームからお願いします。    「fincode byGMO」お問い合わせフォーム リニューアルしたFAQサイトを、ご不明点の早期解消にぜひお役立てください。

運営チーム
「FAQ(よくあるご質問)サイト」リニューアルのお知らせ

【fincode導入事例】弥生株式会社様|「カードで払えますか?」に即答し取引機会を拡大。Misoca連携のカード決済・定期決済で、スモールビジネスの請求業務を効率化

スモールビジネス向けのバックオフィス支援サービスを提供する弥生株式会社。 同社は、クラウド見積・納品・請求書サービス「Misoca」と連携し、カード決済対応の請求書を発行できる「カード決済+ by 弥生株式会社(以下、カード決済+)」を提供しています。 2025年7月にサービスを開始し、2026年1月には「定期カード決済機能」も追加。 売り手が取引先に対してクレジットカードという支払い手段を提示できるようになり、新規取引の拡大や未回収リスクの低減、入金消込の自動化を実現しています。 このサービスの決済基盤として採用されたのが、GMOイプシロン株式会社の「fincode byGMO(以下、fincode)」です。 今回は、サービス開発の背景やfincode導入の決め手、今後の展望について、弥生株式会社の内山正彦様に伺いました。 【導入前の課題】 取引先から「カードで支払いたい」という声が寄せられる中、銀行振込のみでは支払いニーズに応えきれず、新規取引の機会損失や債権回収リスクが課題になっていた。 【導入の決め手】 初期費用・月額手数料が無料で、Webから申し込み完結。Misocaとの連携がスムーズで、定期カード決済への拡張もできる柔軟な決済基盤だった。 【導入の成果】 請求書上でカード決済を提示できるようになり、取引先の支払い手段が拡大。定期カード決済の導入により、毎月の請求書発行・送付・入金確認・消込作業が不要になり、バックオフィス業務の大幅な効率化を実現。 「カードで払えますか?」――その一言に応えたかった ――「カード決済+」を開発された背景を教えてください。 Misocaをご利用いただいているお客様から、「取引先にカードで払いたいと言われたが、対応できない」という声をいただくことが増えていました。 BtoB取引の支払い手段は今も銀行振込が主流ですが、取引先によってはクレジットカードで支払いたいというニーズが確実に存在します。 特に新規の取引先や海外との取引では、売り手にとって「本当に入金されるのか」という債権回収リスクも大きな不安要素になります。 ――そうしたニーズに対して、どのようなアプローチを考えたのでしょうか。 私たちが目指したのは、Misocaで発行する請求書そのものにカード決済の選択肢を加えることです。 売り手が特別なシステムを構築する必要はなく、普段の請求書業務の延長線上でカード決済を提示できる。 それによって、取引先から「カードで払えますか?」と聞かれたときに、すぐ「払えます」と答えられる環境を作りたいと考えました。 初期費用ゼロ、Web完結。Misocaとの親和性の高さがfincodeの決め手 ――決済基盤としてfincodeを採用された理由を教えてください。 大きく3つあります。 まず、初期費用・月額手数料が無料であること。 「カード決済+」はMisocaをお使いの事業者様に広くご利用いただきたいサービスですので、導入のハードルはできるだけ低くしたいという思いがありました。 fincodeはその点で非常に合致していました。 次に、Webで申し込みから利用開始まで完結できること。 書面でのやり取りが不要で、審査通過後すぐにご利用いただけます。 Misocaのユーザー様はクラウドサービスに慣れている方が多いので、この「Webで完結する」という体験はとても大切にしたいポイントでした。 そして3つ目が、定期課金への拡張性です。 サービス開始の時点から、単発の請求書決済だけでなく、将来的に継続請求の自動化までカバーしたいと考えていました。 fincodeはサブスクリプション管理や顧客カード情報の登録など、定期課金に必要な仕組みを備えていたので、将来の拡張まで見据えた上で安心して採用できました。 取引機会の拡大と、請求・回収業務の"手離れ"を同時に実現 ――サービス提供開始後、どのような変化がありましたか。 一番大きいのは、Misocaで発行する請求書上にカード決済という支払い手段を提示できるようになったことです。 売り手にとっては、取引先の支払いニーズに柔軟に応えられるようになりますし、新規取引や海外取引でも、カード決済を通じて債権回収リスクを抑えた形で取引を始められます。 これまで銀行振込しか選べなかった場面で「カードも使えます」と言えるだけで、商談の進み方が変わってくるはずです。 ――2026年1月に追加された定期カード決済機能についても教えてください。 毎月同額の請求が発生する取引――たとえば士業の顧問料や機器のレンタル料などを想定しています。 これまでは毎月「請求書を作成→送付→入金確認」というサイクルを繰り返す必要がありましたが、定期カード決済機能を使えば、これらの作業がすべて不要になります。 口座振替の代替手段としてもお使いいただけますし、紙やハンコも不要でWebから開始できます。 バックオフィス業務の"手離れ"という意味で、非常に大きな一歩だと感じています。 Misocaユーザー全体への展開と、弥生のバックオフィス支援のさらなる進化へ ――今後の展望をお聞かせください。 将来的には「Misoca」サービスだけでなく、「カード決済+」を単体の決済機能として閉じるのではなく、弥生のバックオフィスサービス群全体の中で活用範囲を広げていきたいと考えています。 私たちのミッションは、中小企業や個人事業主の皆様が本業に集中できる環境を作ること。 請求書の発行から決済・回収までをシームレスにつなぐことで、バックオフィス業務にかかる時間と手間をもっと減らしていきたい。 fincodeはその基盤として、今後も一緒に進化していけるパートナーだと思っています。 ――fincodeは、どのような企業に向いていると思いますか。 既存の請求書業務のフローを大きく変えずに、カード決済を導入したい事業者様には非常に相性が良いと思います。 初期費用・月額手数料がかからないので「まず試してみる」というスタートが切りやすいですし、定期課金まで拡張できるので、将来の業務効率化まで見据えた設計ができます。 特に、Misocaのような業務サービスと組み合わせてお客様に価値を届けたいと考えているサービス提供者にとっては、非常に頼れる決済基盤です。   「カード決済+ by 弥生株式会社」サービスサイトはこちら https://www.yayoi-kk.co.jp/bank/payment/card-plus/   fincodeとは fincodeとは、GMOイプシロン株式会社が提供する、スピーディに導入できるオンライン決済サービスです。 シンプルで統一性のあるAPIと充実の開発支援コンテンツを提供し、エンジニアファーストな設計を追求しています。 fincodeが提供する決済画面のUIコンポーネント(JavaScript)をそのまま利用することで開発工数を削減し、簡単に決済を実装できます。 決済を通じてEC/SaaS/プラットフォーム、スタートアップからエンタープライズまで様々なビジネスの成長を支えます。 +FinTechによる新たな収益モデルの構築 fincodeのプラットフォーム機能を実装することで、決済金額に対する利用料が得られる新たな収益モデルの構築が可能です。 貴社のお客様(=テナント)へ提示する決済手数料に、「プラットフォーム利用料」を設定することで、差額が貴社の収益となります。 「貴社プロダクト + FinTech~新たな収益モデル構築のご提案~」資料ダウンロード > fincodeが選ばれる理由 エンジニアファーストの設計/洗練されたUX オープンでアクセスしやすいWEBドキュメント、REST APIと複数開発言語に対応したAPIリファレンス。 決済画面のUIも、Android/iOS対応のモバイルSDKにより、少ない開発工数で柔軟にカスタマイズ可能です。 見えない手数料、ゼロへ 初期費用・月額費用0円。 さらに、義務化されたEMV 3-Dセキュア認証についても追加費用0円で導入できます。 料金表に書かれていない見えない手数料はゼロ。カード決済は決済手数料のみでご利用いただけます。 国際標準を日本品質で fincodeは日本国内で生まれ、日本のビジネス環境に合わせて設計された決済サービスです。 海外発サービスでは難しい、日本ならではの細かな商習慣や感性まで理解して、日本の企業と共に成長していきます。 運営会社 会社名 GMOイプシロン株式会社(英文表記:GMO Epsilon, Inc.) 設立年月日 2002年9月26日 所在地 〒150-0043 東京都渋谷区道玄坂1丁目14番6号 ヒューマックス渋谷ビル7F 資本金 1億5百万円 事業内容 オンライン販売の決済代行、代金回収代行及びそれらに付帯する業務 主要株主 GMOペイメントゲートウェイ株式会社 (東証プライム上場:3769) グループ会社 GMOインターネットグループ 東証プライム上場企業のGMOペイメントゲートウェイの連結会社として、プライバシーマーク認証やPCI DSS、ISMS準拠のセキュリティ基準で安心してご利用いただける環境を提供しています。   事業規模によって決済手数料のご提案が可能です。 見積依頼 > fincodeサービス概要の資料ダウンロードはこちらから 資料請求 >

マーケティングチーム
【fincode導入事例】弥生株式会社様|「カードで払えますか?」に即答し取引機会を拡大。Misoca連携のカード決済・定期決済で、スモールビジネスの請求業務を効率化

【fincode導入事例】株式会社DIRIGIO様|個別料率調整と法務対応を支える決済基盤。fincode byGMOで実現した柔軟な設計

累計6,500店舗以上(※)の飲食店が利用するモバイルオーダープラットフォーム「PICKS(ピックス)」を運営する株式会社DIRIGIO。 同社はペイメント事業を本格的なプロダクトとしてローンチするにあたり、決済システムとして「fincode byGMO(以下、fincode)」を採用しました。 プラットフォーマーとして自社がフロントに立つ決済スキームをいかに構築し、大手クライアント特有の課題をどう解決したのか。 代表取締役の本多祐樹様にお話を伺いました。 ※2026年4月時点 【導入前の課題】 大手案件で求められる個別料率調整と、法規制を踏まえたスキーム設計への対応が必要だった 【導入の決め手】 プラットフォーム機能による個別料率調整の柔軟性と、国内企業としての高度な専門知見 【導入の成果】 大手案件にも対応しやすい運用基盤を整えられ、加盟店の申請工数も削減された ペイメント事業の本格展開へ。個別料率調整と法規制対応が課題に ――「PICKS」が抱えていた決済周りの課題について教えてください。 決済流通額の増加にともない、ペイメント事業を本格的なプロダクトの一部としてローンチしたいという構想がありました。 モバイルオーダープラットフォームとしてさらなる成長を目指す上で、決済を単なる外部機能としてではなく、サービスの中核に据える必要があったのです。 その構想を実現するために、解決しなければならない課題が大きく2点ありました。 1つ目は、ビジネス面における柔軟性です。 大手企業様との取引では決済手数料の個別見積もりが不可欠となります。 プラットフォーム全体で一律の料率を設定するのではなく、クライアント様の規模やニーズに合わせて柔軟に調整できる仕組みが必要でした。 2つ目は、法規制への対応を含めたスキーム設計です。 当社がフロントに立ち、プラットフォーマーとして決済を提供する座組(スキーム)を構築するには、割賦販売法や資金移動法といった複雑な法律をクリアしなければなりません。 これらの課題に対し、システム面での柔軟性と、法務面での高度な知見を兼ね備えた、中長期的に信頼できるパートナーを探していました。 個別料率調整、申請のオンライン化、開発のしやすさ。fincodeを選んだ3つの理由 ――数ある決済サービスの中から、最終的にfincodeを選んだ決め手は何だったのでしょうか。 fincodeを選んだのは、当社が求める「プラットフォーマー主導の座組」を実現できる可能性を感じたからです。 理由は大きく分けて3つあります。 まずはプラットフォーム機能の柔軟性です。 fincodeには、個別の店舗(加盟店)様に対して料率調整ができる機能が標準実装されていました。 これにより、大手クライアント様からいただいた手数料調整の要望に、スムーズに対応できるようになりました。 料率ごとに決済の仕組みを分けてしまうと、開発や運用保守の難易度が上がり、弊社だけでなくクライアント様にとってもコスト増になってしまいます。 そこを一本化できたことは非常に大きなメリットです。 次にオペレーションの効率化です。 これがエンジニアやカスタマーサクセス(CS)チームにとっても非常に大きなポイントでした。 例えば、大規模なフランチャイズ展開をされている企業様の場合、表向きは一つのブランドでも、実態は1,000社以上のフランチャイズオーナー様の集合体であることがあります。 決済サービスによっては、この1,000社分すべての申請を紙ベースで行わなければならないケースもあり、大変なコストがかかる可能性がありました。 その点、fincodeはモダンなAPI設計に加え、加盟店申請をオンライン上で完結・自動化できる仕組みが整っています。 このWeb完結型の申請フローにより、導入にかかる工数を大きく削減することができました。 そして、エンジニアフレンドリーな設計です。 開発チームからは「SDKやAPIが体系化・整理されており、エラーハンドリングも含めて非常に実装しやすい」という声が上がっていました。 決済機能は事業の根幹に関わる一方、実装や運用の複雑さが開発全体の負担になりやすい領域でもあります。 その点、fincodeはドキュメントや仕様を理解しやすく、実装の見通しを立てやすかったため、開発をスムーズに進める上で大きな支えになりました。 法規制への対応を進めやすくなった。大きな安心材料となった国内企業ならではの専門知見 ――導入後の成果について教えてください。 実際に導入を進めた結果、当初課題として認識していたポイントはおおむね想定通りに解消できたと感じています。 大手クライアント様ごとの個別料率調整に対応できるようになったことで、案件ごとに無理なく運用設計ができる基盤が整いました。 また、加盟店申請をオンライン上で完結・自動化できる仕組みによって、エンジニアやカスタマーサクセスの負担も抑えやすくなっています。 加えて、開発面でも実装の見通しを立てやすく、事業拡大を見据えた決済基盤に必要な要件をしっかり満たせたと考えています。 ――導入にあたって、法務面やサポート面での安心感はいかがでしたか。 決済領域は、割賦販売法や資金移動法など、非常に複雑な法規制が絡む領域です。 当社が自社でゼロから法的整理を行おうとすると膨大なリソースが必要になりますが、fincodeではスキーム構築に必要な前提や仕組みが整理されていました。 fincodeの規約を前提とした形で提供すれば、法的整理の負担を軽減しやすく中長期的な事業拡大に集中できますので、大きな安心材料だと感じています。 ――国内企業であるGMOインターネットグループならではの強みを感じる場面もありましたか。 はい。決済業界は多くのステークホルダーが複雑に関係し合っている特殊な領域です。 これまでの実績に基づいたアクワイアラ(カード会社)との関係性や、日本特有の商習慣への理解は、一朝一夕で築けるものではありません。 そうした国内市場における知見の深さを持ちつつ、プロダクトとしてはモダンで洗練されている信頼性と先進性のバランスこそが、fincodeの魅力だと思います。 また、Web上で完結する利便性がありながら、個別の相談には担当者が伴走してくれるという、透明性の高いサポート体制にも助けられました。 SaaSとフィンテックの融合へ。決済基盤の先にある新たな価値提供 ――「PICKS」の今後の展望や、決済を軸にした新たな構想について教えてください。 海外では、飲食領域のバーティカルSaaSがファイナンスやフィンテックと融合し、拡大している事例があります。 日本国内においても、私たちはそのビジネスモデルを確立していきたいと考えています。 将来的には、決済流通データを活用したキャッシュフロー改善支援などにも取り組める可能性があります。 飲食店様は売上重視のビジネスであり、いかに早く資金を回転させるかが重要です。 資金繰りの柔軟性を高める各種ソリューションを、当社のプロダクトと決済機能を組み合わせて提供することで、飲食店経営の可能性をより広げることを目指しています。 ――最後に、fincodeはどのような企業におすすめしたいですか。 単に「決済を導入したい」というだけでなく、事業の構想の中に「フィンテック」を組み込みたいと考えている企業には相性がいいと思います。 プラットフォーム事業者にとって、決済はユーザー体験の中核です。 fincodeは、決済を単なるツールではなく、事業のあり方や未来を議論できるパートナーとして向き合ってくれます。 「何ができるか」を考えている構想段階から相談することで、ビジネスの可能性が広がると思います。 私たちも、fincodeの柔軟性を活かしながら、飲食店様にとってより付加価値の高い体験を構築していきたいですね。   PICKSサービスサイトはこちら https://picks.fun/   fincodeとは fincodeとは、GMOイプシロン株式会社が提供する、スピーディに導入できるオンライン決済サービスです。 シンプルで統一性のあるAPIと充実の開発支援コンテンツを提供し、エンジニアファーストな設計を追求しています。 fincodeが提供する決済画面のUIコンポーネント(JavaScript)をそのまま利用することで開発工数を削減し、簡単に決済を実装できます。 決済を通じてEC/SaaS/プラットフォーム、スタートアップからエンタープライズまで様々なビジネスの成長を支えます。 +FinTechによる新たな収益モデルの構築 fincodeのプラットフォーム機能を実装することで、決済金額に対する利用料が得られる新たな収益モデルの構築が可能です。 貴社のお客様(=テナント)へ提示する決済手数料に、「プラットフォーム利用料」を設定することで、差額が貴社の収益となります。 「貴社プロダクト + FinTech~新たな収益モデル構築のご提案~」資料ダウンロード > fincodeが選ばれる理由 エンジニアファーストの設計/洗練されたUX オープンでアクセスしやすいWEBドキュメント、REST APIと複数開発言語に対応したAPIリファレンス。 決済画面のUIも、Android/iOS対応のモバイルSDKにより、少ない開発工数で柔軟にカスタマイズ可能です。 見えない手数料、ゼロへ 初期費用・月額費用0円。 さらに、義務化されたEMV 3-Dセキュア認証についても追加費用0円で導入できます。 料金表に書かれていない見えない手数料はゼロ。カード決済は決済手数料のみでご利用いただけます。 国際標準を日本品質で fincodeは日本国内で生まれ、日本のビジネス環境に合わせて設計された決済サービスです。 海外発サービスでは難しい、日本ならではの細かな商習慣や感性まで理解して、日本の企業と共に成長していきます。 運営会社 会社名 GMOイプシロン株式会社(英文表記:GMO Epsilon, Inc.) 設立年月日 2002年9月26日 所在地 〒150-0043 東京都渋谷区道玄坂1丁目14番6号 ヒューマックス渋谷ビル7F 資本金 1億5百万円 事業内容 オンライン販売の決済代行、代金回収代行及びそれらに付帯する業務 主要株主 GMOペイメントゲートウェイ株式会社 (東証プライム上場:3769) グループ会社 GMOインターネットグループ 東証プライム上場企業のGMOペイメントゲートウェイの連結会社として、プライバシーマーク認証やPCI DSS、ISMS準拠のセキュリティ基準で安心してご利用いただける環境を提供しています。   事業規模によって決済手数料のご提案が可能です。 見積依頼 > fincodeサービス概要の資料ダウンロードはこちらから 資料請求 >

マーケティングチーム
【fincode導入事例】株式会社DIRIGIO様|個別料率調整と法務対応を支える決済基盤。fincode byGMOで実現した柔軟な設計

【fincode導入事例】MOSH株式会社様|入金遅延や凍結リスクを解消。高額サービスを安心して販売できる決済環境へ

個人やスモールチームが、オンラインでのレッスンや講座、コンサルティングなどのサービスを販売できるプラットフォームを運営するMOSH株式会社。 2026年9月現在、10万人以上の登録クリエイターを抱え、彼ら彼女らと消費者を直接つなぐ「指名経済」を支える存在として注目を集めています。 同社がオンライン決済基盤として導入したのが、GMOイプシロン株式会社が提供する 「fincode byGMO(以下、fincode)」。 今回は導入背景や導入後の成果など、fincodeの魅力について事業企画の金川英弘様に話を聞きました。 【導入前の課題】 高額サービスの販売において、入金遅延や不当なクレームによる決済凍結などクリエイター側にリスクがあった 【導入の決め手】 導入前からこまやかなコミュニケーションがとれて、安心感を持てた 【導入の成果】 幅広い層にリーチでき、より多くの人が高額サービスを販売できるようになった 導入前からの綿密なやりとりが、安心につながった ――まずは、貴社のサービス概要を教えてください。 私たちは、個人やスモールチームがレッスン・講座・カウンセリング・コンサルティングなどのサービスをオンラインで販売・運営できるプラットフォームを運営しています。 従来は「美容院で選ぶ」「スクールで選ぶ」だったのが、「この人からサービスを受けたい」という指名でのサービス利用、購入が当たり前になりつつあります。 私たちはこれを「指名経済」と呼んでいますが、その潮流を支えているのがMOSHだと考えています。 ――登録されているクリエイターは10万人以上もいらっしゃるそうですね。どのような理由で選ばれているのでしょうか? MOSHを利用すれば、サービス販売に必要な決済から予約・動画コンテンツ管理・メッセージ送信までを完結できます。 複数のツールを組み合わせる煩雑さがなく、MOSHだけで全体を運営できる手軽さをご好評いただくことが多いです。 ――fincode導入前の課題を教えてください。 もともと利用していた決済サービスで、決済の凍結が増えていたことです。 MOSHでは2年ほど前から、高単価講座を販売するクリエイターの方々が増えています。 具体的には、2〜3ヶ月の学習プログラムで20〜30万円、高額なもので50〜100万円といった価格帯です。 提供されるサービスは無形商材であり、かつ提供期間も長期にわたるため、取引の安全性を確保する観点から、既存の決済サービスやアクワイアラーからの審査が厳格化していた背景がありました。 その結果、真摯にサービスを提供しているクリエイターであっても、購入者からの軽い不満や理不尽なクレームで決済が凍結されてしまうことがありました。 さらに、それを覆すのが難しいという課題から、私たちが信頼しているクリエイターの方々が安心・安全に使っていただける決済手段を提供したいと思い、各種決済サービスを検討するようになりました。 ――fincodeを選ばれた決め手を教えてください。 最も重視していたのは、既存決済サービスで決済を止められてしまったものの、本来であれば利用していただきたいと考えていたクリエイターの方々が、きちんと審査を通過できるかどうかという点でした。 本審査はどの決済サービスも厳しかったのですが、GMOイプシロンと決済事業者間で事前調整を丁寧に対応してくださったことで、こうしたクリエイターの方々が審査に通過できるようになり、それが決め手となりました。 実際にMOSHを使っているクリエイターの方々が本当にfincodeを使えるのかという観点で、詳細なすり合わせができたのが安心感につながったと思います。 加えて、私たちの事業モデルである「複数テナントが傘下に入るASP型」に対応していたことも大きかったですね。 その上で、導入前から綿密にやりとりをしていただき、高単価なサービスを提供するクリエイターであっても、正しく講座を運営していれば安心・安全に決済できると確認できたことが、最終的な判断材料となりました。 分割払い機能などクリエイターに寄り添う機能が魅力 ――機能面において魅力を感じたことはありますか。 分割払いの機能があったことです。 エンドユーザーである購入者は、決済時に分割払いをするか選ぶことができます。 一方で、購入者が分割払いを選んでも、クリエイターには一括入金されるという仕組みです。 もともと使っていた決済サービスでは難しかったので、そういった体験をつくれることは大きかったです。 実際にこの機能はよく使っていただいています。 ――導入後の反応はいかがですか。 クリエイターからは「安定して決済できる」「安心して活動できる」との声をいただいています。 スムーズに決済できることが第一ですので、不安な声がないことが最大の成果だと思います。 現在では、「決済面での安心感」がMOSHを選ぶ理由のひとつとして顧客からあげられるケースも増えており、幅広いクリエイターにもリーチできるようになりました。 高額サービスを提供するという事業戦略を変えずに、継続できたことが良かったです。 金額や提供形態に応じた柔軟な審査・運用が可能となり、取引がスムーズに成立する基盤が整ったことは、MOSHにとって大きな進歩です。 安心の決済基盤とともに、海外展開やリアル連携も視野に ――今後の展望を教えてください。 MOSHをご利用の方々に、たとえば、リアルな場所を提供するオンラインとオフラインを掛け合わせるようなサービスを提供していければと思います。 現状はオンラインが中心ですが、リアル店舗などの場を組み合わせたユースケースを増やすことで、新たな価値を生み出していく予定です。 さらに、日本発のクリエイターが海外ユーザーにサービスを提供できる仕組みを整えることも視野に入れ、幅広く支援していきたいと思います。 ――最後に、fincodeの導入を検討している企業にメッセージをお願いします。 fincodeは、安心安全に使っていける決済サービスとして非常に信頼できるパートナーだと感じています。 また細かい話ですが、導入検討の初期からスムーズにやり取りできたことも助かりました。 システム導入において、ベンダーとの丁寧なコミュニケーションを重視する企業や、MOSHのようなプラットフォームを持っている企業にはおすすめしたいです。   MOSHサービスサイトはこちら https://mosh.jp/   fincodeとは fincodeとは、GMOイプシロン株式会社が提供する、スピーディに導入できるオンライン決済サービスです。 シンプルで統一性のあるAPIと充実の開発支援コンテンツを提供し、エンジニアファーストな設計を追求しています。 fincodeが提供する決済画面のUIコンポーネント(JavaScript)をそのまま利用することで開発工数を削減し、簡単に決済を実装できます。 決済を通じてEC/SaaS/プラットフォーム、スタートアップからエンタープライズまで様々なビジネスの成長を支えます。 +FinTechによる新たな収益モデルの構築 fincodeのプラットフォーム機能を実装することで、決済金額に対する利用料が得られる新たな収益モデルの構築が可能です。 貴社のお客様(=テナント)へ提示する決済手数料に、「プラットフォーム利用料」を設定することで、差額が貴社の収益となります。 「貴社プロダクト + FinTech~新たな収益モデル構築のご提案~」資料ダウンロード > fincodeが選ばれる理由 エンジニアファーストの設計/洗練されたUX オープンでアクセスしやすいWEBドキュメント、REST APIと複数開発言語に対応したAPIリファレンス。 決済画面のUIも、Android/iOS対応のモバイルSDKにより、少ない開発工数で柔軟にカスタマイズ可能です。 見えない手数料、ゼロへ 初期費用・月額費用0円。 さらに、義務化されたEMV 3-Dセキュア認証についても追加費用0円で導入できます。 料金表に書かれていない見えない手数料はゼロ。カード決済は決済手数料のみでご利用いただけます。 国際標準を日本品質で fincodeは日本国内で生まれ、日本のビジネス環境に合わせて設計された決済サービスです。 海外発サービスでは難しい、日本ならではの細かな商習慣や感性まで理解して、日本の企業と共に成長していきます。 運営会社 会社名 GMOイプシロン株式会社(英文表記:GMO Epsilon, Inc.) 設立年月日 2002年9月26日 所在地 〒150-0043 東京都渋谷区道玄坂1丁目14番6号 ヒューマックス渋谷ビル7F 資本金 1億5百万円 事業内容 オンライン販売の決済代行、代金回収代行及びそれらに付帯する業務 主要株主 GMOペイメントゲートウェイ株式会社 (東証プライム上場:3769) グループ会社 GMOインターネットグループ 東証プライム上場企業のGMOペイメントゲートウェイの連結会社として、プライバシーマーク認証やPCI DSS、ISMS準拠のセキュリティ基準で安心してご利用いただける環境を提供しています。   事業規模によって決済手数料のご提案が可能です。 見積依頼 > fincodeサービス概要の資料ダウンロードはこちらから 資料請求 >

マーケティングチーム
【fincode導入事例】MOSH株式会社様|入金遅延や凍結リスクを解消。高額サービスを安心して販売できる決済環境へ

【fincode導入事例】株式会社SynaBiz様|開発工数の少なさが導入の決め手。取引の利便性・安全性が向上し、問い合わせも激減

日本最大級のBtoBマーケットプレイス「NETSEA(ネッシー)」を運営する株式会社SynaBiz。 同社は決済システムとして、GMOイプシロン株式会社が提供する「fincode byGMO(以下、fincode)」を導入し、商品を仕入れるバイヤー様の利便性向上や、商品を販売するサプライヤー様が安心して取引できる環境を実現しました。 今回は導入の背景から成果、今後の展望について、サービス責任者の惣川裕太様にお話を伺いました。 【導入前の課題】 バイヤーはサプライヤーごとにクレジットカード情報を入力する必要があり、利便性が低かった 【導入の決め手】 エンジニアフレンドリーなAPI設計と充実したテスト環境で、開発がしやすかった 【導入の成果】 カード情報を一度登録すれば、どのサプライヤーからもシームレスに決済できるようになった バイヤーが抱えていた決済の課題 ――NETSEAが抱えていた決済周りの課題について教えてください。 バイヤー様にとって、利便性の低さが大きな課題でした。 当時のシステムはサプライヤー様ごとに決済を行うASP型に近く、バイヤー様は仕入れ先が変わるたびにクレジットカード情報を入力し直す必要がありました。 大手ECサイトでの購買体験に慣れているバイヤー様の担当者にとって、この仕様は大きなストレスになっていたと思います。 エンジニアフレンドリーな設計とスムーズな移行が決め手。開発工数を抑えて切り替えを実現 ――fincodeを導入する際、他社サービスとの比較検討はされましたか。 私自身が別事業で他の決済サービスに触れた経験もありましたので、いくつかのサービスを比較検討しました。 機能面では各社に大きな違いはなかったのですが、最終的にfincodeを選んだ決め手は、開発のしやすさです。 fincodeのAPIは非常に現代的な設計で、開発を担当したエンジニアからは「エンジニアフレンドリーで開発しやすかった」という声が上がっています。 また、テスト環境が充実していたおかげで、実装前の検証で困ることもありませんでした。 さらに、既存の決済システムからの移行がスムーズだった点も大きなメリットでした。 ――導入にあたって、サポート面はいかがでしたか。 サポート体制の手厚さも、fincodeを選んで良かった点です。 今回の切り替えで最も大変だったのが、既存のサプライヤー様からシステム移行に関する同意をいただくプロセスでした。 対象となるサプライヤー様は数百社にのぼるため、説明に大変時間がかかることは目に見えていました。 そこでGMOイプシロンの担当者の方に共同で資料を作成していただいたため、事前準備のコストを大きく削減することができました。 取引の利便性や安全性が向上。バイヤー・サプライヤー・運営の三者にメリット ――fincode導入後、どのような成果がありましたか。 バイヤー様、サプライヤー様、そして運営側である当社、三方にとって良い成果が出ています。 まずバイヤー様にとっては、利便性が格段に向上しました。 一度クレジットカード情報を登録すれば、NETSEA内のどのサプライヤー様からでもシームレスに決済できるようになったため、以前のような「毎度カード登録をしないといけなく不便」といったお問い合わせは一切なくなりました。 サプライヤー様にとっての成果は、取引の安全性が向上したことです。 今回の切り替えを機に、すべてのクレジットカード決済に3Dセキュアを標準導入しました。 チャージバックは劇的に減少し、サプライヤー様が安心して取引できる環境を整備できたと感じています。 そして、運営側である私たちにとっても、前述の成果をバイヤー様、サプライヤー様に提供し、信頼関係をより強固にできるという大きなメリットがありました。 また、従来のシステムでは別管理だった一部の決済手段の売上を一元管理できるようになったため、業務の効率化も図ることができました。 決済手段の拡充とエスクロー機能の強化で、さらなる利便性を追求 ――今後のNETSEAの展望や、fincodeに期待することを教えてください。 決済はユーザー体験において非常に重要な部分ですので、今後も継続的に改善していきたいと考えています。 具体的には、2つの構想があります。 1つは決済手段の拡充です。 お客様の選択肢は多ければ多いほど良いと考えていますので、fincodeで実装可能なPayPayなどの決済手段は、積極的に導入していくつもりです。 もう1つは、バーチャル口座機能を活用した銀行振込フローの改善です。 現状、NETSEAでの銀行振込は、バイヤー様とサプライヤー様間の直接のやり取りにお任せしているため、当社が取引を完全に管理しきれていないという課題があります。 例えば、入金後に商品が届かないといったトラブルが発生しても、当社が介入して返金処理を行うことができません。 fincodeのバーチャル口座機能を導入し、当社が一時的にお金を預かるエスクロー決済の仕組みを強化できれば、こうしたトラブルにも迅速に対応できるようになります。 プラットフォームとしての安全性をさらに高め、すべてのユーザー様が安心して取引できる環境を構築していきたいです。 ――最後に、fincodeはどのような企業におすすめしたいですか。 NETSEAのようなプラットフォーム事業を運営されている企業には、間違いなくおすすめできます。 決済システムはいろいろありますが、fincodeはプラットフォームでの利用に特化した機能があるので、非常に親和性が高いです。 また、自社で開発リソースを持ち、柔軟なシステム構築を目指している企業にもフィットすると思います。 先ほどお話ししたように、APIが使いやすくテスト環境も充実しているので、エンジニアが開発を進めやすいサービスです。 私たちもまだまだ利用しきれていない機能がありますので、fincodeの柔軟性を活かしながらユーザー体験の向上に取り組んでいきたいですね。   NETSEAサービスサイトはこちら https://www.netsea.jp/   fincodeとは fincodeとは、GMOイプシロン株式会社が提供する、スピーディに導入できるオンライン決済サービスです。 シンプルで統一性のあるAPIと充実の開発支援コンテンツを提供し、エンジニアファーストな設計を追求しています。 fincodeが提供する決済画面のUIコンポーネント(JavaScript)をそのまま利用することで開発工数を削減し、簡単に決済を実装できます。 決済を通じてEC/SaaS/プラットフォーム、スタートアップからエンタープライズまで様々なビジネスの成長を支えます。 +FinTechによる新たな収益モデルの構築 fincodeのプラットフォーム機能を実装することで、決済金額に対する利用料が得られる新たな収益モデルの構築が可能です。 貴社のお客様(=テナント)へ提示する決済手数料に、「プラットフォーム利用料」を設定することで、差額が貴社の収益となります。 「貴社プロダクト + FinTech~新たな収益モデル構築のご提案~」資料ダウンロード > fincodeが選ばれる理由 エンジニアファーストの設計/洗練されたUX オープンでアクセスしやすいWEBドキュメント、REST APIと複数開発言語に対応したAPIリファレンス。 決済画面のUIも、Android/iOS対応のモバイルSDKにより、少ない開発工数で柔軟にカスタマイズ可能です。 見えない手数料、ゼロへ 初期費用・月額費用0円。 さらに、義務化されたEMV 3-Dセキュア認証についても追加費用0円で導入できます。 料金表に書かれていない見えない手数料はゼロ。カード決済は決済手数料のみでご利用いただけます。 国際標準を日本品質で fincodeは日本国内で生まれ、日本のビジネス環境に合わせて設計された決済サービスです。 海外発サービスでは難しい、日本ならではの細かな商習慣や感性まで理解して、日本の企業と共に成長していきます。 運営会社 会社名 GMOイプシロン株式会社(英文表記:GMO Epsilon, Inc.) 設立年月日 2002年9月26日 所在地 〒150-0043 東京都渋谷区道玄坂1丁目14番6号 ヒューマックス渋谷ビル7F 資本金 1億5百万円 事業内容 オンライン販売の決済代行、代金回収代行及びそれらに付帯する業務 主要株主 GMOペイメントゲートウェイ株式会社 (東証プライム上場:3769) グループ会社 GMOインターネットグループ 東証プライム上場企業のGMOペイメントゲートウェイの連結会社として、プライバシーマーク認証やPCI DSS、ISMS準拠のセキュリティ基準で安心してご利用いただける環境を提供しています。   事業規模によって決済手数料のご提案が可能です。 見積依頼 > fincodeサービス概要の資料ダウンロードはこちらから 資料請求 >

マーケティングチーム
【fincode導入事例】株式会社SynaBiz様|開発工数の少なさが導入の決め手。取引の利便性・安全性が向上し、問い合わせも激減

【Python】銀行振込の消込作業を自動化!fincodeのバーチャル口座API&Webhook実装ガイド

fincodeマーケティング担当です。 BtoB取引や高額商品の販売において、依然として根強い人気を誇る「銀行振込」。 しかし、Webサービスの運営担当者や経理担当者にとって、銀行振込は「悩みの種」でもあります。 「毎日、銀行の入出金明細を目視で確認するのが大変…」 「『スズキ』様から入金があったけど、どの鈴木さんの注文かわからない…」 そんな「アナログな消込作業」を一瞬で解決する技術が、fincodeの「銀行振込(バーチャル口座)」です。 今回は、Python(Flask)を使った銀行振込ページの実装から、 入金をリアルタイムに検知する「Webhook」の実装・テスト方法までを一挙にご紹介します。 バックエンドの実装コード(Python) フロントエンドの実装コード(HTML) Webhookによる入金検知と自動化ロジック ローカル環境での疎通テスト方法 まで一通りおさえていきます。 そもそも「バーチャル口座」で何が解決するのか? 技術的な実装に入る前に、銀行振込(バーチャル口座)の仕組みを簡単に解説します。 通常の銀行振込では、会社が持つ「1つの口座」に対して、複数顧客が振込を行います。 そのため、名前(振込依頼人名)だけで誰からの入金かを判断しなければならず、 同姓同名や会社名義での振込があるたびに確認作業が発生します。 対してfincodeの銀行振込(バーチャル口座)は、「注文ごとに専用の口座番号を発行」します。 Aさんの注文には「口座番号:1111111」を表示 Bさんの注文には「口座番号:2222222」を表示 これにより、システムは「1111111番に入金があった=Aさんの支払いが完了した」と、自動消込ができるようになります。 これをAPI経由で、しかも初期費用や月額固定費無料で導入できるのがfincodeの強みです。 今回作成するアプリの完成イメージ 今回は、Pythonの軽量Webフレームワークである「Flask」を使って、以下の機能を持つサンプルアプリを作成します。 口座発行(API):ユーザーが商品購入ボタンを押すと、画面遷移なしで即座に専用の「振込先口座情報」を発行・表示する。 入金検知(Webhook):ユーザーの支払いが完了すると、fincodeからシステムへリアルタイムに入金通知(Webhook)が届く。 デザイン:ブルーを基調としたUI。 完成すると、以下のような画面ができあがります。 バックエンド実装編:Pythonで口座発行&Webhook受信を実装する それでは、サーバーサイド(Python)のコードを見ていきましょう。 fincodeのAPIにおいて、バーチャル口座の決済フローは以下の3ステップで成り立ちます。 1.決済登録(POST):「これから銀行振込の決済を作りますよ」という枠を作成する。 2.決済実行(PUT):実際に固有の口座番号を発番させる。 3.Webhook受信(POST):後日、ユーザーが入金した通知をリアルタイムに受け取る。 以下が完成した app.py です。コピペしてそのまま使えます。 python import os from flask import Flask, jsonify, render_template, request, Response import requests app = Flask(__name__) API_KEY = os.getenv("FINCODE_TEST_SECRET_KEY") BASE_URL = "https://api.test.fincode.jp" HEADERS = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json", } SERVER_AMOUNT = 10000 @app.route("/") def index(): return render_template("index.html", amount=SERVER_AMOUNT) @app.route("/api/virtual_account/start", methods=["POST"]) def start_virtual_account(): amount = SERVER_AMOUNT # ----------------------------------------------------- # 1. 決済登録(POST /v1/payments) # ----------------------------------------------------- register_payload = { "pay_type": "Virtualaccount", "billing_amount": str(amount), } print(f"Registering payment... Payload: {register_payload}") register_res = requests.post( f"{BASE_URL}/v1/payments", headers=HEADERS, json=register_payload, timeout=10, ) if not register_res.ok: print(f"Register Error: {register_res.text}") return jsonify({"error": "register_failed", "detail": register_res.json()}), 502 register_json = register_res.json() payment_id = register_json.get("id") access_id = register_json.get("access_id") if not payment_id or not access_id: return jsonify({"error": "missing_id_or_access_id"}), 502 # ----------------------------------------------------- # 2. 決済実行(PUT /v1/payments/{id}) # ----------------------------------------------------- execute_payload = { "pay_type": "Virtualaccount", "access_id": access_id, } print(f"Executing payment... ID: {payment_id}, Payload: {execute_payload}") execute_res = requests.put( f"{BASE_URL}/v1/payments/{payment_id}", headers=HEADERS, json=execute_payload, timeout=10, ) if not execute_res.ok: print(f"Execute Error: {execute_res.text}") return jsonify({"error": "execute_failed", "detail": execute_res.json()}), 502 execute_json = execute_res.json() # ----------------------------------------------------- # 3. 必要な情報を抽出して返却 # ----------------------------------------------------- response_data = { "status": "success", "payment_id": payment_id, "access_id": access_id, "bank_info": { "branch_name": execute_json.get("va_branch_name"), # 支店名 "account_number": execute_json.get("va_account_number"), # 口座番号 "account_name": execute_json.get("va_account_name"), # 口座名義 }, "amount": execute_json.get("billing_total_amount"), # 合計金額 "payment_term": execute_json.get("payment_term"), # 支払期限日時 } return jsonify(response_data) @app.route("/success") def success(): return "銀行振込(バーチャル口座)の発行が完了しました。" # ===================================================== # Webhook 受信用エンドポイント # ===================================================== @app.route("/webhook", methods=["POST"]) def fincode_webhook(): payload = request.get_json() if not payload: return Response("0", status=200, mimetype="text/plain") event_type = payload.get("event") order_id = payload.get("order_id") status = payload.get("status") print("\n========================================") print("★ fincode Webhookを受信しました ★") print(f"イベント : {event_type}") print(f"注文ID : {order_id}") print(f"ステータス: {status}") print("========================================\n") # バーチャル口座の「入金完了」を検知した場合の処理 if event_type in ["payments.virtualaccount.complete", "payments.virtualaccount.complete.stub"]: if status == "CAPTURED": print(f"【入金確認】注文番号: {order_id} の入金を確認しました。") # ------------------------------------------------- # [ここに実行したい処理を書く] # 例1: データベースの注文ステータスを「支払い済み」に更新する # 例2: ユーザーに「入金を確認しました」と自動メールを送る # ------------------------------------------------- return Response("0", status=200, mimetype="text/plain") if __name__ == "__main__": app.run(host="0.0.0.0", port=5000, debug=True) バックエンドの解説ポイント pay_type:"Virtualaccount" を指定しています。 billing_amount パラメータを使用しています。クレジットカード決済などでは amount ですが、バーチャル口座ではこちらを使います。 フロントエンド実装編 次に、ユーザーが触れる画面(HTML/CSS/JS)です。 以下のコードを templates/index.html として保存してください。 html <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>お支払い | fincode Bank Transfer</title> <style> /* -------------------------------------------------- Variables & Reset -------------------------------------------------- */ :root { --primary-color: #0068B7; --primary-gradient-start: #0055D0; --primary-gradient-end: #00A1E9; --primary-hover: #005096; --bg-color: #f0f4f8; --card-bg: #ffffff; --text-main: #333333; --text-sub: #767676; --accent-color: #0068B7; --error-color: #e74c3c; --border-radius: 16px; --shadow: 0 10px 30px -5px rgba(0, 85, 208, 0.15), 0 8px 10px -6px rgba(0, 0, 0, 0.1); } * { box-sizing: border-box; } body { font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, -apple-system, BlinkMacSystemFont, sans-serif; background-color: var(--bg-color); color: var(--text-main); margin: 0; padding: 20px; display: flex; justify-content: center; align-items: center; min-height: 100vh; } /* -------------------------------------------------- Card Container -------------------------------------------------- */ .payment-card { background: var(--card-bg); width: 100%; max-width: 420px; border-radius: var(--border-radius); box-shadow: var(--shadow); overflow: hidden; animation: slideIn 0.5s ease-out; position: relative; } @keyframes slideIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .card-header { background: linear-gradient(135deg, var(--primary-gradient-start) 0%, var(--primary-gradient-end) 100%); padding: 35px 20px; text-align: center; color: white; position: relative; } .card-header::after { content: ''; position: absolute; bottom: -20px; left: 0; right: 0; height: 40px; background: #fff; border-radius: 50% 50% 0 0 / 100% 100% 0 0; transform: scaleX(1.5); } .header-title { margin: 0; font-size: 0.85rem; opacity: 0.9; letter-spacing: 0.1em; text-transform: uppercase; font-weight: bold; } .header-price { margin: 10px 0 5px; font-size: 2.5rem; font-weight: 700; text-shadow: 0 2px 4px rgba(0,0,0,0.1); } .header-price span { font-size: 1rem; font-weight: normal; margin-left: 4px; } .card-body { padding: 20px 30px 40px; position: relative; z-index: 1; } .product-info { text-align: center; margin-bottom: 30px; color: var(--text-sub); font-size: 0.9rem; font-weight: 500; } /* -------------------------------------------------- Button -------------------------------------------------- */ .btn-pay { width: 100%; padding: 18px; background-color: var(--primary-color); color: white; border: none; border-radius: 50px; font-size: 1rem; font-weight: bold; cursor: pointer; transition: all 0.2s ease; box-shadow: 0 4px 15px rgba(0, 104, 183, 0.3); display: flex; justify-content: center; align-items: center; gap: 10px; } .btn-pay:hover { background-color: var(--primary-hover); transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0, 104, 183, 0.4); } .btn-pay:active { transform: translateY(0); } .btn-pay:disabled { background-color: #cbd5e1; cursor: not-allowed; box-shadow: none; transform: none; } /* -------------------------------------------------- Spinner -------------------------------------------------- */ .spinner { display: none; width: 20px; height: 20px; border: 3px solid rgba(255,255,255,0.3); border-radius: 50%; border-top-color: #fff; animation: spin 0.8s ease-in-out infinite; } @keyframes spin { to { transform: rotate(360deg); } } /* -------------------------------------------------- Result Area -------------------------------------------------- */ .result-area { display: none; margin-top: 35px; animation: fadeIn 0.6s ease; } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .success-message { text-align: center; color: var(--primary-color); margin-bottom: 25px; } .success-icon { width: 60px; height: 60px; background-color: #e6f2ff; color: var(--primary-color); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.8rem; margin: 0 auto 15px; } .success-text { font-weight: bold; font-size: 1.1rem; color: var(--text-main); } .info-table { width: 100%; border-collapse: separate; border-spacing: 0 10px; } .info-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; font-size: 0.95rem; padding-bottom: 12px; border-bottom: 1px dashed #e1e4e8; } .info-row:last-child { border-bottom: none; } .info-label { color: var(--text-sub); font-size: 0.9rem; } .info-value { font-weight: 600; color: var(--text-main); text-align: right; } .highlight { color: var(--primary-color); font-size: 1.2rem; letter-spacing: 1px; } .note { margin-top: 25px; padding: 15px; background-color: #f8fafc; border-radius: 12px; color: #64748b; font-size: 0.8rem; line-height: 1.6; text-align: left; } /* -------------------------------------------------- Error -------------------------------------------------- */ .error-message { display: none; margin-top: 20px; padding: 15px; background-color: #fef2f2; color: var(--error-color); border-radius: 12px; font-size: 0.9rem; text-align: center; border: 1px solid #fecaca; } </style> </head> <body> <div class="payment-card"> <div class="card-header"> <p class="header-title">TOTAL AMOUNT</p> <h1 class="header-price">{{ amount }}<span>円</span></h1> </div> <div class="card-body"> <p class="product-info">商品A</p> <button id="btn-pay-virtual" class="btn-pay"> <span id="spinner" class="spinner"></span> <span id="btn-text">銀行振込で支払う</span> </button> <div id="error-area" class="error-message"></div> <div id="result-area" class="result-area"> <div class="success-message"> <div class="success-icon">✓</div> <div class="success-text">ご購入ありがとうございます。</div> </div> <p style="text-align: center; font-size: 0.9rem; margin-bottom: 25px; color: var(--text-sub);"> 以下の口座へお振込みをお願いします。 </p> <div class="info-group"> <div class="info-row"> <span class="info-label">銀行名</span> <span class="info-value">GMOあおぞらネット銀行</span> </div> <div class="info-row"> <span class="info-label">支店名</span> <span class="info-value" id="res-branch-name">--</span> </div> <div class="info-row"> <span class="info-label">口座種別</span> <span class="info-value">普通</span> </div> <div class="info-row"> <span class="info-label">口座番号</span> <span class="info-value highlight" id="res-account-number">--</span> </div> <div class="info-row"> <span class="info-label">口座名義</span> <span class="info-value" id="res-account-name">--</span> </div> <div class="info-row" style="border-top: 2px solid #f1f5f9; padding-top: 15px; margin-top: 5px;"> <span class="info-label">お支払金額</span> <span class="info-value highlight" id="res-amount">--</span> </div> <div class="info-row" style="border-bottom: none;"> <span class="info-label">支払期限</span> <span class="info-value" id="res-payment-term" style="color: #e74c3c;">--</span> </div> </div> <div class="note"> <strong>ご注意</strong><br> ※お振込手数料はお客様負担となります。<br> ※期限を過ぎると口座は無効になります。 </div> </div> </div> </div> <script> document.getElementById('btn-pay-virtual').addEventListener('click', async function() { const button = this; const spinner = document.getElementById('spinner'); const btnText = document.getElementById('btn-text'); const resultArea = document.getElementById('result-area'); const errorArea = document.getElementById('error-area'); // UIリセット errorArea.style.display = 'none'; resultArea.style.display = 'none'; // ローディング開始 button.disabled = true; spinner.style.display = 'block'; btnText.textContent = '処理中...'; try { // サーバーサイド(app.py)のAPIを呼び出す const response = await fetch('/api/virtual_account/start', { method: 'POST', headers: { 'Content-Type': 'application/json' } }); const data = await response.json(); if (!response.ok) { let errorMsg = '決済処理に失敗しました'; if(data.error) errorMsg += ` (${data.error})`; throw new Error(errorMsg); } // 成功時:取得した口座情報を画面にセット document.getElementById('res-branch-name').textContent = data.bank_info.branch_name; document.getElementById('res-account-number').textContent = data.bank_info.account_number; document.getElementById('res-account-name').textContent = data.bank_info.account_name; const formattedAmount = new Intl.NumberFormat('ja-JP', { style: 'currency', currency: 'JPY' }).format(data.amount); document.getElementById('res-amount').textContent = formattedAmount; document.getElementById('res-payment-term').textContent = data.payment_term; // 結果エリアを表示 resultArea.style.display = 'block'; // ボタンを完了状態にする btnText.textContent = '発行完了'; // button.disabled = true; // スクロール resultArea.scrollIntoView({ behavior: 'smooth', block: 'start' }); } catch (error) { console.error('Error:', error); errorArea.textContent = 'エラー: ' + error.message; errorArea.style.display = 'block'; // ボタンを元に戻す button.disabled = false; btnText.textContent = '銀行振込で支払う'; } finally { if (btnText.textContent !== '発行完了') { spinner.style.display = 'none'; } else { spinner.style.display = 'none'; } } }); </script> </body> </html> フロントエンドの解説ポイント 非同期通信:ページ全体をリロードすることなく、ボタンを押した瞬間にバックエンドと通信を行います。 動的なDOM操作:APIから返ってきた「支店名」や「口座番号」を、JavaScriptでHTML内のプレースホルダー(--の部分)に埋め込みます。 UXへの配慮:処理中は「スピナー(くるくる)」を表示し、完了後は自動的に結果エリアまでスクロールするアニメーションを入れています。 Webhookをローカル環境でテストする3つのステップ プログラム内に /webhook を用意しましたが、開発中の自分のパソコン(localhost)はインターネット上に公開されていないため、fincodeから直接通知を受け取ることができません。 そこで今回は、「一度インターネット上のテスト用URLで本物のデータを受け取り、それをローカルに保存して手動でリクエストを実行する」というテスト手法を解説します。 ステップ1:Webhook.siteで生のデータをキャッチする まずは、fincodeから実際に送られてくるデータの構造を確認しましょう。 1.ブラウザで Webhook.site にアクセスします。 2.画面に表示される 「Your unique URL」(https://webhook.site/...)をコピーします。 3.fincodeテスト環境の管理画面にログインし、「API・Webhook」タブ を開きます。 「Webhookの追加」ボタンを押し、エンドポイントURLには先ほどコピーしたURLをペースト、 トリガーイベントは「銀行振込(バーチャル口座)支払通知(シミュレート)」を選択し、「追加」ボタンを押下。 4.ターミナルで python app.py を実行しhttp://localhost:5000 にアクセス。 「銀行振込で支払う」ボタンを押下し、管理画面から「銀行振込支払実行」を行うと、Webhook.siteにリアルタイムでデータ(JSON)が届きます。 「Raw Content」 に表示されているJSONデータを丸ごとコピーします。 ステップ2:データをローカル(data.json)に保存する 1.プロジェクトのフォルダ(app.py と同じ場所)に、data.json という名前のファイルを新規作成します。 2.先ほどWebhook.siteからコピーしたデータをそのまま貼り付けて保存します。 ステップ3:PowerShellからローカル環境へリクエストを送信する 1.エクスプローラーで data.json があるフォルダを開き、アドレスバーに powershell と入力してEnterキーを押します。 そのフォルダを基準としたPowerShell画面が立ち上がります。 2.起動したPowerShellに、以下のcurlコマンドを貼り付けてEnterを押します。 PowerShell curl.exe --noproxy localhost -X POST http://localhost:5000/webhook -H "Content-Type: application/json" -d "@data.json" コマンドのポイント --noproxy localhost:開発環境が社内ネットワーク等にある場合、プロキシサーバーがlocalhostへの通信を横取りしてアクセス拒否(Access Denied)を起こすのを防ぎます。 "@data.json":PowerShellにおいて @ 記号は特殊な命令として誤認されエラーの原因になるため、全体をダブルクォーテーションで囲んでファイルを正常に読み込ませています。 実行結果の確認 コマンドを実行して、それぞれの画面に以下の反応があればテスト成功です。 ▼ PowerShell(送信側)の表示 Plaintext 0 ▼ Python(Flask実行側)のログ出力 Plaintext ======================================== ★ fincode Webhookを受信しました ★ イベント : payments.virtualaccount.complete.stub 注文ID : o_********************** ステータス: CAPTURED ======================================== 【入金確認】注文番号: o_********************** の入金が完了しました。 127.0.0.1 - - [26/Jun/2026 17:09:52] "POST /webhook HTTP/1.1" 200 - 導入ビフォーアフター 導入前(通常振込) fincodeバーチャル口座導入後 入金先口座  会社共通の1つの口座 注文ごとに異なる口座番号 特定方法 依頼人名(カタカナ)を目視確認 口座番号でシステムが自動特定 消込作業 手動で管理 全自動 誤入金 金額間違いの連絡が必要 金額完全一致のみ受け付け可能 このシステムを導入することで、経理担当者は「入金確認作業」から解放され、より生産的な業務に時間を使えるようになります。 まとめ:fincodeなら「銀行振込」もモダンに実装できる 今回は、Python(Flask)を使った銀行振込ページの実装から、 入金をリアルタイムに検知する「Webhook」の実装・テスト方法までを一挙にご紹介しました。 fincodeは初期費用・月額費用が無料で、アカウント作成後すぐにテスト環境のAPIキーが発行されます。 「まずは手元で動かしてみたい」というエンジニアの方は、ぜひ今回のコードをコピペして試してみてください。   ■ この記事の作成者 fincode マーケティング担当 非エンジニアのバックグラウンドを持ちながら、基本情報技術者試験に合格。 現在はデータ分析にPythonを活用し、プロダクトへの理解を深めるためGo言語の習得にも挑戦中。 読者に近い視点から、複雑な決済技術を噛み砕いてお伝えします。 ■ この記事の監修者 fincode プロダクトマネージャー オンライン決済インフラ『fincode byGMO』の新機能企画・製品ディレクション等を統括。 プロダクトマネジメントの傍ら、個人開発者として自らコードを書く時間も大切にしている。 現場のエンジニアが直面する課題に寄り添い、情報の正確性と実用性を徹底して監修。   fincodeとは fincodeとは、GMOイプシロン株式会社が提供する、スピーディに導入できるオンライン決済サービスです。 シンプルで統一性のあるAPIと充実の開発支援コンテンツを提供し、エンジニアファーストな設計を追求しています。 fincodeが提供する決済画面のUIコンポーネント(JavaScript)をそのまま利用することで開発工数を削減し、簡単に決済を実装できます。 決済を通じてEC/SaaS/プラットフォーム、スタートアップからエンタープライズまで様々なビジネスの成長を支えます。 +FinTechによる新たな収益モデルの構築 fincodeのプラットフォーム機能を実装することで、決済金額に対する利用料が得られる新たな収益モデルの構築が可能です。 貴社のお客様(=テナント)へ提示する決済手数料に、「プラットフォーム利用料」を設定することで、差額が貴社の収益となります。 「貴社プロダクト + FinTech~新たな収益モデル構築のご提案~」資料ダウンロード > fincodeが選ばれる理由 エンジニアファーストの設計/洗練されたUX オープンでアクセスしやすいWEBドキュメント、REST APIと複数開発言語に対応したAPIリファレンス。 決済画面のUIも、Android/iOS対応のモバイルSDKにより、少ない開発工数で柔軟にカスタマイズ可能です。 見えない手数料、ゼロへ 初期費用・月額費用0円。 さらに、義務化されたEMV 3-Dセキュア認証についても追加費用0円で導入できます。 料金表に書かれていない見えない手数料はゼロ。カード決済は決済手数料のみでご利用いただけます。 国際標準を日本品質で fincodeは日本国内で生まれ、日本のビジネス環境に合わせて設計された決済サービスです。 海外発サービスでは難しい、日本ならではの細かな商習慣や感性まで理解して、日本の企業と共に成長していきます。 運営会社 会社名 GMOイプシロン株式会社(英文表記:GMO Epsilon, Inc.) 設立年月日 2002年9月26日 所在地 〒150-0043 東京都渋谷区道玄坂1丁目14番6号 ヒューマックス渋谷ビル7F 資本金 1億5百万円 事業内容 オンライン販売の決済代行、代金回収代行及びそれらに付帯する業務 主要株主 GMOペイメントゲートウェイ株式会社 (東証プライム上場:3769) グループ会社 GMOインターネットグループ 東証プライム上場企業のGMOペイメントゲートウェイの連結会社として、プライバシーマーク認証やPCI DSS、ISMS準拠のセキュリティ基準で安心してご利用いただける環境を提供しています。   事業規模によって決済手数料のご提案が可能です。 見積依頼 > fincodeサービス概要の資料ダウンロードはこちらから 資料請求 >   あわせて読みたいおすすめの記事 【初心者向け】fincodeで請求業務DX|Pythonで”決済機能付き請求書”をAPI発行する方法(インボイス機能) 【初心者向け】Pythonでfincodeの決済APIを実行する実装例(決済URL作成編) 【Python】クレジットカード決済の実装方法(決済登録API+決済実行JS編) Python(Flask)でPayPay決済APIを実装する方法(決済登録API+決済実行API)

マーケティングチーム
【Python】銀行振込の消込作業を自動化!fincodeのバーチャル口座API&Webhook実装ガイド

ブランドルール変更による仕様変更のお知らせ

【2026年9月18日 更新】 ■更新内容 ②「売上確定」処理可能期間を経過した取引に対するキャンセル処理 実施日:2026年9月24日(木) → 2026年9月29日(火) ③ 既存の未確定取引に対するキャンセル処理 実施日:2026年9月24日(木) → 2026年9月29日(火) 対象期間:2026年3月27日(金)~2026年8月29日(土)      → 2026年3月27日(金)~2026年9月3日(木) ⑤ キャンセル処理時の挙動変更 適用日:2026年9月24日(木) → 2026年9月29日(火) 実施に向けた最終確認の結果、追加の調整が必要となったため、上記のとおり日程を変更いたします。 度重なる日程変更となり、また直前のご案内となりましたことをお詫び申しあげます。 ------------------------------------------------------ 【2026年8月3日 更新】 ■更新内容 ②「売上確定」処理可能期間を経過した取引に対するキャンセル処理の実施に、自動キャンセル判別パラメータ(is_auto_cancelled)に関する仕様を追記 ⑤ キャンセル処理時の挙動変更(カード会社でキャンセルが受け付けられない場合はエラーとなる仕様)を追加 ------------------------------------------------------ 平素よりfincodeをご利用いただき、誠にありがとうございます。 この度、国際カードブランドのルール変更に伴い、仕様の変更をいたしますので、下記にて詳細ご案内いたします。 加盟店様におかれましては、ご不便ご面倒をおかけしますが必ずご確認をいただけますようお願い申しあげます。 対象決済 クレジットカード決済 Apple Pay Google Pay 変更内容 ① 「仮売上」取引の「売上確定」処理可能期間の短縮 従来:60日 変更後:25日 仮売上から売上確定処理ができる期間が25日以内となります。 仮売上から25日が経過した取引につきましては、売上確定処理ができなくなりますので、25日以内に売上確定処理を実施いただくようお願いいたします。 ② 「売上確定」処理可能期間を経過した取引に対するキャンセル処理の実施 仮売上から25日間売上確定処理されなかった取引については、fincodeにてキャンセル処理を実施いたします。 キャンセル処理後に売上確定処理をされる場合は再オーソリを実施いただくか、改めて決済を実施いただきますようお願いいたします。 7月末の期限短縮以降、自動キャンセル機能がリリースされる9月末までは、 期限を超過した取引は「仮売上」ステータスのままですが、売上確定処理ができなくなります。 当該ステータスの取引を再度決済(再オーソリ)される場合は、「一度キャンセル処理を行ってから再オーソリ」をお願いいたします。 ※再オーソリ時には改めて与信取得を行いますので、カードの利用状況等により、決済失敗となる可能性がございます。 ※3Dセキュア(本人認証サービス)を利用した取引の場合でも、再オーソリを行った取引は3Dセキュア対象外となります。 【APIをご利用の加盟店様へ】自動キャンセル判別パラメータ(is_auto_cancelled)の追加 以前ご案内しておりました「仮売上期間経過に伴う自動キャンセル取引の判別方法」につきまして、詳細が確定いたしました。 決済取得API(GET /v1/payments/{id})のレスポンスに、自動キャンセルによる取引かどうかを判別するためのパラメータ「is_auto_cancelled」を追加いたします。 パラメータ 型 内容 is_auto_cancelled Boolean 自動キャンセルによる取引かどうか パラメータ値 値 内容 TRUE 自動キャンセルバッチによりキャンセルされた取引 FALSE 上記以外の取引(手動キャンセル等) ※自動キャンセル実施時も、通常どおり「カード決済キャンセル(payments.card.cancel)」のWebhookが通知されます。 Webhook通知を受信した後に決済取得APIを実行し、「is_auto_cancelled」の値を参照することで、自動キャンセルによるキャンセルかどうかを判別できます。 決済取得API(GET /v1/payments/{id})をご利用中で、自動キャンセル取引を判別される場合は、「is_auto_cancelled」を受信・処理できるよう、必要に応じてシステム改修をご検討ください。 ③ 既存の未確定取引に対するキャンセル処理の実施 2026年9月29日(火)に、fincodeにて以下取引のキャンセル処理を実施いたします。 対象:2026年3月27日(金)から2026年9月3日(木)までに仮売上となり、売上確定処理されていない取引 ※対象取引につきまして、加盟店様でのキャンセル処理は不要です。 ④ カードの有効性を確認する目的での仮売上の禁止 売上確定処理を伴わない仮売上(オーソリ)処理は禁止となります。 カードの有効性確認のために1円などの少額で仮売上を実施している場合は、決済登録APIにて取引種別「CHECK:有効性チェック」を指定し処理を実施いただきますようお願いいたします。 詳細につきましては、以下のページをご覧ください。 https://docs.fincode.jp/api#tag/%E6%B1%BA%E6%B8%88/operation/createPayment ※カードの有効性を確認する目的での仮売上実施を継続された場合、別途手数料の追加徴収などが発生する可能性がございます。 ⑤ キャンセル処理時の挙動変更(追加仕様) 対象ブランド Visa Mastercard 対象運用 即時売上運用 仮売上/実売上運用 国際カードブランドのルール変更に伴い、キャンセル(取消・返品)処理時の挙動を変更いたします。 現在の仕様 カード会社にてキャンセルが受け付けられない場合でも、エラーとせず、キャンセル処理を実施します。 変更後の仕様 カード会社にてキャンセルが受け付けられない場合は、エラーとなり、キャンセル処理は実施されません。 カード会社オーソリエラーは、以下から始まるエラーコード(E9993*)となります。 また、金額変更時に元取引のキャンセルが同様の理由でエラーとなった場合は、金額変更処理も失敗します。 キャンセルエラーについて キャンセルエラーは、主に以下のような場合に発生することが想定されます。 カードの解約 カードの利用停止 その他、カード会社にてキャンセルを受け付けられない状態 なお、エラーとなるかどうかは各カード会社の判断によるため、事前に判定することはできません。 また、一般的には発生頻度は低いものと想定しております。 加盟店様へのお願い 売上確定後にキャンセル処理が失敗した場合は、カード決済のキャンセルによる返金を行うことができません。 そのため、カード会社でキャンセルが受け付けられない場合には、銀行振込などカード会社を介さない方法による返金対応をお願いする場合がございます。 適用日 ①「仮売上」取引の「売上確定」処理可能期間の短縮(60日 → 25日) 2026年7月21日(火)中に変更処理を実施いたします。 システム設定変更完了後より売上確定処理可能期間が25日に変更となります。 ※システム設定変更以前に行われた取引は、これまで通り60日間売上確定処理が可能です。 ② 「売上確定」処理可能期間を経過した取引に対するキャンセル処理の実施(自動キャンセル判別パラメータ(is_auto_cancelled)の追加を含みます。) 2026年9月29日(火) 例)2026年9月3日(木)に仮売上となった取引   ⇒2026年9月29日(火)にキャンセル処理が実施されます。 ③ 既存の未確定取引に対するキャンセル処理の実施 2026年9月29日(火) 対象:2026年3月27日(金)から2026年9月3日(木)までに仮売上となり、売上確定処理されていない取引 ④ カード有効性を確認する目的での仮売上の禁止 2026年9月30日(水) ⑤ キャンセル処理時の挙動変更(追加仕様) 2026年9月29日(火) 変更イメージ 例)システム設定変更前に行われた取引 60日 7/21 決済 9/19 売上確定可能期間 例)システム設定変更後に行われた取引 25日 7/21 決済 8/15 売上確定可能期間 参考 この度の変更に関するよくあるご質問は以下ページをご参照ください。 https://support.fincode.jp/hc/ja/articles/5577908902174 お問い合わせ お問い合わせはこちら

運営チーム
ブランドルール変更による仕様変更のお知らせ

fincode byGMO 利用規約集改定のお知らせ(2026/7/21)※2026/7/13更新あり

ご担当者 各位 平素よりfincode byGMOをご利用いただき、誠にありがとうございます。 このたび、fincode byGMO利用規約集の内容見直しおよび仕様変更に伴い 2026年7月21日付で利用規約を改定いたしますのでお知らせいたします。 ■主な改定内容 ・ショップ向けサービス利用規約およびバイヤー向けサービス利用規約の新設 ・規約変更手続きに関する規定の整備 ・その他、文言の修正および表現の見直し ※本改定は、規約体系の整理および内容の明確化を主な目的としております。詳細は改定後の利用規約をご確認ください。 以下2026/7/13追記 ・fincode利用規約集  – 第49条 カード決済の上限金額を「1億円未満」から「1億円又はEP若しくは決済事業者が別途指定する金額のいずれか低い金額未満」に変更  ・決済事業者加盟店規約集  – カード会社を追加 ■適用開始日 2026年7月21日(火) 今後ともfincode byGMOをご愛顧賜りますよう、よろしくお願い申しあげます。

運営チーム
fincode byGMO 利用規約集改定のお知らせ(2026/7/21)※2026/7/13更新あり