User Guide
MX Proposals for WHMCS
Professional Proposals with Digital Signatures & Payment Plans
Version 1.1.0 · Complete documentation
Last updated: February 2026
Installation
Estimated time: 10 minutes
Requirements: WHMCS 8.0+, PHP 8.0+
Step 1: Upload Addon Files
- 1.Extract
mx_proposals.zip - 2.Upload the
proposals/folder to/modules/addons/
Expected folder structure:
/whmcs/modules/addons/proposals/ ├── proposals.php ├── hooks.php ├── viewer.php ├── download.php ├── lib/ ├── templates/ ├── assets/ └── fonts/
Step 2: Upload Proposal Viewer
Upload the proposal/ folder to your WHMCS root directory. This enables friendly URLs for client proposals.
Result:
/whmcs/proposal/ ├── index.php └── .htaccess
Result: Clients access proposals at yourdomain.com/proposal/abc123
Step 3: Activate & Configure
- 1.Go to Configuration → Addon Modules
- 2.Find "Proposals" and click Activate
- 3.Set Access Control to "Full Administrator"
- 4.Click Save Changes
Done! Access MX Proposals from Addons → Proposals in the admin menu.
Feature Overview
MX Proposals adds a complete proposal management system to WHMCS. Send proposals to clients, collect signatures and deposits, and let WHMCS handle the rest.
Digital Signatures
Clients sign proposals directly in their browser with a signature pad.
Deposit Collection
Collect a deposit on acceptance. Configurable as percentage or fixed amount.
Payment Plans
Split payments into installments with automatic invoice generation. (Pro)
Video & PDF Embeds
Attach videos and PDF documents to proposals for richer presentations. (Pro)
Custom Branding
Set your logo, colors, fonts, and style presets for a professional look. (Pro)
Automatic Orders
When a client accepts, WHMCS creates the order and invoices automatically.
Email Notifications
Automatic emails for sent, viewed, accepted, and expired proposals.
Webhooks
HTTP POST notifications for proposal events. Connect n8n, Zapier, or custom apps. (Pro)
Creating a Proposal
Step 1: Start a New Proposal
Go to Addons → Proposals and click Create Proposal. Enter a title, select a client (or leave blank for a new lead), and set the validity period.
Step 2: Add Services
Add line items with description, quantity, and unit price. You can mark items as optional. Set a deposit amount (percentage or fixed) that the client pays on acceptance.
Step 3: Add Media (Pro)
Attach a video introduction (YouTube or Vimeo URL) and PDF documents like service agreements or brochures. Clients see these embedded directly in the proposal.
Step 4: Configure Payment (Pro)
Set up a payment plan to split the remaining balance into installments. Choose the number of payments, frequency, and start date. Invoices are generated automatically on schedule.
Step 5: Send
Click Send Proposal. The client receives an email with a unique link. You can track views, resend, or revoke from the proposals dashboard.
Settings
Configure MX Proposals from Addons → Proposals → Settings.
Countries & Form Fields
Set which countries appear in the client form. Configure visibility of phone, company, tax ID, and address fields (optional, required, or hidden).
Branding (Pro)
Upload your logo, set primary and accent colors, choose fonts, and select a style preset (Classic, Modern, Dark). Add custom CSS and footer text.
Email Templates
Customize the emails sent when proposals are created, viewed, accepted, or expired. Set sender name and email address.
Signature
Enable or disable digital signatures globally. Allow per-proposal override so you can skip signatures for smaller deals.
Payment
Set default invoice due days, minimum deposit requirements, and notes that appear on generated invoices.
Automation (Pro)
Set a webhook URL to receive HTTP POST notifications when proposal events happen. Optionally add a webhook secret for HMAC-SHA256 signature verification.
Defaults
Set the default validity period, currency, and notes template for new proposals.
Webhooks (Pro)
Webhooks send HTTP POST requests to your endpoint when proposal events occur. Use them to trigger external workflows in n8n, Zapier, Slack, or any custom application.
Configuration
Go to Addons → Proposals → Settings → Automation tab.
Webhook URL
The endpoint that receives POST requests. Example: https://your-app.com/webhook
Webhook Secret (optional)
A shared secret for HMAC-SHA256 signature verification. When set, each request includes an X-Proposals-Signature header you can verify.
Events
| Event | When |
|---|---|
| proposal.sent | Proposal is sent to the client |
| proposal.viewed | Client opens the proposal link |
| proposal.accepted | Client signs and accepts the proposal |
| proposal.paid | Payment is processed successfully |
| proposal.declined | Client declines the proposal |
| proposal.expired | Proposal auto-expires past its deadline |
Request Format
Each webhook sends a JSON POST with these headers:
Content-Type: application/json X-Proposals-Event: proposal.accepted X-Proposals-Signature: <HMAC-SHA256 hash> X-Proposals-Timestamp: 1740234567
Example payload:
{
"event": "proposal.accepted",
"timestamp": 1740234567,
"proposal": {
"id": 42,
"title": "Web Redesign Project",
"status": "accepted",
"token": "abc123def456",
"total": "1500.00",
"deposit": "750.00"
},
"client": {
"email": "john@example.com",
"name": "John Doe"
}
}Verifying Signatures
If you set a webhook secret, verify the X-Proposals-Signature header by computing the HMAC-SHA256 hash of the raw request body using your secret:
$secret = 'your-webhook-secret';
$payload = file_get_contents('php://input');
$expected = hash_hmac('sha256', $payload, $secret);
$received = $_SERVER['HTTP_X_PROPOSALS_SIGNATURE'];
if (hash_equals($expected, $received)) {
// Signature valid - process the webhook
}Free vs Pro
MX Proposals is freemium. The Free version covers the essentials. Pro unlocks unlimited proposals, payment plans, and full customization.
| Feature | Free | Pro |
|---|---|---|
| Active proposals | 5 | Unlimited |
| Digital signatures | ||
| Deposit collection | ||
| Automatic orders & invoices | ||
| PDF attachments | 1 | Unlimited |
| Video embeds | ||
| Payment plans | ||
| Custom branding | ||
| Style presets | Classic | All |
| Proposal templates | ||
| Email customization | ||
| Webhooks (6 events) | ||
| Advanced analytics |
Frequently Asked Questions
What is the difference between Free and Pro?
The Free version includes up to 5 active proposals, digital signatures, deposit collection, and 1 PDF attachment per proposal. Pro adds unlimited proposals, payment plans, video embeds, custom branding, style presets, proposal cloning, email customization, and advanced analytics.
How do clients view and sign proposals?
Clients receive an email with a unique link to their proposal. The proposal page shows all details including services, pricing, attachments, and a signature pad. After signing and paying the deposit, an order is automatically created in WHMCS.
Does MX Proposals create invoices automatically?
Yes. When a client accepts a proposal and pays the deposit, MX Proposals automatically creates a WHMCS order and generates invoices. For payment plans (Pro), installment invoices are created on the scheduled dates.
Can I customize the proposal appearance?
Yes. Pro users can set custom colors, logos, fonts, and style presets (Classic, Modern, Dark). You can also add custom CSS and footer text. Free users get the Classic style preset.
Which payment gateways are supported?
MX Proposals works with all WHMCS payment gateways. You can restrict which gateways are available per proposal if needed.
Which WHMCS versions are supported?
MX Proposals supports WHMCS 8.0 and newer. We recommend using the latest stable version (8.8+) for best compatibility.
How do webhooks work?
Pro includes webhooks that send HTTP POST requests to your endpoint when proposal events happen (sent, viewed, accepted, paid, declined, expired). Configure a URL in Settings > Automation. Optionally add a secret for HMAC-SHA256 signature verification. Use webhooks to connect n8n, Zapier, Slack, or any custom application.
Use AI to Manage Proposals
Connect Claude Desktop, OpenAI Codex, or Cursor to WHMCS Proposals. Create, update, and send proposals using natural language.
MCP Server Setup GuideNeed Help?
Our support team is ready to assist you with any questions about MX Proposals.