Customer Checkout

Let customers pay invoices online through a self-service checkout portal.

Overview

The checkout feature lets your customers pay invoices directly from their browser using a credit card or bank account. When a customer opens their invoice through the portal link, they see a Pay option that launches a secure Stripe-powered checkout. Payments are recorded automatically in Forz with the correct amount, date, and invoice allocation.

Before You Begin

Prerequisites:

  1. The Invoice module is enabled (Settings > Modules).

  2. Stripe is configured with your account credentials (Settings > Integrations > Stripe).

  3. The invoice has been sent to the customer (status is not Draft).

How It Works

  1. You send an invoice to a customer by email. The email contains a unique portal link.

  2. The customer opens the link and views the invoice details (number, amount, balance, due date).

  3. The customer clicks Pay and enters their payment information through the Stripe checkout form.

  4. Stripe processes the payment. Accepted methods include credit/debit cards and US bank accounts (ACH).

  5. On success, Forz automatically creates a payment record with payment method set to "Stripe" and a reference number linking to the Stripe session.

  6. The invoice balance updates and the status changes to Partially Paid or Paid.

Expected result: The customer sees a confirmation page. The payment appears in Forz under the invoice's Payments tab with all details recorded automatically.

Note: The checkout portal does not require the customer to log in. Access is controlled by a unique, token-based URL tied to the invoice.

Warning: Customers cannot pay invoices that are already Paid or Void. The checkout page displays an error message for these statuses.

Supported Currencies

The checkout supports payments in USD, EUR, and GBP.

Common Scenarios

Customer pays an invoice in full

A plumbing company sends invoice INV-1050 ($1,200) to a commercial client. The client opens the email, clicks the invoice link, reviews the details, and clicks Pay. They enter their credit card information and submit. Forz records a $1,200 payment with method "Stripe" and the invoice moves to Paid.

Customer makes a partial payment

An electrical contractor sends a $5,000 invoice. The customer opens the checkout portal and enters $2,500 as a partial payment. Forz records the payment and the invoice status changes to Partially Paid with a $2,500 balance remaining.

Troubleshooting

Problem

Solution

Customer reports "Invoice not found" when opening the checkout link

The invoice may have been voided or deleted. Check the invoice status in Forz.

Stripe checkout page does not load

Verify that Stripe credentials are configured correctly in Settings > Integrations. Check that the Stripe secret key is valid.

Payment was processed by Stripe but not recorded in Forz

Check the application logs for errors during the return callback. The payment may need to be recorded manually. Escalate to engineering if this recurs.