Invoice Portal

Understand the public invoice page, customer comment flow, PDF download, and online payment behavior.

The public invoice portal is the page customers open from an invoice link. It combines invoice preview, PDF download, comment-thread access, and online payment when Stripe-backed payment is available.

Client portal admin showing portal access, portal link, and activity controls for a customer. Invoice builder showing a drafted invoice with a line item, live totals, and preview-ready layout. Payment settings showing the bank and transfer instructions that often appear alongside portal payment options.

Who uses it

  • customers reviewing or paying an invoice
  • billing teams validating the public experience before sharing it
  • teammates supporting payment or comment issues from outside the dashboard

Typical Workflow

  1. Open the shared invoice link.
  2. Review the invoice preview and due amount.
  3. Download the PDF if a copy is needed.
  4. Use the comment thread if the invoice allows thread-based write access.
  5. Continue to secure payment when Stripe and invoice state allow online payment.

This page lets the customer review the invoice, leave an authorized comment, and pay the outstanding balance when online payment is enabled.

What the portal includes

  • invoice summary with issue date, due date, and amount due
  • live and PDF preview modes
  • PDF download
  • comment thread with realtime updates
  • online payment card with amount validation and Stripe confirmation

Comment and write-access behavior

The portal comment area supports:

  • customer or OTP-gated write access depending on invoice configuration
  • optional TOTP verification for write operations
  • remembered draft name and email on the same device
  • realtime comment updates over streaming with polling fallback

This keeps customer replies attached directly to the invoice instead of relying on a separate email thread alone.

Online payment behavior

Payment is only offered when all of the following are true:

  • Stripe is connected
  • the invoice is payable online in its current status
  • there is still an outstanding amount due

The payment card validates:

  • minimum amount
  • currency decimal precision
  • no payment above the outstanding balance

Permission and state edge cases

  • invalid or expired short links render the Invoice Not Found state
  • even when a portal loads, comments can still require OTP or customer-session verification before posting
  • a Stripe-connected workspace can still show payment unavailable if the invoice status is not payable or there is no remaining balance

Troubleshooting

Check the invoice write-auth mode. Portal comments may require OTP, customer-session verification, or TOTP before posting.

The portal shows payment unavailable

Review three things: Stripe connection, invoice status, and outstanding balance. All three gates must pass.

A payment completed, but the portal still looks stale

Refresh the invoice state. The payment form reconciles intent status, but the portal still depends on the latest invoice data fetch.

We use cookies to improve your experience, analyze traffic, and personalize content.