Pool Runs Docs
BillingInvoices

Recording Payments

How payments work in Pool Runs — manual entry (cash, check, ACH), online Stripe payments, partial payments, and the payment status lifecycle.

Recording Payments

A payment in Pool Runs is a separate record from the invoice — every dollar received is its own row, attached to one invoice. This separation is what makes partial payments, multiple-payment-method scenarios, and refunds clean. This page walks through every way payments enter the system: cards, ACH, cash, check, applied credit, manually-entered, online-paid, partial, and full.

Record Payment modal with method dropdown, amount, date, reference number

How Payments Work

The model is simple:

  • A generated invoice has a fixed total.
  • Each payment records the amount, method, status, and date.
  • An invoice can have many payments. The sum of succeeded payments determines the invoice's paid status.
Sum of succeeded paymentsInvoice status
0sent, viewed, or overdue
Greater than 0 but less than totalpartial
Equal to totalpaid
Greater than totalpaid (overpayment — see FAQ)

When an invoice moves from Partial to Paid, Pool Runs records the paid date and triggers any related autopay or customer-portal updates.

Quick Steps (Manual Payment)

  1. From the invoice detail page, click Record Payment.
  2. Enter the Amount (defaults to the remaining balance).
  3. Select Payment Method: Cash, Check, Credit Card, ACH, Wire Transfer, Applied Credit, or Other.
  4. Set Payment Date (defaults to today).
  5. Optionally add a Reference Number (check #, transaction ID, etc.).
  6. Optionally add Notes.
  7. Click Save.

The payment appears in the invoice's payment history. Invoice status updates immediately.

Payment Methods

MethodWhen to useReference number
CashCustomer hands you cashOptional (e.g., "Receipt #1234")
CheckCustomer mails or hands you a checkCheck number
Credit CardCard swiped offline (manually entered, not Stripe)Last 4 digits or auth code
Debit CardSame as credit card, offlineLast 4 digits
ACHBank transfer manually arrangedBank reference / trace ID
Wire TransferWire receivedWire confirmation number
StripeOnline payment via the public link or autopayRecorded automatically
Applied CreditCustomer has a stored credit balance, applied to this invoiceSource credit ID
OtherAnything elseFree text

The Stripe method is automatic. When a customer pays online or autopay charges them, Pool Runs records the amount, date, payment method, and receipt link for you.

The Payment Status Lifecycle

pending → processing → succeeded
                    ↓
                  failed
                    ↓
              Partially Refunded → Refunded
StatusWhat it meansCounts toward invoice paid?
pendingPayment initiated, not confirmedNo
processingStripe is working on it (ACH takes 3–5 days)No
succeededPayment completedYes
failedCard declined, NSF, etc.No
refundedFully refundedNo (subtracted)
Partially RefundedSome money returned; the remaining payment still standsPartially

Manual payments (cash, check) skip pending/processing and go straight to succeeded. Stripe card payments are typically pending for a fraction of a second before succeeded. ACH starts at processing and stays there for 3–5 business days before succeeded or failed.

Partial Payments

A partial payment is any payment below the remaining balance. After the first partial payment, the invoice status changes from Sent to Partial.

ScenarioWhat to do
Customer paid $100 of a $237.50 invoiceRecord payment for $100. Invoice status: partial. Remaining: $137.50.
Customer pays the remaining $137.50 next monthRecord another payment for $137.50. Status: paid.
Customer overpays by $20Record $257.50. Status: paid. The $20 becomes account credit (or sit as overpayment — see FAQ).

The customer-facing payment page (when paying online) defaults to the remaining balance but allows them to enter any amount up to that balance. If a down-payment minimum is set, they have to meet that amount on the first payment but no minimum on subsequent ones.

Online Payments (Stripe)

When a customer pays via the public payment link or autopay, Pool Runs:

  1. Sets up a secure payment session with Stripe when the invoice is sent.
  2. The customer enters their payment method on the Stripe-powered payment page (card, bank, Link, Apple Pay, Google Pay).
  3. Stripe processes the payment and notifies Pool Runs.
  4. Pool Runs records the successful payment and adds a link to the receipt.
  5. The invoice status updates to Paid (or Partial for partial pays).
  6. The customer gets a Stripe-hosted receipt email automatically.

The payment details show the method used, the amount and date, and a link to the Stripe receipt. Pool Runs keeps the information needed for refunds and reconciliation automatically.

If a Stripe payment fails, the invoice does not progress. The customer sees the reason on the payment page and can retry with a different card or payment method.

Failed Payments

Common Stripe failure codes:

CodeMeaningCustomer action
Card declinedThe card issuer declined the chargeTry a different card or contact the issuer
Insufficient fundsThe account has insufficient fundsAdd funds or use a different method
Expired cardThe card is expiredUse a current card
Incorrect security codeThe security code does not matchRe-enter it
Processing errorThe payment could not be processedRetry
Authentication requiredThe bank requires an extra verification stepComplete the verification prompt

Failed attempts stay in the invoice's payment history but do not count toward the paid total. The customer can retry with another payment method.

Concepts

Why payments are separate from invoices

Pool Runs keeps each payment as a separate history entry because:

  • Partial payments are common (commercial customers, deposit + final, layaway-style)
  • Refunds need their own audit trail (who refunded, why, when, how much)
  • Multiple payment methods on one invoice (e.g., $100 check + $137.50 card) are explicit
  • Failed payments can be retried without polluting the invoice's history

Applied Credits

Some invoices are settled (in part or full) by applying an existing customer credit. Common scenarios:

  • Customer had a credit memo last month, this month's invoice deducts from it
  • Customer overpaid an earlier invoice, the surplus is now stored credit

When you record an Applied Credit payment, the credit balance on the customer's profile decreases by the amount applied. If automatic credit application is enabled, Pool Runs applies stored credit to new invoices for you.

Stripe Connect

Pool Runs uses Stripe Connect, meaning each org has its own connected Stripe account. Payments go directly to your Stripe balance (not to Pool Runs first), and standard Stripe fees apply (2.9% + $0.30 for cards, 0.8% capped at $5 for ACH). You can pass these fees through to commercial customers as a "Service Fee" adjustment if you want.

The Recorded-By Field

Every manual payment records who entered it. The invoice's payment history shows who recorded each payment — a key audit trail for cash and check handling.

FAQ

Q: A customer paid me $20 too much. What do I do? A: Record the full payment amount received. The invoice moves to Paid, and the overage becomes customer credit. It can apply automatically to the next invoice when automatic credits are enabled, or you can apply it manually. You can also refund the $20; see Invoice Adjustments.

Q: I recorded a cash payment for the wrong invoice. Can I move it? A: Not directly. Remove or refund the payment on the wrong invoice, then record it on the correct invoice. The invoice histories preserve both actions.

Q: The customer paid via Stripe but I also want to mark a "service fee" as paid separately. A: Stripe payments come in as a single charge for the invoice's total. If you have a service fee broken out as an adjustment line, the customer sees and pays it as part of the same total — no separate accounting needed.

Q: ACH says "processing" for 4 days. Can I close the books before it clears? A: ACH risk: the bank can return it as failed up to 3–5 business days later. Best practice is to wait for succeeded before treating the payment as final. The invoice will stay partial (or sent) during processing, which is technically accurate.

Q: How do I record a payment received before the invoice was created? A: Create the invoice with the correct issue date, then record the payment using the date the funds were received. The payment date can be earlier than the invoice date for a deposit.

Q: Can I record a payment without sending the invoice? A: Yes. The invoice needs to be at least generated (have an invoice number). A manual cash/check payment doesn't need the invoice to be sent. The status will jump from generated → paid directly.

Q: What's the difference between cancelled, void, and refunded? A: Cancelled = invoice was never paid, retracted before any money moved (status of the invoice). Void = invoice was sent and possibly viewed but is now retracted (status of the invoice; preserved for history). Refunded = payment was made and is now being returned (status of the payment, not the invoice — though a fully refunded invoice may have its own status of refunded). See Invoice Adjustments.

Troubleshooting

Stripe payment missed — payment shows "succeeded" in Stripe dashboard but not in Pool Runs. Sometimes a completed Stripe payment takes a few minutes to appear in Pool Runs. Wait briefly, then contact support if it is still missing. Avoid recording the payment a second time unless support confirms that you should.

The "Record Payment" button is disabled. The invoice is draft (no invoice number yet — generate first), void, or cancelled. Drafts can't take payments; voided/cancelled invoices need to be resurrected as a new invoice.

Recorded a payment but the invoice still says "sent" not "paid." Either the payment status is pending / processing (not succeeded), or the amounts don't reconcile (e.g., adjustment math mismatch, stale balance). Refresh the page; if it persists, open the invoice's payment history to see each payment's status.

Customer says their card was charged but Pool Runs shows nothing. Check the Stripe dashboard for the payment. If it succeeded there but not in Pool Runs, wait a few minutes and contact support with the invoice number and payment date.

Payment amount won't accept decimals. The amount field accepts up to 2 decimals (cents). If you're typing a 3rd decimal, it rounds. For sub-cent precision (rare), contact your accountant — most pool service billing operates in whole cents.


Need help? Check our troubleshooting guide or contact support.

On this page