Blocked refuels and supervisor approval
When a refuel asks for more fuel than the vehicle's limit allows, the order is created as Blocked instead of being refused. The driver can send it to a supervisor, who approves a quantity or rejects it; an approved order continues its normal flow.
Overview#
A Blocked order is a refuel order that was created but not allowed to proceed. The same cycle applies to all three pump flows, the standard flow, PVoil and Petrolimex, and to card refuels started at the pump. While an order is Blocked, no money is held, nothing is owed to the merchant and nothing is sent to an integration partner. Merchants never see Blocked orders. How the limit is calculated is on Refuel limits.
Block reasons#
| Reason | Driver App text | Can be sent for approval |
|---|---|---|
| GPS distance not synced recently enough | We couldn't confirm recent distance for this vehicle. | Yes |
| No GPS movement recorded | No distance data received — this may be a GPS issue (not your fault). | Yes |
| Allowance consumed / no consumption norm available — also used when a request is above a fixed-quantity or full-tank limit | This fill is above the current limit for this vehicle. | Yes |
| Tank has no room left | This is more than the tank can hold right now. | Yes |
| B2B credit limit exceeded | A general message | No |
| Wallet balance insufficient | A general message | No |
The reasons are recorded on the order. A balance block, credit or wallet, has no supervisor override: the order cannot be released, and it ends when the driver cancels it or after 24 hours. A new refuel can be made once the wallet or credit line covers it. The Driver App screen also shows the requested quantity and the allowed limit at the time of the block; for PVoil, where no quantity is requested, it shows Limit exhausted for this vehicle.
Approval statuses#
A Blocked order has no approval request until the driver sends one. The request then has one of four states:
| State | Meaning | Order |
|---|---|---|
| Pending | Waiting for a supervisor | Stays Blocked |
| Approved | A supervisor approved a quantity | Resumes its flow at the approved quantity |
| Rejected | A supervisor rejected it with a reason | Cancelled |
| Expired | No decision in time, or the driver cancelled while it was pending | Cancelled |
stateDiagram-v2
state "Blocked, not sent" as blocked
state "Pending" as pending
state "Approved — order resumes" as approved
state "Rejected — order cancelled" as rejected
state "Expired — order cancelled" as expired
state "Cancelled" as cancelled
[*] --> blocked: refuel over the limit
blocked --> pending: driver requests approval
blocked --> cancelled: driver cancels or time runs out
pending --> approved: supervisor approves
pending --> rejected: supervisor rejects
pending --> expired: time runs out or driver cancelsRules#
- One request per order. Sending the request again returns the same request; a rejected or expired request never reopens.
- Only requested orders can be decided. Every Blocked order appears in the Refuel Unblock Queue. An order the driver has not sent yet shows Awaiting driver request and cannot be decided; only a pending request can be approved or rejected.
- First decision wins. When two supervisors decide at the same time, the first one counts and the other is told Already decided by ….
- Approved quantity. Must be greater than zero and no more than the vehicle's fuel capacity; a vehicle with unknown capacity cannot be approved. The approval does not re-check the refuel limit.
- Reject reason. Required, up to 500 characters; the driver sees it.
- Time limit. A Blocked order is cancelled 24 hours after it was created when nobody has decided, and a pending request expires with it; the check runs every 15 minutes. Until then it stays Blocked: nothing is approved or rejected automatically. Once the 24 hours have passed, a pending request shows as Escalation expired and can no longer be decided, even before the order is cancelled.
- No reduce-and-retry on the same order. For an over-limit or tank-full block, the driver can choose to reduce the quantity, which cancels the blocked order and starts a new one; a rejected or expired request also needs a new order.
What happens on approval#
Before resuming, the platform checks again that the vehicle and driver are active and the driver may still use that vehicle at that merchant; for Petrolimex it also re-checks B2B-Direct settlement and the vehicle's QR. Any failure stops the approval. Then, per flow:
| Flow | Resumes as |
|---|---|
| Standard | Back to Draft at the approved quantity. If the company requires supervisor confirmation of refuels, it then goes to Pending Tenant Confirmation as usual |
| Petrolimex | Awaiting Invoice at the approved quantity, with the provisional amount owed recalculated and recorded; the company's B2B-Direct credit has to cover the approved amount |
| PVoil | A wallet hold is placed for the approved quantity and the order continues to the scan; if the wallet cannot cover it, the approval fails |
The flows themselves are on Refuelling at PVoil stations and Refuelling at Petrolimex stations (static QR); all statuses are on Refuel order statuses.
Notifications#
| When | Who | |
|---|---|---|
| The driver sends a request | Everyone in the company who can approve blocked refuels | Links to the decision page |
| Approved, rejected, or a pending request ran out of time | The driver | Push notification that opens the order; none when the driver cancels |
While waiting, the app shows Waiting for supervisor — you'll see the result here and checks for the outcome by itself. The app has no button to call the supervisor; after a while it only suggests it in text.
Permissions#
| Action | Tenant Owner | Tenant Admin | Tenant Supervisor | Driver |
|---|---|---|---|---|
| Send a blocked order for approval | — | — | — | Yes, own order |
| See the unblock queue, approve, reject | Yes | Yes | Yes | — |
Deciding needs the permission to unblock refuel orders. Approvers see only the blocked orders they can see in the refuel order list.