顧客ポータルと共有

ログイン不要のリンクで請求書を共有し、顧客が閲覧・ダウンロード・オンライン支払いできるようにします

ポータルの概要

顧客ポータルは Invotify の顧客向け側面です — 顧客がアカウントを作成せずに見て操作するすべてのものです。安全な共有リンクを生成して顧客に送ると、顧客はログイン不要でクリーンなブランドページを開き、請求書を読んだり・PDF をダウンロードしたり・(Pro では)オンラインで支払いができます。一方、あなたはいつ・どこで開封されたかの静かな記録を受け取ります。

ポータルの機能:

  • 公開請求書ビュー — トークンベースのリンクでブラウザに請求書が表示されます。ログイン・パスワード・顧客の手間は一切ありません。
  • PDF ダウンロード — 顧客はワンクリックで請求書のピクセルパーフェクトな A4 PDF をダウンロードできます。
  • オンライン決済(Pro) — 「今すぐ支払う」ボタンで顧客を全額または一部支払いのための安全な Stripe チェックアウトに誘導します。
  • 閲覧追跡 — 各開封が記録されます:いつ・どこから・閲覧回数・最初/最後の閲覧タイムスタンプ。
  • メール設定 — ワンクリック配信停止と顧客が受け取るメールの詳細な制御。

2 種類のリンク:

  • 単一請求書リンク/invoice/{token})— ダウンロード/支払いアクション付きで 1 つの特定の請求書を表示。
  • 顧客ポータルリンク/portal/{token})— 顧客の最近の請求書・未払い残額・延滞フラグ・クレジットノート残額の統一ビュー(各請求書に支払いアクション付き)。

プラン: 公開ビュー・PDF ダウンロード・閲覧追跡・メール設定管理はすべてのプランで利用できます。ポータルからのオンライン決済には Stripe が接続された Pro プランが必要です。

各ポータルページはビジネス名とロゴでブランド化され、控えめな「Powered by Invotify」フッターが付き、検索エンジンに表示されないよう noindex が設定されています。

ログイン不要リンク

トークンベースの URL が任意のブラウザで即座に開きます。顧客はアカウント不要。

セルフサービス PDF

顧客は必要なときにいつでも自分の A4 PDF コピーをダウンロードできます。

オンライン支払い(Pro)

「今すぐ支払う」ボタンで安全な Stripe チェックアウトへ — 全額または一部。

閲覧追跡

いつ・どこで・何回顧客がリンクを開いたかを把握。

請求書の共有

請求書を共有するとユニークで推測困難な共有トークンが作成され、顧客がログインせずに開ける公開リンクになります。トークンはランダムな UUID です — 番号を増やして推測することはできません — そして 1 つの請求書にのみ対応します。

共有トークンの仕組み:

  • リンクを生成すると請求書に share_token が作成され、https://your-app/invoice/{token} 形式の URL が返されます。
  • その請求書のトークンが既に存在する場合、Invotify は同じものを返します — 再共有してもリンクが変わったり、すでに送った URL が壊れたりしません。
  • リンクが唯一の認証情報です。リンクを持っている人は誰でも請求書を見られるので、プライベートリンクとして扱ってください。
  • 共有リンクはいつでも 取り消し できます。取り消すとトークンがクリアされ、古い URL はすぐに機能しなくなります(「見つかりません」を返します)。再共有するには新しいリンクを生成してください。

権限: 共有リンクの生成または取り消しには「請求書の管理」権限が必要です。権限のあるチームメンバーのみが請求書を公開できます。

顧客が受け取るもの: メールで請求書を送ると、リンク(Pro ではペイメントリンクも)が一緒に届きます。共有 URL をコピーして任意のチャンネル — チャット・メール・メッセージアプリ — で送ることもできます。

