人数で決まる月額課金をどう作ったか|Ulala Hub 開発ストーリー③

人数で決まる月額課金をどう作ったか|Ulala Hub 開発ストーリー③

自社製グループウェア「Ulala Hub」の開発ストーリー、3回目は課金です。料金は「利用する人数 × 月額」。仕組みは単純に見えますが、決めることは思ったより多くありました。決済には Stripe を使っています。

決めたこと1:お試しはカード登録なしで始められる

申込みをするとすぐにお試しが始まり、その時点ではカードの登録は要りません。お試し中は、画面の上に残り日数の帯を出します。残りが少なくなると帯の色が変わります。続けて使う場合に、契約の画面からカードを登録します。

決めたこと2:人数の変更は「翌月から」

月の途中で人が増えたり減ったりしたとき、日割りで計算するかどうか。Ulala Hub では日割りをしません。人数の変更は画面からいつでもできますが、当月の請求はそのまま、翌月から新しい人数になります。

理由は、請求が読みやすいことです。日割りにすると、月によって端数のある金額が並び、「この金額は何か」という問い合わせが増えます。少額のサービスでは、正確さよりも分かりやすさを優先しました。

決めたこと3:解約は「期間の終わりに停止」

解約の手続きをしても、すでに支払った月の終わりまでは使えます。途中での返金はしません。解約の操作は、決済サービスが用意している利用者向けの画面で行います。カードの変更や請求書の確認も同じ画面です。自前で作らないことで、カード情報を自社のシステムに一切持たずに済みます。

決めたこと4:消費税は「税抜の価格+税率」で持つ

画面には税込の金額を出していますが、内部では税抜の価格と税率を別々に登録しています。こうすると請求書に「小計・消費税・合計」が分かれて出ます。税込の金額だけを登録すると、請求書に税の内訳が出ず、経理で困ることになります。

契約の状態は、決済サービスからの通知で更新する

「支払いが済んだか」を、利用者の画面の動きから判断してはいけません。支払いの画面を閉じた、通信が切れた、などで簡単にずれます。決済サービスから届く通知(Webhook)を受け取り、それをもとに契約の状態を書き換えます。受け取っているのは、契約の完了、契約内容の変更、解約、支払いの成功、支払いの失敗です。

契約の状態は次の6つです。

状態 意味
お試し中 無料期間の中
課金中 契約して支払いが続いている
未払い猶予 支払いに失敗したが、すぐには止めない期間
お試し終了 無料期間が終わり、契約していない
停止 運営側で止めた
解約 解約済み

止めるときに、止めすぎない

お試しが終わった会社は、グループウェアの本体が使えなくなります。ただし、ログイン、管理画面、契約の画面は開けるままにしています。全部を止めてしまうと、契約したくても契約の画面にたどり着けないからです。

もう1つ決めたのは、「契約の情報が読み取れないときは、止めない」です。システムの不具合で契約の情報が取れなかったとき、安全側に倒して止めると、支払っているお客様まで締め出してしまいます。分からないときは通す。課金のシステムでは、取りはぐれよりも、正しく払っている人を止めるほうが重い失敗だと考えました。

はまったところ

決済サービスの仕様は、版が上がると項目の場所が変わることがあります。契約期間の開始日と終了日が、ある版から別の場所に移っていて、今までどおりに読むと空になる、ということがありました。外部のサービスにつなぐ部分は、「値が空で返ってきたらどうするか」を必ず決めておく必要があります。

次回は、少人数でサービスを守り、止めないための運用を書きます。

無料見積もり・
お問い合わせはお気軽に

フリーダイヤルでのお問合せはこちら

0120-828-121

メールでの無料見積もり
ご相談はこちら