MemberPulse
Client PortalMemberships

Invoicing Automation

Automate invoice generation, delivery, and payment processing

Automate the creation, delivery, and management of invoices for memberships, events, and other billable items.

Capabilities

ActionROLE_CLIENT_ADMINROLE_CLIENT_USER
View invoices
Generate invoices
Configure automation
Process refunds
Export invoices

Features

Automatic Invoice Generation

Invoices are automatically generated for:

  • Membership Renewals - Generated X days before expiry
  • Event Registrations - Generated at registration
  • Course Purchases - Generated at enrollment
  • Resource Downloads - Generated for paid resources
  • Job Postings - Generated when posting is submitted
  • Sponsorship Plans & Promotions - Generated for sponsorship tiers, ad placements, and sponsored promotions

Acceptance Criteria

Frontend
  • Invoice list with status filtering
  • Invoice detail view with PDF preview
  • Manual invoice creation form
  • Bulk invoice generation
  • Invoice export (PDF, CSV)
  • Refund processing workflow
Backend / API
  • Backend behavior supports this feature as documented.
Permissions
  • Access is restricted per the Capabilities matrix on this page (or equivalent role rules).
Business Rules
  • Invoice numbers must be unique and sequential
  • Cannot edit invoice after payment received
  • Refund cannot exceed invoice amount
  • Due date calculated from invoice date + payment terms
  • Overdue status set automatically based on due date
  • Voided invoices retained for audit purposes
  • Tax calculated based on organization settings
Error Handling
  • Error states return clear messages and appropriate HTTP status codes.

Invoice Configuration

Invoice Details

  • Invoice number format (e.g., INV-YYYYMMDD-####)
  • Organization details (name, address, ABN)
  • Payment terms (due date calculation)
  • Tax configuration (rate, inclusion)

Branding

  • Logo placement
  • Color scheme
  • Custom header/footer text
  • Terms and conditions

Delivery

  • Auto-send on generation
  • Email template selection
  • CC/BCC addresses
  • Reminder schedule

Acceptance Criteria

Frontend
  • Invoice settings configuration
  • Reminder schedule configuration
Backend / API
  • Backend behavior supports this feature as documented.
Permissions
  • Access is restricted per the Capabilities matrix on this page (or equivalent role rules).
Business Rules
  • All business rules for this feature are enforced.
Error Handling
  • Error states return clear messages and appropriate HTTP status codes.

Invoice Lifecycle

Draft → Sent → Viewed → Paid

              Overdue → Reminder → Paid/Written Off

Acceptance Criteria

Frontend
  • UI supports the workflows described in this feature.
Backend / API
  • Backend behavior supports this feature as documented.
Permissions
  • Access is restricted per the Capabilities matrix on this page (or equivalent role rules).
Business Rules
  • All business rules for this feature are enforced.
Error Handling
  • Error states return clear messages and appropriate HTTP status codes.

Payment Reminders

Configure automatic reminders:

ReminderDefault Timing
First reminder3 days before due
Second reminderOn due date
Overdue notice7 days after due
Final notice14 days after due

Acceptance Criteria

Frontend
  • Payment recording interface
Backend / API
  • Backend behavior supports this feature as documented.
Permissions
  • Access is restricted per the Capabilities matrix on this page (or equivalent role rules).
Business Rules
  • All business rules for this feature are enforced.
Error Handling
  • Error states return clear messages and appropriate HTTP status codes.

Data Model Cross‑Reference (Entities)

Implementation Contracts

Backend (API)

GET    /api/invoices                         # List all invoices
POST   /api/invoices                         # Create manual invoice
GET    /api/invoices/{id}                    # Get invoice details
PUT    /api/invoices/{id}                    # Update invoice
DELETE /api/invoices/{id}                    # Void invoice

GET    /api/invoices/{id}/pdf                # Download PDF
POST   /api/invoices/{id}/send               # Send/resend invoice
POST   /api/invoices/{id}/record-payment     # Record manual payment
POST   /api/invoices/{id}/refund             # Process refund

GET    /api/invoices/settings                # Get invoice settings
PUT    /api/invoices/settings                # Update settings

POST   /api/invoices/bulk-generate           # Generate multiple invoices
POST   /api/invoices/export                  # Export invoices

Data Model

interface Invoice {
  id: string;
  invoiceNumber: string;
  memberId: string;
  memberName: string;
  memberEmail: string;
  
  // Line items
  items: InvoiceItem[];
  
  // Amounts
  subtotal: number;
  taxRate: number;
  taxAmount: number;
  total: number;
  
  // Dates
  invoiceDate: string;
  dueDate: string;
  paidDate?: string;
  
  // Status
  status: 'draft' | 'sent' | 'viewed' | 'paid' | 'overdue' | 'voided';
  
  // Payment
  paymentMethod?: string;
  transactionId?: string;
  
  // Related
  relatedType: 'membership' | 'event' | 'course' | 'resource' | 'job' | 'sponsorship';
  relatedId: string;
  
  createdAt: string;
  updatedAt: string;
}

interface InvoiceItem {
  description: string;
  quantity: number;
  unitPrice: number;
  amount: number;
}

Error Handling

ErrorHTTP StatusMessage
Already paid400"Cannot modify paid invoice"
Refund exceeds amount400"Refund amount exceeds invoice total"
Invalid due date400"Due date must be after invoice date"
Voided invoice400"Invoice has been voided"

On this page