PDF を WhatsApp・Telegram・Slack などで共有: 請求書と見積書の共有ダイアログは、レンダリングされた PDF をデバイスの共有シート(スマートフォン・タブレット・最新のデスクトップブラウザで)に直接渡します。WhatsApp・Telegram・Slack・Messenger をタップすると PDF がすでに添付されています — 受信者を選んで送信するだけです。共有シートのファイルサポートがないブラウザでは、Invotify は PDF のダウンロードとアプリを開くフォールバックにしますので、手動で添付できます。

手順

  1. 1

    請求書を開く

    共有したい請求書の詳細ページに移動します。

  2. 2

    共有リンクを生成する

    共有リンクを作成します。Invotify がユニークなトークンを生成して公開 URL (/invoice/{token}) を返します。

  3. 3

    コピーまたは送信

    任意のチャンネルで共有するために URL をコピーするか、メールで請求書を送信してリンクを一緒に届けます。

  4. 4

    必要に応じて取り消す

    リンクが機能しなくなるべき場合は取り消します。トークンがクリアされ URL はすぐに解決しなくなります。

ヒント
  • トークンはランダムな UUID であり連番 ID ではありません — リンクは番号を数えて推測できません
  • 請求書を再共有すると既存のトークンが再利用されるため、すでに送った URL は機能し続けます
  • リンクは期限切れになったらすぐに取り消してください — 管理する別のパスワードはありません
重要
  • リンクを持っている人は誰でも請求書を見られます — 意図した受信者にのみ送ってください
  • 共有リンクの取り消しは永続的:古い URL が機能しなくなり、再共有するにはまったく新しいリンクを生成する必要があります

顧客ポータル(閲覧・ダウンロード・支払い)

顧客が共有リンクを開くと、ログイン不要のクリーンなモバイルフレンドリーなページが表示されます。リンクの種類によって 2 つの体験があります。

単一請求書ページ(`/invoice/{token}`): 顧客は請求書全体を見られます — ビジネス名とロゴ・請求書番号とステータス・発行日と期日・請求先詳細・数量と合計付きのすべての明細行・追加したメモ。下部にはアクションがあります: - PDF をダウンロード — プロフェッショナルな A4 PDF を生成してダウンロード。送信するものと同一。サーバーサイドでオンデマンドで生成。 - 今すぐ支払う — 決済リンクが利用可能で、請求書がまだ支払われていないかキャンセルされていない場合のみ表示(Pro — 下記のオンライン決済を参照)。

統一ポータルページ(`/portal/{token}`): あなたとの全請求書にわたる顧客のダッシュボード風概要: - 未払い残額 — すべての未払い請求書(クリックしたものだけでなく)の未払い合計(延滞があれば延滞フラグ付き)。 - クレジットノート残額 — 発行または適用済みのクレジット。 - 請求書一覧 — 最近の非下書き請求書(ページネーション付き)、各々の番号・日付・ステータス・金額・支払いアクションが表示。

プライバシー設計: ポータルは安全なデータのサブセットのみを返します。内部 ID・共有トークン自体・その顧客と無関係なものはレスポンスから除外されます。統一ポータルはトークンが属する 1 人の顧客のみにスコープされます。ポータルレスポンスは中間者がキャッシュしないよう no-store キャッシングで送信されます。

ブランド化請求書ビュー

ロゴ・ビジネス名・明細行・日付・メモ — ログイン不要でクリーンに表示。

PDF ダウンロード

オンデマンド A4 PDF、メールで送るものと同一。

残額概要

統一ポータルに未払い合計・延滞フラグ・クレジットノート残額を表示。

安全なデータのみ

内部 ID とトークンを除外;ポータルは 1 人の顧客にスコープ。

ヒント
  • 単発請求書には単一請求書リンクを、すべてをまとめて見たいリピート顧客には統一ポータルリンクを送ってください
  • 下書きはポータルに表示されません — 実際に発行した請求書のみ
  • ダウンロードされた PDF は毎回新たに生成されるため、常に現在の請求書を反映しています

ポータルからのオンライン決済(Pro)

