Customer Approval lets your client sign off billable hours before you invoice them. After an approver approves a billable entry on a project that requires customer approval, the entry waits here as pending and gets its own secure link. The customer opens the link without signing in and clicks Approve time or Reject time. Only customer-approved time becomes Ready to bill.
Use it for clients who contractually approve timesheets (retainers, time-and-materials work, government or corporate clients).
Who uses it: project managers and approvers watch the queue and send links; the customer decides on their own page.
Where to find it
| Item | Value |
|---|---|
| Sidebar | Project group → pick the project → Customer Approval |
| URL | /projects/{project}/time/customer-approval |
| Shown when | The project requires customer approval. On other projects the tab is hidden. |
| Plan | Same as Time (Standard or higher); internal approval needs Professional or higher. |
| Who can load it | Project managers, Projects Administrators, the owner, and anyone with time approval rights on the project. Not Viewers. |
How a project gets customer approval
Customer approval is part of the project's billing policy. A project manager (or anyone who may edit the project) switches it on or off in the project's Settings tab → General: tick Require customer approval of time before billing and, if the approval link should go to someone other than the project's customer, type Approval contact email. (Until 5 October 2026 this could not be changed from SolaProjects.) The Billing policy card on the same tab shows the result read-only: Customer approval and Approval contact (the override email, or Selected customer email).
When it is on, the project must have a customer with an email, or an approval contact email: "Customer approval requires either a customer with an email address or an override approval contact email."
Only billable entries need customer approval. Non-billable time skips this step.
Screen tour
Customer approval card
Title Customer approval — "Approved time awaiting customer sign-off. Customers decide via their own secure link."
| Tile | Meaning |
|---|---|
| In queue | All entries in the queue (pending, approved and rejected by the customer) matching the filters. |
| Awaiting customer | Entries in the visible list still pending. |
| Filter | Options |
|---|---|
| Status | All, Pending, Approved, Rejected |
| From / To | Entry date range. |
| Member | All members or one person. |
Queue
| Column | Meaning |
|---|---|
| Date | Entry date. |
| Member | Who logged it. |
| Task | Linked task or dash. |
| Description | The member's notes. |
| Duration | e.g. 3h. |
| Customer status | pending (amber), approved (green), rejected (red). |
| Link | Open ↗ opens the customer's approval page in a new tab. |
Order: pending first, then rejected, then approved; newest request first within each group. The list shows the first 20 entries, with no page buttons; use the filters to reach older ones.
Empty state: Nothing in the queue — "No approved time is awaiting customer sign-off."
The tab is read-only for your team. There are no approve/reject buttons here; only the customer decides.
Send an entry to the customer
SolaProjects does not email the customer. You send the link yourself.
- Open Customer Approval.
- Set Status to Pending.
- Click Open in the Link column. The customer page opens in a new tab.
- Copy the address from the browser bar.
- Email or message it to the approval contact (shown in Settings → Billing policy).
Each time you open the tab, the links are freshly signed and valid for 14 days. If a customer says the link expired, open the tab again and send a new one.
Each link is for one entry. For a week of work, send one link per entry.
What the customer sees
The page Customer time approval, titled with the project name, reads "Review the approved billable time below and approve or reject it for invoicing." It shows:
| Box | Value |
|---|---|
| Date | Entry date. |
| Duration | e.g. 2h 30m. |
| Team member | Who did the work. |
| Task | Task name, or Project-level time. |
| Notes | The member's description, or No notes provided. |
No rates or amounts are shown. A status badge shows Pending, Approved or Rejected.
Customer approves
- Optionally type Your name (up to 120 characters) and an Optional approval note (up to 2,000).
- Click Approve time.
- Confirm: "Approve this time entry for invoicing. This records your decision for the project team."
Result: "Time approved." The badge shows Approved. If no name is typed, the decision is recorded as by "Customer".
Customer rejects
- Type Reason for rejection (required, up to 2,000 characters) and optionally Your name.
- Click Reject time.
- Confirm: "Reject this time entry and send your reason to the project team."
Result: "Time rejected." A blank reason gives "A rejection reason is required."
After either decision the page shows "This time entry has already been decided."
Link problems
| What the customer sees | Why |
|---|---|
| Approval link unavailable — "This customer approval link is invalid, expired, or no longer pending." | The entry was resubmitted or rejected internally, so its link was replaced. Send a fresh link from the tab. |
| A browser error page (invalid signature) | The 14-day link expired or the address was cut short. Send a fresh link. |
Statuses and lifecycle
| Customer status | Billing status | What happens next |
|---|---|---|
| pending | Pending customer approval | Customer decides. |
| approved | Ready to bill (if the entry has a rate; otherwise Unbilled) | Finance invoices it on Billing. |
| rejected | Unbilled | Member edits it on Time (back to Draft) and submits again. It goes through internal approval and customer approval again with a new link. |
Submitted ─Approve─▶ Approved + pending ──customer approves──▶ Ready to bill ─▶ Billed
│
└─customer rejects─▶ Unbilled ─Edit+Submit─▶ Submitted …
The customer's note or reason is stored but not shown on the team's screens; follow up with the customer directly if needed.
Permissions
| Role | View queue / open links | Decide |
|---|---|---|
| Owner, Projects Administrator | Yes | No (customer only) |
| Projects Manager who is project Manager | Yes | No |
| Users with timesheets approve permission | Yes | No |
| Project Member, Viewer | No | No |
| Customer (via link, no login) | Their one entry | Yes |
Worked examples
Example 1 — single entry
Project Al Noor Trading LLC — Website Redesign, approval contact accounts@alnoor.ae.
- Sara Khan approves Omar Haddad's 2h 30m billable entry on Time Approval. It appears here as pending.
- She clicks Open, copies the link and emails it to accounts@alnoor.ae.
- Al Noor's Fatima types her name and clicks Approve time → "Time approved."
- The row turns approved; on Billing the entry is Ready to bill at AED 875.00.
Example 2 — mixed decisions over a week
Week of 12 October, five entries (total 18h) await Al Noor:
| Entry | Customer decision | Result |
|---|---|---|
| 12 Oct, Omar, 4h Checkout | Approved | Ready to bill, AED 1,400.00 |
| 13 Oct, Omar, 4h Cart | Approved | Ready to bill, AED 1,400.00 |
| 14 Oct, Lina Saeed, 6h Photos | Rejected — "Only 4h agreed" | Unbilled |
| 15 Oct, Omar, 2h QA | Approved | Ready to bill, AED 700.00 |
| 16 Oct, Omar, 2h Meeting | Not opened yet | Still pending |
- In queue 5, Awaiting customer 1 after the decisions.
- Lina edits the photo entry to 4h and resubmits; Sara approves; a new link is created and sent.
- Finance bills the three approved entries (AED 3,500.00) now and the rest later.
How it connects
- Time Approval feeds this queue.
- Billing only lists customer-approved entries on these projects.
- Overview → Finance shows the Pending customer approval count; SolaCount's project page shows it as Awaiting customer.
Tips and common problems
| Problem | Cause | Fix |
|---|---|---|
| Tab missing | Project doesn't require customer approval. | Check Settings → Billing policy. |
| Non-billable entry never appears | Only billable time needs customer approval. | Expected. |
| Customer says link is unavailable | Entry was resubmitted, or link expired. | Open the tab and send the fresh link. |
| Customer can't find who to contact | — | Give them your contact in the email; the page has no reply option. |
| Awaiting customer looks low | It counts only the visible (first 20) rows. | Filter Status: Pending. |