Invoice
Invoice Flow
Agency creates the invoice.
Once the invoice is created the status is draft
Send the invoice to client by clicking send to client button and the status is changed to open.
From open status agency can change the status to paid, void, uncollectable.
client can only view the generated invoice.
both parties can download the invoice
invoice generate should contain - created date, paid date/Void date.
When showing invoice show the service
When the status is changed to paid/void. auto capture the ‘paidDate’
Agency logo and address will be added in the invoice(template)
discard this In draft, open and uncollectable agency can edit the paid, due and discount.
Once the invoice is sent it will have the payment(stripe) link in the invoice
once the user pays using the link the status will automatically change to paid.
Create invoice.
invoice creation for client (agency) (Super admin, admin, PM can create invoice)
client name, order, address, partial amount, total amount, upfront, due date, created, discount%, status - draft, open (Unpaid), paid, void(cancelled), uncollectable.
Status details
Draft
The invoice isn’t ready to use. All invoices start in draft status.
Edit any part of the invoice.
When the invoice is ready to use, finalize it by changing its status to open.
If the invoice isn’t associated with a subscription, delete it.
Open/Unpaid
The invoice is finalized and awaiting payment.
Send the invoice to a customer for payment.
Change the invoice’s status to paid, void, or uncollectible.
Paid (The Invoice is paid)
Void (This invoice is canceled.)
Uncollectable (The customer is unlikely to pay the invoice. Normally, you treat it as bad debt in your accounting process)
Change the invoice’s status to void or paid.
Client name selected from dropdown.
order selected from dropdown.
textbox for amount, discount
date selector.

Product Requirements Document (PRD): Invoice Flow – Agency Handy

Objective

Establish a streamlined invoicing system for agencies to create, manage, and track invoices efficiently, including Stripe payment integration and client visibility.

Invoice Flow

Invoice Creation
Initiated by Superadmin, Admin, or PM.
Invoice status begins as Draft.
if selected set as draft
If send invoice is clicked directly send to client
Send to Client
When “Send Invoice” is clicked:
Status updates from Draft to Open.
Invoice is finalized and ready for payment.
Payment link (Stripe) is attached to invoice.
Client Interaction
Clients can view but not edit invoices.
Clients can pay via Stripe link.
Both agency and client can download the invoice.
Status Management
From Open, agency can update status to:
Paid
Void
Uncollectable
Auto-Capture Dates
When status is changed to Paid or Void, capture:
paidDate or voidDate
Display both on invoice.
Invoice Template
Display following details:
Agency logo and address
Created Date, Paid/Void Date
Linked Service Name
Client Name, Order, Address
Total, Partial Amount, Discount, Due Date
Status Badge
Invoice Fields
invoice table
Field
Input Type
Notes
Client Name
Dropdown
Pulled from existing client list
Order
Dropdown
Link invoice to a specific order
Address
Auto-populated
From selected client
Partial Amount
Textbox
Optional
Total Amount
Textbox
Required
Upfront Amount
Textbox
Optional
Discount %
Textbox
Optional
Created Date
Auto
Set on invoice creation
Due Date
Date Picker
Required
Status
Dropdown
Draft, Open, Paid, Void, Uncollectable
Vat/tax
textbox
for auto payment tax would be automatically filled
vat/tax enclusive/exclusive
toggle
There are no rows in this table

Invoice Statuses & Behavior

Draft
Default on creation.
All fields are editable.
Can be deleted (if not linked to a subscription).
Open (Unpaid)
Finalized invoice sent to client.
Editable: amount, due date, discount.
Can be marked as Paid, Void, or Uncollectable.
Paid
Indicates full payment.
Status auto-updates on successful Stripe payment.
Void
Invoice is canceled.
Uncollectable
Treated as bad debt.
Can be marked as Paid or Void later.

Stripe/Paypal Integration

Invoice will include a payment link under Pay Now button when in Open status.
Auto-update status to Paid upon successful Stripe payment.
On hover of disabled payment (e.g., unsupported currency):
Tooltip: "Stripe payment is not supported for this currency."

Acceptance Criteria

Superadmin/Admin/PM can create an invoice.
Invoice starts in Draft status.
Client can only view invoices, not edit.
Stripe link is visible only in Open invoices.
Status auto-updates to Paid when payment is completed.
On marking invoice as Paid or Void, system captures paidDate or voidDate.
Both parties can download invoice.
Agency can edit amount, due date, and discount while status is Draft

Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.