The Approve Bill module lets authorized users, such as managers, HR, or finance staff, review, approve, or reject submitted bill requests. If a bill approval flow is configured, requests follow the steps in that flow. If no flow applies, the request goes directly to the Subscriber Admin.

Where to Find It #
Go to Dashboard → Bill → Approve. This is the one place where bills are approved or rejected.
Who Can Use This Feature #
Subscriber Admin can approve or reject any bill request in the company, at whichever step it currently sits on, without needing any specific permission.
Employees can approve or reject a bill request only when they’re the assigned approver for its current step and hold the matching permission below.
Permission Behavior #
Two permissions control these actions:
- Approve Bill Request (As Approver)
Required action: Update
Shows the Approve option for bill requests where you’re the assigned approver. - Reject Bill Request (As Approver)
Required action: Update
Shows the Reject option for bill requests where you’re the assigned approver.
Both of the following must be true before an Approve or Reject option shows up for a given bill request:
- You’re assigned as the approver in the relevant approval flow step (Reporting Manager, Company Admin, or a Selected Employee named on that step).
- You hold the matching permission for that action.
Good to know: Being part of the approval flow is not enough by itself. You also need the required permission for that action.
Likewise, having the permission does not automatically make you an approver. You must also be the assigned approver for the current step. If either requirement is missing, the Approve or Reject option will not appear.
To open and view the details of a bill request, the employee also needs the View Bill Request Details permission.
These permissions can be assigned directly to an employee, or to an entire team at once (so everyone on that team inherits them). See the Permissions Management guide for how to assign permissions.
How Approval Flow Works With Bill Requests #
This works exactly the same way as leave approval does — if you’ve already read the Approve & Reject Leave guide, the mechanics here will feel familiar, since bills use the same underlying approval-flow engine.
The Moment a Bill Request Is Created
The instant an employee (or someone submitting on their behalf) submits a bill, Office-X checks the approval flows set up under Dashboard → Admin → Approval Flows to find the one that applies to that employee — based on the employee themselves, their team, gender, department, or designation. At most one flow applies to any single bill request.
If an Approval Flow Applies

The bill is saved as Pending and linked to that flow, with a step-by-step checklist built for it — one entry per step, each starting out as “waiting.” Only the first step’s approver(s) are contacted at this point; nobody assigned to a later step hears anything yet. Whether that first-step notice arrives as an in-app notification, an email, both, or neither depends on how that step was configured. The employee who submitted the bill always gets their own confirmation email regardless.
Good to know: if a step’s approver type is Reporting Manager but the employee does not actually have one assigned, the Subscriber Admin stands in for that step instead — so the bill never gets stuck with nobody able to act on it.
If No Approval Flow Applies
The bill is still created and saved as Pending, but with no step checklist at all — it simply waits on the Subscriber Admin. Only the Subscriber Admin is notified (an in-app notification), and no one else can act on it until an approval flow is set up to cover that employee.
Approval Flow Behavior #
Only users who are assigned as approvers in the applicable approval flow step can take action on the bill request. Each step is set up with exactly one approver type:
- Reporting Manager
- Company Admin
- Selected Employees
There’s no separate “Finance Approver” type built into Office-X — if you want a finance team member to approve expense bills, add them as a Selected Employee on the relevant step.
If no approval flow is configured, bill requests default to the Subscriber Admin — see above for exactly what that means.
Step-by-Step Approval, In Detail #
When a flow has more than one step, the steps are always processed strictly in order — a later step can never be acted on before every step before it has been approved.
Approving a step does not approve the whole bill request. It only marks that one step as approved (recording who approved it and when), moves the request on to the next step if one exists, and notifies that next step’s approver(s) that it’s now their turn.
Only when the final step is approved does the bill’s overall status actually change to Approved. Up until then, the bill stays Pending, even though one or more steps have already said yes.
For example, in a 3-step flow (Reporting Manager → Finance Team Member → Company Admin): once the Reporting Manager approves, the bill is still Pending — it’s simply moved on to the Finance Team Member. Once they approve, it’s still Pending, now waiting on the Company Admin. Only once the Company Admin approves does the status finally become Approved.
A Reject at any step — first or last — immediately sets the bill’s overall status to Rejected. There’s no need for every step to weigh in; one rejection ends it, and steps after the rejected one are simply never reached.
What Happens to a Step Once It’s Decided #
Once an approver has acted on their step, they can’t act on that same bill request again. If they’re also the assigned approver for a later step in the same flow, they’ll get another chance to act when the request reaches that step; otherwise, their involvement in taking action is finished. They can, however, still view the request and add comments for as long as it remains open for comments (see Comments & Communication below).
The Subscriber Admin’s Role #
The Subscriber Admin can always step in and approve or reject whichever step is currently pending on any bill request — even if they aren’t personally named as that step’s Reporting Manager, Company Admin, or Selected Employee. But this only lets them act on the current step; it does not let them skip ahead or finalize the whole request early.
In other words: if a 3-step flow is configured and the Subscriber Admin clicks Approve on step 1, the outcome is exactly the same as if the regularly assigned step-1 approver had clicked it — step 1 is marked approved, and the request moves on to step 2, still Pending. The only situation where the Subscriber Admin’s decision is instantly final is when no approval flow applies at all — there, since there’s no step structure, a single Approve or Reject from the Subscriber Admin is the whole decision.
Finding the Requests You Need #
Each row on the Approve Bills table shows the ID, Employee, Category, Bill Amount, Voucher (a tick or cross), Status, Expense Date, Requested Date, and the Action menu. Newest bills come first.
To get to the right one quickly:
- Search — type an employee name or a Request ID.
- Filters — the Filters button opens Category, Status (All, Pending, Approved, Rejected) and a Requested Date From/To range. Set Status to Pending to see just the bills still waiting on someone. The button shows how many filters are on, and Clear removes them all.
- Columns — hide the columns you do not use.
- Pages — 10 rows per page by default, switchable to 20 or 30, with a “go to page” box.
Action Options for Approvers #
Eligible approvers can perform the following actions based on their approval flow assignment and permissions:
- Approve
Approves the bill request’s current step. If a multi-step approval flow is configured, the request moves to the next approver in the sequence. If it is the final approval step, the bill request becomes Approved. This takes effect immediately when you click it — there’s no confirmation prompt. - Reject
Rejects the bill request immediately, regardless of which step it was rejected at. There’s no built-in reason field on the Reject action itself — if you want to explain why you’re rejecting a request, add a Comment first (see Comments & Communication below), since comments can only be added while the request is still Pending. - View
Opens the bill request details so the approver can review the full expense information before taking action. - Comment
Adds a note to the bill. This is the only way to put a reason on record, since Approve and Reject have no reason field of their own.

