Milestone Billing for Projects
Bill clients per project phase with built-in payment approval
Goal: Set up project billing where each milestone generates an invoice the client reviews and approves before payment. The client_confirm capture mode ensures explicit acknowledgement of each charge.
What You'll Need
Steps
Create a milestone item
Edge > Billable Items > New Item. Trigger type. Mode: Event, Capture: Client Confirms Payment, Price: $5,000 (default), Allow Override: Yes, Max Capture: $25,000. Description: 'Project milestone — client reviews and pays'.
Set up the client
Create a billing customer for the project client with payment method and trigger permissions.
Enroll the client
Enroll in the milestone item. One enrollment covers all milestones — fire once per phase with specific amount and description.
Complete a milestone and fire
When a phase is done, open the billing customer, click Charge Now. Select the milestone item. Enter amount (e.g., $4,500) and description (e.g., 'Phase 2: Homepage designs — delivered March 15'). Click Send Invoice.
Client reviews and pays
Client receives email with invoice, amount, description, and Pay Now button. Reviews the work, confirms, clicks Pay Now.
Track milestone payments
Each charge appears in billing customer history and revenue dashboard. The evidence trail (invoice date, Pay Now click, IP) is recorded automatically.
Result
Each milestone generates a client-approved invoice. The client sees what they are paying for, clicks to approve, and the payment is recorded with full evidence. Strong position if a dispute ever arises.
Variations
Fixed milestone amounts
Use Fixed mode if all milestones are the same price. Amount locked at creation.
API-triggered milestones
Fire via POST /apis/edge/trigger/fire.php with override_amount and override_description instead of the UI.