🧾 Support for Partial Payments

🔍 Problem Statement

As a billing administrator, I experience inability to accept partial payments against open invoices, which results in workarounds, inaccurate invoice statuses, and accounting discrepancies when customers pay in installments (via checks, wire transfers, or credit card).

💡 User Stories

  1. As a billing admin, I want to record partial payments against open invoices, so that I can accurately reflect received amounts and keep invoices partially open until fully paid.

  2. As a finance manager, I want to track outstanding balances after each partial payment, so that I can manage collections and reconciliation more accurately.

  3. As a customer support agent, I want to see which invoices are partially paid, so that I can inform customers about their remaining balance without manual calculations.

  4. As a compliance officer, I want to have an audit record of every payment installment, so that I can verify that the payment history is complete and traceable.

🎯 Definition of Done (DoD)

Given an open invoice, when an admin clicks “Mark as Paid,” then the system should allow entering a custom payment amount, which may be less than the total invoice amount.

Given a partial payment is recorded, then the invoice status should automatically update to “Partially Paid”, and display:

  1. Total invoice amount

  2. Amount paid to date

  3. Remaining balance

Given subsequent partial payments, then Pelcro should continue accumulating amounts until the invoice total is reached, at which point the invoice automatically transitions to “Paid.”

Given a customer account with a balance, when partial payments are made (either manually or via the balance), then the billing engine should apply the payment to the open invoice and reflect the updated remaining balance.

Given any partial payment transaction, then the system should log it in the audit trail, capturing:

  1. Payment amount and method

  2. Linked invoice ID

  3. Timestamp and actor (system or user)

  4. Updated balance remaining

✔ This change will impact Billing Engine and Admin UI, specifically:

  1. Billing Engine Enhancements

  2. Enable invoices to maintain a dynamic “amount paid” and “balance due” field.

  3. Introduce logic to support cumulative payments against a single invoice until fully paid.

  4. Update invoice status lifecycle: Open → Partially Paid → Paid.

  5. Admin UI Enhancements

  6. On the Invoice Details page:

  7. Add an “Enter Payment Amount” field when marking an invoice as paid.

  8. Display progress indicators for payments (e.g., Paid 50% / Remaining 50%).

  9. Reflect partial payment state in invoice lists and exports.

✔ This solution will include the following limitations:

  1. Partial payments can only be made for open invoices (not closed or canceled).

  2. Each partial payment must be manually entered or applied from an existing customer balance (no automated installment scheduling in this phase).

  3. Only one currency per invoice supported.

  4. Audit logs remain internal-only and non-editable.

  5. Default behavior continues to fully apply a payment if the amount matches the invoice total.

Please authenticate to join the conversation.

Upvoters
Status

Backlog

Board
💡

Pelcro Product

Tags

Accounting

Date

5 months ago

Author

Rana Haleem

Subscribe to post

Get notified by email when there are changes.