Good to know: Notifications depend on what happens to the bill:
- Rejected: Only the employee who submitted the bill is notified.
- Intermediate approval: The employee is notified that the bill moved forward, and the next approver(s) are notified that it is their turn.
- Final approval: The employee is notified that the bill is fully approved.
Approvers who already completed their step will not receive another notification as the bill moves forward.
What Approvers Can View #
From the bill details page, approvers can review:

- Bill title
- Bill amount
- Bill category
- Expense date
- Employee details
- Uploaded attachments or vouchers
- Approval workflow progress
- Approval history
- Comments and communication
The Approval Workflow History shows each approval step in order, including its status, who approved or rejected it (or who it is waiting for), and the date of action.
If a bill is rejected at any step, the approval process stops there. The remaining steps are not shown as skipped or processed.
The Timeline #
Alongside the approval steps, the details page carries a Timeline — a plain Date / Action / Action By table of what has actually happened to this bill, oldest first. It is the quickest way to see the full story before you decide:
- Created — when it was submitted and, importantly, who submitted it. If someone filed it on the employee’s behalf, you will see that here rather than having to guess.
- Edits — if the bill was changed after submission, each change is listed field by field, from the old value to the new one. Worth a glance before approving: an amount you checked yesterday may not be the amount today.
- Each approval or rejection — which step, who acted, and when.
The two views answer different questions: the Timeline shows what has happened, while the approval steps show the planned route and which step is waiting now.
Comments & Communication #
Approvers can add comments to bill requests to:

- Provide instructions or feedback to the employee
- Ask for clarification regarding the expense
- Explain the reason for rejection, since there’s no reason field on the Reject action itself
- Track communication during multi-step approvals
Comments support up to 5 file attachments each. Anyone who can already view the bill request can comment on it — the requester, the requester’s reporting manager, the Subscriber Admin, any approver named anywhere in the flow, or anyone holding View Bill Request Details permission — but only while it’s still Pending. As soon as it’s Approved or Rejected, commenting closes; comments made while it was still pending remain visible afterward.
All comments are logged and visible in the bill history for transparency.
Your Daily Routine #
Clearing your bill approvals:
- Go to Dashboard → Bill → Approve.
- Open Filters and set Status: Pending — that is your actual to-do list.
- Click a row to open it. Check the amount, the category, the expense date, and open the voucher to confirm the receipt matches what is claimed.
- Glance at the Timeline for any edits made since submission, and to see who filed the claim.
- If a receipt is missing or unclear, add a Comment and wait — the employee can reply while the bill is still Pending.
- If you are going to reject, write your comment first. Reject has no reason field, and comments close the moment the bill is rejected — so an unexplained rejection stays unexplained.
- Click Approve or Reject. Both take effect immediately, with no confirmation prompt, so be sure before you click.
- Approving a step in a multi-step flow does not finish the bill — it hands it to the next approver. The employee still sees Pending until the last step is done.
Good to know: If you don’t see the Approve or Reject options, it usually means:
- It’s not your turn yet.
- You have already acted on your step.
- Someone else has already taken action.
Refresh the page to see the latest status.
Notifications and Activity Log #
- When it is your turn, you get a notice asking you to act — in-app, by email, both, or neither, depending on how that step was set up in the approval flow. The email links straight to the bill.
- When you approve an intermediate step, the next approver is notified and the employee gets an update. When you approve the final step, the employee is told the bill is fully Approved.
- When you reject, only the employee is told — nobody further down the flow is contacted, and approvers who already acted on earlier steps are not notified again.
- If you do not seem to be getting notified, it is usually that step’s notification and email switches rather than a fault — ask your Subscriber Admin to check the step under Admin → Approval Flows.
Activity Log: every approval and rejection is recorded in Dashboard → Activity Log with the bill and who decided it — alongside the bill’s own Timeline. Comments are logged too, so a decision and the discussion behind it stay traceable together.
Summary #
The Approve Bill module helps ensure bill requests are reviewed and processed correctly. Each bill either follows the configured approval flow step by step or goes directly to the Subscriber Admin when no flow applies. Each approval moves the bill to the next step, and it becomes Approved only after the final step is approved. A rejection at any step rejects the bill immediately.
To approve or reject a bill, a user must be the assigned approver for the current step and have the required Approve Bill Request (As Approver) or Reject Bill Request (As Approver) permission.