Stripe が接続された Pro プランでは、ポータルが閲覧から支払いに変わります。顧客が「今すぐ支払う」をクリックすると Stripe の安全なホスト型チェックアウトに移動します — Invotify はカードの詳細に触れません。

ポータル決済のフロー: 1. 顧客が請求書または統一ポータルを開き、支払う をクリックします。 2. Invotify はその請求書のための Stripe チェックアウトセッションを作成し、顧客をリダイレクトします。 3. 顧客は Stripe のホスト型ページで支払います。メールはより素早いチェックアウトのために事前入力されます。 4. 成功すると確認ページに戻ります;キャンセルした場合は優雅に戻ります。 5. Stripe が支払いを確認し、請求書ステータスが自動的に 支払済み に更新されます。

全額または一部支払い: - デフォルトでは顧客は全額未払い残額を支払います(元の合計だけでなく未払い金額 — 以前の一部支払いが考慮されます)。 - 請求書で一部支払いを有効にしている場合、顧客は少ない金額を支払えます。Invotify は設定した最小支払い額を強制し、まだ残っている金額を超えて支払えないようにします。

組み込みのガードレール: - 既に支払われたまたはキャンセルされた請求書は再度支払えません — 支払いボタンが非表示になり、サーバーサイドでリクエストが拒否されます。 - ポータルの支払いエンドポイントはレート制限により乱用を防ぎます。 - セッションが作成される前に支払い金額がライブ未払い残額と Stripe の最小課金額に対して検証されます。

重要: オンライン決済には Pro プランと接続された Stripe アカウントが必要です。Stripe が接続されていない場合、ポータルは閲覧とダウンロードには引き続き機能しますが、支払いボタンはありません。

Stripe チェックアウト

顧客は Stripe のホスト型ページで支払います。Invotify はカードの詳細を見ません。

一部支払い

有効にすると、顧客は頭金を支払えます — 最小額と残額によって制限。

自動ステータス更新

Stripe が支払いを確認した瞬間に請求書が支払済みに変わります。

検証とレート制限

金額はライブ残額に対して確認;支払済み/キャンセル請求書への支払いはブロック。

重要
  • ポータルからのオンライン決済には Stripe が接続された Pro プランが必要です
  • 一部支払いは特定の請求書で有効にした場合のみ提供されます

請求書閲覧追跡

顧客が実際に請求書を開いたかどうか迷う必要はありません。共有請求書が閲覧されるたびに Invotify が記録します — いつ見たか・何回・どこから正確に把握できます。

各閲覧で記録されるもの: - タイムスタンプ — 閲覧が発生した日時。 - ソース — 閲覧がどこから来たか:link(共有の単一請求書リンク)・emailportalapi。デフォルトは link。 - 閲覧者 IP — 顧客の IP アドレス(転送ヘッダーから解析)。同じ場所からの繰り返し開封と新しい開封を区別できます。 - ユーザーエージェント — ブラウザ/デバイス文字列(安全な長さに切り詰め)。

Invotify が請求書ごとに保持する集計統計: - 閲覧回数 — 開封の累計。 - 最初の閲覧日時 — 請求書が最初に開かれた正確な日時(一度スタンプされ、上書きされません)。 - 最後の閲覧日時 — 最近の開封。 - ユニーク IP — 何個の異なる IP アドレスが閲覧したか。

どこで確認できるか: 請求書の閲覧統計は請求書詳細ページに表示されます — コンパクトなバッジに閲覧回数が表示され、ホバーすると最初と最後の閲覧タイムスタンプが表示され、最近開封された場合はライブインジケーターも表示されます。完全な閲覧ログ(各個別の開封とソース・IP・ユーザーエージェント)は会社にスコープされた請求書の閲覧データから確認できます。

乱用防止: 追跡エンドポイントは IP ごととトークンごとにレート制限されているため、1 人の顧客が繰り返し更新しても閲覧数が水増しされることなく、エンドポイントが数字を操作するために叩かれることもありません。

各開封を記録

共有請求書が開かれるたびに閲覧レコードが書き込まれます。

ソース帰属

開封がリンク・メール・ポータル・API のどこから来たかを追跡。

IP + ユーザーエージェント

閲覧者の IP とブラウザを記録して開封を区別できます。

最初/最後/回数

累計閲覧回数に加え、最初の閲覧と最後の閲覧のタイムスタンプ。

ヒント
  • 閲覧したが支払いなし — それが友好的なひと押しを送るサインです
  • 閲覧数の急増はしばしば顧客が確認中か行動しようとしていることを意味します — フォローアップに最適なタイミング
  • ユニーク IP 数が「顧客が繰り返し再開封している」と「転送して回覧している」を区別するのに役立ちます

メール設定と配信停止

Invotify が顧客に送るすべてのメールには配信停止/設定リンクが含まれているため、顧客は常に受信トレイに届くものを制御できます。リンクはログインなしで機能します — 配信停止トークン自体がメールアドレスの所有権を証明します。

顧客が制御できるもの: - 書類メール — 顧客に送られた請求書・見積書・その他の書類。 - リマインダーメール — 延滞および支払い予告リマインダー。 - マーケティングメール — プロモーションまたはお知らせメッセージ。

各カテゴリは独立したオン/オフのトグルです。請求書のみを受け取りたいがリマインダーは不要という顧客はその設定が可能です — すべてかゼロかではありません。

ワンクリック配信停止: 設定ページはメール内の配信停止リンクと同じ画面です。顧客は 1 つのカテゴリをオフにするか、すべてを 1 か所でオプトアウトできます。変更はすぐに保存されて今後の送信に適用されます。

セキュリティの保ち方: - 設定エンドポイントには有効なトークンが必要(短すぎるものや欠如は拒否)で、そのトークンのみが設定の読み書きを承認します — アカウント不要。 - 既知の許可された設定キーのみが受け入れられ、ブール値のみ受け入れられるため、エンドポイントが他のものを変更するよう強制できません。 - 読み書きは IP ごとにレート制限されます。

これらの設定を尊重することで、送信評判が健全に保たれ、スパム対策ルールの適切な側にいることができます — オプトアウトを選択した顧客はそのカテゴリを受け取ることがなくなります。

詳細なトグル

書類・リマインダー・マーケティングメールの個別スイッチ。

ワンクリック配信停止

すべてのメールに設定ページへのリンク — 1 つのカテゴリまたはすべてをオプトアウト。

トークン承認

配信停止トークンが所有権を証明;設定管理にログイン不要。

厳格なエンドポイント

既知のブール値キーのみ受け入れ、読み書きにレート制限。

顧客は請求書を閲覧または支払うためにアカウントが必要ですか?

いいえ。ポータルは完全にログイン不要です。リンク内の安全なトークンが、請求書の閲覧・PDF のダウンロード・メール設定の管理・支払い(Pro)に必要な唯一の認証情報です。

顧客が請求書を開いたか確認できますか?

はい。請求書閲覧追跡は各開封をタイムスタンプ・ソース・IP・ブラウザと共に記録し、請求書詳細ページで確認できる請求書ごとの閲覧回数・最初の閲覧・最後の閲覧タイムスタンプを保持します。

共有リンクを取り消すとどうなりますか?

トークンがクリアされ URL がすぐに機能しなくなります — 「見つかりません」を返します。再共有するには、新しいトークンを生成する新しいリンクを作成してください。

ポータルからのオンライン決済はすべてのプランで利用できますか?

いいえ。閲覧・ダウンロード・閲覧追跡・メール設定はすべてのプランで機能します。ポータルからのオンライン決済には Stripe が接続された Pro プランが必要です。

ヒント
  • オプトアウトを尊重することで配信性が保護されます — 不要なメールを繰り返し送ると送信者評判が下がります
  • リマインダーと書類メールは別々のため、顧客は請求書を受け取りながらリマインダーを停止できます